Changelog
Notable changes to Canon, grouped by minor release.
v1.57
Features
- Sync UI for ticket mapping and sync management
- Fix UserPromptSubmit hook blocking fresh repos + add canon-interrogate skill
Bug Fixes
- Address review findings — grep fallback, variable naming, test gaps (plugin)
v1.56
Features
- Automatic Jira OAuth token refresh on 401 and via cron
- Add refresh-tokens CronJob (every 30 min) to Helm chart
Bug Fixes
- Disable refreshTokensCronJob in preview values (chart)
Documentation
- Update CLAUDE.md with current project structure and gotchas
v1.55
Features
- CLI integration management, doctor command, and guided onboarding
Bug Fixes
- Suppress misleading org_id warning for device-flow tokens (doctor)
v1.54
Features
- Plugin ecosystem Phase 2-3 — adapters, catalog, hooks, MCP tools, agents
Bug Fixes
- Exclude non-package directories from sdist to stay under PyPI 100MB limit
- Allow bearer tokens without org_id to access org-scoped routes
- Resolve org_login from request URL when JWT lacks org_id
Documentation
- Add extension system documentation pages and testing extensions locally guide
v1.53
Features
- Plugin ecosystem with extension system and Slack extraction
v1.52
Features
- Expand integration test coverage to 192 tests + fix 3 auth bugs
Bug Fixes
- Sync missing OSS modules and guard cloud-only imports
- Fix choose-org page showing no orgs due to SPA intercepting JSON fetch
- Cast IPv4Address to str in audit event response (admin)
- Resolve ticket sync adapters using GitHub App token and DB credentials
- Env var / auth_profile credentials take precedence over installation token
- Add cancel-in-progress to Release & Publish workflow (ci)
- Skip reverse sync commit when file content is unchanged (cron)
v1.51
Features
- Canon plugin product polish + dev-to-PR evidence pipeline
Bug Fixes
- PostHog reliability gaps — schema, JWT, instrumentation, security
v1.50
Features
- GitHub Actions Suite — 14 actions, 2 reusable workflows, full V1.2 spec
Bug Fixes
- Upgrade to Sonnet 4.6 + dynamic prompt budgeting (agent)
v1.49
Features
- User & organization management — P0 admin spec implementation
Bug Fixes
- Address review findings from admin UI PR
v1.48
Features
- Per-spec sync events with adapter tagging for ticket sync dashboard (observability)
v1.47
Features
- Apply tracked_cron to 6 missing crons + instrument device auth flow (observability)
v1.46
Features
- Centralize Jira/Linear sync through Canon backend
Bug Fixes
- OIDC live-provider smoke harness, Basic auth at device endpoint, localhost issuer exception, CI job
- Robust parser for Claude analysis responses + structured failure reporting (agent)
- Fix Jira search endpoint and parser start_line off-by-one
- Stop pytest from spawning chromium tabs on every run (cli)
v1.45
Features
- Admin UI enhancements — user deactivation, org suspension, auth fixes
Bug Fixes
- Enable GitHub/Google/email connections for CLI client (auth0)
- Resolve org in device auth flow for multi-org tenants
- Wire class-based dark mode in Tailwind v4 (ui)
v1.44
Features
- Super admin interface for platform management
Bug Fixes
- Resolve org in device auth flow for multi-org tenants
Documentation
- Add admin-actions spec (impersonation, deactivation, suspension)
v1.43
Features
- Development execution workflow skills for Canon plugin
Bug Fixes
- Close auth bypass allowing any user to access any org
v1.42
Features
- Integration management UI with OAuth for Jira and Linear
v1.41
Bug Fixes
- Wire GitHub OAuth App into Auth0 social connection (infra)
- Import core infra into Terraform state (infra)
v1.40
Features
- Migrate Auth0 from gv-os to canonhq tenant (infra)
v1.39
Features
- Complete Slack product experience — 57 ACs across 9 systems
v1.38
Features
- Complete Slack App spec — 68/68 ACs implemented
v1.37
Features
- Implement /canon slash command handlers (slack)
- Web app UX polish
Bug Fixes
- Add Helm repo before dependency build in publish workflow (ci)
- Fix Starlette Request handler instead of raw ASGI mount (slack)
Documentation
- Fix Claude Code plugin installation instructions
v1.36
Features
- Add interactive Slack app (§2-§9)
Documentation
- Add multi-org & personal account support spec
v1.35
Features
- Add LLM observability via PostHog $ai_generation events
Bug Fixes
- Handle empty SMTP_PORT env var to prevent startup crash
v1.34
Features
- Multi-target forward sync with shadow ticket creation
- Cross-system drift detection for multi-target sync
- Configure multi-target routing rules in CANON.yaml
- Wire multi-target sync into push handler
- Make sync failures loud with PostHog tracking and detailed logging
- Auto-commit spec updates directly to default branch on merge
Bug Fixes
- Prevent project_key mutation from bleeding into fallback path
- Use original file SHA for auto-commit to prevent data loss
- Log warning when section not found during shadow sync
v1.33
Features
- Add Stripe, SMTP, and Auth0 M2M secrets to Helm chart and deploy workflow
Bug Fixes
- Add Zitadel Helm repo before dependency build in CI workflows
Documentation
- Add web-app-ux-polish spec for Tasks, Explorer, Nav, Editor, and Global UX improvements
v1.32
Features
- Analytics dashboard with health score, events, and frontend
- Add Canon-owned infrastructure (Terraform + SaaS automation)
- Add GitHub API client integration tests (spec section 3)
Bug Fixes
- Retry on stale SHA conflict (409) in reverse sync webhook processor
- Make 0002 migration idempotent when target column already exists
- Remove canon-github-tickets secret ref that breaks deploy
Documentation
- Add spec for closing SDLC loop + multi-target ticket sync
- Expand slack-integration spec into full Slack app design
- Add analytics dashboard spec and infrastructure independence spec
v1.31
Bug Fixes
- Reduce PostHog log noise from opaque tokens and missing web_org
- Add comment-posting tools to Claude code review workflow
- Increase Claude code review max-turns from 15 to 25
- Make Claude code review more robust
Documentation
- Expand infrastructure independence spec with Stripe, PostHog, Auth0 provisioning, and GitHub App sections
v1.30
Features
- Add changelog automation for docs site
- Add Auth0 M2M credentials to deploy and preview workflows
Bug Fixes
- Detect opaque JWT tokens and add GitHub ticket sync Helm plumbing
Documentation
- Add platform observability coverage spec
- Add infrastructure independence spec
v1.29
Features
- Complete user profile page spec
Bug Fixes
- Strip libpq-only params (channel_binding) from asyncpg URLs
- Restore allowedTools for claude code review gh commands
v1.28
Features
- Add vite-ssg prerendering, SSG route serving, and integration tests
v1.27
Bug Fixes
- Set imagePullPolicy Always for preview deployments (helm)
Documentation
- Add changelog automation spec
- Add preview environment Auth0 configuration spec
- Update SRE alerting spec section statuses
v1.26
Features
- Implement remaining OIDC migration + pricing gaps
Bug Fixes
- Add lockfile check to pre-push hook
- Improve claude code review prompt with project-specific context
- Remove allowedTools override that blocked default claude review tools
- Remove inline comment tool from claude review to prevent comment spam
- Reduce claude code review noise with sticky comments and focused prompt
- Add helm dependency build to deploy, publish, and preview workflows
- Use core.hooksPath so git hooks work in worktrees automatically
- Use single event loop for all specs + fresh ticket sync (sync)
Documentation
- Add infra enablement spec for billing, email, and auth0 m2m
- Add enterprise adoption and scale infrastructure specs
- Add SRE alerting & monitoring spec
- Audit and update spec statuses for auth-hardening and canon-rebrand
v1.25
Features
- Rename auth0_sub/auth0_org_id to oidc_sub/oidc_org_id, add users.role (db)
Bug Fixes
- Migration tests — use cfg.attributes for schema, run Alembic in thread
Documentation
- Update OIDC migration spec statuses to reflect implementation
v1.24
Features
- Implement ticket sync reliability spec (§2-§6)
Bug Fixes
- Resolve critical bugs found in PR review
v1.23
Features
- Implement IDE Agent Integration spec (§2-§6)
Bug Fixes
- Update list_specs tests for paginated response format
Documentation
- Add IDE Agent Integration spec
- Add OIDC migration spec for Auth0 to open-source auth
- Add ticket links for ticket-sync-reliability spec (#376-#383)
- Add ticket sync reliability spec
- Remove duplicate ticket links and close stale issues
- Sync spec ticket links and clean up issue tracking
- Update spec statuses based on codebase audit
v1.22
Features
- Add setup, install-cli, and setup-claude targets to Makefiles
Bug Fixes
- Differentiate oss setup-claude from setup, add --force to install-cli
v1.21
Features
- Add logo SVG as favicon across all sites
Documentation
- Regenerate API/CLI/MCP reference docs (58 → 74 endpoints)
v1.20
Features
- Filter org dropdown by Auth0 membership in multi-tenant mode
Bug Fixes
- OSS CI, broken logo, quick start rewrite; license MIT → BSL 1.1
- Replace internal registry URL with public ghcr.io reference in FAQ
- Update stale plugin paths missed during plugin directory flattening
- Explicitly remove sensitive specs and stale plugin dirs from OSS target
- Flatten plugin structure and consolidate OSS sync
- Prepare canonhq/canon for public visibility
- Change webhook endpoints to fail-closed when secrets are unconfigured
- Handle unknown sslmode values safely, document allow→require upgrade
- Set OTel service.name to "canon" instead of "unknown_service"
Documentation
- Add FAQ, troubleshooting, example specs page, and improve CONTRIBUTING
v1.19
Features
- Implement managed cloud pricing with Stripe billing and BYOK support
Bug Fixes
- Update plugin config to GitHub repo, fix setup crash on dangling symlink
- Clean stale files from FOSS repo, add CI and .gitignore
- Align billing routes with org-scoped URL pattern and fix response field mismatches
Documentation
- Add schema migration for nullable stripe_customer_id and update spec
v1.18
Features
- Prepare for canonhq org migration and open-source split
Bug Fixes
- Repair FOSS export pipeline for canonhq/canon
- Add --extra cloud to local dev install and use bash in Makefile
- Format _local.py after config class rename
- Rename SpecwrightApiAdapter to CanonApiAdapter in test file
- Remove duplicate wheel force-include causing PyPI upload rejection
- Add verbose logging to PyPI publish for debugging
- Update Dockerfile COPY path for restructured plugin directory
- Create all target directories in export script
- Create target directories before rsync in export script
- Add cloud extra to CI workflows and format test files
- Update plugin_data/skills symlink to new plugin directory
Documentation
- Remove outdated specwright/openspec references from docs site
v1.17
Features
- Add GitHub App post-install redirect flow
Bug Fixes
- Add Home link in docs nav bar pointing to marketing site
v1.16
Features
- Rebrand Claude Code plugin and skills to canon:*
- Rebrand GitHub Action from Specwright to Canon
- Rebrand HTML templates from Specwright to Canon
- Rebrand Vue SPA marketing components and app UI to Canon
- Update all user-facing strings and test assertions to Canon
- CTA section dark background inversion (ui)
- Redesign hero section — left-aligned, solid saffron CTA (ui)
- Replace @theme tokens with Warm Machine palette (ui)
- Replace all marketing gradients with solid saffron (ui)
- Sweep remaining hardcoded color values (ui)
- Update brand.css tokens to Warm Machine palette (ui)
- Update font loading to Fraunces/DM Sans/IBM Plex Mono (ui)
- Update LoginView scoped styles to warm palette (ui)
- Update Monaco editor font to IBM Plex Mono (ui)
- Update navigation and footer to solid saffron wordmarks (ui)
Bug Fixes
- Correct broken specwright references in Makefile, Dockerfile.dev, setup.py, routes
- Correct GitHub App install URLs to use canon-hq slug
- Lint issues
- Sync window.CANON global and plugin MCP config
Documentation
- Add Canon rebrand Phase 2 implementation plan
- Canon "Warm Machine" visual identity design
- Mark GitHub App creation as done (App ID: 3012101)
- Mark PyPI reservation as done in Canon rebrand spec
- Rebrand all documentation to Canon
- Update docs/specs/new-spec.md
- Update docs/specs/new-spec.md
- Warm Machine visual identity implementation plan
v1.15
Features
- Add Canon brand assets — icon, favicon, OG image
Documentation
- Add gv-infra infrastructure rebrand section to Canon spec
- Add setup UX improvements spec
- Update domain to canonhq.co, mark as acquired
v1.14
Features
- Improve ticket sync product experience
Documentation
- Add Canon rebrand design document
- Add Canon rebrand spec with acceptance criteria
- Add repo transfer section, mark canonhq org as done
v1.13
Features
- Auto-advance section status to done on PR merge
Bug Fixes
- Harden auto-advance on PR merge, mark ticket mapping spec done
- Exclude blocked sections from auto-advance, guard duplicate ACs
Documentation
- Mark ticket mapping model spec as done
- Mark ticket sync §3 (real-time reverse sync) as done
v1.12
Features
- Surface preview deployment URL in Specwright bot comment
Bug Fixes
- Unify preview workflow trigger and fix comment formatting
Documentation
- Preview deployment design and spec status updates
v1.11
Features
- Real-time reverse sync via webhooks for all ticket systems
Bug Fixes
- Base64-encode embedded analysis JSON to prevent HTML comment leak
v1.10
Features
- Structured spec detail view with collapsible section cards
Documentation
- Check off verified ACs across 6 specs (11% → 58% coverage)
v1.9
Features
- Add issue type labels and title prefix for hierarchy visibility
Bug Fixes
- GitHub reverse sync bug, auto-parent warning, review nits
v1.8
Features
- Auto-generate CLI, MCP, and API reference docs at build time
- Configurable spec paths, sitemap/SEO, and versioned docs (§2, §11, §10)
Bug Fixes
- Skip gen-refs prebuild when uv is not available
Documentation
- Add cross-links to concept pages and verify content migration
- Update spec statuses based on codebase audit
v1.7
Features
- Audit checks off realized ACs and inserts evidence comments
Bug Fixes
- Apply AC updates even when section status is unchanged
Documentation
- Fix ticket links and set ticket_project on all specs
- Update spec statuses based on codebase audit
v1.6
Features
- Add production hardening for web app
v1.5
Features
- Add /sw-audit skill for full spec audit workflow
- Add
specwright auditCLI command for Claude-powered spec status auditing
Documentation
- Add ticket links from specwright sync
- Mark Background sections as done, fix parent section statuses
- Update spec statuses based on codebase implementation audit
v1.4
Features
- Server-proxied ticket sync via GitHub App tokens
Bug Fixes
- Decouple auth0_orgs_enabled from auth0_audience (auth)
- Remove unused SyncResult import in test_engine (lint)
- Only create tickets for todo/in_progress sections (sync)
- Resolve org for device auth JWTs without org_id claim (auth)
- Include AUTH0_AUDIENCE in K8s secret (deploy)
- Fail fast on missing AUTH0_AUDIENCE and use correct status codes (auth)
Documentation
- Fix configuration reference to match actual parser
- Update docs for server-proxied sync, device auth, and AUTH0_AUDIENCE
v1.2
Features
- Add Specwright web app links to PR comments
Bug Fixes
- Default platform_url to empty, use module-level Settings, drop redundant path
v1.1
Features
- docs-site: Logo links to main site + gradient wordmark
Documentation
- Update install commands to use gv-specwright package name
v1.0
Bug Fixes
- Add AUTH0_DEVICE_CLIENT_ID to deploy K8s secret
- Rename PyPI package to gv-specwright (specwright was taken)
- Use version tag for pypi-publish action (Docker-based, SHA pinning unsupported)