ProductOS

ProductOS · Changelog

What we shipped

v0.11.0

Item layout, sprint planning, attachments and access

Item layout, sprint planning, attachments and access. 130 PRs from 2026-09-23 to 2026-09-30.

Item layout, sprint planning, attachments and access

130 pull requests merged 2026-09-23 to 2026-09-30.

Highlights

  • A new layout for every item: an entity bar, a document column with tabs, and a properties rail with the Golden Thread, in page, modal and dock
  • Sprint planning: the Plan view with one-click moves, inline edits and hours per person, and a sprint board that opens on the sprints around now
  • Attachments: screenshots inline in descriptions and specifications, an Attachments tab on Work and Feedback, a viewer, and MCP tools
  • Access by function: per-area access for members and invitations, enforced in the app, the API, the connector and the database, with a sidebar, landing page and dashboard per function
  • Signals bar on every list page, with Focus and a compact state
  • Live refresh: open pages update on changes from MCP, the API, other tabs and teammates
  • A key for every control: hold Ctrl to see them
  • Activity page, the audit log out of beta, and every write recorded on the server
  • Notifications: every toggle delivers, Microsoft Teams, and 11 new kinds
  • GitHub: pull requests link back to their Work, commits link to Work, and the crawl reads every repository's full history
  • What's new dialog and product update email
  • The new productos.ca: home, pricing, agents, compare, method, switch and security pages, and Markdown for agents
  • Bookmarkable views on every list page, links to item tabs, and one date format
  • Feature flags with a staff dashboard

Every change

  • feat(legal): publish the privacy policy and terms behind the signup links (#221)
  • chore(claude): sync work in this repo to the ProductOS workspace over MCP (#227)
  • fix(github-app): confirm the installer can see an installation before connecting it (#228)
  • feat(mcp): record past sessions with their real start and end times (#229)
  • feat(api): make objectives.initiative_ids writable through the v1 API and the MCP catalog (#230)
  • fix(entity-detail): load every detail in one step, with no flicker in page, dock or modal (#231)
  • feat(mcp): search finds words in any order, sequence ids and typos (#232)
  • fix(copilot): apply bulk, link and status proposals from the chat (#233)
  • fix(entity-detail): give page, dock and modal footers the sidebar footer's height (#234)
  • feat(sidebar): open a flyout of every page when hovering a group on the collapsed rail (#235)
  • feat(entity-detail): expand long-form fields to fill the modal, dock or page (#236)
  • fix(knowledge): store workspace identity per workspace, not per user (#237)
  • fix(mcp): search #229 as the pull request it names, not as row 229 (#238)
  • fix(entity-detail): leaving page mode for dock or modal no longer crashes the app (#239)
  • fix(oauth): line up the consent screen's permission descriptions with the other rows (#240)
  • fix(mcp): start_session hands back the feature's open session instead of duplicating it (#241)
  • fix(command-palette): feedback rows name their linked accounts, so an account name finds its feedback (#242)
  • feat(mcp): search_documents pages, filters GitHub and says when GitHub cannot answer (#243)
  • feat(features): link a feature to a GitHub commit, not only a pull request (#244)
  • feat(mcp): links carry a junction's extra fields (kind, confidence, role, allocation_pct) (#245)
  • feat(entity-detail): show linked Work as the release scope table on every detail page (#246)
  • fix(mcp): external links read back, detach, update and attach once (#247)
  • feat(github): link pull requests back to the ProductOS Work they implement (#248)
  • feat(mcp): tell people when their Claude connector needs a reconnect, in the app and by email (#249)
  • fix(github): crawl every repo, pull request, issue and commit an installation can see (#250)
  • feat(product-updates): What's new dialog and announcement email (#252)
  • fix(entity-detail): linked-entity pickers read Create new <entity> once (#253)
  • fix(github): answer webhooks inside GitHub's 10 seconds and re-crawl every connection daily (#254)
  • feat(audit): record every committed entity write server-side (#255)
  • feat(audit): record every admin, workspace, webhook and public write, and read the trail by entity (#256)
  • fix(work): board cards and Work notifications print the workspace's sequence id (#257)
  • fix(team): accepting an invite links the existing roster entry by name when it has no email (#258)
  • fix(work): board cards open on click and drag above the board (#259)
  • fix(mutations): error toasts name the status instead of printing an HTML error page (#260)
  • fix(work): space Work board cards 8px apart (#261)
  • feat(mcp): export_workspace returns the Settings Excel export as a signed link (#262)
  • test(e2e): view-mode switch counts only its own crash, not hydration mismatches (#263)
  • fix(ui): list pagination bar sits flush at the window bottom, level with the sidebar footer (#264)
  • Add ProductOS Claude Code workflow (#265)
  • fix(audit): activity log reads as plain sentences (#266)
  • fix(claude-code): close dispatched sessions when their run ends, and check setup before dispatch (#267)
  • feat(team): link a team member while sending an invite (#268)
  • feat(claude-code): pick the model for a Send to Claude Code cloud run (#269)
  • feat(notifications): every toggle delivers, Teams replaces Slack, and 11 new notification types (#270)
  • feat(claude-code): cloud runs follow the repo's CLAUDE.md or AGENTS.md for PR titles and descriptions (#271)
  • fix(ui): responsiveness audit: Code page, dashboard and list toolbars fit phones and tablets (#272)
  • ci(migrations): fail a PR whose migration reuses a version prefix main has (#273)
  • fix(pwa): installed app shows the ProductOS mark instead of the Vercel logo (#274)
  • fix(notifications): trim the app URL so email links stay clickable (#275)
  • feat(activity): full-page activity log with filters, opened from the dashboard (#276)
  • feat(audit): take the audit log out of beta: admin-only reads, kept actor names, two-sided links (#277)
  • fix(notifications): show status changes as pills and dates as readable dates (#278)
  • fix(layout): pipeline strips as short as the Golden Thread's on list pages and the dashboard, less space above the filters row (#279)
  • fix(work): sprint board headers keep the sprint name, pills pick the columns, earlier sprints come back (#280)
  • fix(audit): run the activity_log read policy's helpers once per statement (#281)
  • feat(features): show type column in feature tables as 2nd column (#282)
  • feat(layout): collapse the sidebar with Ctrl+B, its edge or a button under Settings (#283)
  • feat(features): bookmark My Work, sprint pills, status and board view in the URL (#284)
  • test(team): seed a single-word name so the Team list assertion is deterministic (#287)
  • fix(security): stop users rewriting their own role and workspace (#288)
  • feat(flags): feature flags with a staff dashboard, per-environment defaults, overrides, rollouts and beta opt-in (#289)
  • feat(views): bookmark every list page's view in the URL through one hook (#290)
  • feat(entities): v2 entity layout for every entity type behind the entity-layout-v2 flag (#291)
  • fix(features): keep the search, filter and add bar on the Work board (#292)
  • fix(security): stop anon calling match_session_outcomes and auth_user_exists_by_email (#294)
  • perf(layout): sidebar collapse and expand no longer stall the page (#295)
  • fix(entities): v2 entity pages no longer scroll sideways below desktop widths (#296)
  • feat(marketing): redesigned marketing site behind the marketing-v2 flag (#297)
  • feat(marketing): compare pages for five alternatives teams switch from (#298)
  • feat(attachments): screenshots inline in Work description and specifications, file attachments, and MCP tools (#299)
  • feat(marketing): method, switch and security pages, and markdown for agents (#300)
  • feat(entities): v2 entity pages use wide screens and load without jumping (#301)
  • fix(ai): a saved Anthropic key now wins over the hosted key (#302)
  • fix(security): cron routes refuse calls when CRON_SECRET is unset (#303)
  • fix(marketing): render the home page and marketing pages per request so marketing-v2 takes effect (#304)
  • docs(legal): match the Fees section to published pricing, and finalise both documents (#306)
  • feat(metrics): daily usage email with active users, most active people, MCP use and new signups (#307)
  • feat(attachments): paste files onto the Attachments tab with Ctrl+V (#308)
  • feat(feedback): Attachments tab on Feedback for screenshots, recordings and files (#309)
  • fix(product-updates): say every list page keeps its view in the link (#310)
  • feat(admin): usage dashboard with active people, MCP use and signups over any period (#311)
  • feat(attachments): tile view with large thumbnails, and a viewer that steps through files with the arrow keys (#312)
  • fix(admin): admin pages scroll again, and the daily usage email links to the dashboard (#313)
  • feat(views): keep the active saved view in the URL so a refresh or bookmark applies it (#314)
  • feat(data-table): collapse all and expand all for grouped tables (#315)
  • fix(live-refresh): open pages refresh on changes from MCP, the API, other tabs and teammates (#316)
  • feat(attachments): double-click a screenshot in the description or specifications to open it in the viewer (#317)
  • feat(entities): entity tabs have links and stay open across reloads (#318)
  • fix(github): symbols index again; the crawl strips NUL and lone surrogates before writing (#319)
  • fix(entities): Links and Attachments tabs show their counts before they are opened (#321)
  • feat(ai): one name and one icon per AI surface, ProductSense drafts and Copilot chats (#322)
  • feat(features): Releases column on the Work table, with filter, sort and group by (#323)
  • feat(shortcuts): a key for every control, hold Ctrl to see them, one tooltip style (#324)
  • feat(seo): canonical URLs, noindex on auth pages, ProductOS changelog in the sitemap (#325)
  • feat(outcomes): link Work items to outcomes directly, with + Add under Outcomes (#326)
  • refactor(access): areas on every entity type and page, one navigation registry, tokens capped at their holder's role (#327)
  • fix(changelog): render release notes as markdown on the public changelog (#328)
  • fix(cron): embed-outcomes accepts a to-one session_outcomes embed (#329)
  • fix(ui): detail rail, Golden Thread + Add, list toolbar and sprint board polish (#330)
  • chore(brand): retire the old logo from the branding kit, auth emails and public/ (#331)
  • feat(access): functions with per-area access, assigned to members and invitations and enforced on the REST API (#332)
  • fix(ui): skeletons on the roadmap, the Work board and the other loading states that were text or a spinner (#334)
  • feat(access): the connector, Copilot, attachments, sessions and the activity log respect a function's areas (#335)
  • feat(work): sprint board opens on the previous sprint, the current one and the next two (#336)
  • feat(work): sprint board opens on the previous, current and next sprint plus Backlog (#337)
  • feat(access): row-level security per area, so a function's limits hold for browser sessions (#339)
  • feat(work): board cards show each item's size and hours top right (#340)
  • feat(work): Plan view for sprint planning with one-click moves, inline edits and hours per person (#343)
  • feat(access): the app follows a function's areas: navigation, 404s, read only, restricted links (#344)
  • feat(team): only admins and the owner change the team roster; members still assign people to Work (#345)
  • feat(access): Settings, Functions and access: the area matrix, starters, and a function on members and invitations (#346)
  • feat(access): each function's sidebar and landing page, and a person's own sidebar with reset (#347)
  • feat(access): a dashboard per function: a widget registry, eight new widgets, and reset to the function's default (#348)
  • feat(lists): signals bar on Work and Feedback, with Focus and a compact state (#349)
  • fix(sidebar): collapsed single-page icons no longer log a Base UI nativeButton error (#350)
  • feat(lists): signals bar on every other list page (#351)
  • feat(ui): one date format, 2026-Sep-30, and a shared DateLabel across the app (#352)
  • fix(public): leave trashed Work and releases off the public roadmap, embed and changelog (#353)
  • fix(sales): Battle cards toolbar fits a phone screen (#354)
  • fix(code): Sessions view polls on its interval instead of after every response (#355)
  • feat(dashboard): a default layout per function, customizable within what each person can view (#356)
  • feat(product-updates): bring the first update to September 30 with sprint planning, attachments and the signals bar (#357)
  • feat(access): the owner picks their own view, a function for their layout with full access kept (#360)
  • feat(access): a Support starter function for customer support teams (#361)
  • fix(lists): signals bar keeps its rows on touch screens (#362)
  • feat(access): the owner previews the app as any function, at every layer, until they exit (#363)
  • ci(e2e): run on request, one at a time, never against the production database (#364)
  • fix(product-updates): keep the broadcast name within Resend's 70-character limit (#365)
  • fix(product-updates): center a screenshot narrower than its column (#366)
  • fix(dashboard): every tile fits its content, nothing scrolls inside, and the columns end level (#368)
  • ·Accepting an invite links the existing roster entry instead of creating a new team member
  • ·Activity log reads as plain sentences instead of raw field names and on/off values
  • ·Activity log rows are written server-side after each committed mutation
  • ·Activity page: the full activity log with filters, opened from the dashboard
  • ·Add the ability to link a team member while sending an invite
  • ·Admin pages scroll again, and the daily usage email links to the dashboard
  • ·Admin usage dashboard: active users, most active people, MCP use and signups over any period
  • ·Anyone can call match_session_outcomes across workspaces and auth_user_exists_by_email without signing in
  • ·Assignment, status and target-date notifications never reach anyone
  • ·Attachments tab on Feedback: drop, paste or upload screenshots and files
  • ·Attachments: tile view with large thumbnails, and a viewer that steps through files with the arrow keys
  • ·Audit log gaps left after the server-side rebuild
  • ·Audit log records workspace, admin, webhook and public writes, and reads back by entity
  • ·Audit-log reads time out: the activity_log read policy ran its helpers on every row
  • ·Battle cards toolbar overflows a phone screen
  • ·Board cards show F- ids instead of the workspace's Work prefix
  • ·Bookmark every list page's view: status chips, Roadmap modes and filters, tabs and filters live in the URL
  • ·Bookmark the Work page's view: My Work, sprint pills, status, board view and grouping live in the URL
  • ·Check for duplicates before creating, and search that tolerates a missing word
  • ·CI blocks a migration whose version prefix main already uses
  • ·Clicking a Work board card does not open it
  • ·Cloud runs follow the repo's own PR title and description conventions
  • ·Collapse all and expand all for grouped tables
  • ·Collapse the sidebar with Ctrl+B, its edge or a button under Settings
  • ·Collapsed sidebar shows each group's pages in a hover flyout
  • ·Collapsing or expanding the sidebar freezes the app for seconds
  • ·Collapsing the sidebar logs a Base UI nativeButton error for each single-page icon
  • ·Command palette feedback rows show and search their linked accounts
  • ·Copilot chat applies bulk, link and status proposals instead of failing with Invalid input
  • ·Cron routes accept unauthenticated requests in production
  • ·Daily usage email: active users, most active people, what they use (MCP included) and new signups
  • ·Dashboard by function: a default layout per job, customizable within what each person can view
  • ·Dashboard widgets scroll inside and leave empty space
  • ·Detail rail, Golden Thread + Add, list toolbar and sprint board polish
  • ·Dispatched Claude Code sessions stay queued forever when the GitHub run fails
  • ·Dragging a Work board card scrolls its column sideways and disappears outside it
  • ·E2E runs in CI stop loading production: one run at a time, never against the prod database
  • ·embed-outcomes cron returns 500 when a session already has an outcome row
  • ·Entity detail loading: one-step skeleton to content in page, dock and modal
  • ·Entity footers in page, dock and modal mode share the sidebar Settings footer height
  • ·Entity pages scroll sideways on phones, tablets and narrow desktop windows in the v2 layout
  • ·Entity pages use wide screens and load without jumping in the v2 layout
  • ·Entity pages: a document column and a properties rail in page, modal and dock, behind the entity-layout-v2 flag
  • ·Entity tabs have links and stay open across reloads
  • ·Expand long-form fields to fill the modal, side panel or page
  • ·External links on a Work item can be read back, removed and attached idempotently over MCP
  • ·Feature flags: staff dashboard, per-environment defaults, workspace and user overrides, percentage rollouts and beta opt-in
  • ·Functions: per-area access, sidebar and dashboard for devs, PMs, execs and sales and marketing
  • ·GitHub App connections re-sync on a daily schedule
  • ·GitHub App install confirms the installer can see the installation
  • ·GitHub crawl indexes every repo and pull request an installation can see
  • ·GitHub crawl stores no symbols: a NUL character fails the whole insert
  • ·GitHub pull requests link back to the ProductOS Work they implement
  • ·GitHub sync reports real failures instead of swallowing them
  • ·Installed PWA on Windows shows the Vercel logo instead of the ProductOS mark
  • ·Keep the search, filter and add bar on the Work board
  • ·Keyboard shortcuts across the platform, with one hint style
  • ·Link Work items to outcomes directly, with + Add under Outcomes on the Work Golden Thread
  • ·Linked Work shows as the release scope table on every detail page
  • ·Linked-entity pickers read Create new New initiative
  • ·Links and Attachments tab counts stay hidden until the tab is opened
  • ·List pagination bar sits flush at the window bottom, level with the sidebar Settings footer
  • ·Loading skeletons on the roadmap, the Work board and the other surfaces that showed text, a spinner or an empty state while loading
  • ·Mark the current sprint clearly on the Work page
  • ·Marketing site redesign: positioning, homepage and public pages
  • ·Marketing site: compare pages
  • ·Marketing site: method, switch and security pages, markdown for agents
  • ·match_session_outcomes stops trusting a caller-supplied workspace
  • ·MCP export_workspace tool returns the Settings Excel export
  • ·MCP search reads a PR number like #229 as a sequence id and puts an unrelated row first
  • ·MCP search: words in any order, typo tolerance and sequence ids
  • ·Merge a duplicate Work item into another, keeping every link
  • ·New marketing site stays hidden after turning marketing-v2 on in production
  • ·Notification email buttons render as plain text in Outlook
  • ·Notification settings deliver what they show, Microsoft Teams replaces Slack, and eleven new notification types
  • ·Notifications show status changes as pills and dates as readable dates
  • ·Objectives can be linked to initiatives through the v1 API, MCP and import
  • ·One date format and one date component across the app: 2026-Sep-30
  • ·One name and one icon for AI: ProductSense drafts, Copilot chats
  • ·Open pages refresh when a change comes from MCP, the API, another tab or a teammate
  • ·Open screenshots in the description and specifications in the file viewer
  • ·Owner's own view and preview as any function
  • ·Past coding sessions can be recorded over MCP with their real start and end times
  • ·Paste files onto the Attachments tab with Ctrl+V
  • ·Pick the model for a Send to Claude Code cloud run
  • ·Pipeline strips as short as the Golden Thread's on list pages and the dashboard, less space above the filters row
  • ·Prod GitHub App receives pull_request, push and issues webhooks
  • ·Product updates: in-app What's new modal and announcement email
  • ·Public changelog hides trashed releases
  • ·Public changelog renders release notes as markdown
  • ·Public roadmap lists trashed Work
  • ·Pull requests link to Work automatically from WRK ids and session branches
  • ·Rebinding the command palette shortcut has no effect
  • ·Releases column on the Work table, with filter, sort and group by
  • ·Responsiveness audit: Code page, dashboard activity log and every page that clips on phones and tablets
  • ·Retire the old logo: branding kit, auth emails and public files use the current mark
  • ·Save error toasts print a whole HTML error page
  • ·Saved views stay applied after a refresh and can be bookmarked
  • ·Screenshots inline in description and specifications, file attachments, and both through MCP
  • ·Search indexing: canonical URLs, noindex on sign-in pages, changelog in the sitemap
  • ·search_documents pages, filters, and names GitHub as unavailable when it is
  • ·Selectors hide offboarded, archived and retired records
  • ·Sidebar shows G-key shortcuts that do not match the real bindings
  • ·Signals bar breaks on touch screens
  • ·Signals bar on every list page
  • ·Signals bar: the top card on list pages shows what needs attention, by focus
  • ·Sprint board opens on four columns: the previous sprint, the current one, the next one and Backlog
  • ·Sprint board: headers keep the sprint name, sprint pills pick the columns, earlier sprints come back
  • ·Sprint planner: close out the current sprint and plan the next one in one view
  • ·start_session returns the feature's open session instead of duplicating it
  • ·Support starter function for customer support teams
  • ·Switching an entity from page mode to dock mode crashes with This page couldn't load
  • ·Tasks on Work items: a checklist of steps under each feature
  • ·Team e2e assertions pass on a fresh database
  • ·Team member pickers show emails, and roster badges no longer flash while loading
  • ·Tell people when the ProductOS connector needs a reconnect, in the app and by email
  • ·Users can rewrite their own profiles.role and workspace_id, escalating to owner or joining another workspace
  • ·View-mode switch e2e test fails on hydration mismatches it does not test
  • ·Work board cards show each item's size and hours top right
  • ·Work board cards touch with no space between them
  • ·Work in the ProductOS repo syncs to the ProductOS workspace over MCP
  • ·Work pills and linked Work tables show each item's type
  • ·Workspace identity on the Knowledge page is stored per user, so other members see it blank
  • ·Your own Anthropic key is ignored whenever the hosted key is set
v0.10.0

Feedback API, MCP connector v2

Feedback API, MCP connector v2. 46 PRs from 2026-09-17 to 2026-09-23; 32 tracked work items.

Feedback API, MCP connector v2

46 pull requests merged 2026-09-17 to 2026-09-23.

Highlights

  • Public Feedback API: secret keys, account linking, status read-back
  • MCP reads: list_entities paging, count_entities, assignee and Lead filters, golden thread from any row, bulk reads, workspace search, app-visible reads
  • MCP ids and links: links on every result, sequence ids accepted, junction rejection
  • MCP write safety: role checks on every write tool, deletes behind their own tool, titles and safety hints
  • MCP identity: whoami, instructions, title, description, website and icons on initialize
  • MCP coding sessions from any client, with the PM's answer reaching the run
  • MCP actions for the public changelog, portal and roadmap toggles, and for re-syncing a GitHub App connection
  • Documentation portal verified page by page and made publish-ready
  • Import/export round-trip: External Links sheet, Trash filter, Is Draft, profile links preserved
  • Admins can reset a member's 2FA
  • Account relationship and status lifecycle fields
  • Activity log is append-only in the database
  • MCP accepts JSON-encoded string arguments on every tool

Every change

  • feat(feedback-api): public Feedback API with secret keys, account linking and read-back (#178)
  • feat(mcp): links on every entity result, links and sequence ids accepted as ids (#179)
  • fix(mcp): links on linked team members and dependencies in get_feature (#180)
  • feat(import-export): External Links sheet, Trash filter and Is Draft (#181)
  • fix(mcp): sequence ids on search_features/get_feature, loud junction rejection on create/update (#182)
  • feat(mcp): list_entities pages through every row with the signals a ranking needs (#183)
  • fix(auth): forced MFA setup was unenrolling the factor it just verified (#184)
  • fix(import-export): preserve team member account links through Replace (#185)
  • feat(mcp): filter features and initiatives by assignee, and name them on every row (#186)
  • feat(auth): let admins reset a member's 2FA who lost their authenticator (#187)
  • fix(mcp): scope workspace-knowledge loaders by workspace_id, not just RLS (#188)
  • docs: log entity-context-builder.ts workspace-scoping gap as tech debt (#189)
  • fix(ai): scope entity-context-builder queries by workspace_id, not just RLS (#190)
  • fix(mcp): make search_entities return sequence_id, not sequenceId (#191)
  • fix(features): settle progress to 100 when status enters shipped (#192)
  • fix(copilot): enumerate every entity row for dedup, not 500 arbitrary ones (#193)
  • fix(ids): make entity ID prefixes match between the web app and the API/MCP (#194)
  • feat(accounts): add relationship and status lifecycle fields (#195)
  • fix(mcp): check the caller's role on every write tool, and cap tokens at their owner's current role (#196)
  • feat(mcp): titles and safety hints on every tool, and deletes behind their own tool (#197)
  • feat(mcp): whoami, and instructions sent on initialize (#198)
  • feat(mcp): run a coding session from any client, and let the PM's answer reach it (#199)
  • feat(mcp): send a title, description, website and icons on initialize (#200)
  • feat(mcp): keep feature reads to text, and give the context reads room (#201)
  • fix(activity-log): one read rule everywhere, and nothing rewrites the trail (#202)
  • fix(api): check the caller's role on every write an API token can reach (#203)
  • feat(mcp): read, filter and set a feature's Lead (#204)
  • feat(mcp): structured output on the catalog reads (#205)
  • docs: Connectors Directory readiness and listing copy (#206)
  • feat(mcp): count_entities, date ranges and the trash (#207)
  • feat(mcp): walk the Golden Thread from any row, accounts included (#208)
  • feat(mcp): names for ids, bulk reads and a workspace-wide search (#209)
  • feat(mcp): read what the app already shows (#210)
  • fix(ids): emit and accept the prefix a workspace renamed an entity to (#211)
  • fix(db): make the activity log append-only in the database (#212)
  • feat(deal-blockers): link features through a junction, not a feature_id column (#213)
  • docs: verify every portal page against the code and make /documentation publish-ready (#214)
  • docs(tech-debt): eleven findings from the MCP session-tools run (#215)
  • fix(accounts): show the segment a row actually has (#216)
  • fix(mcp): say what the coding-session tools actually do (#218)
  • feat(mcp): turn the public changelog, portal and roadmap on or off (#219)
  • feat(mcp): sync_repo_connection re-syncs a GitHub App connection from any client (#222)
  • fix(mcp): tell the client where ask_user_question's answer actually arrives (#223)
  • fix(mcp): accept JSON-encoded string arguments on every tool (#224)
  • fix(mcp): stop get_session_messages re-delivering the row next_since names (#225)
  • fix(documents): keep GitHub PR results inside the Add a document dialog (#226)
  • ·Account dialog shows the segment a row actually has
  • ·Account relationship and status lifecycle fields
  • ·Activity log is append-only in the database, not just the API
  • ·Activity log: one read rule everywhere, nothing rewrites the trail
  • ·Add a document dialog keeps GitHub PR results inside the dialog
  • ·Admins can reset a member's 2FA
  • ·API token writes check the caller's role
  • ·Coding sessions can close as nothing needed changing
  • ·Connectors Directory listing (readiness, copy, submission)
  • ·Deal blockers link features through a junction, not a feature_id column
  • ·Documentation portal verified page by page and made publish-ready
  • ·Entity ID prefixes match across app, API and MCP, including renamed prefixes
  • ·Feature progress settles to 100 when status enters shipped
  • ·Forced MFA setup no longer unenrolls the verified factor
  • ·Import/export round-trip: External Links sheet, Trash filter, Is Draft, profile links preserved
  • ·log_session_event says how much of a logged event it keeps
  • ·MCP accepts JSON-encoded string arguments on every tool
  • ·MCP action turns the public changelog, portal and roadmap on or off
  • ·MCP coding sessions from any client, with the PM's answer reaching the run
  • ·MCP coding-session tools match their documented contract
  • ·MCP identity: whoami, instructions, title, description, website and icons on initialize
  • ·MCP ids and links: links on every result, sequence ids accepted, junction rejection
  • ·MCP reads: list_entities paging, count_entities, assignee and Lead filters, golden thread from any row, bulk reads, workspace search, app-visible reads
  • ·MCP result sizing and structured output on catalog reads
  • ·MCP sync_repo_connection re-syncs a GitHub App connection from any client
  • ·MCP write safety: role checks on every write tool, deletes behind their own tool, titles and safety hints
  • ·Privacy policy and terms published, Connectors Directory blockers cleared
  • ·Public Feedback API: secret keys, account linking, status read-back
  • ·Tenancy scoping: workspace_id on knowledge and entity-context loaders
v0.9.0

Polish sprint, MFA recovery, MCP OAuth

Polish sprint, MFA recovery, MCP OAuth. 30 PRs from 2026-09-15 to 2026-09-17; 15 tracked work items.

Polish sprint, MFA recovery, MCP OAuth

30 pull requests merged 2026-09-15 to 2026-09-17.

Highlights

  • MFA recovery codes
  • MCP OAuth sign-in for claude.ai, Claude Desktop and Claude Code
  • Release detail: feature scope table, markdown notes, release_features junction
  • Golden Thread page performs at 1,300+ features
  • Command palette: fuzzy search with typo fallback, find entities by ID
  • Ctrl/Cmd-click opens entity pills and rows in a new tab
  • No em dashes in AI output or app copy
  • Anon table privileges revoked in public

Every change

  • fix(ui): remove load-time layout shifts and mismatched loading states (#148)
  • fix(ui): resolve mobile layout on the server so phones stop swapping layouts (#149)
  • feat(auth): MFA recovery codes (#150)
  • feat(team): hide offboarded members from the roster by default (#151)
  • fix(ui): stop the /features sprint chips stacking on top of each other on phones (#152)
  • feat(releases): show status, completion and assignee for linked features (#153)
  • fix(releases): resolve legacy feature links by title so the scope table fills in (#154)
  • fix(releases): render release notes as markdown instead of raw text (#155)
  • fix(ui): resolve role, entity names and platform on the server (#156)
  • fix(editor): keep Tab inside the slash menu instead of jumping to the Lead field (#157)
  • feat(ai): Generate with AI never emits em dashes (#158)
  • feat(ui): open entity pills and rows in a new tab with Ctrl/Cmd-click (#159)
  • docs(tech-debt): record ledger drift and default-privileges dependency (#160)
  • perf(golden-thread): hover via data attributes, paginate past max_rows (#161)
  • fix(ui): stop same-named members producing duplicate React keys in assignee pills (#162)
  • feat(ai): no em dashes in any AI reply or anywhere in the app (#163)
  • fix(email): readable titles, tagline and subject after the em dash sweep (#164)
  • docs(schema): remove phantom feedback_segments table from live-schema.md (#165)
  • feat(mcp): OAuth sign-in for the MCP server (claude.ai, Claude Desktop, Claude Code) (#166)
  • fix(ui): space the Description block from the body and label it on Releases and Modules (#167)
  • fix(db): revoke anon table privileges in public (00077) (#168)
  • feat(roadmap): give the board the screen on phones (#169)
  • feat(releases): store release feature links in a release_features junction (#170)
  • fix(data): page capped reads past PostgREST max_rows; dashboard read 200 features (#171)
  • fix(view-modes): back no longer loops an open entity; on phones it closes the sheet (#172)
  • fix(oauth): let the consent form redirect to the client's callback under CSP (#173)
  • fix(team): identify assignees by member id, not full name (#174)
  • fix(roadmap): hide work-item types whose Roadmap toggle is off (#175)
  • feat(command-palette): fuzzy search with a typo fallback, and find entities by ID (#176)
  • feat(editor): open the slash menu after a space mid-line (#177)
  • ·Anon table privileges revoked in public (00072 backfill, 00077 revoke)
  • ·Assignees identified by member id, not full name
  • ·Command palette: fuzzy search with typo fallback, find entities by ID
  • ·Ctrl/Cmd-click opens entity pills and rows in a new tab
  • ·Description block spacing and labels on detail pages
  • ·First-paint stability: layout shifts, server-resolved mobile layout, role and names
  • ·Golden Thread page performs at 1,300+ features
  • ·MCP OAuth sign-in for claude.ai, Claude Desktop and Claude Code
  • ·MFA recovery codes
  • ·No em dashes in AI output or app copy
  • ·Phone fixes: sprint chips, roadmap board gets the screen, back-button loop
  • ·Release detail: feature scope table, markdown notes, release_features junction
  • ·Roadmap hides work-item types whose Roadmap toggle is off
  • ·Spec editor slash menu: Tab stays inside, opens mid-line
  • ·Team roster hides offboarded members by default
v0.8.0

Work-item tracker

Work-item tracker. 16 PRs from 2026-08-27 to 2026-09-06; 6 tracked work items.

Work-item tracker

16 pull requests merged 2026-08-27 to 2026-09-06.

Highlights

  • Work-item tracker: Testing and Blocked statuses, hours, per-workspace work-item types
  • Type quick-change on rows, board cards and bulk actions
  • Entity renames propagate everywhere, naming stored per workspace
  • Reads and exports page past the PostgREST row cap

Every change

  • feat(features): work-item tracker, Testing status, hours, per-workspace types (#132)
  • fix(auth): report unreachable backend instead of "Invalid credentials" (#133)
  • fix(naming): propagate entity renames across the app; move naming to workspace-scoped storage (#134)
  • fix(features): propagate Testing/Blocked through capacity, dashboard and filters (#135)
  • fix(import,features): stop five silent data-loss paths (#136)
  • fix(work-item-types): enforce catalog integrity in the schema, not the UI (#137)
  • fix(e2e): make learning-mode deterministic, it was poisoning the next run (#138)
  • fix(types): stop raw ids reaching the screen and stale catalog state (#139)
  • fix(board): key assignee columns on identity, round capacity, reuse hover hook (#140)
  • fix(e2e): stop the bulk-update test racing other CI runs over shared rows (#141)
  • docs(tech-debt): Supabase preview-branch lifecycle findings from #134 (#142)
  • feat(features): Type quick-change on rows, board cards and bulk actions (#143)
  • fix(naming): render entity ID prefixes through the naming context (#144)
  • fix(naming): exhaustive pass, every entity label resolves through the naming context, with a source-scan guard (#145)
  • fix(export): page past the PostgREST row cap instead of truncating (#146)
  • fix(data): page entity lists past the PostgREST row cap (#147)
  • ·E2E stability: deterministic learning-mode spec, no shared-row races
  • ·Entity renames propagate everywhere, naming stored per workspace
  • ·Login reports an unreachable backend instead of bad credentials
  • ·Reads and exports page past the PostgREST row cap
  • ·Work-item tracker hardening: the 24 review findings
  • ·Work-item tracker: Testing and Blocked statuses, hours, per-workspace work-item types
v0.7.0

AI holistic flow, PM Academy

AI holistic flow, PM Academy. 8 PRs from 2026-06-10 to 2026-06-25; 5 tracked work items.

AI holistic flow, PM Academy

8 pull requests merged 2026-06-10 to 2026-06-25.

Highlights

  • AI insights to apply, bulk/generative/merge actions, 15-source Knowledge grounding
  • Copilot proposals: explainability, dedupe against every feature, curated starter pills
  • In-context PM learning layer: concepts, guided tours, PM 101 Academy, AI coach

Every change

  • feat(ai): insights to apply, bulk/generative/merge actions, 15-source Knowledge grounding, ProductSense unify (#124)
  • fix(copilot): let the agent see ALL existing features when deduping new-feature ideas (#125)
  • feat(copilot): proposal explainability, expandable descriptions, reasoning tooltips, clean competitor redaction (#126)
  • fix(insights): keep ask-copilot chip prompts generic, not pre-narrowed (#127)
  • feat(ai): curated per-section starter pills, merged with AI chips (#128)
  • feat(learning): in-context PM training layer, concept registry, guided tours, PM 101 academy, AI coach (#129)
  • fix(auth): remove Microsoft SSO button until Azure is configured (#130)
  • fix(ai): centralize model IDs; drop retired claude-sonnet-4-20250514 (#131)
  • ·AI insights to apply, bulk/generative/merge actions, 15-source Knowledge grounding
  • ·Centralized AI model IDs after the Sonnet 4 retirement outage
  • ·Copilot proposals: explainability, dedupe against every feature, curated starter pills
  • ·In-context PM learning layer: concepts, guided tours, PM 101 Academy, AI coach
  • ·Microsoft SSO button removed until Azure is configured
v0.6.0

E2E CI, Mobile, Team linking

E2E CI, Mobile, Team linking. 14 PRs from 2026-06-03 to 2026-06-07; 8 tracked work items.

E2E CI, Mobile, Team linking

14 pull requests merged 2026-06-03 to 2026-06-07.

Highlights

  • Playwright suite (116 tests, 13 specs) running on every Vercel preview
  • Team members linked to profiles on invite-accept, roster picker
  • Mobile optimization across shell, lists, panels, dialogs and touch drag
  • Settings information architecture reorganized

Every change

  • test(e2e): broad Playwright coverage + CI on Vercel preview deploys (#102)
  • chore(dev): harden dev-local.sh for fresh git worktrees (#110)
  • fix(email): hardcode logo to prod URL so it renders in every environment (#111)
  • fix(ui): render labels in Base UI <SelectValue>, lint-guard the class (#112)
  • fix(claude-code): name the workspace's product in handoff prompts, not "ProductOS" (#113)
  • feat(onboarding): buildable feature blueprint + blueprint/sample split + polish (#114)
  • feat(team): link team_members to profiles on invite-accept + roster picker (#115)
  • fix(import): align importer enum validation with the live DB schema (#116)
  • fix(dev): re-exec dev-local.sh under Git Bash when launched via WSL (#117)
  • feat(mobile): optimize the app for phones across shell, lists, panels, and dialogs (#118)
  • fix(import): seed feature Yjs state so imported features render in the modal (#119)
  • fix(mobile): touch drag/pan on the roadmap board + draggable feedback widget (#120)
  • fix(auth): redirect signed-in users from the landing page to the dashboard (#121)
  • refactor(settings): reorganize IA, Title Case page names, mute Beta tag (#123)
  • ·Base UI Select renders labels, with a lint guard
  • ·Email templates render the logo in every environment
  • ·Import: enum validation matches the live schema, imported features render
  • ·Mobile optimization across shell, lists, panels, dialogs and touch drag
  • ·Playwright suite (116 tests, 13 specs) running on every Vercel preview
  • ·Settings information architecture reorganized
  • ·Signed-in users skip the landing page
  • ·Team members linked to profiles on invite-accept, roster picker
v0.5.0

Developer surface

Developer surface. 8 PRs from 2026-05-28 to 2026-05-29; 7 tracked work items.

Developer surface

8 pull requests merged 2026-05-28 to 2026-05-29.

Highlights

  • Sprint cadence, sprint filter chips and sprint-boundary notifications
  • Polymorphic comments on 11 entity dialogs
  • Rich collaborative editor (TipTap + Yjs) with persisted state as source of truth
  • Onboarding: non-owner redirect, warmer chat, per-feature specs, buildable blueprint
  • Three entity view modes (modal, dock, page) with deep-linkable URLs

Every change

  • feat(dev-surface): sprint cadence, notifications, polymorphic comments, rich editor, demo seed (#99)
  • fix(onboarding): redirect non-owners away from /onboarding (#100)
  • feat(onboarding): warmer chat + per-feature specs for Claude Code (#101)
  • chore(migrations): stub historical timestamp migrations to unblock branching action (#103)
  • chore(migrations): archive orphan ledger entries; delete unused stubs (#104)
  • fix(editor): seed Y.Doc from legacy markdown when no peer hydrates (#105)
  • feat(view-modes): three-mode entity views (modal / dock / page) with deep-linkable URLs (#107)
  • fix(editor): make persisted Yjs state the source of truth (no flicker) (#108)
  • ·Demo seed for local development
  • ·Migration ledger reconciliation for Supabase Branching
  • ·Onboarding: non-owner redirect, warmer chat, per-feature specs, buildable blueprint
  • ·Polymorphic comments on 11 entity dialogs
  • ·Rich collaborative editor (TipTap + Yjs) with persisted state as source of truth
  • ·Sprint cadence, sprint filter chips and sprint-boundary notifications
  • ·Three entity view modes (modal, dock, page) with deep-linkable URLs
v0.4.0

2FA enforcement, Trash, Documentation portal

2FA enforcement, Trash, Documentation portal. 12 PRs from 2026-05-22 to 2026-05-25; 9 tracked work items.

2FA enforcement, Trash, Documentation portal

12 pull requests merged 2026-05-22 to 2026-05-25.

Highlights

  • Collapsible sidebar section groups
  • Owner-controlled 2FA enforcement and member 2FA status
  • Soft-delete everywhere: hidden rows, unified /trash, per-list trash links
  • Two-column entity dialog layouts for mirror-pair fields
  • In-app documentation portal at /documentation (81 pages)
  • In-app confirm dialogs replace native confirm() on 11 surfaces

Every change

  • fix(rbac): keep dialog close (X) clickable for read-only viewers (#87)
  • feat(sidebar): collapsible section groups for a quieter nav rail (#88)
  • feat(auth): owner-controlled 2FA enforcement for a workspace (#89)
  • fix(productsense): make vision & mission page actually work (#90)
  • fix(delete): hide soft-deleted rows + refresh lists on dialog delete (#91)
  • refactor(entity-dialogs): 2-col grid layouts for mirror-pair fields (#92)
  • feat(trash): unified /trash route + per-list TrashIconLink for every entity (#93)
  • feat(settings): surface member 2FA status to the workspace owner (#94)
  • feat(docs): in-app documentation portal at /documentation (#95)
  • fix(invites): persist invitee name on invite acceptance (#96)
  • fix(ui): replace native confirm() popups with in-app dialog (11 surfaces) (#97)
  • docs: reconcile /documentation portal + repo docs with actual behaviour (#98)
  • ·Collapsible sidebar section groups
  • ·In-app confirm dialogs replace native confirm() on 11 surfaces
  • ·In-app documentation portal at /documentation (81 pages)
  • ·Invitee name persists on acceptance
  • ·Owner-controlled 2FA enforcement and member 2FA status
  • ·ProductSense works on Vision & Mission
  • ·Read-only viewers can close dialogs
  • ·Soft-delete everywhere: hidden rows, unified /trash, per-list trash links
  • ·Two-column entity dialog layouts for mirror-pair fields
v0.3.0

Claude Code connector, DataTable overhaul, API v1

Claude Code connector, DataTable overhaul, API v1. 11 PRs from 2026-05-07 to 2026-05-11; 5 tracked work items.

Claude Code connector, DataTable overhaul, API v1

11 pull requests merged 2026-05-07 to 2026-05-11.

Highlights

  • Claude Code connector: cloud and local dispatch, live sessions UI, outcomes as RAG
  • DataTable overhaul: Linear-style filters, multi-level grouping, spreadsheet view, cell editors
  • Every entity mutation routed through /api/v1
  • Amplitude Session Replay (and the CSP entry it needed)

Every change

  • feat(claude-code): end-to-end Claude Code connector (cloud + local + sessions UI) (#75)
  • fix(claude-code): bootstrap migration for claude_sessions + feature_external_links (#76)
  • fix(claude-code): grant service_role on feature_external_links (#78)
  • docs: rewrite production PRD, add branding kit + documentation map (#79)
  • feat(datatable): UX overhaul, Linear-style filters, multi-level grouping, spreadsheet view + click-to-edit (#80)
  • feat(datatable): extend cell editors, hero skeleton, and empty-state polish (#81)
  • refactor(productsense): finish Magic Fix to ProductSense rename across code IDs (#82)
  • feat(api): route every entity mutation through /api/v1 (#83)
  • feat(analytics): enable Amplitude Session Replay (#84)
  • fix(csp): allow *.amplitude.com in vercel.json connect-src (#85)
  • fix(dev-local): launch Docker Desktop via full path + self-heal stopped containers (#86)
  • ·Amplitude Session Replay (and the CSP entry it needed)
  • ·Claude Code connector: cloud and local dispatch, live sessions UI, outcomes as RAG
  • ·DataTable overhaul: Linear-style filters, multi-level grouping, spreadsheet view, cell editors
  • ·dev-local hardening: Docker path, self-heal, fresh worktrees, WSL re-exec
  • ·Route every entity mutation through /api/v1
v0.2.0

Widget, RBAC, Invites, ProductSense

Widget, RBAC, Invites, ProductSense. 22 PRs from 2026-04-30 to 2026-05-07; 10 tracked work items.

Widget, RBAC, Invites, ProductSense

22 pull requests merged 2026-04-30 to 2026-05-07.

Highlights

  • Embeddable feedback and NPS widget with dogfood pilot
  • Password policy: 12 characters, 3 of 4 character classes
  • Five-role RBAC matrix wired DB to API to UI, with viewer pop-up fixes
  • Invite flow: Resend email, four-state acceptance, first-sign-in join
  • Feedback urgency field (priority renamed), wired into AI and dashboard
  • ProductSense rebrand of Magic Fix, plus the /knowledge page
  • GitHub App integration: repo indexing, /code surface, CLAUDE.md write-back, background sync
  • Landing page rewrite for the AI-native pivot (ICP toggle, ProductSense)

Every change

  • feat(widget): embeddable feedback / NPS widget + dogfood pilot (#53)
  • fix(import): send Strategy / GTM / Sales / DS sheets to /api/import (#54)
  • feat(widget): design pass, dogfood ergonomics, correct domain (#55)
  • feat(auth): raise password policy to 12 chars + 3-of-4 character classes (#56)
  • feat(rbac): five-role matrix wired end-to-end (DB to API to UI) (#57)
  • feat(invites): smoother invite flow, Resend email + four-state acceptance (#58)
  • fix(invites): accept pending invitation on first sign-in instead of provisioning a fresh workspace (#59)
  • fix(team): member remove + role change actually persist, in-app confirm dialog (#60)
  • feat(widget): compact thumbs launcher with edge-snap drag, dismiss, and re-enable (#61)
  • fix(bulk-actions): overflow menu no longer crashes; Link to Product/Module reachable (#62)
  • feat(feedback): rename priority to urgency, wire into AI features + dashboard, fix pagination clipping (#63)
  • feat: ProductSense rebrand + /knowledge + GitHub App integration + /code surface + CLAUDE.md write-back (#64)
  • fix(rls): add missing write policies on vision_mission (#65)
  • fix(rls): add missing INSERT/UPDATE/DELETE policies on roadmap_items + activity_log (#66)
  • fix(settings/general): persist timezone + language, drop bogus plan_tier select (#67)
  • fix(import): reorder entityTables so children delete before parents (#68)
  • fix(github-app): keep sync running past response with after() + repo transfer link updates (#69)
  • feat(roadmap): add weekly + monthly kanban views (#70)
  • feat(roadmap): "current period only" toggle with carryover indicators (#71)
  • feat(landing): rewrite for AI-native pivot with breadth, ICP toggle, ProductSense (#72)
  • fix(bulk-actions): bulk-link to FK target reports correct success count (#73)
  • fix(rbac): hide pill remove (X) buttons in pop-ups for viewer roles (#74)
  • ·Bulk actions: overflow menu crash and Link to Product/Module
  • ·Bulk Product Assignment Fix
  • ·Compact Feedback Widget
  • ·Embeddable feedback and NPS widget with dogfood pilot
  • ·Feedback urgency field (priority renamed), wired into AI and dashboard
  • ·Five-role RBAC matrix wired DB to API to UI, with viewer pop-up fixes
  • ·GitHub App integration: repo indexing, /code surface, CLAUDE.md write-back, background sync
  • ·Import: send every sheet to /api/import and delete children before parents
  • ·Invite flow: Resend email, four-state acceptance, first-sign-in join
  • ·Landing page rewrite for the AI-native pivot (ICP toggle, ProductSense)
  • ·Multi-Period Kanban Views
  • ·Password policy: 12 characters, 3 of 4 character classes
  • ·Persistent Timezone Preference Storage
  • ·ProductSense rebrand of Magic Fix, plus the /knowledge page
  • ·Roadmap Top Row Filtering by Period
v0.1.0

Polish + Public-launch ready

Cutover follow-up plus team multi-select polish plus autosave row-id fix plus dev-local env parser repair. The platform is shippable.

Final pre-launch polish. Cutover hardening (search_path, port guard, runbook). Team multi-select hierarchical search. Autosave preserves row id post-first-save.

  • ·Cutover follow-up: search_path + port guard + runbook
  • ·Preserve row id after first-save autosave
  • ·Suspense wrap for MFA challenge prerender
  • ·Team multi-select hierarchical search + wider dropdown
v0.1.0-rc.1

Cutover + Security + Email

Fresh Supabase project, MFA enrolment, security headers, Resend email infra, import/export full coverage, error boundaries, rate limits, test suite seed.

Production-grade auth defaults. Fresh Supabase cutover with TOTP MFA. HSTS plus CSP plus Permissions-Policy headers. Resend SMTP for transactional email. Import/export covers all 30 sheets. Vitest plus Playwright seeded.

  • ·Canonical site URL + onboarding gate
  • ·Cron schedule to daily (Vercel hobby)
  • ·Fresh Supabase cutover + MFA enrollment + local safety net
  • ·HSTS + CSP + Permissions-Policy headers
  • ·Import/export full coverage (Strategy + Intelligence + GTM + Sales + DS)
  • ·Name-your-workspace onboarding step
  • ·Resend SMTP integration + setup runbook
  • ·Seed Vitest + Playwright test suites
  • ·Surface AI errors + AI-draft description on create-and-link
  • ·Three parallel golden threads in onboarding
v0.1.0-beta.3

Roadmap Gantt + Onboarding + Design Overhaul

Feature-centric roadmap with Gantt and dependencies. Eight-step AI onboarding wizard. Platform-wide design overhaul. Mobile responsive.

Roadmap rewritten around features with Gantt and dependency overlay. AI-assisted onboarding generates a workspace from a paragraph. Design polish everywhere; mobile readable.

  • ·AI-assisted first-run onboarding wizard
  • ·Feature-centric roadmap (Gantt + dependencies + delay tracking)
  • ·force-dynamic on (app) layout
  • ·Interactive Gantt + Kanban polish
  • ·Mobile responsiveness + custom DatePicker + soft-delete
  • ·Modular dashboard + draggable headers
  • ·Platform-wide design overhaul + AI overlay rewrite
  • ·Suspense wrap for feedback/trash prerender
  • ·v1 platform buildout
  • ·Versioned per-entity AI insights
v0.1.0-beta.2

Sequence IDs + Drafts + M2M

FDBK-000001 IDs across all entities. Draft-first lifecycle. Author-scoped RLS. Persona M2M junction refactor.

Per-workspace sequence IDs. Draft rows with autosave. Author-scoped row-level security. Personas now M2M with feedback, features, themes, products, modules.

  • ·50+ placeholder titles per entity
  • ·Author-scoped RLS + is_draft + created_by
  • ·Draft-first lifecycle across 27 entity dialogs
  • ·Per-workspace counter table for sequence IDs
  • ·Per-workspace sequence IDs (FDBK-000001)
  • ·Persona many-to-many junction refactor
  • ·Unified YYYY-MM-DD dates in tables
v0.1.0-beta.1

Local Dev + Magic Fix + Strategic Surfaces

Local Supabase via Docker. AI Magic Fix plus context-menu copilot. Strategy/Intelligence/GTM/Sales/Design System sections.

Local-first dev parity. AI Magic Fix bulk cleanup. Right-click copilot chat. 15 new entity types across Strategy, Intelligence, GTM, Sales, Design System. Pills standardised platform-wide.

  • ·AI Magic Fix + Context Menu Copilot Chat + Team Assignment Suggestions
  • ·Categorized integrations catalogue (14 sections)
  • ·Local Supabase via Docker containers
  • ·Standardized entity pills + tooltips
  • ·Strategy/Intelligence/GTM/Sales/Design System surfaces
v0.1.0-alpha.3

Modal Unification + Brand Pass

Twelve unified entity modals. Brand identity applied platform-wide. Right-click context menus. DataTable with bulk actions.

Every dialog shares a header/body/footer shape. SVG logo with light/dark variants. Right-click everywhere. DataTable with multi-select bulk actions.

  • ·Apply brand guidelines + SVG logo + forgot password
  • ·Auto-populate + sync feedback status on feature-from-feedback
  • ·Clickable entities + product backlog viz + AI search fix
  • ·DataTable with bulk actions + features-on-feedback
  • ·Global EntityDialogProvider consolidation
  • ·In-page entity detail modals
  • ·Right-click context menus across entity pages
  • ·Unified 12 entity modals with shared components
v0.1.0-alpha.2

Real Data + AI Polish

Demo data ripped out. Real Supabase end-to-end. Auto-provision workspaces. AI insights overhaul plus team multi-select.

Workspaces auto-provision on first API call. Real Supabase data fetch. Persistent activity log. Markdown rendering. AI insights component refactor.

  • ·AI insights overhaul + team multi-select
  • ·Auto-provision workspace on first API call
  • ·Fetch real Supabase data for non-demo accounts
  • ·Initial security hardening + AI summaries
  • ·Markdown rendering and stat cards
  • ·Real import persistence + dynamic teams
  • ·Remove demo data system + persistent activity log
v0.1.0-alpha.1

Foundation

Initial scaffold through Phase 4. Auth, 12 entity pages, AI Layer, Golden Thread, Roadmap, Settings.

First buildable version. Twelve entity surfaces wired to Supabase. ⌘K palette. AI chat copilot. Golden Thread navigation graph. Roadmap with quarter columns.

  • ·Dashboard and Feedback pages
  • ·Initial visual overhaul + AI-first elements
  • ·Phase 2 entity pages (Themes, Initiatives, Releases, Outcomes, Personas, Accounts)
  • ·Phase 3+4: AI Layer, Golden Thread, Roadmap, Settings
  • ·ProductOS foundation scaffold
  • ·Products page and ⌘K command palette