April 2026 · 95 releases
7e61edf9 feat(cycle-250): merge shared cycle branch — dashboard (#796)
414c6f88 feat(cycle-250): merge shared cycle branch — core (#795)
b475c970 research(task-1513): token tracking via Claude Code JSONL session logs (#794)
5b2c93a7 chore: cycle 249 dogfood entry — multi-project UX + carry-forward + telemetry rescue
327b2dbc chore: cherry-pick task-1612 drop migration onto main
f74defcf feat(cycle-249): merge shared cycle branch — infrastructure (#792)
8ec3bfaa feat(cycle-249): merge shared cycle branch — dashboard (#791)
f54431ef chore(task-1538): commit remaining changes before branch switch
0e31a57e chore(task-1635): commit remaining changes before branch switch
44861054 Merge pull request #790 from cathalos92/feat/task-1538
cd126782 Merge pull request #788 from cathalos92/feat/task-1635
36d06785 Merge pull request #787 from cathalos92/feat/task-1638
f74ab058 feat(task-1538): Gestalt pre-build check — read cycle as a whole before first build_execute
0dbee5ab fix(task-1635): point second-project init at /hub Add Project flow instead of /setup
176c20b9 fix(task-1638): surface squash-merge errors + pre-flight guard for no-gh environments
281d9414 fix(orient): parallelize health queries + deduplicate build reports fetch
ddf1dabb feat(docs): public docs site — install guide + tool reference + nav cleanup
9f2b371e fix: branch detection + auth trim + release guard improvements
36968307 Merge branch 'feat/cycle-242-marketing'
62d2af73 Merge branch 'feat/cycle-242-infra'
52f9f130 Merge branch 'feat/cycle-246-core'
d01d72de Merge branch 'feat/cycle-247-server'
1a34a22f Merge branch 'feat/cycle-247-onboarding'
4b983dc7 Merge branch 'feat/cycle-248-data-proxy'
46666342 Merge branch 'feat/cycle-248-dashboard'
864abee0 Merge branch 'feat/cycle-248-core'
80a6903e Merge branch 'feat/cycle-248-auth'
77b7d826 Merge pull request #763 from cathalos92/fix/external-onboarding-hardening
8ea500d1 Merge remote-tracking branch 'origin/main' into fix/external-onboarding-hardening
f958b433 fix(task-1577): runtime self-host guard for shell DATABASE_URL leak (#770)
38313334 fix(dashboard): replace project switcher select with bounded popover (#783)
e01bb713 chore: cycle 248 dogfood entry — AD-28 activation chain + git opt-out + coherence check
b4224783 feat(task-1594): /admin/activation scoreboard — six-metric funnel view (AD-27)
5cf47d54 fix(task-1628): require PAPI_ADAPTER=pg when DATABASE_URL is set
fe87d495 feat(task-1627): add /docs/install public route — fixes dead --help link
e2bd35f9 fix(task-1611): preserve SQLSTATE code in proxy error path
fb2336ff fix(task-1581): user_profiles backfill migration + orphan alert on orient
dea36402 fix(task-1610): guard null task.title across build path + data-proxy
c0f38122 feat(task-1629): release server guard — block release when cycle tasks not Done/Cancelled
139c5c79 feat(task-1598): auto-append .mcp.json to .gitignore on setup in git repos
49499ad9 feat(task-1597): warn users to gitignore .mcp.json after API key generation
d7e6b5ba feat(task-1551,task-1552): arrival surface — recommendation pill + welcome letter
efa66d4b feat(task-1529): doc action-item scanner
2082885c fix(adapter-pg): add pgcrypto extension + throw on schema-creation failure
2be3fc5f docs: remove self-hosted Supabase path from external onboarding docs
9b6e3a87 docs(task-1526): MCP directory listing audit + correction plan
838da58b feat(task-1518): name lock — Adaptive across forward-facing surfaces
9873322f test(task-1527): CI parity guard for api_keys.last_used_at write
4f84ff40 feat(task-1525): diff-aware lint-staged — only block on errors touching staged lines
6826cbcc feat(cycle-248): merge shared cycle branch — dashboard (#786)
ff346294 chore: remove vestigial GuidedSetup fallback from hub new-project state
5bb8a83d feat(task-1589): hub setup checklist widget — activation steps with DB-derived state (AD-28) (#785)
29d58c83 Merge pull request #784 from cathalos92/feat/task-1588
778a68f2 docs: rewrite llms-install.md for hosted flow + add OpenCode support
1583c887 feat(task-1588): collapse setup wizard to 3-minute path (name → API key → MCP config)
6d2ef8fd fix(hub): make '+N more' pill a full clickable link to board
665c8eb9 chore: cycle 247 dogfood entry — AD-29 chain + Wes prod recovery
3db85932 Merge pull request #782 from cathalos92/feat/task-1586
ccaa5af5 feat(task-1586): scope_brief MCP tool — decompose brief-class tasks into scope docs
405673c9 Merge pull request #781 from cathalos92/feat/task-1585
730ff8f9 feat(task-1585): add scope_class to cycle_tasks — task vs brief distinction (AD-29)
aac18623 docs: add C245-246 research docs (Wes feedback, hierarchy spec, talk notes)
bd14643e chore: cycle 246 dogfood entry — FTUE arrival + activation bug-fixes
1557cc0c fix(cycle-246-mcp-server): orient ad_hoc suppression on fresh projects (task-1604) (#780)
2d289c25 feat(cycle-246-dashboard): hub arrival pair (task-1551 + task-1552) (#779)
b830a8b9 feat(task-1529): doc action-item scanner (#778)
87ce709b Merge pull request #777 from cathalos92/feat/task-1522
0d5ca380 feat(task-1522): sub-agent dispatch for plan and strategy_review
b843fbd1 fix(bootstrap-project): insert projects row before writing .mcp.json
27cd95c0 fix(task-1573): tighten init guard for partial-onboarding state (#775)
1b7251de fix(task-1575): build workspace packages before CI tests (#774)
f4fba730 fix(data-proxy): resolve 500 on orient for user innateiq (#776)
801dd532 fix(ci): handle bare-array JSON shape from supabase db query
1e3d4025 docs(CLAUDE.md): tier PR review by risk
c7cf6daa chore: cycle 245 dogfood entry — distribution hardening
6bfb5da5 feat(task-1572): require manual workflow_dispatch + tag input for npm publish (#773)
8d758fa5 feat(cycle-245-core): structured error wrapper + scoped CI lint policy (#771)
3d6592fe feat(cycle-245-onboarding): self-host guard, wizard gate, settings snippet, FTUE spike (#772)
a14d0105 feat(cycle-245-onboarding): FTUE install cliff — three surgical fixes (#768)
02ad2ed1 Merge pull request #769 from cathalos92/feat/task-1570
4aab75c6 fix(task-1570): get CI lint green - simplest viable path
08dce6e1 fix(SUP-2026-004): hoist plannerTasks declaration above doc-intelligence block (#765)
33e95b7d chore: cycle 244 dogfood entry — FTUE wizard trio + skill detection
4fc7e9ae C244 follow-up: FTUE wizard trio (task-1546, task-1547) — orphaned by v0.244.0 release (#767)
89a9c03c Merge pull request #766 from cathalos92/feat/task-1548
bb4f2a4f feat(task-1548): detection over interrogation — auto-propose Claude Code skills on first orient
2a7cccd2 Cycle 244 MCP Server: drift bugs + CI migration guard (5 tasks) (#764)
48944602 fix: build report cards no longer pad to row max-height when collapsed
1b11b028 chore: cycle 243 dogfood entry + planner module-classification rule (task-1555)
baac301e Cycle 243 MCP Server: cycle_learnings scoping (task-1542) + orient discovered-issues clarity (task-1509) (#759)
eef939d8 fix(task-1512): mobile hero + nav polish on landing (#760)
ca4c6a43 docs(task-1510): document raw SQL project_id scoping rule (#761)
fdd41e04 Merge pull request #762 from cathalos92/feat/task-1533
3a048505 fix(task-1533): align getActiveStage filter with stages CHECK constraint
991ac44e Merge pull request #758 from cathalos92/feat/task-1532
43b893ef feat(task-1532): deploy parity-aligned get_plan_context() SQL function
7290bcb4 chore: drop unused NEXT_PUBLIC_LANDING_V2 flag and motion package
37b23ada fix(plan): make apply cycle_number contract match prepare-phase header
48978336 docs(dogfood): cycle 242 entry — research-to-action pipeline + handoff drift learning
a8bc9c61 feat(cycle-242): merge shared cycle branch — mcp-server (#757)
a621cc15 Merge pull request #756 from cathalos92/feat/task-1528
5a072104 fix(task-1528): orient surfaces doc_action_promote alongside Research Signals
6638ea5f feat(task-1528): research-to-action pipeline — doc_action_promote + soft-warn surfaces
93af73dc docs(c241): positioning/cost-model updates + landing v3 playgrounds
3938e87b Merge pull request #755 from cathalos92/feat/task-1519
537246eb feat(task-1519): pricing pre-conditions doc — activation gates before price
5f6f8b0f docs(c241): positioning reset + star-map identity + ab-test brief
96bf6417 docs(dogfood): cycle 241 entry — convention migration + rescue-merge learnings
bcbc5310 Merge pull request #754 from cathalos92/rescue/cycle-241-cherrypick
b1d20cf3 feat(task-1508): activation observability convergence
9deaa9b8 feat(task-1507): /setup security & UX hardening
b9eb9cec Merge pull request #753 from cathalos92/feat/task-1489
51a7150f feat(task-1489): Next.js 16 middleware → proxy convention migration
7f785786 feat(task-1489): migrate middleware.ts to proxy.ts (Next.js 16 convention)
8a0cf2d2 fix(landing): make sticky nav always translucent to fix mobile overlap (task-1511) (#752)
7c5fe983 docs: backfill C240 changelog + dogfood entry
d23361e0 fix(admin): surface /admin/activation in Ops nav + show user identity (#749)
226f7d8f feat(task-1504): Dev-mode bypass for rate limiter when SKIP_AUTH=true (shared-IP fallback pitfall) (#751)
7c9837a1 feat(cycle-240): dashboard — magic link, auth refactor, MCP detection, brief viewer, limit messaging (#750)
c26230e0 docs(dogfood): cycle 239 entry — backlog-reduction batch throughput push
a87bd2ad fix(task-1474): backfill strategy_reviews.user_id — remove null RLS escape hatch (#748)
aa84e22b feat(cycle-239): dashboard — admin nav + rate-limit bypass (#747)
7949918c feat(task-1485/1490): MCP server fixes — Deferred count + grouped cycle branch auto-merge (#745)
bb337f78 feat(task-1497): GitHub OAuth re-consent notice on /settings (#744)
13037fb1 Merge pull request #746 from cathalos92/feat/task-1486
97f2b6b7 feat(task-1486): enhance discovered_issues → backlog auto-triage
9d9e94b3 docs(dogfood): cycle 238 entry — FTUE return-user arc complete
0228fb23 Merge pull request #743 from cathalos92/feat/task-1295
81575803 Merge branch 'feat/task-1295' of https://github.com/cathalos92/papi-ui into feat/task-1295
2701196c Merge remote-tracking branch 'origin/main' into feat/task-1295
26a8e2f4 polish(task-1295): softer strategy copy + P1-only priority test
a2ae4579 feat(task-1295): direction confidence layer on /hub
012f105c Merge pull request #742 from cathalos92/feat/task-1491
c5575ebf Merge remote-tracking branch 'origin/main' into feat/task-1491
5565b7dc Merge pull request #740 from cathalos92/feat/task-1481
3dae5ed8 Merge pull request #739 from cathalos92/feat/task-1477
5263c34c polish(task-1477): rename banner CTA to 'Connect to Claude Code'
ced74694 polish(task-1481): add "welcome back" heading for returning users
7939a984 feat(task-1491): prefilled hub arrival surface + SSE phase order fix
d241e5b6 fix(setup): auto-provision project for new OAuth users (#741)
e4b458de fix(task-1481): prevent duplicate project creation for returning wizard users
528180bd feat(task-1477): portfolio-level project creation with three intake paths
7d1a4a49 Merge pull request #738 from cathalos92/feat/task-1476
98fc1a99 feat(task-1476): GitHub OAuth repo scope + repo picker
5c2637ab docs(research): extensibility + agent interop synthesis (C237) — register + index
edab5b4b docs(dogfood): cycle 237 entry — FTUE spine + three intake paths shipped
59f98452 Merge pull request #737 from cathalos92/feat/task-1467
e8cd25e1 Merge pull request #736 from cathalos92/feat/task-1466
d416ac70 feat(task-1467): Project creation via file upload — brief/PRD/doc extraction (FTUE Task E)
e50fc058 feat(task-1467): POST /api/projects/import-brief route + wizard wiring
8a805db5 feat(task-1467): brief extraction library + unit tests
18684629 feat(task-1466): POST /api/projects/import-repo route + wizard wiring
bb0d28aa feat(task-1466): GitHub import library + unit tests
0dd213bf chore(task-1487): commit remaining changes before branch switch
641bc2bd Merge pull request #735 from cathalos92/feat/task-1487
5819fdd2 chore: gitignore playwright-skill temp execution scripts
7e0c9cb9 fix(task-1487): populate phases 2/3/5 with real brief/backlog/plan on SSE done
52b89a30 feat(task-1487): Implement /ftue-reference design as production SetupWizard — full rebuild
200b4aca feat(task-1487): remove NEXT_PUBLIC_WEB_SETUP_ENABLED — wizard is default
ab7748ff feat(task-1487): rebuild SetupWizard to phase-feed matching /ftue-reference
3ff1d639 docs(dogfood): cycle 236 entry — FTUE minimum viable activation path
25da1841 feat(task-1469): foundational task generation for thin-brief early cycles (#734)
15b7652d feat(task-1465): setup tool respects existing project context (#733)
dc6cfdfa C236 dashboard: minimal /setup connect page + API key surfacing (#732)
4b7954cc Merge pull request #731 from cathalos92/feat/cycle-235-dashboard
6946ce50 docs(dogfood): cycle 235 entry — FTUE auth redirect & wizard copy
cdf64b11 feat(task-1463): Simplify dashboard wizard copy — remove jargon (FTUE Task F)
6f426160 feat(task-1460): Fix auth → wizard redirect flow (FTUE Task 0)
cb5945a3 feat(task-1475): FTUE wizard design spec — visual reference for all onboarding tasks
f9a73c94 Merge pull request #730 from cathalos92/feat/cycle-235-dashboard
28e5f8ba Merge pull request #729 from cathalos92/feat/task-1464
c140a2e4 feat(mcp): md adapter registration gate + heartbeat telemetry (task-1464)
3bab45ea fix(hub): fix plan button next-action and surface planning errors clearly (task-1462)
2d658f56 docs: FTUE onboarding rework research doc (cycle 234)
bacf9f6a Merge pull request #728 from cathalos92/feat/task-1449
b8368e90 Merge pull request #727 from cathalos92/feat/task-1293
a8150ae3 feat(task-1449): Strategy review agenda system — decouple strategy reviews from cycles, add topic queue for future reviews
02c598cd feat(task-1293): Task lifecycle phase timeline in detail panel
fcd38a68 fix: login redirect sending existing users to /setup (#726)
b259d461 fix: login redirect sending existing users to /setup (#725)
3bff8fc5 docs: Cycle 233 dogfood log entry
c1bddaad Merge pull request #724 from cathalos92/feat/cycle-233-dashboard
b361f46f Merge pull request #723 from cathalos92/feat/cycle-233-analytics
fcfab1ce Merge pull request #722 from cathalos92/feat/cycle-233-landing
1d1943ec Merge pull request #721 from cathalos92/feat/cycle-233-mcp-server
dcfc5db7 Merge pull request #720 from cathalos92/feat/task-1446
aa0455fd feat(task-1446): planner two-pass note reading
0b9eff8b perf(task-1454): defer decision-scores and entity-references to lazy load
af63a254 fix(task-1452): eliminate react-hooks/set-state-in-effect ESLint errors
5f109beb feat(task-1450): post-auth funnel instrumentation
88c705aa feat(task-1451): Proxy-parity shape standardisation — getCycleLog + upsertNorthStar mapping + drift-aware smoke test
cf8be45d feat(task-1436): Rework landing → /setup flow: CTAs, pre-auth intake placement, and wizard continuity
87bdee9f feat(task-1453): Version literal sync — server.ts handshake + plugin.json
1aba363f Merge pull request #719 from cathalos92/feat/cycle-232-dashboard
e1d4f52b Merge pull request #718 from cathalos92/feat/cycle-232-mcp-server
b394f97c feat: dev-only PAPI_ARTIFICIAL_DELAY_MS for latency auditing (task-1225)
ca5e4306 test: add vitest coverage for loadProjectsFromDb enrichment (task-1443)
7b979271 docs: codify batch rollup requirement in CLAUDE.md (task-1441)
a5690d2e fix: add upsertNorthStar to data-proxy ALLOWED_METHODS (task-1442)
5db2fedc Merge pull request #717 from cathalos92/feat/task-1445
50ce9eba Merge pull request #716 from cathalos92/feat/task-1248
2f265456 Merge pull request #715 from cathalos92/feat/task-1444
802a9167 feat: portfolio split-panel project switcher (task-1445)
8f939619 feat: ambient indicator on In Progress cards, drop empty column (task-1248)
9c4d0ab5 feat: add environment context to orient recommendations (task-1444)
7ffdbc46 docs: restore hub-redesign-c224 design-brain + ignore docs/design in eslint
0ceda56f docs: update brand tagline to include "You Drive"
a3372a34 Merge pull request #712 from cathalos92/feat/task-1294
99052ba1 merge: resolve orient.ts conflict with task-1440 alerts split
56ef4ea3 Merge pull request #714 from cathalos92/feat/cycle-231-mcp-server
8ec59b1a Merge pull request #713 from cathalos92/feat/cycle-231-dashboard
e6fb0c0c fix(task-1312): guard ALLOWED_METHODS extraction against silent regex failure
86ad6889 fix(task-1294): split context-bloat detector into independent signals
75a81677 fix(task-1216): collapse task card to 2 rows — metadata on row 1, title on row 2
1e303c8d fix(task-1216): render type pill for all types + strip size word from priority tooltip
b56638ed fix(task-1216,1219): denser task cards, clearer type pill, stronger ring pulse
61d817e8 feat(task-1318): add date field to CycleLogEntry
bf22e97c test(task-1312): fail proxy-parity when an ALLOWED_METHODS entry lacks a case handler
4589d8ce fix(task-1316): portfolio lastActivity now reflects actual task activity
afa0bbfa feat(task-1221): animated connection beam on pre-first-cycle Hub empty state
8887b120 feat(task-1219): respect prefers-reduced-motion on Cycle Ring pulse
2f5faab5 feat(task-1216): task card type + module + size visual differentiation
b2463217 feat(task-1294): proactive session management signals in orient
b57aade2 Merge pull request #711 from cathalos92/feat/task-1440
c2fab957 fix(task-1440): compute alert/unactioned counts from full list + cap alerts at 10
8b226e7b feat(task-1440): split discovered issues into Alerts (P0/P1) and Unactioned (P2/P3)
a79c77c4 docs: refresh product brief (C229 rewrite)
28388e8c chore: add C230 dogfood log entry
4a5b1bf6 fix(task-1434): admin funnel — user identity per project, stage labels, drop-off KPI (#710)
ce6844cb fix(task-1433): block md adapter for external users with PAPI_PROJECT_ID (#709)
3e1c721d fix(task-1400): close P1 RLS gap — scope cycle_learnings to project owner (#708)
92923c02 fix(task-1430, task-1432): hub plan CTA + cycleComplete scoping fix (#707)
e36c2d90 fix(task-1431): wire claim_project() in setup flow + backfill migration (#706)
94e9001c feat(task-1084): RLS performance optimization — fix auth_rls_initplan across all tables
42a03fa9 hotfix: redirect new email sign-up users to /setup instead of dead /onboard (#705)
79b10f56 fix(task-1438): redirect empty-project users to /setup instead of dead /onboard route (#704)
85bbe16f chore: add C229 dogfood log entry
415b9dbe feat(C229): dashboard polish — error copy, skeleton loaders, security audit
eacdfc41 Merge pull request #703 from cathalos92/feat/task-1428
41c336f1 feat(task-1428): detect setup wizard rehydration failure across OAuth redirect
95887295 Merge pull request #700 from cathalos92/feat/task-1415
16a4da10 fix(task-1415): replace --font-body with --font-sans across hub components
ef0dec8a Merge pull request #702 from cathalos92/feat/task-1421
5ca30f78 feat(task-1421): align TaskDetailPanel with Claude Design V3 typography and spacing
c73b0924 feat(task-1415): hub visual quality pass — spec-aligned headings, font vars, spacing
9ff4c613 chore: add C228 dogfood log entry
ccfffb26 Merge pull request #699 from cathalos92/feat/task-1424
23059557 Merge pull request #698 from cathalos92/feat/task-1402
22f29471 feat(task-1424): close md adapter blind spot via anonymous install pings
fdf60e29 feat(task-1402): 'Connect existing project' flow — description-based MVP
c3f4341f chore: bump server to v0.7.11
f0209571 chore: add C227 dogfood log entry
e4a209d8 feat(cycle-227-core): Core S tasks — dep vulns, admin 503 guards, plan telemetry, worktree fix (#697)
502d324d Merge pull request #696 from cathalos92/feat/task-1412
7f6c1d3a feat(task-1412): add Research Signals section to orient output
a4e619d5 Merge pull request #695 from cathalos92/feat/task-1417
f47800c7 feat(task-1417): add dependency chain section to plan output
f2416fb0 chore: add C226 dogfood log entry
bf9b01b6 Merge pull request #693 from cathalos92/feat/task-1413
7fe0be04 Merge pull request #692 from cathalos92/feat/task-1411
f42599bb Merge pull request #694 from cathalos92/feat/task-1406
51921d4a fix: use upsert for active_decisions in setup-project for idempotency
0fb83808 fix(task-1406): correct column names in setup-project DB writes
898bc68d feat(task-1413): planner doc intelligence — relevance-matched doc context
c6558264 feat(task-1411): planner context tiering — exclude P3 Low tasks + budget logging
0f2457c4 Merge pull request #690 from cathalos92/feat/task-1404
bb840c4b Merge pull request #691 from cathalos92/feat/task-1403
bd633452 fix(task-1403): enforce strict build order in setup intelligence prompt
d873b0dd feat(task-1403): web-first project setup wizard with AI seeding
25a70b0f fix(task-1404): merge Plan CTA into cycle-state-aware next action
43535a16 fix(task-1404): restore Strategy & Decisions section
9a64a864 fix(task-1404): address all 10 feedback items — quality rebuild
294b258d feat(task-1404): restructure hub with three-question frame and new sections
2f52227b chore: ignore .claude/worktrees in gitignore
074365fc design: add hub v2 playground — design reference for task-1404
6940affd feat: promote LandingPageV2 to production, remove feature flag scaffolding
443dbd73 perf: add compact queryBoard to eliminate 2.2MB JSONB waste in plan flow
1595f1e6 Merge pull request #689 from cathalos92/claude/eloquent-stonebraker
2535ff67 fix(task-1260): cap login width at 1200px, remove dead terms/privacy links
325608ea feat(task-1405): add LandingPageV2 — full redesign behind NEXT_PUBLIC_LANDING_V2 flag
139e6686 feat(task-1401): add non-code brief handoff types for Owner persona
c3ae4e5d docs(c224): append DOGFOOD_LOG entry for Cycle 224
c6e48e86 Merge pull request #687 from cathalos92/feat/task-1395
02c87e45 Merge pull request #688 from cathalos92/feat/task-1260
7fd099be fix(task-1260): reset agree on tab switch, disable button until terms accepted
37ddcbef feat(task-1260): redesign login/signup — two-panel layout, clear tab separation, contextual errors
f7631400 fix(task-1395): correct model IDs, SSE parsing, and PlanLauncher disabled prop
295fb84b feat(task-1395): plan from dashboard — streaming plan launcher + structured artifact renderer
37b20981 docs(c223): add product frame — dashboard-as-cockpit north star
d8de7089 security (pass 2): rate limits, Next.js bump, and 2 more findings (#686)
a2db4a23 security: patch project takeover, bug-report forgery, and 7 other findings (#685)
8d34db62 docs(c223): append DOGFOOD_LOG entry for Cycle 223
31d7db2f feat(task-1392/1191/1208): dashboard improvements — MCP phase 2 scoping, SQL views, human language metrics (#684)
77165ccf feat(task-1130): Create DEPLOYMENT.md — secrets, rollback, and error recovery reference (#683)
2a3ea829 feat(task-1008): legacy cleanup — fence md adapter + untrack .papi/ files (#682)
3c4861fe docs(c222): append DOGFOOD_LOG entry for Cycle 222
5403e462 feat(task-1365): show auto-review batch summary when last cycle review is submitted (#681)
d92e498a feat(cycle-222-mcp-server): task-1393 lint-staged --no-stash + task-1315 SQL migration docs (#680)
6f7037b4 fix: accept /sse path alias for claude.ai Projects compatibility
1ee2df45 fix: railway build — include @papi-ai/shared in build chain
2c1e21ea fix: railway build command — plain npm run build from packages/server root
5f206bce fix(task-1391): use PORT env var for Railway deployment, 0.0.0.0 bind when deployed
fe9c092d feat(task-1391): add HTTP/SSE transport + bearer token auth to PAPI MCP server
ca4ff4b6 docs(c221): append DOGFOOD_LOG entry for Cycle 221
b83a58a6 Merge pull request #678 from cathalos92/feat/cycle-221-mcp-server
d303cfe6 merge: resolve ad-hoc conflict — main version has final task-1092+1195 state
613de518 feat(task-1380,task-1092): add discovery/spike task types + ad_hoc triage routing
a7d4b299 feat(task-1380): Add 'discovery' task type — track discovered issues from builds through to backlog with origin task, priority, and notes
7a860a6e Merge pull request #676 from cathalos92/feat/task-1195
44d9eb4b Merge pull request #675 from cathalos92/feat/task-1255
1b9d9f05 feat(task-1195,task-1092): enforcement split + ad_hoc triage routing
e85353cc release: v0.7.7 — fix north star write gap (SUP-2026-001/002)
22f2c96c fix: mobile responsive layout for CycleExplainer on landing page
48b3699c fix(SUP-2026-001/002): persist north star on strategy_review/change apply + orient unregistered doc warning
592420ce docs(c220): append DOGFOOD_LOG entry for Cycle 220
9a59bcb9 feat(task-1378): add P1 stall warning to orient output (#674)
8c3d2472 feat(task-1290): Landing page interactive "moment" — visual centerpiece (#670)
e71890c4 feat(cycle-220-mcp-server): task-1381 adapter-pg tests + task-1382 tool annotations + task-1383 server tests (#672)
5d9caf0c feat(task-1377): dashboard dead-path cleanup (#673)
c9cc71a6 feat(cycle-220-core): task-1384 branching rule + task-1385 lint-staged hook (#671)
076afd81 fix(task-1380): promote discovery tasks to tier 1 — visible to planner
d578c48d feat(task-1380): add 'discovery' task type for build-originated issues
586ffde4 Merge pull request #669 from cathalos92/feat/task-1376
8229ac2c feat(task-1376): write-read round-trip guard in build_execute — emit warning if report write cannot be verified (#668)
4e5dc93b feat(task-1376): write-read round-trip guard in build_execute — emit warning if report write cannot be verified
12591ea2 Merge pull request #667 from cathalos92/feat/task-1375
921e6d1c feat(task-1375): auto-triage P0-P3 discovered issues to Backlog on build complete (#666)
27845bf0 feat(task-1375): auto-triage P0-P3 discovered issues to Backlog on build complete
3f306113 Merge pull request #665 from cathalos92/feat/task-1371
2cd763ac fix(tests): fix 38 failing server tests across 10 failure categories
8c48dea2 chore(c218): commit CLAUDE.md updates and system interrogation audit doc
59458a35 fix(hub): refresh cycle-info and cycle-metrics on realtime task changes
ddcb1ec5 chore(task-1368): remove stale notify/Slack plumbing from review_submit
db49fc8c Merge pull request #664 from cathalos92/feat/cycle-218-mcp-server
041fe227 Merge pull request #663 from cathalos92/feat/cycle-218-dashboard
e1f1227e Merge pull request #662 from cathalos92/feat/cycle-218-core
7ec50eac feat(task-1367): hub-insights: "Unresolved only" filter always blank — all learnings have action_ref set but may not be truly resolved
34a5dce7 feat(task-1366): Cost snapshots: Tokens metric blank in CycleHero — cost-snapshots.json has no data for current cycle
9d8fc9bc feat(task-1227): Fix last_referenced_cycle on Active Decisions table — compute from decision_events or hide zeros
36151c0a feat(task-1192): Fix N+1 query patterns in /api/ads and loadProjectsFromDb
d366d403 feat(task-1153): BUILD HANDOFF acceptance criteria include stray out-of-scope items from planner template
45e519aa feat(task-1348): Add CHECK constraints on status column for stages and horizons tables — only phases has phases_status_check
f47a0d77 feat(task-1317): telemetry_events.user_id never populated — lifecycle queries less accurate
75c8d3ee feat(task-1314): Add prompt guidance for learning:UUID notation — feature exists but LLMs never generate it
c75dfd5f feat(task-1313): Regenerate Supabase TypeScript types — contacts table and others missing
00ffcaff Merge pull request #661 from cathalos92/feat/task-1283
7146db01 feat(task-1283): Intra-cycle task dependencies: shared branch grouping for dependent tasks in the same cycle
7e2b5db9 feat(c217-dashboard): task-1357, 1359, 1360 hub fixes (#660)
a4d0ef90 Merge pull request #656 from cathalos92/feat/task-1353
fa70bc36 Merge pull request #659 from cathalos92/feat/task-1358
bafc81c5 Merge pull request #658 from cathalos92/feat/task-1356
fd93b86a Merge pull request #657 from cathalos92/feat/task-1355
f7125d6c feat(task-1358): migrate CycleLearnings into IntelligenceSummary, retire from hub
25a38606 feat(task-1357): Hub 2.0 quick fixes: remove dead links, fix Duration metric, add hero metric tooltips, board/roadmap CTAs
b1543ce8 feat(task-1356): Analytics: Patterns report tab
afa7f4a2 feat(task-1355): Analytics: Token Efficiency panel
dcd134d7 feat(task-1354): Analytics: Fix & Elevate existing panels
3f3aa0c7 feat(task-1213): Analytics: Hero Insight Panel rewrite
1f15cb7a feat(task-1353): build_execute should auto-reuse cycle branch for same-module XS/S tasks instead of creating a new branch per task
7826cd35 chore: track archive components and landing page cleanup plan
dbddf036 fix(orient): soften unrecorded-commit warning when ad_hoc tasks already exist
3f727d15 fix(landing): side nav visibility, scroll detection, section widths, live stats
922da5af Merge pull request #655 from cathalos92/feat/task-1250
c1cb24fd feat(task-1250): idea tool should auto-classify task_type on submission — stop defaulting everything to "idea"
e6e92c4d Merge pull request #649 from cathalos92/feat/task-1352
0c3d867c Merge pull request #648 from cathalos92/feat/task-1334
85417aa9 Merge pull request #650 from cathalos92/feat/task-1282
a82a3703 Merge pull request #654 from cathalos92/feat/task-1259
3592bcec Merge pull request #653 from cathalos92/feat/task-1247
456fca0a Merge pull request #652 from cathalos92/feat/task-1091
4954fcbc fix: map tool_call_count in rowToBuildReport read path
c31fc79d fix: remove dangling health entry from TOOLS_REQUIRING_PAPI
2d11d39d feat(task-1259): Merge papi-audit into pr-reviewer and retire health MCP tool
9d756763 feat(task-1247): Auto-link cycle learnings to completed tasks via semantic matching — replace manual learning:UUID refs
ac74a533 feat(task-1091): Add task type planner template: scope + acceptance criteria + explicit out-of-scope statement
632ff3de feat(task-1282): Feed full discovered_issues and architecture_notes into strategy_review and zoom_out — currently only truncated surprises are consumed
72aeebf5 feat(task-1352): Add DEFAULT now() to tool_call_metrics.timestamp column to prevent silent insert failures
c4b38248 feat(task-1334): Wire toolCallCount into build reports (field exists, not populated)
df836ea8 Merge pull request #647 from cathalos92/feat/task-1281
2b3e4b62 feat(task-1281): surface unactioned P0-P2 discovered issues in orient
c9860b1d Merge pull request #645 from cathalos92/feat/task-1045
40672a37 fix(task-1045): resolve merge conflicts with main
caf3e34c Merge pull request #644 from cathalos92/feat/task-1332
c48f6172 Merge pull request #641 from cathalos92/feat/task-1285
e856a21c Merge pull request #643 from cathalos92/feat/task-1237
44e3ceaf Merge pull request #642 from cathalos92/feat/task-1210
032fc2b7 Merge pull request #646 from cathalos92/feat/task-1046
9625ca70 feat(task-1046): standardise heading hierarchy and typography across pages
6d728517 feat(task-1045): unify loading/empty/error state patterns across pages
32a3fa43 fix(task-1332): add timestamp and user_id to proxy metric inserts
51d34a5c feat(task-1237): Accessibility pass: add ARIA attributes, focus-visible states, and error message linking across auth + form pages
49d18c26 feat(task-1210): Hub page layout: apply four-zone model + Bento grid metrics
158017bd feat(task-1285): Route change — landing owns root domain, hub at /hub
263ff57a chore: dogfood log — Cycle 214 (design system consistency & hub data quality)
54b47be7 feat(task-1204): font-mono misuse sweep — replace all non-ID, non-code monospace with Plus Jakarta Sans (#640)
62ec5755 chore: dogfood log — Cycle 213 (dogfood pipeline & route restructure)
c1dc15ce Merge pull request #639 from cathalos92/feat/task-1342
98a8f521 Merge remote-tracking branch 'origin/main' into feat/task-1342
711317fd Merge pull request #638 from cathalos92/feat/task-1338
e2a9ce03 merge: resolve conflict in release.ts — take more descriptive schema descriptions
f2f02538 Merge pull request #637 from cathalos92/feat/task-1336
7887b3d3 merge: resolve conflict in board.ts — both sides use 'resolved' status
97ef12e6 Merge pull request #636 from cathalos92/feat/task-1335
5406d168 feat(task-1342): root route layout restructure — (dashboard) route group
1ca24003 feat(task-1338,1337,1336,1335): dogfood pipeline complete — context in handoff, keyword match, resolve on build, write at release
d7e392a2 feat(task-1336): release tool: auto-write dogfood observations to DB after each cycle
7c074256 feat(task-1335): build_execute complete: mark linked dogfood entries as resolved
93f6914e fix(plan): coerce cycle_number to Number and preserve cache on validation failure
a554c2f5 chore: dogfood log — Cycle 212 (planner intelligence & scope awareness)
c82036a8 Merge pull request #633 from cathalos92/feat/task-1275
037a1228 feat(task-1275): Planner epic-aware batching — when selecting cycle tasks, prefer co-scheduling tasks from the same epic rather than cherry-picking across epics
c11ef4ae Merge pull request #632 from cathalos92/feat/task-1133
f8bb3f39 feat(task-1133): Pre-plan codebase awareness — scan for existing implementations before generating handoffs
5226cb98 Merge pull request #634 from cathalos92/feat/task-1106
0505e87d Merge pull request #631 from cathalos92/feat/task-1088
3dd668cd Merge pull request #630 from cathalos92/feat/task-1015
76f95905 feat(task-1106): Increase default cycle sizing — group tasks by module/similarity, target 8-10 tasks when backlog supports it
e7310926 feat(task-1088): Progressive context loading — scale plan prompt complexity with project maturity
b4fb8a97 feat(task-1015): Add opportunity field to idea tool — LLM auto-fills from problem context, planner clusters backlog by opportunity
cdaf2515 fix: compute strategy review cadence from DB in plan context + bump server to 0.7.6
f5a5dbaa fix: exclude dogfood log commits from unrecorded ad-hoc detection in orient
3c8ca87e chore: dogfood log — Cycle 211 (intelligence surface + onboarding consolidation)
a1e4bb28 Merge pull request #626 from cathalos92/feat/task-1291
f99ce4bf Merge pull request #627 from cathalos92/feat/task-1289
40b36ed8 Merge pull request #628 from cathalos92/feat/task-1287
3b9d9062 Merge pull request #629 from cathalos92/feat/task-1279
1a01f88f feat(task-1279): Consolidate onboarding paths — merge /onboard page and GuidedSetup Hub component into single in-dashboard flow
f1c04ddc feat(task-1287): Surface intelligence above the fold in hub
2540cf2c feat(hub): surface intelligence above the fold with IntelligenceSummary card
757b10ba fix(task-1289): fix style conflict, widen bridge gap, center label
4e3fce06 feat(task-1289): "Run in your own ecosystem" positioning section on landing page
39298f24 feat(task-1289): add animated ecosystem section to landing page
758639ce feat(task-1291): Command reference in dashboard — CLI training through doing
3ddc7935 feat(task-1291): add copyable CLI command chips to hub action row and empty states
1018dc00 chore: dogfood log — Cycle 210 (security hardening + data integrity)
9b0b64f7 Merge pull request #625 from cathalos92/feat/task-1309
f8a90c3f Merge pull request #624 from cathalos92/feat/task-1308
1d6e5556 Merge pull request #622 from cathalos92/feat/task-1306
0e146719 Merge pull request #621 from cathalos92/feat/task-1305
053e5ff4 feat(task-1309): Add ON DELETE CASCADE to project child table foreign keys — replace fragile manual array
29ea9d0b feat(task-1308): Remove dead fetchMetricsFromSupabase function — unused code with data leakage bug
588e5221 feat(task-1306): hierarchy_update tool sends 'completed' but DB constraint only accepts 'Done' — silent failure
8096196a feat(task-1305): product_briefs_insert permissive RLS policy never dropped — any authenticated user can INSERT
ca18b2ad fix(landing): polish batch — live metrics, brand CTA, ring cleanup, responsive intake (#620)
8aeeee34 release: v0.209.0
a11692a2 chore(task-1303): commit remaining changes before branch switch
943424d4 Merge pull request #619 from cathalos92/feat/task-1108
7d4c9099 Merge pull request #618 from cathalos92/feat/task-1256
9f92e785 Merge pull request #617 from cathalos92/feat/task-1280
abba1690 Merge pull request #615 from cathalos92/feat/task-1303
47f9aab6 Merge pull request #616 from cathalos92/feat/task-1276
b591ef6e Merge pull request #614 from cathalos92/feat/task-1258
3c9681eb fix(hub): clean up pulse timer on unmount
259b53de feat(hub): add visual pulse on realtime-changed task cards
4e4befa4 feat(telemetry): capture per-tool timing for all MCP calls + build wall-clock duration
e13a068a feat(hub): add PostSetupState for post-setup/pre-plan empty state
8ef16d8c feat(task-1276): Auth file guard — PreToolUse hook warns before modifying auth/middleware
9dd2947a fix(task-1303): PreAuthIntake — don't auto-restore situation selection on revisit
349f46bb fix(task-1258): wire doc_search into strategy review — Edge Function gaps + prompt instruction
a1b1bddf chore: dogfood log — Cycle 208 (landing page voice + conversion flow)
ed2946ce chore(task-1303): commit remaining changes before branch switch
47f9aab6 Merge pull request #616 from cathalos92/feat/task-1276
b591ef6e Merge pull request #614 from cathalos92/feat/task-1258
8ef16d8c feat(task-1276): Auth file guard — PreToolUse hook warns before modifying auth/middleware
349f46bb fix(task-1258): wire doc_search into strategy review — Edge Function gaps + prompt instruction
a1b1bddf chore: dogfood log — Cycle 208 (landing page voice + conversion flow)
a72e062d Merge pull request #613 from cathalos92/feat/task-1286
d2f25a7b Merge pull request #612 from cathalos92/feat/task-1284
889be293 Merge pull request #611 from cathalos92/feat/task-1300
e7a51044 feat(task-1286): Onboard reads pre-auth intake data from localStorage
986c4f44 feat(task-1284): Landing page copy rewrite — vibecoder voice + split hero layout
fddaad10 feat(task-1300): Add cycle learnings support to proxy adapter + Edge Function — 4 methods missing for external users
fea8720d feat(task-1285): Route change — landing owns root domain, hub at /hub
d1b07a0d chore: commit leftover task-1298 changes (doc registry proxy adapter methods)
cfe5de9e Merge pull request #610 from cathalos92/feat/task-1174
67ad4148 Merge pull request #606 from cathalos92/feat/task-1261
599797f0 Merge pull request #608 from cathalos92/feat/task-1257
705ab036 Merge pull request #607 from cathalos92/feat/task-1254
eef2f71c feat(task-1174): Redesign cycle explainer (task-1109) — show what a cycle looks like in practice, not describe the methodology
a856ff98 feat: redesign CycleExplainer + PreAuthIntake for landing page (task-1173, task-1174)
bdba724e fix(edge-function): newTaskIdMap keys use batch-relative index to match pg adapter
58ea603a Merge fix/sup-2026-001-002: setCycleHealth wrong table + newTaskIdMap fix published as 0.7.5
60415d27 fix(strategy): remove stale writeCycleLogEntry() dual-write from strategy_review writeBack
55b1316c fix(task-1254): add INNER JOIN to v_decision_usage to filter ghost ADs
278a4199 docs: FTUE process map — full funnel flow with gap analysis (task-1261)
d37e9f41 chore: commit leftover task-1277 changes (SKIP_AUTH bypass + Playwright auth helper)
dd54bcd4 fix(sup-2026-001/002): setCycleHealth wrong table + publish newTaskIdMap fix as latest
f3b569ad Merge pull request #605 from cathalos92/feat/task-1180
37a88601 Merge pull request #604 from cathalos92/feat/task-1203
4de29486 Merge pull request #603 from cathalos92/feat/task-1198
2e0487c4 Merge pull request #602 from cathalos92/feat/task-1197
c309148f Merge pull request #601 from cathalos92/feat/task-1194
5e306fdc feat(task-1180): Investigate build_execute auto-commit behaviour — commits ALL working directory files
70753ad5 feat(task-1203): Font migration: Geist Sans → Manrope + Plus Jakarta Sans via next/font/google
f3a5a00e feat(task-1198): Hardcoded hex sweep — Hub + Board components token replacement
c7c5085a feat(task-1197): Full CSS token audit + Design Brain token migration — map globals.css to approved colour roles
cfa647f9 feat(task-1194): Compile Design Brain into .impeccable.md — full rewrite with all 10 approved sections
34601091 Merge pull request #589 from cathalos92/feat/task-1184
02dc4cac feat(task-1184): Column-specific SELECTs in queryBoard and getActiveDecisions — eliminate SELECT *
cc172d72 Merge pull request #588 from cathalos92/feat/task-1183
7fa64433 Merge pull request #587 from cathalos92/feat/task-1182
6c0d3ac6 Merge pull request #586 from cathalos92/feat/task-1181
06c692e9 Merge pull request #599 from cathalos92/feat/task-1193
45866a1e Merge pull request #598 from cathalos92/feat/task-1190
11961340 Merge pull request #597 from cathalos92/feat/task-1189
1a2380a2 Merge pull request #596 from cathalos92/feat/task-1188
a68ab57a Merge pull request #595 from cathalos92/feat/task-1187
400203f2 Merge pull request #594 from cathalos92/feat/task-1186
8e3b2d8c Merge pull request #593 from cathalos92/feat/task-1235
480b1f8d Merge pull request #592 from cathalos92/feat/task-1234
a9d5a490 Merge pull request #591 from cathalos92/feat/task-1228
cf661274 Merge pull request #590 from cathalos92/feat/task-1185
31d72298 feat(task-1193): Deduplicate build reports fetch in plan context assembly — fetch once, reuse across both paths
cb31b010 feat(task-1190): Add Cache-Control headers to read-only /api/data/ responses
8a7f07cd feat(task-1189): add pagination to /api/data/ endpoints — limit/offset query params
0275bf9d feat(task-1188): Add bounded eviction to ownershipCache and rateLimitStore in Edge Function
dd3e6fdf fix(task-1188): bounded eviction for ownershipCache + rateLimitStore
e10a4769 fix(task-1187): getLatestDecisionScores proxy — add camelCase field mapping
b10a9282 fix(task-1186): readPlanningLog proxy — correct shape to match pg adapter
b530f6df docs(task-1235): verify font loading approach — Manrope + Plus Jakarta Sans via next/font/google
3b2826a3 feat(task-1234): install MagicUI dependencies — motion + clsx + cn utility
03174603 docs(task-1228): deprecate stale onboarding docs — mark superseded, update INDEX
0e900e17 feat(task-1185): Add LIMITs to unbounded adapter queries — readToolMetrics, readCycles, readCycleMetrics, queryBoard
c6078ba9 feat(task-1183): Add request timeout to executeAdapterMethod in Edge Function
c7ed2ccf feat(task-1182): Shared Supabase client in Edge Function — eliminate per-request client creation
a7090954 feat(task-1181): Replace JS aggregation in getCostSummary with SQL GROUP BY RPC
bd06044b chore: commit patch-notes skill update and brand book
457606ee fix: v_decision_usage view — filter ghost ADs from orphaned entity_references
fd1bfa6e fix: apply orphaned C204 fixes — remove font-mono from roadmap/breadcrumb, fix backlog empty state
97ce471e merge: feat/task-1170 — npm version check on startup (orphaned C203 branch)
95c30610 merge: feat/task-1127 — doc action staleness in strategy review (orphaned C203 branch)
a0a459ed feat(plan): remove 5-task handoff cap, add skipHandoffs mode, extract handoff service
57851caf merge: feat/task-1067 — scaling audit doc (orphaned C203 branch)
753b00e0 fix: show task type badge for all types including 'task'
cd8414fa docs: C204 dogfood log entry
ff22506b feat(task-1127): add doc action staleness audit section to strategy review
9ce6753c feat(task-1170): add non-blocking npm version check on startup
4fdd74d3 docs: scaling audit C203 — Edge Function, DB queries, API routes
7b3f66dc Merge pull request #584 from cathalos92/feat/task-1245
1a8d9fac feat(task-1231): Hardcoded hex sweep — CRM + Time Machine + Briefs + Portfolio + Requests + Docs + Admin + Settings pages (#585)
8288779e Merge pull request #583 from cathalos92/feat/task-1230
2c5845aa Merge pull request #582 from cathalos92/feat/task-1207
b832c78f Merge pull request #581 from cathalos92/feat/task-1206
13db93ff Merge pull request #580 from cathalos92/feat/task-1202
6061c8ec Merge pull request #579 from cathalos92/feat/task-1201
fc899266 Merge pull request #578 from cathalos92/feat/task-1200
6b1995ff feat(task-1245): EmptyState component: replace CLI command props with user-friendly action copy across Strategy + Roadmap pages
2b6c2e23 design(c204): hex sweep — Login/auth page full token migration (task-1230)
bb449ab3 design(c204): anti-jargon audit — remove CLI commands from user-facing copy (task-1207)
60ebfe77 design(c204): correct heading weights to Design Brain spec (task-1206)
eec5f2b0 design(c204): hex sweep — Analytics/Strategy/Shell/Landing (task-1202)
9b885298 design(c204): update status colour tokens to Design Brain palette (task-1201)
d4e0d549 design(c204): gradient audit — constrain to hero moments only (task-1200)
06e76ab6 feat: CRM priority field, source filters, design brain assets, and data-proxy display_id fix
9a2abc3a docs: C202 dogfood log entry
6a614019 Merge pull request #577 from cathalos92/feat/task-1116-1109
0c3b956b fix: guard onboard redirect with window.location check — avoid SSR/hydration issues
ea1cec0d fix: skip project redirect on public pages — /landing was redirecting to /onboard
536eb002 feat(task-1109): cycle explainer — interactive Plan/Build/Review/Learn walkthrough
9f5ff19c feat(task-1116): pre-auth interactive intake — situation/tool/project stored in localStorage
09eeb88b Merge pull request #576 from cathalos92/feat/task-1143
54e1b34c Merge pull request #573 from cathalos92/feat/task-1168
e5c17ccb Merge pull request #575 from cathalos92/feat/task-1159
a4bc1ecb Merge pull request #574 from cathalos92/feat/task-1165
224e6ae1 Merge pull request #572 from cathalos92/feat/task-1164
0a4fb69d Merge pull request #571 from cathalos92/feat/task-1169
a32f163e docs(task-1143): rewrite README with Builder/Owner audience framing for public readiness
69569633 feat(task-1159): add validation warnings to setup apply — surface phase/AD seeding failures
4dc4ef75 fix(task-1165): remove setCycleHealth write path — boardHealth/strategicDirection are computed, not stored
3c637c86 fix(task-1168): ensureProject creates new project when name is provided — fixes multi-project creation
02406b51 feat(task-1164): validate cycle_number on plan apply — reject mismatch with prepare instruction
62dd505f fix(task-1169): null-safe date sort in board_view — handle Date objects from postgres.js
0a04dfe5 chore: bump MCP server to v0.7.4-alpha.4
35c662b6 Merge pull request #570 from cathalos92/feat/task-1115
ece04732 Merge pull request #569 from cathalos92/feat/task-1114
f4efa8d4 Merge pull request #568 from cathalos92/feat/task-1059
1750df73 feat(task-1115): Aspirational teasers — show sample data previews for Analytics, Strategy Reviews, Portfolio sections
d33790db feat(task-1114): Guided setup steps — in-dashboard project details + AI tool connection + first cycle teaser
7d91e48f feat(task-1059): Add "New Project" flow for returning users — dashboard button + multi-project support in proxy
66448fea Merge pull request #566 from cathalos92/feat/task-1112
e09f1502 merge: resolve strategy/page.tsx conflict with main
1e195186 feat(task-1112): add intelligent empty states with actionable guidance across dashboard
34b3d3cd Merge pull request #567 from cathalos92/feat/task-1058
03d220aa Merge pull request #565 from cathalos92/feat/task-1113
e7301f4e Merge pull request #564 from cathalos92/feat/task-1140
8aa07335 Merge pull request #563 from cathalos92/feat/task-1141
01c1f1be Merge pull request #562 from cathalos92/feat/task-1111
8ab5db96 feat(task-1058): setup experience audit — external user FTUE findings
c6f3ac43 feat(task-1113): add isNewProject detection + conditional dashboard rendering
8759abba feat(task-1140): add 'What You Get' deliverables section to landing page
ed92dedc fix(roadmap): update empty state to remove deprecated .papi/ path reference
e686f3b1 feat(task-1141): Mine dogfood data for quantified value claim (landing page copy prerequisite)
8a6d9547 fix(dashboard): replace deprecated .papi/ references in empty state copy
040e81a4 chore: remove untracked papi-plugin/commands/idea.md
b5e97792 fix: strategy review write-back sentinel bug + npm publish permissions
4a08cc3e chore(server): bump to v0.7.4-alpha.2
622b734e chore(server): bump to v0.7.4-alpha.1 — proxy handoff tempId fix + source field
6e205ea5 Merge pull request #561 from cathalos92/feat/task-1096
80e0464b Merge pull request #557 from cathalos92/feat/task-1128
bad5c58f Merge pull request #559 from cathalos92/feat/task-1103
62f1edd1 Merge pull request #560 from cathalos92/feat/task-1110
7f1380b4 feat(task-1096): Add source field to cycle_tasks: structured provenance tracking for all tasks
4f6f2d37 feat(task-1110): Fix data isolation bug — analytics showing wrong project data for new users
745fb884 feat(task-1103): board_view default sort shows oldest tasks first — backlog checks waste context reading Done tasks instead of active items
65705e41 feat(task-1128): Transfer "Detect Strategic Decisions in Conversation" section into prompts.ts — external LLMs miss direction changes
3d9bef06 docs: doc registry updates and new files from C198 session
8c93ef5f docs: full funnel onboarding rethink — strategic research from C198 session
706dd28a feat(plan): strengthen post-write verification — verify task count matches expected handoffs
6da47d67 feat(ci): add GitHub Actions CD for Edge Function deployment
93f12491 fix(dashboard): fix Duration metric — fall back to created_at when start_date is null
2b9f3b4e feat(reconcile): add cycle integrity checks — multi-active, ghost, orphaned
3d3c607d feat(planner): strengthen bug handoff template with reproduce/root-cause/fix/regression sections
56700a28 feat(task-1089): Add spike task type with planner instructions for time-boxed investigation
a7df8984 feat(planner): add spike task type with time-boxed investigation template
3b4ba7ca feat(planner): make bootstrap prompt project-agnostic
dc6e5212 fix(orient): correct stage position reporting — case-insensitive status, prefer lowest sort_order
e9a51f40 refactor: drop feedback ghost type from TaskType enum
bc362402 feat(idea): add explicit type param (task/bug/research/spike)
67db6cb1 Merge feat/task-1095: landing page UI pass + dark login redesign
329d4ab5 feat(landing): hero copy refresh, dark login page, UI polish
7475f3f1 chore(server): bump to v0.7.3-alpha.1 for proxy bug fixes
883ec1b4 fix(proxy): 3 bugs blocking external users — plan apply, AD upsert, createCycle
56c24ee2 feat(dashboard): hub UI density pass — hero, carry forward, board cards
f0ca1dd2 fix(security): RLS hardening phase 3 — fix all Supabase linter errors
4358b98b fix(server): ad_hoc transitions In Progress tasks to In Review, add submitBugReport to proxy
3a12673e Merge pull request #556 from cathalos92/feat/task-1062
8afc5108 Merge pull request #555 from cathalos92/feat/task-1068
759e6649 Merge pull request #554 from cathalos92/feat/task-1057
fe9a9189 Merge pull request #553 from cathalos92/feat/task-1072
f8115eb0 Merge pull request #552 from cathalos92/feat/task-1064
15a38921 perf(cockpit): lazy-load below-the-fold sections via IntersectionObserver
5a0f4d31 perf(plan): parallelize context assembly DB reads
297f60f7 feat(bug): add diagnostic bug report mode for cross-project issue reporting
869421f0 feat(strategy): surface pending recommendations in review close-out
fc30e0e6 feat(config): add next/image remote patterns for GitHub avatars and Supabase
5f5484bb chore: remove Slack-specific commands and suggest skill
b391993e perf(images): convert landing screenshots to WebP + use next/image
ca53c2b9 perf(cache): extend API cache TTLs to reduce Vercel bandwidth
74a7feac Merge pull request #551 from cathalos92/feat/task-1056
747e4d9d feat(skills): add support-debug skill for external user issue diagnosis
b859993c docs: add competitive research on Hermes Agent (Nous Research)
847dcef9 chore(skills): add session close-out guidance to patch-notes skill
458c0377 fix(proxy): handle double-encoded JSONB in proxy adapter and build-handoff serializer
25a39f64 fix(security): fail-closed on Supabase unavailable + harden middleware public paths
2c8eaccf style: widen content max-width to 1920px
15bcb367 fix(proxy): fix 28 data-proxy bugs + add automated parity test
3978a82a fix(server): null-safe totalCycles in plan context assembly
33300686 fix(security): harden multi-user data isolation across all API routes
721dc156 fix(security): prevent cross-user data leak on dashboard
875f500c fix(proxy): complete planWriteBack rewrite to match pg adapter
5977584c fix(proxy): planWriteBack health updates wrote to wrong columns
dce6e51b fix(proxy): getContextHashes queried non-existent table
680f06ad fix(proxy): human_reviews table doesn't exist — correct to reviews
13a17eae fix: add deploy:edge script with --no-verify-jwt baked in
2b9ce004 fix(proxy): deploy Edge Function with --no-verify-jwt
4f0eac23 docs: add onboarding crisis audit (C196)
ecae01a9 chore: bump server version to 0.7.0 (latest)
0a94a3fc fix(onboarding): unblock external users from running /setup
b22c1a1e fix(onboard): handle re-onboarding when API key is lost
1ce41fa8 fix(mobile): apply task-1042 responsiveness fixes to main
9ff913fd Merge pull request #548 from cathalos92/feat/task-1044
97855fcc Merge pull request #547 from cathalos92/feat/task-1052
0f2a78a6 Merge pull request #546 from cathalos92/feat/task-1050
f29dfef1 feat(hub): add growth loop signals strip to Cycle Learnings
384ec246 feat(a11y): add ARIA attributes to 4 interactive components
231a8f47 feat: migrate all codebase references from papi-web-three.vercel.app to getpapi.ai
a6f3db2c Merge pull request #545 from cathalos92/feat/task-1041
dbe17f1d feat(server): surface actionable error messages for proxy auth failures
d69fb4c1 Merge pull request #545 from cathalos92/feat/task-1041
5d1edae9 refactor(styles): purge inline styles across 26 components, migrate to Tailwind
901784ef Merge pull request #544 from cathalos92/feat/task-1047
ffd717bc Merge pull request #543 from cathalos92/feat/task-1043
38788a13 Merge pull request #542 from cathalos92/feat/task-1040
a918f211 Merge pull request #541 from cathalos92/feat/task-1022
0db27b08 feat(colour): apply semantic colours to stat values per .impeccable.md
34a32261 feat(task-1043): Enforce 4-role typography system from .impeccable.md spec
9d9a3ffc feat(typography): enforce 4-role type system per .impeccable.md spec
0f0eaa8c feat(task-1040): replace hardcoded hex colours with CSS variable tokens
173e3f85 feat(task-1022): Mobile landing page has horizontal scroll and misaligned header buttons
c433d978 fix(landing): add overflow-hidden to hero section to prevent glow div horizontal scroll on mobile
86411445 fix(server): defensive optional chaining + status string fixes, add frontend polish audit doc
55f2a5d6 fix(panel): move Edit beside status badge, tighten spacing
5d7c173d fix(panel): fetch structured build report from build_reports table
bba2d890 fix(panel): semantic build report colors, scrollbar styling, overflow fix
ea7a8ef1 fix(dashboard): discovery table + panel quality fixes
5c7887ea chore: remove temp playwright execution file
3f068042 Merge pull request #540 from cathalos92/feat/task-1030
87613591 Merge branch 'main' into feat/task-1030
ad255aa8 chore(task-1025): commit remaining changes before branch switch
cc69a4c8 feat(hub): click discovery row to open build report in side panel
2e97aee2 Merge pull request #539 from cathalos92/feat/task-1031
df6bfad4 Merge pull request #538 from cathalos92/feat/task-1021
1a6ab115 Merge pull request #537 from cathalos92/feat/task-1029
d6945380 Merge pull request #536 from cathalos92/feat/task-1025
6f6fa56a feat(task-1031): Right side task detail panel — design overhaul: fix triple scroll bars, spacing, information hierarchy
db6b3f63 feat(detail-panel): design overhaul — single scroll, collapsible sections, de-emphasized edit
09824f94 feat(task-1021): Time Machine: layout and UX polish — full width, velocity label, SR overlay, responsive resize
e3e44677 feat(time-machine): layout polish — taller velocity strip, Cycles label, active SR highlight
56f066a7 feat(task-1029): Hub: "What We Discovered" section — restructure as table with Type / Cycle / Task / Detail columns
d1f6e8a0 feat(dashboard): restructure "What We Discovered" as 4-column table
dcef779b fix(auth): skip rate limiter in dev to unblock Playwright testing
4bff1288 docs: add model recommendation rule to Planning Rules
01772123 Merge pull request #535 from cathalos92/feat/task-1033
5da3dd72 Merge pull request #534 from cathalos92/feat/task-1023
5a3daca1 Merge pull request #533 from cathalos92/feat/task-1035
a77c7caf Merge pull request #532 from cathalos92/feat/task-1034
b586096a feat(task-1033): add project management to settings — list, copy IDs, delete
91c13fa8 fix(task-1023): redirect email sign-in users to onboard if no projects exist
95111152 feat(task-1035): validate proxy API key + project at MCP startup
4d841cc0 feat(task-1034): prevent duplicate project creation in onboarding
8ef21c56 release: v0.191.0
979f12fc chore(task-1010): commit remaining changes before branch switch
c54575ec Merge pull request #531 from cathalos92/feat/task-998
a99c072c Merge pull request #528 from cathalos92/feat/task-1028
d5b1050a Merge pull request #529 from cathalos92/feat/task-1027
a9d65c1d Merge pull request #527 from cathalos92/feat/task-1026
3cee3e1a Merge pull request #530 from cathalos92/feat/task-1010
d9164898 chore: bump @papi-ai/server to 0.6.2
075de4d1 fix(proxy): fix all data-proxy field mismatches blocking external users
5d598e3d fix(edge-function): rename sprint_number → cycle_number in data-proxy
0fa557f3 feat(task-998): add GitHub repo URL picker to onboarding wizard
0f6ded3f feat(task-1010): Update landing page screenshots to dark mode with correct feature sections
a4190004 feat(task-1010): update landing page carousel to dark mode with correct feature sections
8935e69d feat(task-1027): sweep orphaned pending strategy recommendations on review prepare
1974568a fix(task-1028): filter ghost AD recommendations before writing to strategy_recommendations
2f99526f fix(task-1026): surface error when strategy_review apply receives malformed JSON
b0c14a12 chore: mobile landing responsive fixes + de-scope operator gate from S3 criteria
ca59fe27 chore(task-1010): commit remaining changes before branch switch
a99c072c Merge pull request #528 from cathalos92/feat/task-1028
d5b1050a Merge pull request #529 from cathalos92/feat/task-1027
a9d65c1d Merge pull request #527 from cathalos92/feat/task-1026
3cee3e1a Merge pull request #530 from cathalos92/feat/task-1010
d9164898 chore: bump @papi-ai/server to 0.6.2
075de4d1 fix(proxy): fix all data-proxy field mismatches blocking external users
5d598e3d fix(edge-function): rename sprint_number → cycle_number in data-proxy
0f6ded3f feat(task-1010): Update landing page screenshots to dark mode with correct feature sections
a4190004 feat(task-1010): update landing page carousel to dark mode with correct feature sections
8935e69d feat(task-1027): sweep orphaned pending strategy recommendations on review prepare
1974568a fix(task-1028): filter ghost AD recommendations before writing to strategy_recommendations
2f99526f fix(task-1026): surface error when strategy_review apply receives malformed JSON
b0c14a12 chore: mobile landing responsive fixes + de-scope operator gate from S3 criteria
e41eb844 Merge pull request #526 from cathalos92/feat/task-1018
1bdffda8 Merge pull request #525 from cathalos92/feat/task-997
24ce05eb Merge pull request #524 from cathalos92/feat/task-1012
28a70a92 Merge pull request #523 from cathalos92/feat/task-1011
c6c2840c Merge pull request #522 from cathalos92/feat/task-1014
4cd32b11 feat(task-1018): Auto-provision project on first proxy connect
04257eaa feat(task-997): Branch onboarding path — new project vs existing codebase
948107f6 feat(task-1012): Surface project health score badge on Cockpit hero
92b952e4 feat(task-1011): Compute composite project health score in orient — velocity, estimation, AD confidence, review cadence
36e87922 feat(task-1014): Add PRE-MORTEM section to BUILD HANDOFFs — planner predicts top risks from module build history
9e66a2f8 Merge pull request #521 from cathalos92/feat/task-1004
de9508dc Merge pull request #520 from cathalos92/feat/task-1020
f5486450 Merge pull request #519 from cathalos92/feat/task-1017
00db23f1 fix: resolve merge conflict with task-1019 (identical cwd fallback change)
9817d323 Merge pull request #518 from cathalos92/feat/task-1005
beecaa8e Merge pull request #517 from cathalos92/feat/task-1019
35a3fd89 fix(task-1020): replace papi.ai with current landing page URL
c8358745 feat(task-1004): Orient detects unrecorded commits and prompts ad_hoc capture
5f332ccf feat(task-1020): npm README with 30-second value prop and install-to-first-cycle path
da7a7c35 feat(task-1017): Auto-detect PAPI_PROJECT_DIR from cwd in init tool
08e640f8 feat(task-1005): Fix duplicate key error when creating task via UI — display_id generation race condition
7ac0bf88 feat(task-1019): In-terminal welcome message when server starts with no project
19aa425e chore: commit stray C188 changes before C189 batch build
43b0766b feat(onboarding): NPM-first landing page, 2-step onboard wizard, claude mcp add support
0c4c7f8d chore(task-961): commit remaining changes before branch switch
c48fdd9f fix(onboarding): fix setup blocking new proxy users + remove misleading GitHub guidance (#516)
e0a5ec77 feat(task-961): Time Machine — interactive cycle archaeology visualization (#515)
19d4b0a3 Merge pull request #514 from cathalos92/feat/task-988
500ff280 Merge pull request #513 from cathalos92/feat/task-1002
7ce7db5a Merge pull request #512 from cathalos92/feat/task-986
d7550b0b Merge pull request #511 from cathalos92/feat/task-994
2213ea2e fix(task-988): add depth limit and symlink guard to scanDir in build.ts
a2e75be1 fix(task-986): add confirmed/resolved to ActiveDecision outcome type union
a3678570 feat(task-988): auto-register docs in build_execute pipeline
ed653c09 feat(task-1002): scope cycle badge to Backlog tasks only
4a57d433 feat(task-986): fix AD outcome field — set confirmed/revised/resolved/superseded on strategy review
8481bc36 feat(task-994): update landing page screenshots with Cycle 188 data
65bfb994 Merge pull request #510 from cathalos92/feat/task-983
23f8d9ca feat(task-983): planner already-built check with codebase cross-referencing
68e0dbb9 Merge pull request #508 from cathalos92/feat/task-1000
4ef60d83 feat(task-1000): planner respects pre-assigned cycle tasks
b3f81c37 Merge pull request #509 from cathalos92/feat/task-1001
c33b26d8 Merge pull request #507 from cathalos92/feat/task-984
65fefdf4 Merge pull request #506 from cathalos92/feat/task-993
072c3c92 feat(task-1001): plan tool handoffs_only flag — skip selection, generate handoffs only
06263455 feat(task-984): carry-forward forced resolution after 3+ consecutive deferrals
210de630 feat(task-993): increase landing page side nav label font size from 10px to 12px
31f97fd4 Merge pull request #505 from cathalos92/feat/task-982
8feee0d5 feat(task-982): Backlog priority auto-recalibration — priorities are set at submission and never updated
2a2c1a37 Merge pull request #504 from cathalos92/feat/task-999
deaef9fd Merge pull request #503 from cathalos92/feat/task-987
6d0f2853 Merge pull request #502 from cathalos92/feat/task-996
49d7e0ff Merge pull request #501 from cathalos92/feat/task-995
1167f6d0 feat(task-999): BUG: Board task cards don't update in real-time — require page refresh to reflect status changes
176155a5 feat(task-987): Harden admin check — use Supabase user UUID from .env instead of username matching
54d84708 feat(task-996): BUG: Silent project creation failure in onboarding lets user advance with no PAPI_PROJECT_ID in config
55bcd749 feat(task-995): BUG: API key rotated on every GET /api/auth/onboard call, invalidating downloaded .mcp.json
4488d1e4 feat(task-990): Admin: Per-user drill-down (#500)
e44b98a0 feat(task-992): Admin churn signals, CRM contact on signup + auth hardening (#498)
d72e9b22 fix(crm): correct null-email dedup in syncNewUsersToCRM, drop redundant ownerProfileId alias
ce90b022 fix(auth): trim OWNER_USER_ID in all API route UUID comparisons
874f9016 fix(auth): trim OWNER_USER_ID in middleware UUID comparison
69215ead debug: expose ownerUserId and trim whitespace in /api/auth/me
2b27f952 debug: expose userId in /api/auth/me to verify OWNER_USER_ID
9e911234 fix(auth): derive isOwner from Supabase session in /api/auth/me
bee470df feat(task-991): Admin: New user alert badge on sidebar nav (#495)
e0d8664a feat(task-981): Update briefs page — fix NaN and full width
cbb111c5 fix(auth): UUID-based owner verification, block ops routes server-side (#497)
6985cef2 fix: add missing description column and per-user slug uniqueness on projects table
426bdb2a Merge pull request #493 from cathalos92/feat/task-957
7379d3d5 Merge pull request #492 from cathalos92/feat/task-962
9a053dd0 Merge pull request #491 from cathalos92/feat/task-977
1814bed0 Merge pull request #490 from cathalos92/feat/task-980
ee4dfe02 feat(task-957): add reproducible live demo script
fd411362 feat(task-962): add Project Overview tab to Briefs page
b0ad2fb2 fix(task-977): resolve admin Forbidden for Google OAuth users
b0b60195 fix(task-980): drop telemetry_service_role_all RLS policy targeting public role
ce9f0d36 fix(task-978): update Get Started CTAs to link to /onboard instead of /setup
7d2f0eb9 Merge pull request #489 from cathalos92/feat/task-954
08b7e718 Merge pull request #488 from cathalos92/feat/task-975
d709d9d2 docs(task-954): define S3/S4/S5 exit criteria and split Context & Intelligence phase
419719bf feat(task-975): reduce plan context size via conditional instructions + extended hash-diffing
855eada7 chore: sidebar Ops section — groups CRM, Briefs, Requests, Admin under collapsible Ops nav
3aada983 Merge feat/task-968: CRM contact & outreach tracker
38d12eb9 Merge feat/task-970: operator task submission form at /requests
8111a5ed feat(task-968): CRM contact & outreach tracker
0c42165c feat(task-970): operator task submission form at /requests
3baab49e Merge pull request #486 from cathalos92/feat/task-972
7f40d67b Merge pull request #485 from cathalos92/feat/task-971
e9ee4a4d Merge pull request #484 from cathalos92/feat/task-974
a4c31e97 feat(task-972): portfolio heartbeat — In Review count, 7-day stale threshold
78083e7b feat(task-971): release → content brief page at /briefs
b0409990 feat(task-974): show latest git tag in orient header
be3a7418 Merge pull request #483 from cathalos92/feat/task-952
0a905a90 chore(task-952): resolve merge conflict — keep full 950+951+952 implementation
42f99e09 Merge pull request #482 from cathalos92/feat/task-951
551bc9fb chore(task-951): resolve merge conflict with main after task-950 merged
99d762bf Merge pull request #481 from cathalos92/feat/task-950
88caa107 Merge pull request #480 from cathalos92/feat/task-967
9af3f364 Merge pull request #479 from cathalos92/feat/task-966
d648f875 feat(task-952): docs page — side panel with path copy, sortable table, no inline expand
4dbb2e35 feat(task-951): docs page — dense sortable table view with sort by name/type/status/cycle/date
6c91a4e4 feat(task-950): docs page — remove expand toggle and inline expanded detail from rows
f990b143 feat(task-967): hub UI fixes — carry-forward tooltip, hours in cycle metric, new task form requires priority+complexity
0d39db69 fix(task-966): fix strategy review rendering bugs — recs object array, confirm action badge, gaps string items
3c10d566 docs: add CRM & Operator role design doc and INDEX.md entry (C180)
8abf2b95 chore: dogfood log entry for Cycle 180
b1706411 Merge pull request #475 from cathalos92/feat/task-964
0e11830d Merge pull request #474 from cathalos92/feat/task-960
1df99b13 Merge pull request #478 from cathalos92/feat/task-958
5561044f Merge pull request #477 from cathalos92/feat/task-956
99d8225f Merge pull request #476 from cathalos92/feat/task-955
bf909eb0 feat(task-960): move new task button into board toolbar, add success toast
1e7c17cb feat(task-958): wire doc registry read path into plan context
c8c8283d feat(task-956): Wire build report patterns into planning signals — estimation bias by module, merge conflict hotspots, scope drift indicators
34c9b1ce feat(task-955): Automated board reconciliation — detect code-ahead-of-status mismatches and prevent planner scheduling already-built work
8edd82af feat(task-964): Terminology audit for external users — replace PAPI jargon with human language across dashboard, MCP tool output, and docs
3c557506 feat(task-960): Add "New Task" button to cockpit page for direct backlog intake
dca29e98 Merge pull request #473 from cathalos92/feat/task-965
65bbf2b8 Merge pull request #468 from cathalos92/feat/task-959
29686837 Merge pull request #471 from cathalos92/feat/task-948
0d48f136 Merge pull request #470 from cathalos92/feat/task-947
c6a65713 Merge pull request #469 from cathalos92/feat/task-946
eeae0ef0 feat(task-965): transfer universal CLAUDE.md rules into CLAUDE_MD_TEMPLATE
812683ac fix(task-948): compute actual MAE and bias from build_reports effort fields
554b8cee fix(task-947): analytics hero uses actual cycle/task counts from DB
722cb1a6 feat(task-959): show deferred task count badge on board filter
c06db1c1 chore(task-945): commit remaining changes before branch switch
8ff30246 Merge pull request #467 from cathalos92/feat/task-943
77bb3257 Merge pull request #466 from cathalos92/feat/task-942
583462e1 Merge pull request #465 from cathalos92/feat/task-944
be4540dd Merge pull request #464 from cathalos92/feat/task-941
fa79f092 Merge pull request #463 from cathalos92/feat/task-945
f5339b33 feat(task-943): link cycle learnings to tasks via action_ref
134f16ff chore(task-942): SQL migration audit — all functions and migrations verified applied
f77bac41 fix(task-944): doc_scan false unregistered — query all statuses not just active
964d3da0 refactor(task-941): rename Cockpit→Hub in component names, API endpoint, file names
bc4a654d feat(task-945): parse [bug]/[research]/[feedback] prefixes in idea tool
c1c347d0 fix(dashboard): handle object array in strategicRecommendations parsing
d7750227 Merge pull request #462 from cathalos92/feat/task-927
69b0afe9 Merge pull request #461 from cathalos92/feat/task-940
af4be3a7 Merge pull request #460 from cathalos92/feat/task-939
b6093f8c Merge pull request #459 from cathalos92/feat/task-938
69285c24 Merge pull request #458 from cathalos92/feat/task-937
39b2e6b1 feat(task-927): convert overlay sidebar to inline panel, add nav collapse
9ce249db feat(task-940): reduce sidebar width, expand build report details by default
c9793c21 feat(task-939): show priority dot on narrow viewports, text label on wide
e6aa6fe5 fix(task-938): show cycle-assigned Backlog tasks in 'In Cycle' column
e102642e fix(task-937): guard strategicRecommendations against array/non-string values
48a7fba4 chore: rename parallel cycle architecture doc to include cycle ID (c176)
d4ba102a Merge pull request #457 from cathalos92/feat/task-852
1797b231 Merge pull request #456 from cathalos92/feat/task-933
66de2270 Merge pull request #455 from cathalos92/feat/task-936
2bdcc7df Merge pull request #454 from cathalos92/feat/task-935
988207f6 research(task-852): parallel cycle architecture — multi-user/multi-session design doc
e4dfaad9 feat(task-933): MCP prompt audit — fix 7 gaps across 5 high-frequency tools
b28bc485 feat(task-936): add priority drift suggestions to planner triage step
3a300bb0 feat(task-935): orient release reminder when all cycle tasks Done but unreleased
58485008 chore: bump MCP server to 0.6.0 for npm publish (latest)
c8787ef4 chore: bump MCP server to 0.6.0-alpha.1 for npm publish
29b2b47e chore: housekeeping — move playgrounds to docs, remove dead tests, add C175 research doc
322c2fa3 feat: cycle learnings system — structured learning loop + cockpit redesign
62b7cc5c fix: activity feed shows task names + module badges + transition count
dd495599 fix: task names in activity feed + discovery feed compact layout
1c1e20ea fix: cockpit components match playground design exactly
72b7e40a redesign: landing page + cockpit shell and dashboard improvements
020e3505 Merge pull request #453 from cathalos92/feat/task-915
c99394d5 Merge pull request #452 from cathalos92/feat/task-928
4c9d1e7e Merge pull request #451 from cathalos92/feat/task-924
247bcd6f Merge pull request #450 from cathalos92/feat/task-930
860af0b6 Merge pull request #449 from cathalos92/feat/task-929
05d2118c fix(task-915): tighten hero headline to 2 lines
68dbaf24 feat(task-915): landing page refresh — side nav, CTA, remove Taskmaster, update copy
226eb135 feat(task-928): task type behavioral differentiation
c38eac60 feat(task-924): wire decision-scores and entity-references to cockpit
d824ae87 feat(task-924): enrich AD table with risk scores and ref counts
db44287f feat(task-930): cycle log structured metadata — task_count and effort_points fields
c173c4e5 fix: compute methodology trends from build reports, not stale snapshots table
b6cc4cc6 Merge pull request #448 from cathalos92/feat/task-926
34a07058 Merge pull request #447 from cathalos92/feat/task-917
c71a41b6 Merge pull request #446 from cathalos92/feat/task-925
0a0fc890 Merge pull request #445 from cathalos92/feat/task-923
3a983f9e Merge pull request #444 from cathalos92/feat/task-919
b5540868 chore: gitignore pitch-assets, pycache, and papi-pitch.js
8a15b223 chore: gitignore pitch-assets, pycache, and papi-pitch.js
d65e2cee chore: gitignore pitch-assets, pycache, and papi-pitch.js
ba5502b4 feat(task-926): structured build report display + clean metadata fields
7170093f feat(task-917): Show Deferred tasks in full board and cockpit kanban with visual indicator (muted style + badge), hidden by default behind existing Deferred toggle
deb1a9a6 feat: show Deferred tasks in Backlog column with muted style + divider (task-917)
2dcc1edb chore: untrack pitch-assets and papi-pitch.js (gitignored)
394cbc31 chore: ignore pitch-assets, pycache, and papi-pitch.js
457aaef7 feat(task-925): Board task card enrichment — richer cards, task type visuals, collapse empty columns
98ac01f4 feat: board task card enrichment — complexity badge, type indicator, hide empty columns (task-925)
3826f2dd feat: Recent Cycles structured rows with task count, effort, summary (task-923)
068558d8 feat: throttle RT events and dedup task refetches (task-919)
67c62c12 Merge pull request #443 from cathalos92/feat/task-922
96b0a2f3 feat: Cycle Intelligence overhaul — densify activity, resolution tracking, kill DiscoveryFeed RT
fb04806a feat: humanise Hero widget and Carry Forward display
55c25f07 fix: store project description during onboard pre-provisioning
bbfc2f32 fix: strip markdown headers and prevent double-numbering in strategy recommendations parser
1dc17e00 docs: add cockpit UX overhaul research from C171
ab2f4680 docs: add Cycle 172 dogfood log entry
910c2cab feat(task-911): add password reset flow for email/password users (#439)
df1ddfe4 Merge pull request #442 from cathalos92/feat/task-914
8eee005a Merge pull request #441 from cathalos92/feat/task-916
d232418d Merge pull request #440 from cathalos92/feat/task-912
a65bccb6 Merge pull request #438 from cathalos92/feat/task-910
1261c497 feat(task-914): add next-step guidance to MCP tool responses
4234026a feat(task-916): guide CLI-first users to web signup when no config exists
3e9cfb45 feat(task-912): add onboarding resume banner on cockpit
4fb72d05 feat(task-910): guide non-GitHub OAuth users through onboarding
dd5c4aef feat(task-908): structured recommendation display with status badges (#437)
d1043386 feat(task-909): PLAN_FULL prompt at 93% of Supabase env var limit — add size guardrail or migrate to DB table (#436)
ef16be8a feat(task-907): create strategy_review_events table for real-time review awareness (#435)
832ebb44 docs: add Cycle 170 dogfood log entry
9ea01ab0 Merge pull request #432 from cathalos92/feat/task-793
ac7665a2 merge: resolve conflict with main — keep task-793 enhanced strategy review markers
b845d79c feat(task-793): Timeline: Strategy Review markers between cycle bars with full labels
7fa2f612 Merge pull request #434 from cathalos92/feat/task-826
8728765b Merge pull request #433 from cathalos92/feat/task-796
ceb67ebb Merge pull request #431 from cathalos92/feat/task-790
e0a2ad0b Merge pull request #430 from cathalos92/feat/task-789
e281deb7 feat(task-826): Edge Function prompts stored as env vars may hit size limits (8-73KB each) — evaluate alternatives
8fcf6ee7 feat(task-796): Enrich ReviewCard with strategy review numbering, recommendation tracking, and review-to-review comparison
afe93a3a feat(task-790): Preparation preview card + zoom-out markers on timeline
5c24aa1b feat(task-789): SSE: Real-time strategy review awareness with cockpit banner
3888f75e fix(dashboard): add cache: no-store to tasks.json fetch to prevent stale board state after parallel reviews
cd34677a Merge pull request #429 from cathalos92/feat/task-902
db0bb9b0 Merge pull request #428 from cathalos92/feat/task-889
2d6736a0 feat(task-902): Themed cycle planning mode — planner suggests single-dependency-chain cycles
82b5174c feat(task-889): Include task comments in strategy_review context — discussion history currently invisible to strategic analysis
094c411c feat(task-905): Create demo walkthrough artifact — orient to release narrative for outreach conversations
9e8b3b8b Merge pull request #427 from cathalos92/feat/task-888
8d4c4717 Merge pull request #426 from cathalos92/feat/task-824
002bd8df Merge pull request #425 from cathalos92/feat/task-803
d2e025a3 feat(task-888): Strategy review should populate discovery canvas on first run
9d148d24 feat(task-824): Owner view mode — role-based dashboard filtering to hide builder plumbing
ed84c72f feat(task-803): Dashboard chart audit & redesign — eliminate redundancy, fix broken charts, add interpretation
2e1a9c43 feat(task-903): CycleHero shows "ready for release" CTA even when cycle is already released
99eaa355 feat(task-901): Light-mode commits on shared branches get stripped during PR merge — CLAUDE.md documentation changes lost in C166
6b3a18e0 chore: reorganise pitch deck and Kieran brief into subdirectories
365e708a feat(task-895): rebuild CycleHero — larger ring, Cycle label, plain-language stats
bdbb1bc4 feat(task-887): surface task transition stats on analytics page
69c5d444 feat(task-898): strategy reviews — truncate recs to 3, add count badges
daacb05f feat(task-897): simplify analytics Reports tab — cut 6 sub-tabs to 2
b56da8a1 feat(task-899): reorder More dropdown — Portfolio and Roadmap first
1116f239 Merge pull request #424 from cathalos92/fix/recover-c166-light-mode
33608e28 feat(task-891): Document that only plan.ts reads task comments — intentional design, not a gap
86c5547b feat(task-890): Remove 200-char notes cap in strategy_review — full notes are in DB but truncated in review context
6b2bf992 docs(task-900): document intentional bulk-actioning of strategy_recommendations on plan apply
85da7b0c docs: restore CLAUDE.md additions stripped during C166 release merge
9ec6161b Merge pull request #421 from cathalos92/feat/task-884
51271c0c feat(task-884): wire stage_id on new tasks and guard closure_reason for Deferred/Cancelled
db2a0cc9 chore: add Cycle 165 dogfood log entry
fe62c2a7 Merge pull request #420 from cathalos92/feat/task-886
11eba617 Merge pull request #419 from cathalos92/feat/task-896
57c45e53 feat(task-886): surface AD intelligence signals on strategy page
38fcdda0 feat(task-896): apply four-role typography and color pass to CockpitBoard
e4c46ce6 Merge pull request #418 from cathalos92/feat/task-883
ddfacb3a Merge pull request #417 from cathalos92/feat/task-893
3ec72c48 feat(task-883): add plan_runs table and non-blocking insert on every plan apply
39059dd0 feat(task-893): define four-role typography system and color palette in design config
08a745b0 Merge pull request #416 from cathalos92/feat/task-885
f8e4f695 feat(task-885): surface build intelligence on dashboard — handoff accuracy, arch notes, issues, dead ends
74c85a67 fix: reapply linter-reverted changes from task-881 and task-882
35cd1483 Merge pull request #415 from cathalos92/feat/task-880
a369b9e0 fix(task-880): wire AD write paths — last_referenced_cycle, revision_count, outcome
0636b21a chore: dogfood log entry for Cycle 163
b2bf9905 Merge pull request #414 from cathalos92/feat/task-744
1d1118eb Merge pull request #413 from cathalos92/feat/task-853
fa191f01 Merge pull request #412 from cathalos92/feat/task-742
b4dcc8b6 research: branching/deployment strategy audit — npm dist-tags, Vercel, Edge Functions C163
51d9d4a3 research(audit): dashboard CRUD → MCP pipeline audit — write-read matrix C163
cf821521 docs(claude): add security audit cadence — /security-audit every 10 cycles, /simplify post-build
5a37892e docs: add schema-for-ui-analysis research doc
e66e7665 docs(positioning): add product-brief.md — full rewrite from C158
885bc0e2 Merge pull request #411 from cathalos92/feat/task-663
e42737c5 Merge origin/main into feat/task-663 — resolve globals.css comment conflict
b1b689ce fix(portfolio): reapply task-663 changes lost in failed PR merge
d4d10c40 feat(portfolio): differentiate active vs dormant projects with visual weight
ca447617 fix(roadmap): restore papi-pulse keyframe animation (removed by linter)
bfffb5d2 Merge pull request #409 from cathalos92/feat/task-665
d50901e9 Merge pull request #408 from cathalos92/feat/task-781
335aa0d0 Merge pull request #407 from cathalos92/feat/task-869
baeee656 Merge pull request #406 from cathalos92/feat/task-792
1a3054c4 feat(roadmap): color-code progress state and add "you are here" markers
725ab2af feat(task-781): add Google OAuth sign-in button to login page
24d1ae7d feat(task-869): add get_sibling_ads MCP tool for cross-project AD sharing
4787b050 feat(task-792): add Strategy stage to cockpit lifecycle indicator
f1ee0a4d Merge pull request #405 from cathalos92/feat/task-810
43b3b45f Merge pull request #404 from cathalos92/feat/task-872
53417374 Merge pull request #403 from cathalos92/feat/task-877
ddf54b2c Merge pull request #402 from cathalos92/feat/task-876
096b37a2 feat(task-810): add dashboard docs page with filtering and staleness indicators
dcb6d789 feat(task-872): add doc_ref field to cycle_tasks for structured doc references
e4cbdfe8 feat(task-877): humanize taxonomy codes across dashboard
d648e371 feat(task-876): add carry-forward visibility to cockpit page
b9f1f316 fix: change plan hook from ask to allow — removes unnecessary permission prompt
321e3008 Merge pull request #398 from cathalos92/feat/task-871
ec2d021f merge: resolve conflict — combine module instructions + module context in build output
bfe43cac Merge pull request #400 from cathalos92/feat/task-870
456bcf82 Merge pull request #399 from cathalos92/feat/task-875
b7798fe8 Merge pull request #397 from cathalos92/feat/task-874
10f3e3a2 Merge pull request #396 from cathalos92/feat/task-873
36f3881d fix(task-870): polish Cycle Intelligence — fix truncation, spacing, borders, subheadings
8aca51d3 fix(task-870): revert left panel to ActivityPulse transition ticker
9007ea87 fix: strengthen Dashboard module instructions — mandatory steps, visual checklist, production concerns
96df57fc fix(task-870): redesign Cycle Intelligence — replace generic cards with proper visual hierarchy
e3ad204e feat(task-870): Cycle Intelligence rethink — replace raw data with interpreted insights, compact layout, actionable discoveries
ce6d7a31 feat(task-875): Fix dashboard AD display — outcome field shows 'pending' for all ADs
b2fa81db feat(task-871): Module-specific builder instructions — inject execution guidance at build_execute start time based on task module
45714c92 feat(task-874): Builder execution context — include recent same-module build reports when build_execute starts
060ea9b5 feat(task-873): Improve build report field quality — add guidance, examples, and quality bar for surprises/issues/architecture fields
c7e4a9f6 fix: reduce Vercel bandwidth — disable polling when Realtime active, add cache headers, lazy-load heavy endpoints
a395a982 feat: restructure strategy review + improve UI task handoffs in planner
March 2026 · 131 releases
5063c5ee feat(C157): Cycle Intelligence — SSE removal, data pipeline, cockpit components
cd230618 fix: order discoveries by cycle not date — date column has corrupt data in old rows
8cf14348 fix: filter discoveries by current cycle, not data max
d20007b1 fix: CycleIntelligence layout — side-by-side, compact, filter recent cycles
1d54a2e8 feat: wire ActivityPulse + DiscoveryFeed into CycleIntelligence wrapper
47895791 Merge branch 'feat/task-801' into feat/cycle-157-integration
c6537881 Merge branch 'feat/task-800' into feat/cycle-157-integration
ba8f6fdf Merge branch 'feat/task-802' into feat/cycle-157-integration
22e28224 Merge branch 'feat/task-799' into feat/cycle-157-integration
730558f0 feat(task-801): add DiscoveryFeed component — scrollable surprises, issues, AD refs
a6c46872 feat(task-800): add ActivityPulse component — real-time task transition ticker
9f351f86 feat(task-802): add CycleIntelligence section wrapper to cockpit
0f4f0604 feat(task-799): add cockpit-insights API — task transitions + discoveries data pipeline
0a1832cb feat(task-822): remove SSE emitter architecture — Supabase Realtime handles all live updates
bdb61b83 feat(task-807): Portfolio UX: improve multi-project navigation, project cards, and dashboard context switching
bc52dc77 fix(portfolio): remove duplicate currentPhase text on project cards
1038b0a1 feat(task-841): Multi-editor setup scaffolding — detect Claude Code vs Cursor and scaffold appropriate config files
f580a690 feat(task-868): Research tasks need a review gate — output draft doc, surface to owner, get approval before submitting follow-up ideas to backlog
919fda20 feat(task-864): Data proxy rate limiting — per-user throttle at Edge Function level
bf89b333 feat(task-859): Expose MCP server skills as MCP prompts for Claude Code discovery
540a5620 Merge pull request #389 from cathalos92/feat/task-857
e6bf9deb Merge pull request #388 from cathalos92/feat/task-863
012c7fc6 Merge pull request #387 from cathalos92/feat/task-865
fe523e0f Merge pull request #386 from cathalos92/feat/task-861
c4bb5a46 Merge pull request #385 from cathalos92/feat/task-867
ffe7bf9b docs: rewrite c154-distribution-decisions as draft for owner review
dc874be0 research(task-857): distribution decisions — license, repo structure, git audit
8be5a38a feat(task-863): user admin panel — list/disable/delete users
82baf4ef feat(task-865): Stage exit criteria — schema, MCP tool, orient output
474adf61 feat(task-861+867): Cycle task count accuracy + board_edit cycle auto-assign
691b11c5 feat(task-867): board_edit auto-assigns cycle number when status set to In Cycle
b5c6a81a chore: dogfood log entry for Cycle 153
fcae2cfd Merge pull request #384 from cathalos92/feat/task-860
59a73232 Merge pull request #383 from cathalos92/feat/task-862
18ca1a5f feat(task-860): Replace logout icon + bare select with avatar dropdown + styled project switcher
89c09960 feat(task-862): telemetry disclosure + PAPI_TELEMETRY=off opt-out
fb05f547 docs: add cycle field SQL rule to CLAUDE.md
032b9d01 Merge pull request #382 from cathalos92/feat/task-774
21a443eb Merge pull request #381 from cathalos92/feat/task-858
2d249b2f fix(task-774): use design token for build report card spacing
8da9b35a fix(task-858): clarify config snippet — update key only, keep project ID
73700946 feat(task-774): add AD and build report cards to onboarding cockpit preview
8b42d175 feat(task-858): show .mcp.json config snippet after API key regeneration
829e637b docs: add public repo distribution research
529702a6 chore: bump @papi-ai/server to 0.5.3
080a2de2 chore: bump @papi-ai/server to 0.5.2
fee67fa0 fix: restrict ?force=1 onboard bypass to owner only
6631a09d feat(task-840): End-to-end new user smoke test — walk full signup→setup→first cycle→dashboard as non-owner
651c21cb feat(task-846): Pre-provision projects during dashboard onboarding — wire FTUE end-to-end
be7c223d feat(task-847): Audit and fix /setup for alpha users — ship critical skills, add dogfood log, fix CLAUDE.md references
66731736 feat(task-850): Onboard error states — handle auto-link failure, API key failure, username mismatch
fcc0a6ca feat(task-849): Auto-poll on onboard verify step — replace manual button with interval polling
a6699a23 feat(task-851): Onboard copy polish — tighten microcopy and add troubleshooting hints
4f63da2e fix: onboard download button, taxonomy rename skills, template security wording
5f7d1710 Merge pull request #380 from cathalos92/feat/task-773
27610ae1 feat(task-773): Onboarding wizard: multi-step guided flow for new users (Phase 2)
7323b6ba fix: replace expired Discord invite with permanent link
65cc2b4f fix: replace expired Discord invite with permanent link
a6ac0d2c fix(task-773): let Claude Code create .mcp.json — user pastes one prompt
ebb2f66e fix(task-773): rewrite config + install steps for clarity
101af82d fix(task-773): simplify onboard config to match zero-config proxy architecture
68fdfbe4 feat(task-787): Dev Mode panel — simulate user states for testing onboarding and user-type flows
9ade038b feat(task-773): Onboarding wizard: multi-step guided flow for new users (Phase 2)
7d248f47 feat(task-844): Transfer guiding principles and strategy detection to prompts.ts planner prompt
1080fcbf docs: add Cycle 149 dogfood log entry
080a2d17 release: v0.149.0
bb1f1a20 feat(task-739): Owner-to-product transfer audit — categorise memory files and CLAUDE.md rules
f442a8f8 feat(task-808): Research Cursor IDE compatibility with PAPI MCP server
734c4c84 Merge pull request #379 from cathalos92/feat/task-817
b243985f feat(task-817): Add phase-level update support to hierarchy_update tool
d9154594 feat(task-764): Stage definitions should include auth/security as explicit phase prerequisites
063cc2c5 feat(task-763): Security audit gate — require pre-shipment surface audit before any access-widening change
1e23d8e6 docs: add Cycle 148 dogfood log entry
4ee3de7d feat(task-739): Owner-to-product transfer audit — categorise memory files and CLAUDE.md rules
867e667b feat(task-808): Research Cursor IDE compatibility with PAPI MCP server
d9154594 feat(task-764): Stage definitions should include auth/security as explicit phase prerequisites
063cc2c5 feat(task-763): Security audit gate — require pre-shipment surface audit before any access-widening change
1e23d8e6 docs: add Cycle 148 dogfood log entry
de599ef6 Merge pull request #378 from cathalos92/feat/task-745
d8029876 Merge pull request #377 from cathalos92/feat/task-743
54aa4e5e Merge pull request #376 from cathalos92/feat/task-812
5ef6bee0 feat(task-745): Progressive CLAUDE.md enrichment based on project maturity
245216ea feat(task-743): Add first-connect telemetry event to data-proxy
7ad2107d feat(task-812): Reduce strategy review context ceiling from 100K to 60K chars
187e4d80 feat(task-836): Codify AD quality bar in prompts.ts — define what qualifies as an Active Decision vs what doesn't
9b8db738 docs: add Cycle 147 dogfood log entry
64799dda feat(task-838): Apply security hardening RLS migration to production — backfill user_id on existing rows, then apply 20260328_security_hardening_rls.sql
cfcaa50f feat(task-837): Default new tasks to Small complexity — bulk creation from research sessions should not assume Medium
c9e79f3a feat(task-835): Update get_plan_context SQL function to include dead_ends column
103be3c4 fix: board_edit clears cycle assignment when status set to Backlog
e9db5401 fix: overhaul priority system and task selection logic
610407c3 feat(task-809): Discovered issues pipeline: surface unactioned issues at cycle end and create linked backlog tasks
b51339ec feat(task-761): Strategy review pre-check — scan plans directory and recent docs before assembling context
a2343415 feat(task-806): Landing page: honest multi-client messaging — "Works best with Claude Code, compatible with any MCP client"
bff905ec fix: add XS estimation rule for copy-only changes, cite over-estimation stats
3b19517c fix: strengthen idea tool reference requirement — mandatory for research/planning sessions
e536923f fix: address PR review findings — JSONB passthrough, duplicate import, planWriteBack stringify
151144cd feat(task-805): MCP server: improve dead_ends and brief_implications capture in build_execute
07fcb1e5 feat(task-818): realignPhases should run during orient or plan, not only during strategy review
eb0e7f38 feat(task-834): BUG: Data-proxy JSONB double-encoding — JSON.stringify before Supabase JS insert
0485fca5 feat(task-832): BUG: Proxy-adapter returns snake_case rows — camelCase field access silently fails
b2ed906c feat(task-833): Fix stale [S${cycle}] prefix in briefImplications format string — should be [C${cycle}]
2339f827 docs: add Cycle 144 dogfood log entry
d918a338 Merge pull request #373 from cathalos92/feat/task-825
f585b8b1 Merge pull request #372 from cathalos92/feat/task-815
5d0e21c3 Merge pull request #371 from cathalos92/feat/task-830
0aa4aeb3 feat(task-825): Consolidate TaskStatus definitions and fix sanitize.ts gaps
55421cf2 feat(task-815): Replace hardcoded cycle counts with live data on landing page
7dc59876 feat(task-830): Add briefImplications to strategy_change context assembly
107e24aa chore: remove git branch -D from deny list — branch cleanup is permitted
6861c589 docs: add Cycle 143 dogfood log entry
fa8b419d feat(task-831): Audit all JSONB write paths for double-encoding — JSON.stringify before postgres.js insertion
3ee964bf feat(task-813): BUG: planWriteBack in data-proxy is not atomic — sequential calls race under concurrent use
eeefc35c feat(task-814): BUG: Migration file 20260328_security_hardening_rls.sql doesn't match applied state + reviews_stage_check constraint missing from migrations
e53793f3 feat(task-829): Dead code cleanup: remove use-data-url.ts, ProjectIdentityHeader, brain-reader.ts fetchBrainData
1303cb31 feat(task-828): writeCostSnapshot never called — dead write path with working read path
51e9ec9a docs: add Cycle 142 dogfood log entry
574bb345 feat(task-816): PAPI_USER_ID auto-detection during setup — prevent NULL user_id projects visible to all OAuth users
7e9bd7e6 feat(task-820): Fix structured_data JSONB double-encoding — stored as JSON string requiring double-parse
d6c25437 feat(task-811): Bug: phase-realign auto-updater contaminates H2 phases — needs horizon-aware gating
492228b6 feat(task-827): Setup page references private repo URL — won't work for external users
e6b85e0a feat(task-821): Fix two unsuperseded North Stars in DB — only most recent should be active
59a0805c docs: add Cycle 141 dogfood log entry
67adccf0 feat(task-798): Wire doc_search into strategy review context assembly
6afba043 feat(task-791): DB: Add review_number + review_type columns to strategy_reviews
fed4414d feat(task-795): MCP tool: board_edit for editing backlog task fields from CLI
4605c6e5 feat(task-785): Update investor one-pager traction numbers — cycles 119→138, tasks 634→current
5beea03b feat(task-797): Fix H2 hierarchy contamination — reset premature In Progress/Done statuses on H2 stages and S5
210caabf copy: rewrite hero heading — specific problem statement over vague claim
bfcd8a2a revert: undo velocity governance copy changes on landing page
40655ae9 docs: add Cycle 140 dogfood log entry
0e0bf8c4 Merge pull request #370 from cathalos92/feat/task-784
84d46b45 Merge pull request #369 from cathalos92/feat/task-786
01ca9382 Merge pull request #368 from cathalos92/feat/task-783
6820cca1 Merge pull request #367 from cathalos92/feat/task-775
6ed11e71 Merge pull request #366 from cathalos92/feat/task-788
a0ac0f15 copy: shift positioning from context persistence to velocity governance
df3a6057 docs: add doc_register, doc_search, doc_scan to tool reference
b167052a feat(audit): add Active Decision compliance check to papi-audit skill
bcc5e656 feat(dashboard): add cockpit empty state for new projects and completed cycles
b113a127 fix(idea): only show doc reference nudge when task is actually created
a32920d7 docs: add Cycle 139 dogfood log entry
9b368b93 Merge pull request #365 from cathalos92/feat/task-778
987a3b87 Merge pull request #364 from cathalos92/feat/task-777
33570823 Merge pull request #363 from cathalos92/feat/task-782
da6cb38c Merge pull request #362 from cathalos92/feat/task-779
ebaccca8 Merge pull request #361 from cathalos92/feat/task-780
32e29d8b feat(task-778): user-friendly error messages in DataWarning
7d351333 feat(task-777): show user identity in dashboard header
749301ee feat(task-782): inject relevant Active Decisions into build_execute handoff
59dfd275 feat(task-779): rename Docs to Get Started on landing page
aaf8a0ae feat(task-780): extract hardcoded Vercel URLs to env vars
8e9981de fix: doc registry actions param + idea tool reference nudge
751fef39 docs: add Cycle 138 dogfood log entry
01736d77 Merge pull request #360 from cathalos92/feat/task-771
c90661b3 Merge pull request #359 from cathalos92/feat/task-772
03501bcc feat(task-771): SSE refresh debounce — prevent excessive re-renders on batch operations
3980042b feat(task-772): Extract comment formatting helper — dedup build.ts and board.ts
2630d931 fix: resolve onboarding/auth bugs breaking dashboard (#358)
6d5c917c feat(task-697): doc registry phase 3 — doc_scan tool + dashboard data + plans directory
160e7c78 docs: add Cycle 137 dogfood log entry
c76a5e26 fix: add retry on display_id collision in dashboard review submit
5f16e37f Merge pull request #356 from cathalos92/feat/task-758
fbd8647a Merge pull request #355 from cathalos92/feat/task-759
7103ac17 Merge pull request #354 from cathalos92/feat/task-767
9d6dc447 fix: exclude scripts/ from tsconfig to fix Vercel type-check
1fb433e0 fix: only build prompts entry on Vercel — skip full server bundle
a33bcb5f fix: split tsup config so prompts entry builds without adapter deps
4c0dfd3d fix: add server package build to Vercel build pipeline
188168a7 fix: add prompts subpath export to MCP server package
70e3bacd fix: add display_id to dashboard review submission
827ef47a feat(task-758): wire SSE into cockpit for instant dashboard refresh
93bbccd0 feat(task-759): surface task comments in build_list and board_view output
0bea3faa feat(task-768): add request-scoped memoization to dashboard data-provider
f62d76f6 feat(task-767): fix N+1 queries in loadProjectsFromDb and completeBuild over-fetch
3d1abe39 docs: add Cycle 136 dogfood log entry
5dc2b117 Merge pull request #353 from cathalos92/feat/task-769
9b9614a0 Merge pull request #352 from cathalos92/feat/task-766
ef7087bf Merge pull request #351 from cathalos92/feat/task-765
258dda0c Merge pull request #350 from cathalos92/feat/task-757
806a808c fix: protect Deferred phases from auto-propagation regression
e6ed7001 fix: tighten mapSupabaseResult — require mapper, restore length guard
3549830d refactor: extract mapSupabaseResult utility to deduplicate data-provider (task-769)
41dcafec feat: idea tool similarity gate — block creation and require user confirmation (task-766)
29fb2278 feat: enforce full-depth strategy review output with two-phase delivery (task-765)
a8b9b495 fix: prevent phase auto-update from regressing manually-set statuses (task-757)
9b65e9e5 refactor: apply codebase simplification audit findings
1f906858 docs: add Cycle 135 dogfood log entry
22f00ba2 Merge pull request #349 from cathalos92/feat/task-692
964dd108 Merge pull request #348 from cathalos92/feat/task-740
107e5ca9 Merge pull request #347 from cathalos92/feat/task-753
1893f604 Merge pull request #346 from cathalos92/feat/task-756
0555cafd feat: add project bootstrap from portfolio page (task-692)
d4b71581 feat: add cockpit polling and focus revalidation (task-740)
8f3452b9 fix: replace allowlist gate with email-verified check (task-753)
784c58fa fix: secure multi-tenant write paths (task-756)
509aefd0 docs: add Cycle 134 dogfood log entry
f8542917 Merge pull request #345 from cathalos92/feat/task-734
e6f167b9 Merge pull request #344 from cathalos92/feat/task-741
f8a2bf99 Merge pull request #343 from cathalos92/feat/task-755
71fb12a1 Merge pull request #342 from cathalos92/feat/task-752
24682ec8 fix(task-734): skip .papi commits when directory is gitignored
7ebe6c22 docs(task-741): document npm publish and Vercel deploy workflows in CLAUDE.md
a064aff1 feat(task-755): API key management UI — generate, view, and revoke keys
14a8e4b5 feat(task-752): email signup + sign-in with confirmation flow
a1127e86 docs: add Cycle 133 dogfood log entry
f022894c Merge pull request #341 from cathalos92/feat/task-750
d3c26046 Merge pull request #340 from cathalos92/feat/task-749
f86e2232 Merge pull request #339 from cathalos92/feat/task-748
c8eb81b2 feat(task-750): provider-aware user_profiles trigger for email auth
7ff9bb38 feat(task-749): provider-aware auth — support email alongside GitHub OAuth
67fdebdb fix(task-748): preserve Supabase session cookies through middleware
a67554f8 Merge pull request #338 from cathalos92/feat/task-754
fbbcc565 Merge pull request #337 from cathalos92/feat/task-751
68c1f590 feat(task-754): separate auth layout — login/onboard without app nav
6eae6042 feat(task-751): redirect unauthenticated root URL to landing page
13ab8b19 docs: add Cycle 132 dogfood log entry
c579d626 Merge pull request #336 from cathalos92/feat/task-738
6eafcb15 Merge pull request #335 from cathalos92/feat/task-737
ad3bb6ec feat(task-738): personalised MCP config on setup page for logged-in users
e37673ea feat(task-737): setup verification endpoint + dashboard status indicator
d7a1483e Merge pull request #334 from cathalos92/feat/task-736
806abdb4 security(task-746): fix doc_registry RLS — replace USING(true) with strict project_id scoping
d456667e feat(task-736): Onboarding flow audit & redesign document
3de6b16b security: remove hardcoded proxy key and shared-secret auth from data-proxy
d9c566ff docs: add Cycle 131 dogfood log entry
c85d4905 feat(task-700): Landing page branding: Visual refresh with improved imagery and brand identity
0b8c2bab feat(task-699): Landing page messaging: Sharpen value proposition and above-the-fold clarity
646896ab feat(task-732): Dashboard API: decision_events endpoint for AD timeline and relationship views
875ef065 feat(task-688): Surface pending AD state on dashboard and flag in planner
98d8bd6a feat(task-733): Fix pre-existing next build type error in stress test createTask call
293ebc35 docs: add Cycle 130 dogfood log entry
b81f4ae0 feat(task-662): Setup page: add orientation context, completion state, error guidance
9773bc76 feat(task-664): Strategy page: decision staleness signals, relationships, connected narrative across tabs
8eee37d3 feat(task-695): Doc Registry Phase 1: Foundation — Schema, Registry Service, Auto-Detection
acada475 feat(task-681): Complete taxonomy migration: rename Sprint* interfaces/types in pg-papi-adapter.ts and data-proxy
0ce5f477 feat(task-691): Strategy review apply persistence — retry lost reviews next session
c1efac99 docs: add Cycle 129 dogfood log entry
aa7af1e9 feat(task-694): Strategy review: replace cycle-count staleness with drift-based staleness for briefs, ADs, and North Star
f7c444e3 feat(task-693): Strategy review: link recommendations to action items with status tracking
275904c9 feat(task-682): Track build iteration count (pushbacks before review) as rework metric
f5bc47fd feat(task-721): Strategy review: include non-task git commits in context to catch ad-hoc work
7a0fc62e feat(task-722): Orient: include npm published version vs local version check — flag dist-tag drift
bcc9b563 docs: add Cycle 127 + 128 dogfood log entries
f30ff798 feat(task-713): Fix process.env.PAPI_PROJECT_DIR mutation race condition in API routes
9ceaab76 feat(task-720): npm security audit — verify package config, 2FA, access controls
2a5c0b6e feat(task-714): Validate /api/intelligence model and maxTokens to prevent cost abuse
045c5dde Merge pull request #333 from cathalos92/feat/task-518
33bfd520 Merge pull request #332 from cathalos92/feat/task-712
bd67f0a7 Merge pull request #331 from cathalos92/feat/task-729
7bfbe853 feat(task-518): add PAPI_LIGHT_MODE config for branchless builds
596a1cbb feat(task-712): create /security-audit skill for codebase-wide reviews
28cc0561 feat(task-729,730,731): fix planner cycle sizing, rec expiry, scope pre-check
56a1c765 docs: dogfood log for Cycle 126 — undersized cycle, stale strategy recs
f4e810c9 Merge pull request #330 from cathalos92/feat/task-728
5cf725bf Merge pull request #329 from cathalos92/feat/task-726
0b050e64 feat(task-728): add block action to board_deprioritise + planner blocked-task instructions
8514a985 feat(task-726): add PRE-BUILD VERIFICATION to BUILD HANDOFFs
86d4dce9 ci: build packages individually to unblock publish past adapter-pg DTS errors
da74962a fix: drop -alpha suffix from npm package versions so latest dist-tag advances
78faa4fa docs: dogfood log for Cycle 125 — planner already-built check failure
4407003a Merge branch 'feat/task-687'
794ae077 Merge pull request #328 from cathalos92/feat/task-690
1c5cfa11 feat(task-690): pg adapter stress test — 10 cycles with RLS validation
95398617 feat(task-687): Add Strict-Transport-Security header to next.config.ts
a8087bae ci: auto-publish MCP server to npm on merge + fix CI lock file drift
09ea6224 refactor: auto-link projects by GitHub username, remove manual claim flow
ab59c70d feat(task-711): Data proxy: per-user API keys with project ownership verification
f33d5330 feat(task-710): Scope onboard endpoint to prevent cross-user project enumeration and claiming races
89d98bfc feat(task-708): Remove hardcoded project UUIDs from brain-supabase.ts
b60ea0e8 feat(task-715): Create waitlist_signups migration (table has no migration, was created manually)
cc01536f fix: cockpit shows 'Released' instead of 'ready for release' for completed cycles
8be52a45 security: restrict admin telemetry to owner-only, not any authenticated user
f6ed2b90 fix: allow authenticated dashboard sessions to access admin telemetry
05271935 Merge pull request #327 from cathalos92/feat/task-717
e9906661 Merge pull request #326 from cathalos92/feat/task-709
2b18bed1 Merge pull request #325 from cathalos92/feat/task-706
7ba26f5b merge: feat/task-661 — board empty states (orphaned from C120)
19b488e9 refactor(task-717): deduplicate isProjectAllowed — use lib/auth.ts canonical version
649652c6 fix(task-709): add missing NOT NULL fields to dashboard createBuildReport
45ecc41e feat(task-706): cascade user_id on project claim + fix ensure-schema gaps
a227cb85 security: critical hotfixes — auth on 5 unprotected routes, IDOR fix, admin gating, RLS hardening
7aa60eeb fix: board empty states, hide filters when empty, remove CLI jargon (task-661)
91c92563 Merge pull request #324 from cathalos92/feat/task-705
4224b937 security: remove user_id IS NULL fallback — strict user isolation
4f4f87df feat(task-705): data isolation — scope DB queries by user_id + onboarding gate
c3fd38ad security: restrict OAuth login to allowlisted GitHub accounts
9f7a3b25 chore(task-703): commit remaining changes before branch switch
db719a4b security: strip x-papi-* headers from incoming requests to prevent spoofing
e72f80d2 Merge pull request #322 from cathalos92/feat/task-701
daf7454d Merge pull request #321 from cathalos92/feat/task-704
69e31d9c Merge pull request #320 from cathalos92/feat/task-703
28a97b27 Merge pull request #323 from cathalos92/fix/oauth-data-api
9c861718 fix: unify API route auth to support GitHub OAuth sessions
315a787a Revert "Revert "fix: guard ProjectProvider against non-array API responses""
52a766c4 Revert "fix: guard ProjectProvider against non-array API responses"
ed614a12 fix: guard ProjectProvider against non-array API responses
02c15f6d fix: guard ProjectProvider against non-array API responses
f5760f07 fix(task-703): use correct theme tokens in admin page — fixes production render
aebba391 fix(task-703): add Admin link to dashboard navigation under More menu
b5c9838d feat(task-701): add funnel analytics tracking to landing and setup pages
7c9533e0 feat(task-704): configure dogfood logging for external users during setup
7b5b5eff feat(task-703): MCP telemetry infrastructure — track tool calls, projects, milestones
57515172 docs: add Cycle 120 dogfood log entry
7ae0ee3d Merge pull request #319 from cathalos92/feat/task-660
b3d47033 Merge pull request #318 from cathalos92/feat/task-659
e486d59c feat(task-660): Landing page: CTA hierarchy, scroll incentive, social proof with real numbers
a13f3cba feat: landing page CTA hierarchy, scroll incentive, social proof (task-660)
ad9f6ed7 feat(task-659): Mobile responsive pass: fix critical breakage on cockpit, board, and analytics
7f51031d fix: mobile responsive pass — cockpit, board, analytics (task-659)
fc7fb581 chore: clean up temp files and add waitlist route
cf95de42 chore: pre-cycle-120 cleanup — landing page, auth, docs, config updates
42f7ad0b docs: add Cycle 119 dogfood log entry
ee150cbd perf: delta-only discovery canvas in strategy review
6c712268 perf: summarise completed tasks by module in strategy review
021b1f7f perf: compact previous strategy reviews to summary + top recommendation
1448d12a perf: exclude deferred tasks from strategy review context
9a8687e8 perf: fetch 5 human reviews instead of 20 in strategy review
88e2528c docs: add Cycle 118 dogfood log entry
2f8b03df perf: strip AD body text in strategy review context
19409d07 fix: release tag version derived from task cycle, not health.totalCycles
66b6c0b4 fix: skip .papi commit in review_submit when directory doesn't exist
ed9ffd13 fix: review_submit handles uncommitted changes before branch switch
02e6fa0f fix: ad_hoc no longer marks tasks Done when passed a task_id
aebe560c perf: PgBouncer prepare:false fix + strategy review query parallelization
d07ac1fa docs: add Cycle 117 dogfood log entry
c0b9efae fix: CycleHero layout — flex instead of grid for even stat distribution
d0cbfaf6 Merge pull request #315 from cathalos92/feat/task-672
eea039d2 Merge pull request #317 from cathalos92/feat/task-658
c6ac958f Merge pull request #316 from cathalos92/feat/task-657
449e78ab fix(task-657): single-row grid layout — stats beside headline with divider
768f6059 fix(task-657): segmented ring — shows Done/InReview/InProgress progress
9a1cbd9a fix(task-657): ring visibility — brighter track, done/total counter
8f449c75 fix(task-657): stats strip redesign — full-width grid with large numbers
f0c14758 fix(task-657): address review feedback — consolidate hero pane
326f674e feat(task-658): Analytics reframe: kill metrics wall, add headline insight, make velocity chart the hero
c73a0bc0 feat(task-658): analytics reframe — velocity chart hero + headline insight + kill metrics wall
a755e856 fix: update stale sprint_number/sprint_range column refs to cycle_number/cycle_range
1e6d8bec feat(task-657): Cockpit redesign: Cycle Ring hero + headline insight + progressive disclosure
c2a60873 feat(task-657): cockpit redesign — Cycle Ring hero + headline insight + progressive disclosure
c39b1b66 chore(task-672): bump adapter-pg to 0.1.2-alpha for republish
b05e4df8 Merge branch 'main' into feat/task-672
941e8800 docs: add Cycle 116 dogfood log entry
6c947808 feat(task-657): Cockpit redesign: Cycle Ring hero + headline insight + progressive disclosure
6d57ef80 revert(task-657): restore cockpit to pre-redesign state
12d3905a fix(task-657): address cockpit review feedback — 6 fixes
e7664759 feat(task-657): cockpit redesign — Cycle Ring hero, stats bar, progressive disclosure
5addb9f2 chore(task-672): bump versions for npm publish
27152d1c Merge pull request #314 from cathalos92/feat/task-673
b2be0801 Merge pull request #313 from cathalos92/feat/task-671
82cdd7a9 feat(task-673): add XS to effort/complexity taxonomy
2481977f fix(task-671): bootstrap-project skill prefers local PAPI build
b98f7569 docs: add Cycle 115 dogfood log entry
707b6537 Merge pull request #312 from cathalos92/feat/task-670
8ffc9b92 Merge pull request #311 from cathalos92/feat/task-669
abeda75d Merge pull request #310 from cathalos92/feat/task-668
ad376628 Merge pull request #309 from cathalos92/feat/task-667
c1d281be Merge pull request #308 from cathalos92/feat/task-666
7e91674a fix(task-670): clean up .papi/ references in user-facing strings for PG adapter
d3a160f5 fix(task-669): make error messages adapter-aware for PG users
9c8ea99b fix(task-668): rename sprint_number to cycle_number in MCP tool schemas
27b97bad fix(task-667): surface schema creation errors instead of silent swallow
7a733107 fix(task-666): remove duplicate column definitions in ensure-schema.ts
5c418ab2 fix: remove artificial effort budget floor from cycle sizing
efcb6566 docs: add Cycle 114 dogfood log entry
04ef38ed docs: add C114 dashboard UX audit docs and impeccable config
029c3856 feat: add project frame + dogfood log to bootstrap-project skill
c0881640 feat: add bootstrap CLAUDE.md to /bootstrap-project skill
a6f86cdd feat: add /bootstrap-project skill for rapid client project setup
9ba2e2fa fix: complete sprint→cycle DB column rename (migration + adapter)
944e5779 docs: Cycle 114 research — scope enforcement, AD validation, feature durability audit
bca01138 feat(task-653): Codebase sprint→cycle rename — 1,753 references across 108 files still use old taxonomy (#307)
a68d1561 docs: Cycle 113 dogfood log entry
bf193d83 Merge pull request #305 from cathalos92/feat/task-651
0a853d19 merge: resolve conflict in middleware.ts — combine task-651 + task-655 public paths
8045f2f5 Merge pull request #306 from cathalos92/feat/task-652
056a9a45 Merge pull request #304 from cathalos92/feat/task-655
0420aee6 feat(task-652): Drop orphaned sprint-era DB tables (sprints, sprint_tasks, sprint_metrics_snapshots, v_velocity_by_sprint) — taxonomy migration left parallel structures causing data divergence
736530a8 feat(task-651): Dashboard sign-up form — self-service user registration
48423b24 feat(task-655): GitHub OAuth + RLS authentication for dashboard
21766633 feat(task-654): Write-path routing decision — MCP proxy vs direct Supabase for dashboard actions
a8d914d5 feat: zero-config external user onboarding — hosted proxy as default
05c69e05 feat(task-420): Build start/complete flow through dashboard
4327e92d feat(task-164): Export sprint reports and metrics to PDF or CSV
8fc13f41 feat(task-603): Generate project CLAUDE.md during setup — give the user's Claude Code session PAPI workflow instructions
eb9af815 feat(task-475): Board filter bar UX — add visual grouping and reduce density
7b50423b feat(task-256): NorthStar supersede indicator — show previous/replaced NorthStar on dashboard
52e8339c feat(task-299): Add [bug] command to log bugs to task backlog — bug tasks can be grouped together into a single sprint task
cb2fc74a Merge pull request #303 from cathalos92/feat/task-646
db6c1954 feat(task-646): Dashboard attention system — "needs attention" badges on cockpit
3211e19e feat(task-646): Dashboard attention system — "needs attention" badges on cockpit
5430d822 feat: add attention strip to cockpit CommandHeader
1e8572ba fix: treat 'In Cycle' status as buildable in dashboard action derivation
e2063594 fix: remove stale migration path references from llms-install.md
34314038 docs: update setup page and discord guide to reflect current install path
317b4d05 feat: add deleteActiveDecision — allow strategy tools to permanently remove ADs
5974f467 docs: add C109 dogfood log entry
1a13af1d Merge pull request #301 from cathalos92/feat/task-643
78820be0 feat(task-643): Data write proxy for external users — route MCP server writes through hosted API instead of direct DATABASE_URL
59770cd8 feat(task-643): data write proxy for external users
87dda291 chore: add dashboard screenshots for landing page
7c259d36 Merge pull request #300 from cathalos92/feat/task-632
1b6c1e0c docs(task-632): CLI-to-dashboard connected ecosystem research
37daec2f feat: add Active Decision health audit to zoom-out prompt
d2d62620 fix: exclude supabase/ from tsconfig to fix Vercel build
5d646b40 feat(task-644): dashboard overhaul — fix bugs, remove bloat, improve cockpit strategy
34df27ba chore: add playwright-skill for browser automation and screenshots
6b24d0d6 docs: add C108 dogfood log entry
7f65707e Merge pull request #298 from cathalos92/feat/task-642
aebf9acb Merge pull request #297 from cathalos92/feat/task-640
54e3a9e4 Merge pull request #296 from cathalos92/feat/task-641
cc29e8ef feat(task-642): Implement hosted API proxy for external PAPI distribution — Supabase Edge Function for prompt serving + remote fetch in MCP server
0a4d66fd feat(task-640): Wire pr-reviewer skill output into review_submit auto_review format — close the auto-review integration gap
d18dd49b feat(task-641): Auto-update phase status when all phase tasks are Done — eliminate manual phase status tracking
282057e2 docs: add C107 dogfood log entry
6d73d725 Merge pull request #295 from cathalos92/feat/task-577
e41ff15f fix: resolve merge conflict in docs/INDEX.md
8618d392 Merge pull request #294 from cathalos92/feat/task-638
a2906783 feat(task-577): Remote-hosted prompt architecture — move methodology prompts server-side
f9e825d8 feat(task-638): Distribution architecture: how to let external users access PAPI without exposing codebase or sharing DB
d56aebd0 docs: add C106 dogfood log entry
69642867 Merge pull request #293 from cathalos92/feat/task-637
317ed683 feat(task-637): Audit action routes (app/api/actions/) for project ownership verification — may not check project_id belongs to authenticated user
d1cab0e1 docs: add C105 dogfood log entry
a4cd248b Merge pull request #292 from cathalos92/feat/task-620
738704e1 Merge pull request #291 from cathalos92/feat/task-634
fac4486f Merge pull request #290 from cathalos92/feat/task-633
a44719cd Merge pull request #289 from cathalos92/feat/task-635
79e09c38 feat(task-620): fix multi-tenant data isolation (Phase 1)
fe8bf4d7 feat(task-634): add IDE branch-switch notification note to build output
81691119 feat(task-633): bump @papi-ai/server to 0.3.1-alpha.0 and update plugin
5a26ffa4 fix(task-635): correct handleBoardDeprioritise test expectations
3b7452aa Merge branch 'feat/task-619'
0ecb1e4d docs: add C104 dogfood log entry
67e36498 fix: orient missing 'In Cycle' and 'Ready' tasks in sprint count
49340e99 Merge pull request #286 from cathalos92/feat/task-602
aefd80ab feat(task-602): Automated code review subagent in review phase — two-layer review before human
4d1bcad1 Merge pull request #288 from cathalos92/feat/task-630
3e3ceeb4 Merge pull request #287 from cathalos92/feat/task-623
4e5d1712 Merge pull request #285 from cathalos92/feat/task-626
de9e7d48 feat(task-630): Research: Hosted backend feasibility — cost model, auth model, data isolation, aggregate learning pipeline for external users
26395244 feat(task-623): Plugin distribution MVP — bundle updated npm server + existing skills + hooks + commands into installable Claude Code plugin
4929f29a feat(task-626): Light-ceremony mode for XS/S tasks — allow recording work without full build_execute ceremony (skip handoff generation and branch creation when unnecessary)
30248105 docs: add C103 dogfood log entry
5b65f423 Merge pull request #282 from cathalos92/feat/task-621
7eef35bd Merge pull request #284 from cathalos92/feat/task-624
61cc110e Merge pull request #283 from cathalos92/feat/task-622
20798a6d Merge pull request #281 from cathalos92/feat/task-625
caadbe73 feat: dogfood pipeline v1 — status tracking and planner integration
b90c23da docs: fix broken references in install/setup/quickstart docs
6abc1623 chore: bump @papi-ai/server to 0.3.0-alpha.1
bc73490d fix: add progressive context budget to zoom-out tool
34035b8d docs: add C102 zoom-out session artifacts
c39158f5 Merge pull request #280 from cathalos92/feat/task-572
a5bd7aa5 Merge pull request #279 from cathalos92/feat/task-494
0b299c4f Merge pull request #278 from cathalos92/feat/task-619
71ffca9b Merge pull request #277 from cathalos92/feat/task-618
ec7c6415 feat(task-572): Discord server setup for PAPI community
7da4e73c feat(task-494): Zoom-out session — higher-level retrospective above strategy reviews
16dd0220 feat(task-619): Board reconcile hierarchy alignment + similarity detection
74833667 feat(task-618): Planner stale task detection + extractAdReferences dedup
ebfc6c68 docs: add branding assets — branding prompt, Discord setup guide, icon
a38ae297 docs: restore Sprints 23-35 catch-up dogfood entry from stash
eae968e2 docs: add Cycle 101 dogfood log entry
4ea5058a Merge pull request #276 from cathalos92/feat/task-281
ac437942 feat(task-281): Wire context utilisation measurement and persistence
b8a649ca Add Vercel Analytics and update Discord link (#275)
a0ff372e docs: add Cycle 100 dogfood log entry
a62bf061 Merge pull request #274 from cathalos92/feat/task-611
fbc77f16 Merge pull request #273 from cathalos92/feat/task-587
722861e6 Merge pull request #272 from cathalos92/feat/task-613
03c2d16e Merge pull request #271 from cathalos92/feat/task-614
d46fa8b1 feat(task-611): progressive context budget for strategy review
109a7b75 feat(task-587): instrument time-to-first-value milestones
6351f4f4 feat(task-613): add decision scores table to Strategy Decisions tab
857e3bab feat(task-614): add dogfood log API endpoint and dashboard display
1049a7c5 docs: add Cycle 99 dogfood log entry
1526e155 Merge pull request #270 from cathalos92/feat/task-612
6a665249 Merge pull request #269 from cathalos92/feat/task-576
d8201e1b Merge pull request #268 from cathalos92/feat/task-616
49782af3 Merge pull request #267 from cathalos92/feat/task-615
6e26970c feat(task-612): Dogfood log action pipeline — surface recurring friction as candidate backlog tasks during strategy review
3d325d71 feat(task-612): strengthen dogfood friction→task conversion pipeline
c5afc454 feat(task-576): write-read round-trip audit — map all data flows
9ee9dfb3 feat(task-616): add hierarchy_update MCP tool for stage/horizon status
305e64c0 feat(task-615): auto-propagate phase status on task status changes
9df0f726 Merge pull request #266 from cathalos92/feat/task-601
57a07d51 Merge pull request #265 from cathalos92/feat/task-599
f7e25671 Merge pull request #262 from cathalos92/feat/task-610
0a1bb38d feat(task-601): add PAPI verification skill — structured cycle health check
6b774bf7 feat(task-599): add PAPI lifecycle hooks — context recovery, plan guard, release reminder
6726d935 feat(task-610): consolidate Strategy page — 5 tabs to 3
eb22a322 chore: append dogfood log entry for cycles 93-97
17de9b5c feat(task-607): analytics page overhaul — metric explanations, chart cleanup, tab rename
eeed3848 Merge pull request #260 from cathalos92/feat/task-609
da45cd39 Merge pull request #259 from cathalos92/feat/task-606
8a73ee63 Merge pull request #258 from cathalos92/feat/task-605
f17f62b2 Merge pull request #257 from cathalos92/feat/task-608
84443e40 feat(task-609): add dates alongside cycle numbers, rename Lineage to Decision History
1359cee3 feat(task-606): replace MCP command names with human-readable text
93d96185 feat(task-605): add project identity header to cockpit
fbce139a feat(task-608): remove /brain page, redirect to /analytics, fix hardcoded slug
2531d3e8 Merge pull request #256 from cathalos92/feat/task-581
aecd6c63 feat(task-581): Dashboard audit from external user perspective — "sales tool" review
7d5f1746 Merge pull request #255 from cathalos92/feat/task-580
1f481c1e feat(task-580): Landing page full redesign — 11 sections to 7, community-first
db14a04d feat(task-580): Landing page rewrite — update v4 spec for post-research reality
ff9ce42b Merge pull request #254 from cathalos92/feat/task-571
36448dcf feat(task-571): FAQ page — 10 essential questions for evaluating PAPI
39046810 Merge pull request #253 from cathalos92/feat/task-570
aab38107 feat(task-570): Architecture overview — one-page what-runs-where diagram
f705de82 Merge pull request #252 from cathalos92/feat/task-604
36371763 feat(task-604): Build proof-of-concept PAPI plugin — validate plugin distribution end-to-end
3bff9d2f Merge pull request #251 from cathalos92/feat/task-590
a7ea3203 Merge pull request #250 from cathalos92/feat/task-598
76dc4ffc Merge pull request #249 from cathalos92/feat/task-597
c8faf70b Merge pull request #248 from cathalos92/feat/task-596
924e6f17 Merge pull request #247 from cathalos92/feat/task-600
72870f08 feat(task-590): Research: PAPI as Claude Code plugin — single-command installation
a11a34af feat(task-598): Add gotchas section to alpha tester guide — 95 cycles of learned failure modes
a8998dcb feat(task-597): Harden .claude/settings.json for external users — pre-approve PAPI workflow permissions
15b71de0 feat(task-596): Split CLAUDE.md under 200 lines — monorepo-aware structure
908f9be5 feat(task-600): Audit all PAPI skill descriptions — rewrite as trigger conditions, not summaries
28d3907a Merge pull request #246 from cathalos92/feat/task-573
62a6b32c Merge pull request #245 from cathalos92/feat/task-568
03785f4d Merge pull request #244 from cathalos92/feat/task-569
1ba7de0e Merge pull request #243 from cathalos92/feat/task-589
160f4026 Merge pull request #242 from cathalos92/feat/task-588
6bd35884 feat(task-573): MCP Registry listing — register PAPI on modelcontextprotocol.io
6d16079d feat(task-568): 5-minute quickstart guide for external users
33eac45f feat(task-569): MCP tool reference page — what each tool does, inputs, outputs
ca0479d6 feat(task-589): Add "Run setup first" guard to orient and plan when project doesn't exist in DB
de6ffbf5 feat(task-588): Update init.ts to generate npx-based .mcp.json config instead of hardcoded node path
701a1ef3 chore: add untracked research doc
7122ab26 Merge pull request #241 from cathalos92/feat/task-567
65a2d48b Merge pull request #240 from cathalos92/feat/task-566
36688190 Merge pull request #239 from cathalos92/feat/task-565
c6322ffa Merge pull request #238 from cathalos92/feat/task-562
72eacf3c Merge pull request #237 from cathalos92/feat/task-564
20dc480d feat(task-567): Fresh alpha readiness audit (Cycle 29 audit is stale)
abb9c92a feat(task-566): Example project brief template for new users
dd7079dd feat(task-565): Public README rewrite with Taskmaster-benchmark structure
9d18215b feat(task-562): Create llms-install.md — AI-readable install guide
3b74d568 feat(task-564): One-command Claude Code install — verify and document npx path
18a7e60f Merge pull request #236 from cathalos92/feat/task-561
d4a2cf31 Merge pull request #235 from cathalos92/feat/task-563
3997f3b8 Merge pull request #234 from cathalos92/feat/task-585
a56bad94 Merge pull request #233 from cathalos92/feat/task-586
d638b99e feat(task-561): License decision and LICENSE files for all packages
ab0391a1 feat(task-563): Ship .env.example with placeholder values for all packages
baa69522 feat(task-585): Validate DATABASE_URL on first tool call — surface clear error instead of silent degraded mode
3f2a6c90 feat(task-586): Auto-add .mcp.json to .gitignore during init — contains credentials
a287f66a Merge pull request #232 from cathalos92/feat/task-583
00271558 Merge pull request #231 from cathalos92/feat/task-538
f1c0707b Merge pull request #230 from cathalos92/feat/task-584
c83df218 Merge pull request #229 from cathalos92/feat/task-560
8e18dd76 feat(task-583): new project smoke test — friction audit and checklist
129cbf30 feat(task-538): dogfood pipeline — strategy reviews write observations to DB
ce7b0199 feat(task-584): deprioritise preserves BUILD HANDOFF, only defer clears it
443066f3 fix(task-560): fix 3 pre-existing server test failures
7d2093aa docs: update competitive landscape + add strategic research, recommendation chart
2e7a3a68 Merge pull request #228 from cathalos92/feat/task-537
e7b14b9f Merge pull request #227 from cathalos92/feat/task-556
5fb30aa3 feat(task-537): add existing project adoption flow to setup
e6e9c451 feat(task-556): add one-line pitch, elevator description, and tagline
78f64703 Merge pull request #226 from cathalos92/feat/task-559
1546a0bb Merge pull request #225 from cathalos92/feat/task-558
1c0b2929 Merge pull request #224 from cathalos92/feat/task-557
9e863cb2 Merge pull request #223 from cathalos92/feat/task-555
8c1c89af feat(task-559): Strategy review action items — structured output with follow-through gate before plan
949a605b feat(task-558): Create PAPI positioning doc — consolidate scattered messaging into single artifact for S3 completion
c1447b27 feat(task-557): Remove dead code — CycleHeader.tsx, ActiveCycleTasks component, brain.json file fallback handler
c15709e8 feat(task-555): Idea tool auto-routing silently swallows ideas into Discovery Canvas instead of backlog — revert to always create task
b0a4e47f fix: build @papi-ai/shared before next build for Vercel
f770543f fix: AD cards — collapsible with markdown rendering, strip HTML comments
e4d6160d Merge pull request #222 from cathalos92/feat/task-490
c100df89 Merge pull request #221 from cathalos92/feat/task-551
d6229331 Merge pull request #220 from cathalos92/feat/task-549
97932df5 Merge pull request #219 from cathalos92/feat/task-266
55b771f2 Merge pull request #218 from cathalos92/feat/task-540
f2cd8b61 feat(task-490): Idea tool smart routing — classify discovery context vs backlog tasks
f8ceebfd feat(task-551): Standard doc management system generated by papi setup
e38253b9 feat(task-549): Review feedback loop — wire v_recommendation_effectiveness to track if strategy recs were followed
a9654ce8 feat(task-266): Real-time dashboard updates via Supabase Realtime
c2e343ac feat(task-540): Dead ends field in build reports — track failed approaches to prevent repeat blind alleys
71559bd3 Merge pull request #217 from cathalos92/feat/task-550
abde9e09 feat(task-550): Dashboard design audit — comprehensive UX/visual pass using frontend-design skill
868c4720 fix: cockpit re-fetches on papi-refresh events
50c9475c Merge pull request #216 from cathalos92/feat/task-487
79f8c156 Merge pull request #215 from cathalos92/feat/task-470
790b964d Merge pull request #214 from cathalos92/feat/task-539
4989ae1f feat(task-487): Phase/horizon timeline band — clean up phase data and add visual roadmap band above project timeline bars
b58c2d57 fix: cycle assignment + In Cycle status for planned tasks
ba3dcaf9 feat(task-470): Add optimistic UI for status changes, saves, and comment posts
468a502b feat(task-539): Setup smoothness audit — test and polish the install-to-first-orient flow end-to-end
d9508402 Merge pull request #213 from cathalos92/feat/task-528
092de9ff Merge pull request #212 from cathalos92/feat/task-531
55210d34 Merge pull request #211 from cathalos92/feat/task-546
a5a96a17 Merge pull request #210 from cathalos92/feat/task-545
0c9791f3 feat(task-528): Taxonomy migration Batch D2: Dashboard roadmap — restructure for Horizon→Stage→Phase hierarchy with management UI
94cdcde9 feat(task-531): Setup/init flow update — support new Horizon→Stage→Phase hierarchy for new PAPI projects
58097ef1 feat(task-546): Taxonomy migration: DB schema + code rename — sprint to cycle across tables, columns, and TypeScript
53f02c92 feat(task-545): Graceful fallback if getPlanContextSummary() fails — dead code path in plan service
7135c033 fix: cockpit dashboard polish — compact board, strategy layout, typography
08e84fa4 Merge pull request #209 from cathalos92/feat/task-536
a914b841 Merge pull request #208 from cathalos92/feat/task-256
879b95bb Merge pull request #207 from cathalos92/feat/task-543
ed8176d3 feat(task-536): Dashboard consolidation — cockpit as central hub with embedded kanban and project timeline
a60c9c23 feat(task-256): NorthStar supersede indicator — show previous/replaced NorthStar on dashboard
ce071519 feat(task-543): Remove file fallback readers from data-provider.ts — dead code when Supabase active
af7bd014 feat: populate AD-14 hierarchy and wire read/write paths
28fe462d Merge pull request #205 from cathalos92/feat/task-548
d831a2dd feat(task-544): time-window strategy_review board read — filter to last N cycles
4eaa39f0 feat(task-548): Estimation calibration by task type — wire v_estimation_accuracy into planner context
4a3ae232 Merge pull request #206 from cathalos92/feat/task-541
6c335177 Merge pull request #204 from cathalos92/feat/task-547
bfa1a7b4 feat(task-541): Connect orphaned DB views to dashboard and health tool — 7 pre-built analytics views unused
38e98190 feat(task-547): North Star drift detection — flag when North Star hasn't been validated in 10+ cycles
53dfe7cb fix: guard briefImplications with Array.isArray before .map()
f4b3636b Merge pull request #203 from cathalos92/feat/task-535
89dcb9d3 Merge pull request #202 from cathalos92/feat/task-534
4fb257f5 Merge pull request #201 from cathalos92/feat/task-533
4f371785 feat(task-535): Fix strategy review rendering on dashboard
9895b8c6 feat(task-534): Taxonomy migration: Coordinated 'In Sprint'→'In Cycle' status rename across packages/shared, MCP server, and adapter-pg
a51c340b feat(task-533): Taxonomy migration: Rename brain data types (SprintIntelligence, BrainData.sprints, ReviewSummary.bySprint) to cycle terminology
40a83a1b chore: sync status brief after cycle 80 builds
35d23d8e Merge pull request #200 from cathalos92/feat/task-529
624edfad feat(task-529): Taxonomy migration Batch E: Documentation — rename Sprint→Cycle in all docs, templates, and domain model
ee144634 Merge pull request #199 from cathalos92/feat/task-527
166eae48 fix(task-527): review fixes — missed GroupMode enum, URL params, CSS class, DataPoint renames
c977f498 feat(task-527): Taxonomy migration Batch D: Dashboard — rename Sprint→Cycle in all components, labels, API routes, and chart titles
1c0a9940 Merge pull request #198 from cathalos92/feat/task-525
397daf47 feat(task-525): Taxonomy migration Batch B2: MCP services — update plan, strategy, orient, health, build, review, release services for cycle/hierarchy
2e7a58bc Merge pull request #197 from cathalos92/feat/task-524
ee05aa7b Merge pull request #196 from cathalos92/feat/task-530
f4229f01 feat: rewrite prompts.ts with cycle/hierarchy taxonomy (AD-14)
f7b36520 feat: deprecate Feature entity (AD-23) — subsumed by Phase in AD-14 taxonomy
794eab76 fix: orient shows orphaned sprint tasks after release
6fefdbf9 Merge pull request #195 from cathalos92/feat/task-523
5df54816 Merge pull request #194 from cathalos92/feat/task-522
cbfe1797 Merge pull request #193 from cathalos92/feat/task-521
e34128aa feat(task-523): pg adapter — cycle/horizon/stage support
e6390314 Merge branch 'feat/task-521' into feat/task-523
a2ca9ea9 feat(task-522): taxonomy types — Horizon/Stage/Cycle interfaces and aliases
3d8b3082 feat(task-521): taxonomy migration Batch A — DB schema foundation
b9b413d1 docs: add mermaid diagrams to hierarchy taxonomy research
1ab0ec6d Merge pull request #192 from cathalos92/feat/task-520
5203e800 Merge pull request #191 from cathalos92/feat/task-519
c30a755e feat(task-520): document Builder/Owner/Client user journeys for discovery canvas
0c52d56e feat(orient): reframe velocity metrics as sprint sizing input
2f473319 Merge pull request #190 from cathalos92/feat/task-495
7f02aceb fix(orient): show sprint-assigned tasks separately from backlog handoffs
de05212e feat(task-495): Research: Project hierarchy taxonomy — define clean model for phases/horizons/epics/milestones
ad96d8ac Merge pull request #189 from cathalos92/feat/task-433
4da594db fix(task-433): separate lifecycle from orient — show in health only
028c1a72 feat(task-433): wire AD lifecycle tracking — outcome, revision count, lifecycle summary
07068262 fix: product brief update triggers — decision-driven, not age-based
031b812b fix(task-294): rewrite research doc with verified findings
d7c28adf Merge pull request #188 from cathalos92/feat/task-294
d0a06d46 Merge pull request #186 from cathalos92/feat/task-517
f1b64835 feat(task-294): research v2 retrospective learnings applicable to v1
8a88a95f feat(task-517): add minimum effort-point floor to prevent deflationary sprint sizing
bc2fc760 Merge pull request #185 from cathalos92/feat/task-513
743f5595 Merge pull request #184 from cathalos92/feat/task-514
ce9f9c10 Merge pull request #183 from cathalos92/feat/task-515
4950be26 Merge pull request #182 from cathalos92/feat/task-516
398084d4 feat(task-513): bootstrap planner generates handoffs for all tasks + setup commit hint
cda34ede feat(task-514): add UI task detection guidance to planner prompt
5001671a feat(task-515): always create feature branches from main, not sibling branches
6ada2f6a feat(task-516): add process rules section to exported CLAUDE.md template
9ed48f96 fix: gate file fallbacks to local project only + update alpha tester docs
a7606abc Merge pull request #181 from cathalos92/feat/task-512
b456312c Merge pull request #180 from cathalos92/feat/task-474
a835a127 Merge pull request #179 from cathalos92/feat/task-504
4221b837 feat: planner sprint sizing uses effort points as primary signal
8ef74be7 feat: add breadcrumbs to Analytics and Strategy sub-tab pages
e0c9b098 feat: deprecate .papi/ file fallback for pg adapter users
1131186c feat: rewrite landing page with v4 spec — fresh window hero, dashboard showcase, competitive positioning
72222afc Merge pull request #178 from cathalos92/feat/task-493
62e5abc2 feat: add brief_implications field to build reports for upstream discovery feed
b0eb16b9 Merge pull request #177 from cathalos92/feat/task-511
4ea2b1f8 Merge pull request #176 from cathalos92/feat/task-510
4397d062 fix: phase status shows "In Progress" when Done + Backlog tasks exist
09e0eb90 fix: add handoff_accuracy read-back to BuildReportRow
d306b182 docs: add frontmatter to docs, REFERENCE DOCS to prompts, doc references in CLAUDE.md
32e89d6c docs: Sprint 71 dogfood log entry
28795c01 Merge pull request #175 from cathalos92/feat/task-261
2aa150c5 Merge pull request #174 from cathalos92/feat/task-492
38a0ddbb Merge pull request #173 from cathalos92/feat/task-502
ad2da795 feat: add capture mode to strategy_change for lightweight decision persistence
179029eb feat: add discovery gaps step to planner + include canvas in full path context
48f0c436 fix: update carry_forward after strategy_review to prevent stale "review due" text
79f53c4f docs: add INDEX.md and landing page v4 spec from previous session
003bc7a2 docs: Sprint 70 dogfood log entry
3949c6c6 fix: add Insights section to orient + update CLAUDE.md for orient usage
001f4737 Merge pull request #172 from cathalos92/feat/task-508
3d0a3f69 Merge pull request #171 from cathalos92/feat/task-501
e960012c Merge pull request #170 from cathalos92/feat/task-491
9fce10ef feat(task-508): corrections_count on build reports — capture informal pushback
f443294c feat(task-501): combined orient MCP tool — merges build_list + health into single call
e38241f6 feat(task-491): strategy review as adaptive engine — discovery canvas audit, phase staleness, structural staleness
26dd4056 Merge pull request #168 from cathalos92/feat/task-507
5660d884 feat(task-507): prompt quality feedback loop — task transitions + handoff accuracy
408aa85a Merge pull request #169 from cathalos92/feat/task-489
600750f0 Merge pull request #167 from cathalos92/feat/task-506
31e67ae1 Merge pull request #166 from cathalos92/feat/task-505
fa3a4112 feat(task-489): discovery canvas — progressive product brief sections
a3808808 feat(task-506): review accept/reject from dashboard
0c41d274 feat(task-505): dashboard CRUD gaps — task creation, sprint flagging, phase management
c16e77d1 docs: add strategic decision detection to CLAUDE.md
9afae5a0 docs: add session management guidance to CLAUDE.md
f6556498 Merge pull request #165 from cathalos92/feat/task-413
fbf6ad91 Merge pull request #164 from cathalos92/feat/task-500
3abfba56 Merge pull request #163 from cathalos92/feat/task-418
565a2bf9 feat(task-413): Setup pre-flight checks — validate Supabase, env vars, MCP server before user hits a wall
ceaacf63 feat(task-500): Add "In Sprint" status stage — tasks transition from Backlog → In Sprint when plan assigns them, before In Progress
fed24f05 fix: align SDK versions and remove redundant type casts
ed5280bf feat(task-418): Intelligence layer — proxy architecture for server-side LLM calls
ab3c7778 docs: update CLAUDE.md to skip unnecessary health calls at session start
9e8975cb Merge pull request #162 from cathalos92/feat/task-496
bcd27b2a Merge pull request #161 from cathalos92/feat/task-468
85ce14c4 Merge pull request #160 from cathalos92/feat/task-467
c39c73a5 Merge pull request #159 from cathalos92/feat/task-466
58452e63 Merge pull request #158 from cathalos92/feat/task-465
72a92ecb feat(task-496): dashboard task search — filter by title or ID
6bcc2acf fix(task-468): confirmation dialog for terminal status transitions
9fb971eb fix(task-467): colour-blind safe status indicators in KanbanColumn
43c2613e feat(task-466): Make table rows keyboard-accessible and fix touch target sizes
30524d63 fix(task-466): keyboard-accessible table rows + WCAG touch targets
c0ab27b6 fix(task-465): add focus trap to sidebar panel and fix ARIA roles
f19b39c6 Merge pull request #157 from cathalos92/feat/task-497
1f14ee94 Merge pull request #156 from cathalos92/feat/task-464
4a4591ea Merge pull request #155 from cathalos92/feat/task-463
54c7b23b Merge pull request #154 from cathalos92/feat/task-499
964fb5b4 Merge pull request #153 from cathalos92/feat/task-498
23be0060 feat(task-497): server-side auto-release after all sprint tasks reviewed
a1050d99 fix(task-464): fix muted text and P2 badge contrast for WCAG AA compliance
047e5a3e fix(task-463): login form accessibility — add labels, restore focus rings
7c655083 feat(task-499): redesign ProjectTrajectory with structured strategy review sections
61d4875a feat(task-498): store full structured strategy review in DB as queryable JSONB
9c291432 fix: persist full strategy review analysis to DB — stop losing 90% of review output
814f3f0a fix(dashboard): ProjectTrajectory UX improvements from feedback
06d19030 Merge pull request #152 from cathalos92/feat/task-479
67d22c41 feat(task-479): Cockpit redesign: Lower section — ProjectTrajectory (strategy review + trends) + enhanced backlog + tasks table
c235fd2a chore: update CLAUDE.md auto-release rule + add status brief docs
a7440f2a Merge pull request #151 from cathalos92/feat/task-462
d5a919f2 merge: resolve conflict — keep skeleton import + local state filter from main
6fc07fd1 Merge pull request #150 from cathalos92/feat/task-471
f9b601c3 feat(task-462): Add skeleton screens for progressive loading
56f9031c feat(task-471): Board sprint filter uses local state for instant filtering
7f822de0 Merge feat/task-478: Project Timeline component for cockpit
9d10fddf fix(task-478): polish ProjectTimeline — remove top numbers, single bar, date spans, strategy separators, y-axis label
12b0185d feat(task-478): Cockpit redesign: Sprint Progress Bar + Timeline redesign — effort-weighted progress, date axis, strategy markers
e3312fd6 Merge pull request #148 from cathalos92/feat/task-477
440c5173 Merge pull request #147 from cathalos92/feat/task-486
f1bb0f33 Merge pull request #146 from cathalos92/feat/task-476
79a080f2 Merge pull request #144 from cathalos92/feat/task-484
60bb9c88 refactor: rebuild cockpit HUD — dense 3-row layout replaces CycleRing + separate ActionBar
c2805f54 feat(task-477): Cockpit redesign: Command Header + Action Bar — hero section with narrative, sparklines, merged alerts
9f417236 feat(task-486): Strategy review write-back should propagate insights into ADs and product brief
5a4b5014 feat(task-476): Server guard: block plan if In Review tasks older than 2 sprints exist
9d7a92b9 feat(task-484): Fix pre-existing test failures — git.test.ts timeout assertion + 5 workspace resolution failures
da56b077 fix: extract formatPreviousReviews helper + wire previous reviews into strategy_change context
3fd36ec7 fix: strategy review board filter preserves review-window learnings + build_list health resilience
5de9666f feat(task-482): npm publish Batch 3: Docs + registry + publish — READMEs, npm org, server README update, actual npm publish (#143)
87f1d0ff feat(task-452): Bug: Session start doesn't detect new/empty project — should auto-run setup instead of build_list (#141)
224f1cb5 feat(task-483): Strategy review context optimization — reduce 176K chars to actionable summary with selective assembly (#140)
1dcce19b feat(task-481): npm publish Batch 2: Build + bundle — disable tsup splitting, verify single-file output, test npm pack (#139)
a9762646 feat(task-480): npm publish Batch 1: Package hygiene — fix dependency graph, version ranges, LICENSE file (#138)
13b9da5a refactor: rename npm scope from @papi to @papi-ai across all packages (#142)
7bac0ee2 fix: portfolio shows per-project stats + live site URL
5488984a Merge pull request #137 from cathalos92/feat/task-473
4b56e3bb Merge pull request #136 from cathalos92/feat/task-472
711bff1f Merge pull request #135 from cathalos92/feat/task-460
9f1f9b43 Merge pull request #134 from cathalos92/feat/task-459
80b992a5 Merge pull request #133 from cathalos92/feat/task-461
94066879 feat(task-473): fix copy inconsistencies across dashboard
7bb2f115 feat(task-472): add h1 to Cockpit and move NeedsAttention above metrics
9fd47f65 feat(task-460): fix Cockpit silent catch — show error state on failure
c3112719 feat(task-459): add error.tsx route-level boundaries for all pages
1e0c45bb feat(task-461): reusable ErrorState component replacing 11 ad-hoc error divs
7f83b3e6 fix: release tool auto-pushes branch and tag to remote
a972b260 Merge pull request #130 from cathalos92/feat/task-454
b33da503 merge: resolve conflict with main after task-457 merge
e44abd16 Merge pull request #132 from cathalos92/feat/task-458
1971801c Merge pull request #131 from cathalos92/feat/task-456
fedec66c Merge pull request #129 from cathalos92/feat/task-457
cf51250a Merge pull request #128 from cathalos92/feat/task-455
a86b6676 feat(task-458): skip .papi/ writes in pg mode and exclude from clean-tree check
7994375c feat(task-456): ad_hoc accepts task_id to complete existing tasks
d82c54c1 feat(task-454): Bug: Feature branch divergence — build_execute branches from main, missing prior same-sprint task work
c36f8025 feat(task-454): branch from latest same-sprint feature branch
6a2a7522 feat(task-457): decouple release DB update from git ops
f8306b59 feat(task-455): batch planWriteBack DB operations to eliminate sequential round-trips
fb9b2576 fix: show next sprint number in plan prepare header
0714e736 fix: resolve display IDs to UUIDs for sprints.task_ids column
cc39eecc Merge pull request #124 from cathalos92/feat/task-451
fd17982d Merge pull request #123 from cathalos92/feat/task-450
c6b0d79c Merge pull request #125 from cathalos92/feat/task-449
0bc16e76 Merge pull request #127 from cathalos92/feat/task-448
da376e71 Merge pull request #126 from cathalos92/feat/task-437
21a59007 fix(task-450): fix health tool reviewOverdue — use reviewGateBlocking variable
c1e9bd92 fix: build_list now shows current sprint number from DB
9a708edf fix: atomic plan writeBack — single DB transaction replaces 35-50 individual writes
87322ff8 feat(task-448): wire task comments into planner context
1ca1b0e3 feat(task-437): SSE real-time layer for interactive dashboard
3006e26f feat(task-449): toast notification system for all dashboard write operations
4021218d feat(task-451): interactive board UX polish — prominent actions, better card hierarchy
c0e0df72 fix(task-450): fix health tool reviewOverdue runtime error — use reviewGateBlocking
f6003c7a Merge pull request #122 from cathalos92/feat/task-416
b119109d fix(task-416): fix auto-switch race condition — use useEffect watching both tasks and currentSprint
d4e563f3 fix(task-416): auto-switch to All sprints when current sprint is complete
aee71f98 fix(task-416): add task ID to cards, prominent edit button, format JSON handoffs
a46b4bb7 feat(task-416): Interactive board — task status updates + edit mode from dashboard
9c9eff67 Merge pull request #121 from cathalos92/feat/task-417
d3ede6f4 Merge pull request #120 from cathalos92/feat/task-447
c0f81a45 feat(task-417): discussion threads per task — task_comments table + UI
fa0b50b1 feat(task-447): strategy review gate — block plan at 5+ sprint gap instead of advisory
9a9aed34 Merge pull request #119 from cathalos92/feat/task-440
ba430118 Merge pull request #118 from cathalos92/feat/task-430
bd323778 feat(task-440): DB-backed project registry: query projects from Supabase instead of static papi-projects.json
c7d0efb2 feat(task-430): Extract @papi/shared package — single source of truth for types and business rules
98352dd9 Merge pull request #117 from cathalos92/feat/task-439
005adceb Merge pull request #116 from cathalos92/feat/task-444
d100d077 Merge pull request #115 from cathalos92/feat/task-446
b4d65c92 feat(task-439): applyPlan timeout — batch DB writes instead of individual getTask+updateTask per correction
3aa9ba4b feat(task-444): Guard against starting new sprint before current sprint is verified done and released
70e34bc6 feat(task-446): Bug: release tool not writing sprint rows to sprints table — Sprints 56-58 were missing
313d5e98 fix: update strategy review Slack reference from missing skill to MCP integration
a69c4cf9 Merge pull request #114 from cathalos92/feat/task-438
749bdd55 feat(task-438): Separate strategy reviews from sprint logs — own table, own dashboard view, own cadence
9a0b4d56 feat(task-438): Separate strategy reviews from sprint logs — own table, own dashboard view, own cadence
ec2e2f14 Merge pull request #113 from cathalos92/feat/task-431
74d88c3a Merge pull request #112 from cathalos92/feat/task-435
5b1a124b feat(task-431): Decouple strategy review from sprint sessions — flag as available, don't force inline
cdc231c2 feat(task-435): Strategy review prompt upgrade — enforce structured coverage, reduce context bias
a14383f0 perf: skip git sync + autoCommit for pg adapter, bump applyPlan timeout, add writeBack diagnostics
403d98b2 Merge pull request #111 from cathalos92/feat/task-412
7b2f9a15 Merge pull request #110 from cathalos92/feat/task-414
e3d29a9c feat: planner prompt — explicit discovered issues to task pipeline
f37f14b5 feat: data mutator layer + action API routes for dashboard writes
21f420d0 feat: shared service layer — task transitions + review validation
d9be38c3 Merge pull request #108 from cathalos92/feat/task-407
344ec9ac feat: plan context optimisation — section hashing + reviews 20→5
333a4720 Merge pull request #107 from cathalos92/feat/task-429
b6eb9919 fix: truncate notes field to 2000 chars in idea/bug/ad-hoc tools
8b4e9d40 perf: increase pg adapter connection pool from 1 to 5
d80a9fe7 perf: reduce plan apply DB queries — remove metrics snapshot, context util, add 60s timeout
2b52e15e perf: reduce MCP server DB queries — remove metrics write-back, slim health
fff1f81c Merge pull request #106 from cathalos92/feat/task-410
d47f916f Merge pull request #105 from cathalos92/feat/task-404
d632b2fe Merge pull request #104 from cathalos92/feat/task-405
3c67f6ee Merge pull request #103 from cathalos92/feat/task-409
da430dc1 Merge pull request #102 from cathalos92/feat/task-408
b09260a0 feat: surface data fetch errors instead of silently swallowing them
31201284 feat: task type system with context-tier filtering for plan
cace555a feat: replace Sprint Timeline pill scroller with Recharts area chart
4e8e3a79 fix: papi-reader tests — create fixture .papi/ directory instead of wrong path
41c530fe chore: delete 4 redirect stub pages (/brief, /dashboard, /decisions, /reports)
105859d8 Merge branch 'feat/task-402'
d3053ee7 fix: revert to max:1 connection pool — Supabase ignores custom GUC startup params
9dff0d72 fix(task-402): NextAction expandable tasks, timeline cleanup, cycle ring text clipping
eb3f7f13 Merge pull request #100 from cathalos92/feat/task-401
ecb0cab5 merge: resolve conflict in strategy page — combine ConfidenceBadge import with UiEntityReference
deb461d0 Merge pull request #101 from cathalos92/feat/task-403
5d8e7913 Merge pull request #99 from cathalos92/feat/task-402
c60b5487 feat(task-403): setup as progressive advisory — 3 required fields, defaults for rest
9b76656e feat(task-401): add decision lineage tab to Strategy page
1ae10210 feat(task-402): add continuity surface to Cockpit — next action, active decisions
73776fe1 fix: plan apply crash — connection pool max:5 with per-connection RLS, compact apply response
5a015350 fix: plan performance — parallelize writeBack, guard handoff overwrites, exclude Deferred from context
596a91b7 docs: add Sprint 57 dogfood log entry
7dcec854 Merge pull request #98 from cathalos92/feat/task-280
afdcd734 Merge pull request #97 from cathalos92/feat/task-299
2fb41ce7 Merge pull request #96 from cathalos92/feat/task-400
b0b758ba feat: add entity-references API endpoint for dashboard consumption
76cf7d8a feat: add bug command for reporting bugs as backlog tasks
fe547078 feat: add maturity column to tasks table and pg adapter
757d0dc7 docs: add Sprint 56 dogfood log entry
25e5a6e6 Merge pull request #95 from cathalos92/feat/task-382
119de3b5 Merge pull request #94 from cathalos92/feat/task-389
6944924d Merge pull request #93 from cathalos92/feat/task-367
126993f6 feat: add task maturity pipeline — raw ideas gated from scheduling
03ef4ed8 feat: wire up roadmap features from phase data in plan and strategy writeBack
acacfb26 feat: surface decision scores in health output and strategy page
aae22495 docs: add Sprint 55 dogfood log entry
892b3d0a Merge pull request #92 from cathalos92/feat/task-396
1ec645a9 Merge pull request #91 from cathalos92/feat/task-366
966baef0 Merge pull request #90 from cathalos92/feat/task-370
50acfc42 feat(task-396): add project timeline narrative to Analytics
7cce0f6d feat(task-366): enrich strategy_change with board and velocity context
e457ad2e feat(task-370): expand recommendation classification from 4 to 7 types
8321da49 docs: add Sprint 54 dogfood log entry
df715332 Merge pull request #89 from cathalos92/feat/task-394
df291f84 Merge pull request #88 from cathalos92/feat/task-398
a6a6733b Merge pull request #87 from cathalos92/feat/task-399
9e8f489e Merge pull request #86 from cathalos92/feat/task-397
916e04f9 feat: reports interactivity — expandable cards, fix Sprint 0, newest-first ordering
be22a289 feat: increase minimum text sizes across all dashboard pages
3082e245 feat: add task type metadata to Task schema with board filtering
be7f1a9a chore: delete unused CostChart and ScopeAccuracyChart components
685ccb60 docs: add Sprint 52 dogfood log entry
31783769 Merge pull request #85 from cathalos92/feat/task-393
4e77740f Merge pull request #84 from cathalos92/feat/task-392
d2afaa80 Merge pull request #83 from cathalos92/feat/task-391
353b589f Merge pull request #82 from cathalos92/feat/task-395
85fc3f45 feat(analytics): kill costs, merge accuracy into performance, fix jargon, improve reviews
1332a4db feat(board): proper kanban with In Review column, fixed sprint filter, deferred toggle
b2fe476a feat(cockpit): fix sprint timeline, backlog age, and build insights
69a05f14 feat(dashboard): strategy page fixes — sort decisions, last-updated, inline roadmap expansion
cec5be30 docs: add Sprint 51 dogfood log entry
68b16196 Merge pull request #81 from cathalos92/feat/task-380
1ff08aee Merge pull request #80 from cathalos92/feat/task-384
40b55e6a Merge pull request #79 from cathalos92/feat/task-387
faad25fd feat(server): ship default PAPI skills for external users
dc870626 feat: Dashboard Phase 1b — Analytics + Strategy pages absorb Brain/Reports/Brief/Decisions
7116062a fix: validate phase on task creation — resolve from adapter instead of hardcoding "Unscoped"
27cd4d61 docs: add Sprint 49 dogfood log entry
9cad0901 Merge pull request #78 from cathalos92/feat/task-383
f2085556 Merge pull request #77 from cathalos92/feat/task-371
d9a611c9 Merge pull request #76 from cathalos92/feat/task-379
88fca089 feat: dashboard rethink Phase 1a — Cockpit + Cycle Ring + nav consolidation
cdc700fc feat: soften review language for non-technical users
50b1963f docs: add plan mode guidance to building rules
06d77d36 docs: add Sprint 48 dogfood log entry
c8ca3396 Merge pull request #75 from cathalos92/feat/task-356
e139c712 Merge pull request #74 from cathalos92/feat/task-365
e4f33025 Merge pull request #73 from cathalos92/feat/task-376
05e9b86e Merge pull request #72 from cathalos92/feat/task-375
e1b3e283 feat(task-356): prepare npm packages for publishing
d0c853e4 feat(task-365): add maturity gating to plan prompt
094ec19c fix(task-376): fix methodology trends showing undefined/NaN
811e40f3 fix(task-375): log createSprint failures instead of silently swallowing
fb08ef77 fix(task-375): log createSprint failures instead of silently swallowing
d30827df docs: add Sprint 47 dogfood log entry
a2902269 Merge pull request #71 from cathalos92/feat/task-368
439591c2 feat(task-368): suppress compression directives in strategy review for pg adapter
592de520 Merge pull request #69 from cathalos92/feat/task-363
b53bd957 feat(task-363): add build/review pattern detection to strategy review
0995e9f6 Merge pull request #68 from cathalos92/feat/task-362
653c4017 feat(task-362): add human reviews to strategy review context
8596d1da Merge pull request #70 from cathalos92/feat/task-372
15a95305 Merge pull request #67 from cathalos92/feat/task-361
3b69e887 Merge pull request #66 from cathalos92/feat/task-360
6dc691bb feat(task-372): auto-add mcp__papi__* permission during setup
47e8f83c feat(task-361): inject dogfood log into strategy review context
53b712d4 docs(task-360): document force parameter on strategy_review tool
a3164cff docs: add Sprint 46 dogfood log entry
e763802f Merge pull request #62 from cathalos92/feat/task-373
212206fc merge: resolve conflict between task-373 (strategy_reviews table) and task-358 (notes parsing)
49d494e0 Merge pull request #65 from cathalos92/feat/task-374
f723cc21 Merge pull request #64 from cathalos92/feat/task-345
41ba8c85 Merge pull request #63 from cathalos92/feat/task-369
6aae7b3c Merge pull request #61 from cathalos92/feat/task-359
9e12bdf5 Merge pull request #60 from cathalos92/feat/task-358
60009f0e fix(task-374): fix health metrics NaN by normalizing JSONB and adding build report fallback
c13b44d5 fix(task-345): fix sync script sprint statuses and handoff parsing
6c9880bd feat(task-369): add getSprintLogSince(n) for scoped sprint log fetching
527eec20 feat(task-373): extract strategy reviews into dedicated strategy_reviews table
5dece237 fix(task-358+359): fix boardHealth/strategicDirection reads and strategyReviewDue format on pg adapter
a82209d4 fix(task-358+359): fix boardHealth/strategicDirection reads and strategyReviewDue format on pg adapter
175f180b chore: clean up .claude/settings.json permissions
03366144 chore(task-355): record build-acceptance review
0f6fcacd docs: add Sprint 45 dogfood log entry
0169d2cc Merge pull request #59 from cathalos92/feat/task-342
813f6912 Merge pull request #58 from cathalos92/feat/task-355
9209024b fix: address PR review — card navigation, health status, duplicate fetch
b365f85f feat: add multi-project portfolio page with health metrics
2b48a175 feat: wire sprint_metrics_snapshots, cost_snapshots, sprints into data-provider
7feffe58 fix: release marks sprint complete, build_execute backfills sprint on tasks
8dd8b8e4 docs: add Sprint 43b dogfood log entry
22f6d4e1 Merge pull request #57 from cathalos92/feat/task-344
b72c8136 Merge pull request #56 from cathalos92/feat/task-351
d61705d0 Merge pull request #55 from cathalos92/feat/task-349
b266b730 Merge pull request #54 from cathalos92/feat/task-350
2b73ba00 feat(task-344): Dashboard data integrity audit — fix all stale/broken page data
91557404 feat(task-351): Add architecture health check to strategy review prompt
381becf5 feat(task-349): Onboarding CLAUDE.md should lead with pg adapter setup, not .papi/ files
7ec188f8 feat(task-350): papi init CLI command — one-command MCP setup for new users
b38cfe24 docs: add Sprint 43 dogfood log entry
fd0a5825 Merge pull request #52 from cathalos92/feat/task-281
76378784 merge: resolve conflict with main after task-354/280/347 merges
6fd45ab7 Merge pull request #53 from cathalos92/feat/task-347
948fda84 Merge pull request #51 from cathalos92/feat/task-280
ce74ad60 Merge pull request #50 from cathalos92/feat/task-354
750294c9 feat: add infrastructure connection health checks (task-347)
ef5810bc feat(task-281): Context utilisation metric — measure wasted tokens per tool call
79a17956 feat(task-280): Entity reference tracking — which decisions actually get used
af838ff3 feat(task-354): Dead input audit — find all adapter read calls that silently accept empty results
7d95825d fix: add product_briefs table to Supabase, remove sync footgun from release
963665aa feat: add sprint cycle stress test, fix SPRINT_LOG_TEMPLATE heading
704f7917 chore: remove debug logging from brain-supabase
6d167803 refactor: remove multi-project brain view, papi-ui only
98268356 fix: brain page defaults to papi-ui instead of papi-framework
793d6bf5 fix: brain reviews query uses correct column name, add debug logging
5f46b656 fix: brain handler picks source by max sprint number, not count
cd282b6f fix: compute brain sprint intelligence from build_reports table
40daf5aa fix: wire reports and handoffs to DB-backed data on Vercel
6fc89cbe fix: stringify jsonb build_handoff from DB before UI consumption
8f20941a fix: add Supabase connectivity check to debug endpoint
dc61d1a1 fix: add Supabase URL format validation to catch .com vs .co typos
1e0a8cf8 fix: correct Supabase URL on Vercel (.co not .com), remove debug logging
53c8c39d debug: add temporary logging to getHealth DB path
f2d1e468 fix: dashboard data integrity — env validation, sprint statuses, remove War Room
4962c597 ci: add GitHub Actions build check on PRs
52f45360 fix: make getHealth() DB-first to show current sprint on Vercel
873bd5cb fix: exclude packages/ from root tsconfig to unblock Vercel builds
e31811ff feat: DB-first architecture — remove dual-write, update CLAUDE.md for pg-only reads (#49)
65cc10c4 Merge pull request #48 from cathalos92/feat/task-341
ae67321e feat(task-341): Auto-update task status in build_execute and review_submit — fix chronic board drift
4cec9781 fix: disable review_submit Slack notification to stop per-review spam
bf7ff676 Merge pull request #47 from cathalos92/feat/task-338
f2f3fe63 Merge pull request #46 from cathalos92/feat/task-340
df16b56f Merge pull request #45 from cathalos92/feat/task-339
66f0c315 fix: update 83 failing tests to match two-phase prepare/apply refactor
241a1494 fix(task-340): make adapter-factory pg path resilient to unreachable DB
35ae5365 fix(task-339): fix sync script tsx → npx tsx, remove stale known issues
da72b1e7 Merge pull request #44 from cathalos92/feat/task-162
76b75a4c feat(task-162): add mobile layout support for screens below 768px
b3457c0d Merge pull request #43 from cathalos92/feat/task-337
64cf6108 feat(task-337): resume dogfood logging and wire into strategy review context
881e235e Merge pull request #42 from cathalos92/feat/task-325
f61735e3 feat(task-325): add Windows/WSL compatibility docs and platform guard
b5eb02a8 Merge pull request #41 from cathalos92/feat/task-272
cec72280 feat: add auto-registration for new projects in adapter-factory
392c6144 feat: add project_id filtering to dashboard queries and fix import-layer types
1791b2ce Merge pull request #40 from cathalos92/feat/task-271
be6a5a46 feat(task-271): add user_id scoping to all Supabase imports
b295914e Merge pull request #39 from cathalos92/feat/task-166
1b0088d9 feat(task-166): add onboarding empty states to dashboard sections
fd2df6eb perf: skip BUILD HANDOFF regeneration for tasks that already have one
0b603fcf chore: remove AD-9 (legacy Go API write path) and defer intelligence tasks
e78fbb86 fix: strategy review due check uses title ILIKE instead of content LIKE
0d3d5938 Merge pull request #38 from cathalos92/feat/task-335
8f1e45f7 chore: resolve merge conflict — include both SprintPerformanceCharts and ScopeAccuracyChart imports
de2a784b Merge pull request #37 from cathalos92/feat/task-256
306c47a8 Merge pull request #36 from cathalos92/feat/task-259
e16705a4 Merge pull request #35 from cathalos92/feat/task-258
8c386fa8 feat(task-335): add Sprint Performance Analytics tab to reports
90416c27 feat(task-256): add NorthStar supersede indicator to dashboard
955a5f93 feat(task-259): add scope accuracy trend chart to reports
0a915d4f feat(task-258): add compact metrics summary panel to main dashboard
371980b5 chore: cancel task-270 (no cost data), swap in task-256 with BUILD HANDOFF for Sprint 40
c57d7de1 Merge pull request #34 from cathalos92/feat/task-306
a6384243 Merge pull request #33 from cathalos92/feat/task-246
3da5006a Merge pull request #32 from cathalos92/feat/task-311
c802e7b6 Merge pull request #31 from cathalos92/feat/task-322
6fb6f795 feat(task-306): define CLAUDE.md vs prompts.ts vs server guard boundary
9aafda0c feat(task-246): add derived metrics — throughput trend, backlog health, estimation bias
b91187a7 feat(task-311): track plan context size as a metric
38e4be39 feat(task-322): implement markdown persistence for decision events and scores
196cd443 Merge pull request #30 from cathalos92/feat/task-305
7b674321 chore: resolve merge conflict — include both ad_hoc and board_reconcile tools
34b493bf Merge pull request #29 from cathalos92/feat/task-324
09a81014 Merge pull request #28 from cathalos92/feat/task-300
f73be676 Merge pull request #27 from cathalos92/feat/task-301
cb2a6d94 feat(task-305): add board_reconcile MCP tool for backlog cleanup
37cae18a feat(task-324): add ad_hoc MCP tool for out-of-cycle work tracking
2f59a2c1 feat(task-300): redesign health output for glanceable orientation
10ac9c22 fix(task-301): add notify param to review_submit to prevent Slack spam
d4691862 papi: Sprint 38 plan — Full
9cadc367 feat(perf): plan performance — instrumentation, parallelization, SQL function (task-328/329/330)
7ee52e41 chore: add 3 plan performance ideas to backlog (task-328/329/330)
e23f6b2a fix(adapter-pg): add connection timeouts to prevent MCP tool hangs
19c4c124 Merge pull request #26 from cathalos92/feat/task-319
70504e37 Merge pull request #25 from cathalos92/feat/task-326
ba1018c3 feat(task-319): standalone alpha setup with DB isolation
c177328e feat(task-319): audit alpha install path, evaluate npm publish
4bac0af2 feat(task-326): add Deferred task status for backlog management
7a341490 Merge pull request #22 from cathalos92/feat/task-323
53e7596a Merge pull request #21 from cathalos92/feat/task-320
9e1f854b docs: update alpha docs with clone-first, adapter choice, troubleshooting
b0426855 docs: update alpha docs with clone-first, adapter choice, troubleshooting
2d9c161c fix: suppress DB sync messaging in release for adapter-md users
af9a0845 chore: add DB sync instructions to CLAUDE.md and fix release.ts auto-sync
d2666233 chore: mark task-269 and task-303 as Done on sprint board
5fd04cf1 feat: decision scoring & event telemetry layer (AD-10)
cf68ea39 Merge pull request #19 from cathalos92/feat/task-269
17903601 Merge pull request #18 from cathalos92/feat/task-303
626b64a8 Merge pull request #17 from cathalos92/feat/task-315
d9f56f17 Merge pull request #16 from cathalos92/feat/task-314
a57e82a2 Merge pull request #15 from cathalos92/feat/task-316
82d3af15 feat(task-269): context-aware markdown rendering for task notes
8c8a749a fix(task-303): exclude Backlog tasks from sprint view filters
b3f6e8eb feat(task-315): auto-sync DB after release via dashboard import API
55decbc3 feat(task-314): add DB vs markdown sprint drift detection to housekeeping
670aae9d feat(task-316): read SPRINT_LOG.md in import layer to close sprint history gap
f29972be fix(adapter-pg): re-apply jsonb serialization fixes after merge
81682fdc Merge pull request #14 from cathalos92/feat/task-288
e3067b83 Merge pull request #13 from cathalos92/feat/task-290
b54f0cc6 test(adapter-pg): add integration test for getPlanContextSummary
606751d0 fix: adapter-pg table name bugs + decision guardrails
a08d38da papi: Sprint 25 plan — Full
v0.33.0-alpha March 11, 2026
0d38bec5 docs: add decision guardrails to alpha tester CLAUDE.md
31638316 chore(task-313): record build-acceptance review
7eac5c6d chore(task-312): record build-acceptance review
b5781f9e feat(plan): expand brief cap to include proven/unproven sections
v0.32.0-alpha March 11, 2026
c0b0c008 Merge pull request #12 from cathalos92/feat/sprint-32-context-opt
204a262f fix: address PR review findings — null safety and clarity comment
d23c0829 feat(task-313): Plan context via SQL queries — aggregated intelligence instead of raw markdown
1b700c22 feat(task-312): Lean plan formatter — strip handoffs and cap brief in plan context assembly
30782cc9 feat(plan): add lean SQL plan context path for adapter-pg (task-313)
4f26ff37 feat(plan): strip heavy fields and cap product brief in plan context (task-312)
150e087d idea: task-313 — Plan context via SQL queries — aggregated intelligence instead of raw markdown
0b27ca71 idea: task-312 — Lean plan formatter — strip handoffs and cap brief in plan context assembly
7adc39a2 idea: task-311 — Track plan context size as a metric over time — log bytes per plan call, surface trend on dashboard, detect regressions
aacc6216 papi: Sprint 32 plan — Full
490d91b6 Merge pull request #11 from cathalos92/chore/branching-convention
2ccd3cd7 docs: add branching & PR convention to CLAUDE.md and alpha tester instructions
3a4fc6cd Merge pull request #10 from cathalos92/chore/add-pr-reviewer-skill
e54126b5 chore: add pr-reviewer skill from SpillwaveSolutions
c2ed86be Merge pull request #9 from cathalos92/fix/plumbing-autonomy-docs
13a4edb3 docs: add plumbing-is-autonomous guidance to CLAUDE.md and alpha tester instructions
52acc3c8 Merge pull request #8 from cathalos92/fix/sprint-31-housekeeping
16c10aeb fix: mark Sprint 31 tasks as Done — fix orphaned board statuses
8bdbc85d Merge feat/task-310: API-to-local cleanup — remove all legacy API paths
ee3f2e63 refactor(task-310): remove all legacy API paths from MCP tools
0ceff298 feat(task-310): convert plan tool to prepare/apply only — remove API call
e11f2146 Merge feat/task-308: tasks 307, 308, 309 (alpha docs batch)
a35e9545 docs(task-309): consolidate alpha onboarding into single canonical guide
86c874b5 feat(task-307): create ALPHA_TESTER_CLAUDE.md for alpha testers
4242031f chore(task-308): remove stale project references from papi-projects.json
188cbda0 papi: Sprint 31 plan — Full
3561c13c docs: fix post-release language — never say ready for next sprint before plan runs
1b15744d docs: auto-release and batch building rules in CLAUDE.md
6030097c chore(task-289): record build-acceptance review
8e603d86 feat(task-289): Dashboard DB-first reads expansion — all entity types (cherry-picked)
3cbea55e chore(task-291): record build-acceptance review
e95ec320 fix: resolve merge conflict in BUILD_REPORTS.md — merge task-291 branch
6507cb9a fix: resolve merge conflicts in BUILD_REPORTS.md and REVIEWS.md — keep both task-302 and task-304 entries
10d73d2f fix: add explicit task status checks to prevent duplicate rebuilds after context compression
5c712d84 chore(task-304): record build-acceptance review
b2b1aa11 feat(task-304): Alpha readiness review — audit gaps, blindspots, and UX parity for external users
7d711d36 docs: clarify idea vs PAPI feedback routing in alpha tester guide
9fee3f5a Merge pull request #7 from cathalos92/feat/task-302
da83c8e0 chore(task-302): record build-acceptance review
37407dd5 feat(task-302): Optimise plan context assembly — filter Done/Cancelled tasks from queryBoard() calls in plan.ts
351a11db fix: trim user guide, fix setup script path, remove stale alpha docs
5888c46e idea: task-306 — Define CLAUDE.md vs prompts boundary — which behaviour rules belong in user-facing CLAUDE.md vs server-side guards vs MCP prompts
83949eee feat(task-291): Map out external user journey — what does a friend need to do step-by-step to get PAPI running on their project?
225e064f fix: remove .mcp.json from tracking, update audit + task reference convention
c1d03d0c feat(task-304): Alpha readiness review — audit gaps, blindspots, and UX parity for external users
80b2e824 docs: add long-term vision to product brief — PAPI as teaching system
4226b2c0 idea: task-305 — Board reconciliation tool — holistic backlog review to group, merge, remove, or adjust stale tasks
fe8f10d2 fix: add action reminder to strategy review output
beff5c43 papi: Sprint 29 plan — Full
8b9e52a3 idea: task-304 — Alpha readiness review — audit gaps, blindspots, and UX parity for external users
8e52da15 Merge pull request #4 from cathalos92/feat/task-297
c6401a89 chore(task-297): record build-acceptance review
e0c614a9 feat(task-297): Audit and update prompts.ts for API-to-local transition
35c1f698 feat(task-297): audit prompts.ts and API call sites for API-to-local transition
6c42e9bd fix: remove stale dependency on cancelled task-292 from task-297
f1f03751 idea: task-303 — BUG: Vercel dashboard shows tasks with status Backlog assigned to sprints — should only show In Progress/In Review/Done tasks in sprint view
5b5f52e1 chore(task-298): record build-acceptance review
49e4d217 Merge pull request #3 from cathalos92/feat/task-298
a90286e3 fix: resolve Vercel build errors — corrupted char and regex flag
f96a0516 fix: remove corrupted UTF-8 character from KanbanBoard.tsx
3754bbed feat(task-298): BUG-3: Complexity normalisation — adapter-pg writes S/M/L, DB expects Small/Medium/Large
b0420b60 fix: normalise complexity and effort values at adapter-pg write boundary
0cd8974e papi: Sprint 28 plan — Full
cac96a6c chore: add .papi/METRICS.md to gitignore
28e86a70 chore: resolve metrics conflict after PR merge
e12a35c4 idea: task-301 — BUG: review_submit Slack notification fires per-review individually — spamming channel with duplicate PAPI Review messages instead of batching or sending once
f3de6c18 Merge pull request #2 from cathalos92/feat/task-296
3230141b chore(task-296): record build-acceptance review
acc1b40d feat(task-296): idea tool fails on feature branches — can't checkout main
f39aa876 fix: idea tool writes to current branch instead of switching to main
0f7d3af8 Merge feat/task-295: board_view pagination, filtering, and summary mode
ce5be02f chore(task-295): record build-acceptance review
8d59a072 feat(task-295): board_view output too large (95.9KB) — needs pagination or filtering
2e5b210d feat: add pagination, status filtering, and summary mode to board_view
eb4a5ae3 chore: add papi-audit skill and update metrics
0b0928ba papi: Sprint 27 plan — Full
279ea8ea chore: add metrics update and docs
1e347554 fix: change default base branch from develop to main
c153e897 idea: task-300 — Health command output should be more readable — cleaner formatting and visual hierarchy
a9674c7a idea: task-299 — Add [bug] command to log bugs to task backlog — bug tasks can be grouped together into a single sprint task
47af6ef4 papi: Sprint 26 plan — Full
f805ff3c feat: convert MCP server to prepare/apply pattern (API-to-local)
5809e20a papi: Sprint 25 plan — Full
14ae9d9a feat: consolidate MCP server source into papi-v1 repo
7b7d441b idea: task-297 — Audit and update prompts.ts for API-to-local transition
af20034f idea: task-296 — idea tool fails on feature branches — can't checkout main
eae98da8 idea: task-295 — board_view output too large (95.9KB) — needs pagination or filtering
49d7db60 docs: rewrite product brief, merge alpha guide into CLAUDE.md
76b39ff8 idea: task-294 — Research: v2 retrospective learnings applicable to v1 — upstream learning, living documents, validation gates
41d0865e idea: task-293 — Research: Streams vs Sprints — evaluate v2 stream-based work model for v1
19abb8d9 idea: task-292 — Research: API-to-local (prepare/apply) — evaluate removing Anthropic API calls from MCP server
f8ff61a1 idea: task-291 — Map out external user journey — what does a friend need to do step-by-step to get PAPI running on their project?
a1cf3dd7 chore: update sprint board, metrics, pitch deck, and setup docs
1f9be0ea idea: task-290 — Cross-project contract enforcement — shared CLAUDE.md context for collaborating Claudes. Two developers using Claude Code on separate repos have zero shared context. Each Claude has different memory about field formats, column constraints, parser expectations, and implementation conventions. This causes data mismatches (e.g. complexity S/M/L vs Small/Medium/Large, AD regex attribute order, displayId vs id). Current AD conflict detection catches decision-level contradictions but misses implementation-level incompatibilities. PAPI should solve this — either via a shared context layer that both Claudes read (cross-repo CLAUDE.md section, shared contract file), or via schema validation at the write boundary (reject non-conforming data before it enters Supabase). This is the same institutional memory gap identified in the memory guide — the product should be the bridge, not the humans.
058df2f6 chore: resolve METRICS.md conflict, keep all Sprint 24 rows
3acc0946 chore: update METRICS.md with Sprint 24 plan and task-287 tool calls
4de0ec76 chore(task-287): record build-acceptance review
1142e129 feat(task-287): MCP adapter-pg architecture docs and test plan for Kieran
ab892664 chore: disable MCP Slack webhook, add strategy review Slack template
99d01eb4 papi: Sprint 24 plan — Full
d288cf61 fix: repair .papi/ data for Supabase migration
8a8d28c7 Add alpha testing docs and setup script
e6988ee1 fix: commit brain.json API handler changes
ac86dc37 Merge branch 'feat/task-284'
b3dc38ba Merge branch 'feat/task-278'
9b7eaf59 Merge branch 'feat/task-277'
675be3f0 feat: add PAPI Brain analytics dashboard
c4e08535 chore(task-284): record build-acceptance review
71a583fa chore(task-278): record build-acceptance review
0108c19e chore(task-277): record build-acceptance review
4e371934 chore(task-282): record build-acceptance review
86859939 feat(task-284): AD: Write path architecture — Go API vs MCP-only vs hybrid
8c5266b8 chore: update PAPI metrics and sprint board
8737bace chore: update PAPI metrics
ddfffeb9 chore: update PAPI metrics
29656594 feat(task-278): Recommendation acceptance tracking — feedback loop for strategy recommendations
93463ad9 feat(task-277): Decision outcome tracking — validated/revised/abandoned lifecycle
6621d8e8 papi: update metrics
f58b0134 chore(task-282): record build-acceptance review
b2884be5 feat(task-282): LLM model metadata — track which model generates each output
6724b192 papi: update metrics from Sprint 23 plan + build
aee2b95c chore(task-276): record build-acceptance review
b33a7782 feat(task-276): Sync script — .papi/ to Supabase import layer
619e4463 docs: architecture connection map, intelligence layer analysis, and Kieran sync brief
a3f7ed2e papi: Sprint 23 plan — Full
08a3c6c3 idea: task-275 — War room acknowledgement UI — accept/reject SharedDecisions per project
f64bd32d idea: task-274 — Heuristic conflict detection — flag AD contradictions between projects on import
e3bbf7f7 idea: task-273 — Activate papi-brain shared layer — sync ADs and NorthStar to shared Supabase tables on import
bd6f85b1 idea: task-272 — Import layer input sanitization — validate and sanitize parsed markdown before Supabase insertion
3585e448 idea: task-271 — Add user_id scoping to all Supabase imports and table writes
3c672585 chore: sprint 22 plan, strategy review, product brief team section
23d2b7bf papi: Sprint 22 plan — Full
66b27055 feat(task-267): Home page complete redesign — PAPI cycle header, sprint task rows with phase/effort/status columns, contextual handoff vs build report, backlog section, needs attention alerts
ad59867a papi: Sprint 21 plan — Full
a61a149a chore(task-265): record build-acceptance review
cad9548c feat(task-265): Bug: PAPI Framework project showing dummy/placeholder data in dashboard
f0965c50 fix(task-265): remove mock data fallback — show empty state when project files unavailable
a9c7e28b chore: align papi-framework slug in projects config
18ae1608 chore: update metrics log
6f1738b8 chore(task-268): record build-acceptance review
a4c6c358 feat(task-268): Fix Sync DB — "Project not found in Supabase: papi-ui" error when clicking Sync DB on dashboard
0a133435 fix(task-268): Sync DB auto-creates project if missing + fix papi-framework slug
0292bc57 chore: update metrics log and track .claude/ directory
3a5dc18f papi: Sprint 20 plan — Full
8c514371 idea: task-270 — Cost chart — add sprint-over-sprint % change delta and cost split by tool type (plan vs build vs review)
9976c012 idea: task-269 — Task notes markdown rendering — render notes as markdown, show build handoff if task is active/in-sprint, show build report if task is Done
b73b4676 idea: task-268 — Fix Sync DB — "Project not found in Supabase: papi-ui" error when clicking Sync DB on dashboard
107c40d2 idea: task-267 — Home page complete redesign — PAPI cycle header, sprint task rows with phase/effort/status columns, contextual handoff vs build report, backlog section, needs attention alerts
c20353dc Merge branch 'feat/task-257'
d9bc1317 fix: correct SPRINT_BOARD YAML parser regex + remove .claude/ from gitignore
7713a78b Merge pull request #1 from cathalos92/feat/task-257
113d50c6 chore(task-257): record build-acceptance review
b2f7654f fix(task-257): rewrite CostChart as time-series line chart + fix NavDropdown hydration
197d2a15 feat(task-257): LLM cost tracking chart — visualise per-tool-call costs from METRICS.md
cad3fb1e feat(task-257): LLM cost tracking chart with auto-detected framework updates
570305e6 chore(task-236): record build-acceptance review
d01ddee1 feat(task-236): Dashboard visual revamp — make it screenshot-worthy
5a93ad93 chore(task-243): record build-acceptance review
a710d77a chore(task-248): record build-acceptance review
c84c6800 feat(task-248): Align PapiUI types with domain model — UUID PK + display_id
29aec1c8 feat(task-248): align types with domain model — uuid + display_id
aae7bee4 idea: task-266 — Real-time dashboard updates via Supabase Realtime
074b2c5c fix(task-235): correct import summary type in sync handler
9e2ca4a8 chore: rename user-facing 'PapiUI' labels to 'PAPI'
d3791669 feat(task-236): Visual revamp — dashboard and landing page
3ce41768 fix: audit findings — payload validation, UPPER_SNAKE_CASE constants, Readonly objects, catch comments
6f0218d6 chore: expand phase roadmap — add intermediate phases, correct Phase 9 scope
3f23ffbc feat(task-243): phase detail page — drill down from roadmap
a183cd3e chore: update metrics
ca10fefd feat(task-243): Phase detail page — drill down from roadmap into phase sprints/tasks
a7633adc feat(task-243): phase detail page — drill down from roadmap
afb187c8 chore: add AD-8 — dashboard read+CRUD only, MCP stays local
f5be5015 idea: task-265 — Bug: PAPI Framework project showing dummy/placeholder data in dashboard
b28cd08d idea: task-264 — Combined dashboard view with project selector — show one project, the other, or combined metrics
9a5501aa feat(task-208): per-user auth with project scoping
064d8a1c chore: update metrics
1539de38 chore(task-208): record build-acceptance review
9605fcb4 feat(task-208): External login — per-user credentials with project scoping
16dcd90f feat(task-208): per-user auth with project scoping
b74012ed chore: rescope task-208 to config-based auth, remove task-262, add task-263
e5020564 idea: task-262 — Planning guard: surface simpler implementation routes before committing to architectural targets
a584a049 feat(task-235): Import layer — .papi/ to database sync on refresh
632e36d0 chore: update metrics and sprint board
4b17e1a5 chore(task-235): record build-acceptance review
b3cad314 feat(task-235): Import layer — .papi/ to database sync on refresh
16723dbb chore: add task-261 to backlog (strategic session capture idea)
a3dee6c1 idea: task-261 — Strategic session capture — auto-structure key decisions into .papi/ artifacts
e49f94be chore: update METRICS.md sprint 19
0de0b9d5 chore(sprint-19): strategic session — AD-7, North Star, product briefs
2035c6ba papi: Sprint 19 plan — Full
6b6ad59d papi: Sprint 18 plan — Full
966b13a1 chore(task-160): record build-acceptance review
f22fa214 feat(task-160): Separate tasks by sprint/phase on the board
5475e90c chore(task-244): record build-acceptance review
f01eecc2 feat(task-244): Cost and effort metrics — track effort investment per sprint/phase
99472551 chore(task-242): record build-acceptance review
3476fb13 feat(task-242): Build insights on dashboard — learnings from build reports
307e36a9 chore(task-234): record build-acceptance review
326f7054 chore(task-252): record build-acceptance review
52f28ccd chore: update METRICS.md with latest build_execute tracking
0b4dae18 Merge branch 'feat/task-252'
07e38747 Merge branch 'feat/task-241'
0faf3b2f Merge branch 'feat/task-250'
e4b82426 Merge branch 'feat/task-238'
bd0a9da3 Merge branch 'feat/task-234'
6b4cbee7 feat(task-252): War room v1 — shared decisions + conflict alerts from Supabase
ed3dc192 chore(task-241): record build-acceptance review
dab378d8 feat(task-241): Sprint summary section — latest sprint log on dashboard
519cccb7 chore(task-251): record build-acceptance review
2375a42b feat(task-251): Supabase client setup for shared layer
f3e84396 idea: task-260 — Add cross-project AD fetch instruction to PAPI Framework CLAUDE.md
cf234e1f chore(task-250): record build-acceptance review
8aa11fb3 chore(task-238): record build-acceptance review
3dead56f feat(task-250): Update build report parser for scopeAccuracy and typed effort
052200dc feat(task-238): Add cross-project AD fetch instruction to CLAUDE.md
f0ed269c fix: align supabase-types.ts enums with domain model + fix BUILD_REPORTS.md header
bc6f3905 feat(task-234): Database schema spike — validate PAPI task-078 schema for PapiUI
be110796 idea: task-259 — Scope accuracy trend chart — track estimation accuracy over time
96028330 idea: task-258 — Combined dashboard metrics panel — surface key effort/velocity/cost stats on main dashboard
480951c2 idea: task-257 — LLM cost tracking chart — visualise per-tool-call costs from METRICS.md
4ce5d6fc Sprint 17: Typed effort/scope parsers, dashboard cards, Supabase setup, effort charts
9b53be95 papi: Sprint 17 plan — Full
5c805c6b idea: task-255 — Safe-pull guard for cross-project repo syncing
4e801fac Sprint 16: North Star panel, sprint detail card, reviews pipeline, XAD-1 resolved
5b6d8373 papi: Sprint 16 plan — Full
9c9e2896 Sprint 16: Strategy review, cross-project alignment, new .papi files
b5a44e35 Sprint 16: Dashboard revamp, domain model, 16 new backlog tasks
1e213603 Sprint 16: Cross-project bridge — multi-project config, public /api/ads endpoint, papi-brain architecture
a34583a5 Sprint 14: Commercial prep — landing page, setup guide, orchestration architecture
18ec3ba4 Sprint 13: Interactivity polish — animations, hover states, dashboard redesign, EmptyState
e1b5cf47 Sprint 12: Design polish — Command Center identity, Badge component, elevation tokens, typography
eaa4e668 Sprint 11: Update dogfood log and planning log
b5f49b19 Sprint 11: Fix 6 dashboard bugs + add MCP health check + remark-gfm
79bf40a6 task-210: Tailwind design system foundation + migrate 19 components
0ae8c183 Backfill .papi/ with full sprint history (Sprints 1-10)
028cffbd Mark tasks 161, 165, 175 as Done on sprint board
37f89d67 Update DOGFOOD_LOG.md and .papi/ board for Sprint 10 completion
c8772409 task-161: Add priority and complexity filters to board view
76934b0d task-165: Add alerts system — blocked tasks, strategy review, stale items
b7d62045 task-175: Merge metrics into master dashboard as default landing page
81ac3387 Add PapiUI as self-managed project with own .papi/ directory
0de449ba Add Cancelled status support, fix test paths, add project docs
ba5c06c9 Initial commit: standalone PapiUI from packages/web