What's Changed
- feat: add task keyboard navigation by @mancinux in #4498
- feat: keyboard shortcuts for inline task management by @mancinux in #4499
- feat: add kanban task shortcuts by @mancinux in #4500
- feat: Display closed milestones in TasksBoard by @Rockyy174 in #4497
- fix: Hide AI sidebar if AI feature is not enabled by @Rockyy174 in #4502
- docs: Add spec for MCP feature by @Rockyy174 in #4503
- feat: add keyboard shortcuts cheatsheet by @mancinux in #4504
- fix: align timeline activity rows by @mancinux in #4505
- feat: add apple touch icon by @mancinux in #4506
- feat: Project timeline in work maps by @mancinux in #4508
- fix: refine Work Map timeline edge cases by @mancinux in #4509
- feat: show project task completion by @mancinux in #4510
- feat: show overdue project check-ins by @mancinux in #4511
- docs: Add spec for billing feature by @Rockyy174 in #4512
- fix: link milestone comment feed action by @mancinux in #4513
- chore: Add billing flows to storybooks by @Rockyy174 in #4514
- chore: Add billing foundation and schemas by @Rockyy174 in #4515
- chore: Adjust billing flows by @Rockyy174 in #4516
- chore: Add admin billing API endpoints without Polar integration by @Rockyy174 in #4517
- fix: render refreshed task descriptions by @mancinux in #4519
- feat: Add billing catalog page to admin panel by @Rockyy174 in #4520
- fix: improve project task completion dark mode by @mancinux in #4521
- fix: improve field menu contrast in dark mode by @mancinux in #4524
- feat: add kanban create task shortcut by @mancinux in #4526
- chore: Add billing-intent route redirects from website by @Rockyy174 in #4528
- chore: Update billing spec and add missing flows to storybooks by @Rockyy174 in #4529
- chore: Remember billing plan intent during company creation by @Rockyy174 in #4530
- chore: Use shared billing enums across API and billing models by @Rockyy174 in #4531
- feat: open task list items in slide-in by @mancinux in #4525
- feat: pressing return opens selected task by @mancinux in #4532
- chore: Add Polar billing sync foundation by @Rockyy174 in #4533
- chore: Integrade admin panel with Polar by @Rockyy174 in #4534
- feat: preview rich text images in modal by @mancinux in #4535
- chore: Implement Polar customer-portal session creation by @Rockyy174 in #4536
- feat: add locale-aware time formatting preference by @mancinux in #4537
- chore: Add checkout session creation by @Rockyy174 in #4538
- chore: Add polar subscription operations by @Rockyy174 in #4539
- chore: Add billing subscription mutation endpoints by @Rockyy174 in #4540
- feat: Add company billing page with subscription state overview by @Rockyy174 in #4541
- feat: Add company billing page and checkout flow by @Rockyy174 in #4542
- fix: place completed kanban tasks first by @mancinux in #4543
- feat: support multiple task assignees by @mancinux in #4544
- fix: generate activity when user deletes a comment on a task by @mancinux in #4545
- feat: subscriptions for space-level tasks by @mancinux in #4548
- fix: correct ordinal date formatting for English locales by @mancinux in #4549
- fix: link digest check-in updates to the right pages by @mancinux in #4550
- fix: support multiple task assignees in CLI by @mancinux in #4553
- fix: hide deleted resource feed items by @mancinux in #4562
- feat: show document modified date by @mancinux in #4559
- feat: deprecate company feed page by @mancinux in #4557
- feat: add subscriber search filter by @mancinux in #4554
- fix: link resource comment feed items to comments by @mancinux in #4556
- feat: User can manage active subscriptions by @Rockyy174 in #4564
- feat: User can cancel and reactivate subscription by @Rockyy174 in #4565
- chore: Add Polar webhook signature verification by @Rockyy174 in #4566
- chore: Webhook event persistence and enqueue by @Rockyy174 in #4567
- chore: Add async Polar webhook worker and billing state sync by @Rockyy174 in #4568
- feat: Add billing_updated broadcasts and webhook-driven page refresh by @Rockyy174 in #4569
- fix: Correctly verify Polar billing webhooks by @Rockyy174 in #4571
- fix: notify goal description mentions by @mancinux in #4555
- fix: notify task description mentions from snapshot by @mancinux in #4572
- fix: Rename billing workspace copy to company by @Rockyy174 in #4573
- feat: Redesign billing action layout by @Rockyy174 in #4574
- chore: Add feature tests for billing flow by @Rockyy174 in #4575
- fix: Fall back to built assets in feature tests when Vite is unavailable by @Rockyy174 in #4576
- chore: Add billing webhook observability and health tracking by @Rockyy174 in #4577
- chore: Add billing limit enforcement foundation by @Rockyy174 in #4578
- feat: Enforce billing member limits in add and restore flows by @Rockyy174 in #4579
- chore: Redirect self-hosted http traffic to https by @Rockyy174 in #4580
- fix: Only self-hosted installations are redirected to https by @Rockyy174 in #4581
- fix: Only self-hosted installations are redirected to https by @Rockyy174 in #4582
- feat: Add full-state invite page for member limit blocks by @Rockyy174 in #4583
- feat: Add member-limit blocked join flow and upgrade guidance by @Rockyy174 in #4584
- chore: Move billing limit guidance notice to turboui by @Rockyy174 in #4587
- feat: Enforce storage limits and show usage in billing UI by @Rockyy174 in #4588
- feat: Add proactive billing limit banners for owners and admins by @Rockyy174 in #4589
- feat: Show urgent company banner when billing limits are exceeded by @Rockyy174 in #4590
- feat: allow admins to delete feed items by @mancinux in #4561
- feat: show last check-in on forms by @mancinux in #4563
- feat: include next milestones in completion email by @mancinux in #4558
- Revert "feat: include next milestones in completion email" by @mancinux in #4591
- feat: aggregate document edit feed items by @mancinux in #4560
- fix: open milestone tasks in slide-in by @mancinux in #4592
- Empty commit for testing deployment by @shiroyasha in #4593
- Update agents.md by @shiroyasha in #4595
- fix: preserve task notes mentions on creation by @mancinux in #4594
- fix: Attempt to fix docs sync by matching known_hosts to repo host by @Rockyy174 in #4598
- Update README.md by @shiroyasha in #4600
- docs: Add new requirements to billing spec by @Rockyy174 in #4602
- fix: send immediate emails for encoded task mentions by @mancinux in #4599
- feat: Add downgrade previews and adjust billing-cycle changes by @Rockyy174 in #4603
- fix: render task description email text body by @mancinux in #4604
- chore: Persist and expose company billing access states by @Rockyy174 in #4605
- feat: Add company-wide past-due billing danger banners by @Rockyy174 in #4606
- chore: Disable Semaphore driven deployment by @shiroyasha in #4607
- chore: Merge all JUnit files by @shiroyasha in #4608
- fix: update notification settings batching copy by @mancinux in #4609
- Remove deployment script by @shiroyasha in #4610
- chore: Enforce company read-only mode across permissions by @Rockyy174 in #4611
- chore: Rename deployment -> sync docs by @shiroyasha in #4612
- Update README.md by @shiroyasha in #4613
- Update README.md by @shiroyasha in #4614
- Update README.md by @shiroyasha in #4615
- chore: Simplify billing frontend model by @Rockyy174 in #4617
- Update README.md by @shiroyasha in #4618
- fix: Enforce company read-only rules in company permissions by @Rockyy174 in #4619
- feat: task reminders by @mancinux in #4616
- fix: tolerate agent-shaped CLI flags by @mancinux in #4621
- chore: Cover company admin manage-people readonly behavior by @Rockyy174 in #4620
- fix: Hide non-view space access in company read-only mode by @Rockyy174 in #4622
- chore: Add can_manage_billing permission foundation by @Rockyy174 in #4623
- chore: Gate billing pages and CTAs with can_manage_billing by @Rockyy174 in #4624
- feat: Improve billing danger banners by @Rockyy174 in #4625
- chore: Remove proactive approaching-limit billing banners by @Rockyy174 in #4626
- feat: Send member-limit upgrade emails to admins and owners by @Rockyy174 in #4627
- chore: Remove billing page header action and manual refresh by @Rockyy174 in #4628
- feat: Send one-time 90% limit reached warning emails by @Rockyy174 in #4630
- chore: Feature tests cover billing company-pick, cancel, and reactivate flows by @Rockyy174 in #4632
- chore: create UI copy writing skill by @mancinux in #4634
- chore: vendor clean-code skill by @mancinux in #4635
- fix: clarify daily assignments email reminders by @mancinux in #4636
- chore: Improve CI speed by @Rockyy174 in #4633
- chore: Optimize Demo creation by @Rockyy174 in #4638
- chore: Optimize CI lint by @Rockyy174 in #4639
- chore: Use consistent limit language and permission-accurate guidance by @Rockyy174 in #4640
- feat: Billing management UI copy refresh by @Rockyy174 in #4641
- feat: Update billing alert emails and previews by @Rockyy174 in #4642
- feat: Make billing plans db-backed and editable from admin by @Rockyy174 in #4643
- feat: draft check-ins by @mancinux in #4647
- fix: Avoid full page reload on billing catalog sync and updates by @Rockyy174 in #4648
- chore: Make plan definitions also db-backed by @Rockyy174 in #4649
- feat: Billing plan contracts and admin catalog are fully dynamic by @Rockyy174 in #4651
- feat: Drive customer billing flows from dynamic plan definitions by @Rockyy174 in #4652
- chore: Enrich managed Polar product metadata by @Rockyy174 in #4653
- chore: Bootstrap missing provider-managed plans during Polar sync by @Rockyy174 in #4654
- chore: Move resource hub components to turboui by @Rockyy174 in #4650
- chore: Generate shared API types for turboui by @Rockyy174 in #4656
- chore: Simplify resource hub props around shared api types by @Rockyy174 in #4657
- chore: Remove unused resource hub access context by @Rockyy174 in #4660
- chore: Move resource hub pages to turboui by @Rockyy174 in #4659
- chore: Add skills for writing docs by @Rockyy174 in #4644
- chore: Make resource hubs polymorphic by @Rockyy174 in #4661
- chore: Make resource hub activities parent-aware by @Rockyy174 in #4662
- chore: Add include_project to resource hub endpoints by @Rockyy174 in #4663
- chore: Resource hub pages work with project parents by @Rockyy174 in #4664
- feat: Add Docs & Files tab to the project page by @Rockyy174 in #4665
- feat: Add docs and files overview to Project page by @Rockyy174 in #4666
- chore: Extract shared Docs & Files tab and reuse it on Project page by @Rockyy174 in #4667
- chore: Add Forms to turboui by @Rockyy174 in #4668
- chore: Resource Hub relies on turboui for Forms and Modal by @Rockyy174 in #4669
- feat: New projects include a resource hub by @Rockyy174 in #4670
- chore: Backfill project resource hubs by @Rockyy174 in #4671
- feat: Add billing-notice banner behind feature flag by @Rockyy174 in #4672
- fix: Billing notice banner looks good in turboui pages by @Rockyy174 in #4673
- fix: Billing notice banner looks good in turboui pages by @Rockyy174 in #4674
- chore: Migrate project key resources to project resource hub by @Rockyy174 in #4675
- chore: Add site messages backend and API by @Rockyy174 in #4676
- fix: Link page doesn't break when description is empty by @Rockyy174 in #4677
- feat: Add site messages banner and admin management UI by @Rockyy174 in #4678
- chore: Add project docs and files e2e coverage by @Rockyy174 in #4679
- chore: Remove resource_hubs/create mutation by @Rockyy174 in #4680
- chore: Resource hub endpoints accept parent Project and Space IDs by @Rockyy174 in #4681
- fix: Update form components directory to avoid build failures by @Rockyy174 in #4684
- chore: Add endpoint wrappers for CLI by @Rockyy174 in #4683
- chore: Show billing plans in 3 columns by @Rockyy174 in #4685
- chore: Add goal-backed resource hub to backend by @Rockyy174 in #4686
- feat: Resource hub activities are goal-aware by @Rockyy174 in #4687
- feat: Add Docs & Files tab to goal pages by @Rockyy174 in #4688
- feat: Create default resource hubs for new goals by @Rockyy174 in #4689
- chore: Add Sourcery config to ignore generated files by @Rockyy174 in #4690
- chore: Backfill goal resource hubs by @Rockyy174 in #4691
- fix: Remove stale seeds.exs references from db setup by @Rockyy174 in #4692
- fix: Make draft check-in actions consistent on goal and project pages by @Rockyy174 in #4693
- fix: Add missing link to GoalCheckInNewPage navigation by @Rockyy174 in #4695
- fix: Add missing navigation to ProjectChechInEditPage by @Rockyy174 in #4694
- fix: Stabilize flaky tests on Project page by @Rockyy174 in #4697
- fix: Stabilize acknowledge project check-in flaky test by @Rockyy174 in #4698
- fix: Navigation in resource hub children show all links by @Rockyy174 in #4696
- fix: Links can be used in turboui Forms.RichTextArea by @Rockyy174 in #4699
- fix: Disable rich editor mentions and attachments outside company context by @Rockyy174 in #4701
- chore: Record flaky test retries in CI reports by @Rockyy174 in #4700
- feat: Include goal_id scope to Docs & Files CLI and API wrappers by @Rockyy174 in #4702
- chore: Add e2e coverage for CLI documents by @Rockyy174 in #4703
- chore: Demo includes documents and links for projects and goals by @Rockyy174 in #4704
- fix: Show site message title and description as one inline paragraph by @Rockyy174 in #4705
- docs: Add components-architecture agent skill by @Rockyy174 in #4706
- fix: Correct workflow artifact upload in publish_retries_report.sh by @Rockyy174 in #4707
- chore: Update CLI version to 1.7.0 by @Rockyy174 in #4708
- fix: Turboui FormattedTime component uses user's preferences by @Rockyy174 in #4709
- docs: add Cursor Cloud setup instructions to AGENTS.md by @Rockyy174 in #4710
- chore: CI reports are lists instead of tables by @Rockyy174 in #4719
- chore: move Spacer to turboui by @Rockyy174 in #4714
- chore: move Circle into TurboUI by @Rockyy174 in #4718
- chore: move BulletDot into turboui by @Rockyy174 in #4717
- chore: Add MCP persistence schemas and token helpers by @Rockyy174 in #4720
- feat: move bordered row to turboui by @Rockyy174 in #4716
- chore: Add MCP OAuth domain context by @Rockyy174 in #4721
- chore: migrate app callouts to TurboUI by @Rockyy174 in #4712
- chore: migrate draft clipboard copy to turboui by @Rockyy174 in #4713
- chore: move TextSeparator to TurboUI by @Rockyy174 in #4715
- fix: migrate remaining Tooltip imports to TurboUI by @Rockyy174 in #4711
- chore: Add MCP OAuth and HTTP endpoints by @Rockyy174 in #4722
- chore: Move Forms input primitives and FieldGroup layouts to TurboUI by @Rockyy174 in #4725
- chore: Add wrapper-driven MCP tool catalog by @Rockyy174 in #4728
- chore: Add MCP tool runtime and first live tool by @Rockyy174 in #4729
- chore: Improve MCP tools discovery by @Rockyy174 in #4730
- chore: Normalize MCP tool results by @Rockyy174 in #4731
- chore: Add markdown rendering for tasks, spaces, and milestones by @Rockyy174 in #4732
- chore: Add MCP fetch tool for canonical Operately URLs by @Rockyy174 in #4733
- chore: Expand MCP read tools for docs, spaces, discussions, and check-ins by @Rockyy174 in #4734
- chore: Consolidate markdown-to-rich-text parsing into RichContent.FromMarkdown by @Rockyy174 in #4735
- chore: Add safe MCP write tools by @Rockyy174 in #4736
- chore: Add MCP CIMD discovery and document parsing by @Rockyy174 in #4738
- chore: Add MCP write tools for spaces and goals by @Rockyy174 in #4739
- chore: Add MCP CIMD safe fetching and caching by @Rockyy174 in #4740
- feat: Add MCP tools for tasks by @Rockyy174 in #4741
- fix: initialize formatted time translations by @Rockyy174 in #4743
- chore: Wire CIMD client resolution into MCP OAuth by @Rockyy174 in #4744
- fix: Allow remote MCP client origins on public Operately hosts by @Rockyy174 in #4746
- feat: add turboui forms phase 0 parity by @Rockyy174 in #4727
- fix: register app i18n for prod relative time by @Rockyy174 in #4745
- fix: Add MCP OAuth discovery route and CORS preflight by @Rockyy174 in #4747
- feat: move contributor avatar into turboui avatar by @Rockyy174 in #4726
- chore: move image placeholder to turboui by @Rockyy174 in #4724
- fix: Stop CIMD fetch from crashing on unsupported Req max_body_size option by @Rockyy174 in #4748
- chore: move small status indicator to turboui by @Rockyy174 in #4723
- fix: Serve OpenID configuration discovery for ChatGPT MCP connectors by @Rockyy174 in #4749
- fix: Render @mentions in read-only rich text content by @Rockyy174 in #4750
- fix: Expose top-level securitySchemes and validator-safe MCP tool schemas by @Rockyy174 in #4751
- fix: Avatars in rich text now load after person is renamed by @Rockyy174 in #4752
- fix: Load MCP tools from compiled modules by @Rockyy174 in #4753
- fix: use first token for mentions by @Rockyy174 in #4742
- feat: Add MCP tools for Projects and Milestones by @Rockyy174 in #4754
- feat: Add MCP docs & files tools by @Rockyy174 in #4755
- docs: Add skils on how to write MCP tools by @Rockyy174 in #4756
- feat: Improve consent screen by @Rockyy174 in #4757
- fix: Feed loads when project check-in is deleted by @Rockyy174 in #4758
- fix: Message banner looks good in both themes by @Rockyy174 in #4760
- fix: Display published date instead of inserted for draft resources by @Rockyy174 in #4763
- feat: Add destructive MCP tools for workspace deletes by @Rockyy174 in #4764
- chore: Default MCP OAuth scope to read-only when omitted by @Rockyy174 in #4765
- chore: Add MCP observability logs and metrics by @Rockyy174 in #4769
- chore: Require HTTPS CIMD redirect URIs in production by @Rockyy174 in #4770
- chore: Add first e2e tests for MCP by @Rockyy174 in #4771
- fix: use milestone ordering state for next step when due dates tie by @Rockyy174 in #4768
- chore: Migrate auth/password forms to TurboUI Forms by @Rockyy174 in #4766
- feat: Add MCP dynamic client registration by @Rockyy174 in #4773
- chore: Migrate simple CRUD forms to TurboUI Forms by @Rockyy174 in #4772
- feat: add discard draft action for discussion drafts by @Rockyy174 in #4767
- chore: Add per-instance MCP rate limits by @Rockyy174 in #4776
- feat: Add MCP connections page with grant revocation by @Rockyy174 in #4777
- chore: Add priv/static build artifacts to artifacts by @Rockyy174 in #4778
- fix: Stabilize Goal closing and Status flaky tests by @Rockyy174 in #4780
- fix: show invite-only privacy indicator on project page sidebar by @Rockyy174 in #4775
- feat: Improve Account Security page design to match Settings page by @Rockyy174 in #4779
- chore: Migrate AccessSelectors and access-level forms to TurboUI by @Rockyy174 in #4774
Full Changelog: 1.6.0...1.7.0