April 202618 releases
- Strategy review agenda system — decouple strategy reviews from cycles, add topic queue for future reviews
- Task lifecycle phase timeline in detail panel
- Login redirect sending existing users to /setup
- Planner two-pass note reading
- Defer decision-scores and entity-references to lazy load
- Eliminate react-hooks/set-state-in-effect ESLint errors
- Post-auth funnel instrumentation
- Proxy-parity shape standardisation — getCycleLog + upsertNorthStar mapping + drift-aware smoke test
- Rework landing → /setup flow: CTAs, pre-auth intake placement, and wizard continuity
- Version literal sync — server.ts handshake + plugin.json
- Dev-only PAPI_ARTIFICIAL_DELAY_MS for latency auditing
- Add upsertNorthStar to data-proxy ALLOWED_METHODS
- Guard ALLOWED_METHODS extraction against silent regex failure
- Split context-bloat detector into independent signals
- Collapse task card to 2 rows — metadata on row 1, title on row 2
- Render type pill for all types + strip size word from priority tooltip
- Denser task cards, clearer type pill, stronger ring pulse
- Add date field to CycleLogEntry
- Portfolio lastActivity now reflects actual task activity
- Animated connection beam on pre-first-cycle Hub empty state
- Respect prefers-reduced-motion on Cycle Ring pulse
- Task card type + module + size visual differentiation
- Proactive session management signals in orient
- Compute alert/unactioned counts from full list + cap alerts at 10
- Split discovered issues into Alerts (P0/P1) and Unactioned (P2/P3)
- Admin funnel — user identity per project, stage labels, drop-off KPI
- Block md adapter for external users with PAPI_PROJECT_ID
- Hub plan CTA + cycleComplete scoping fix
- Wire claim_project() in setup flow + backfill migration
- Redirect new email sign-up users to /setup instead of dead /onboard
- Redirect empty-project users to /setup instead of dead /onboard route
- Dashboard polish — error copy, skeleton loaders, security audit
- Detect setup wizard rehydration failure across OAuth redirect
- Replace --font-body with --font-sans across hub components
- Align TaskDetailPanel with Claude Design V3 typography and spacing
- Hub visual quality pass — spec-aligned headings, font vars, spacing
- Use upsert for active_decisions in setup-project for idempotency
- Correct column names in setup-project DB writes
- Planner doc intelligence — relevance-matched doc context
- Planner context tiering — exclude P3 Low tasks + budget logging
- Enforce strict build order in setup intelligence prompt
- Web-first project setup wizard with AI seeding
- Merge Plan CTA into cycle-state-aware next action
- Restore Strategy & Decisions section
- Address all 10 feedback items — quality rebuild
- Restructure hub with three-question frame and new sections
- Design: add hub v2 playground — design reference for
- Promote LandingPageV2 to production, remove feature flag scaffolding
- Add compact queryBoard to eliminate 2.2MB JSONB waste in plan flow
- Cap login width at 1200px, remove dead terms/privacy links
- Add LandingPageV2 — full redesign behind NEXT_PUBLIC_LANDING_V2 flag
- Add non-code brief handoff types for Owner persona
- Reset agree on tab switch, disable button until terms accepted
- Redesign login/signup — two-panel layout, clear tab separation, contextual errors
- Correct model IDs, SSE parsing, and PlanLauncher disabled prop
- Plan from dashboard — streaming plan launcher + structured artifact renderer
- Security (pass 2): rate limits, Next.js bump, and 2 more findings
- Security: patch project takeover, bug-report forgery, and 7 other findings
- Show auto-review batch summary when last cycle review is submitted
- Lint-staged --no-stash + SQL migration docs
- Accept /sse path alias for claude.ai Projects compatibility
- Railway build — include @papi-ai/shared in build chain
- Railway build command — plain npm run build from packages/server root
- Use PORT env var for Railway deployment, 0.0.0.0 bind when deployed
- Add HTTP/SSE transport + bearer token auth to PAPI MCP server
- Add discovery/spike task types + ad_hoc triage routing
- Add 'discovery' task type — track discovered issues from builds through to backlog with origin task, priority, and notes
- Enforcement split + ad_hoc triage routing
- Mobile responsive layout for CycleExplainer on landing page
- Add P1 stall warning to orient output
- Landing page interactive "moment" — visual centerpiece
- Adapter-pg tests + tool annotations + server tests
- Dashboard dead-path cleanup
- Branching rule + lint-staged hook
- Promote discovery tasks to tier 1 — visible to planner
- Add 'discovery' task type for build-originated issues
- Write-read round-trip guard in build_execute — emit warning if report write cannot be verified
- Auto-triage P0-P3 discovered issues to Backlog on build complete
- Fix 38 failing server tests across 10 failure categories
- Refresh cycle-info and cycle-metrics on realtime task changes
- Hub-insights: "Unresolved only" filter always blank — all learnings have action_ref set but may not be truly resolved
- Cost snapshots: Tokens metric blank in CycleHero — cost-snapshots.json has no data for current cycle
- Fix last_referenced_cycle on Active Decisions table — compute from decision_events or hide zeros
- Fix N+1 query patterns in /api/ads and loadProjectsFromDb
- BUILD HANDOFF acceptance criteria include stray out-of-scope items from planner template
- Add CHECK constraints on status column for stages and horizons tables — only phases has phases_status_check
- Telemetry_events.user_id never populated — lifecycle queries less accurate
- Add prompt guidance for learning:UUID notation — feature exists but LLMs never generate it
- Regenerate Supabase TypeScript types — contacts table and others missing
- Migrate CycleLearnings into IntelligenceSummary, retire from hub
- Hub 2.0 quick fixes: remove dead links, fix Duration metric, add hero metric tooltips, board/roadmap CTAs
- Analytics: Patterns report tab
- Analytics: Token Efficiency panel
- Analytics: Fix & Elevate existing panels
- Analytics: Hero Insight Panel rewrite
- Build_execute should auto-reuse cycle branch for same-module XS/S tasks instead of creating a new branch per task
- Soften unrecorded-commit warning when ad_hoc tasks already exist
- Side nav visibility, scroll detection, section widths, live stats
- Idea tool should auto-classify task_type on submission — stop defaulting everything to "idea"
- Map tool_call_count in rowToBuildReport read path
- Remove dangling health entry from TOOLS_REQUIRING_PAPI
- Merge papi-audit into pr-reviewer and retire health MCP tool
- Auto-link cycle learnings to completed tasks via semantic matching — replace manual learning:UUID refs
- Add
task type planner template: scope + acceptance criteria + explicit out-of-scope statement
- Feed full discovered_issues and architecture_notes into strategy_review and zoom_out — currently only truncated surprises are consumed
- Add DEFAULT now() to tool_call_metrics.timestamp column to prevent silent insert failures
- Wire toolCallCount into build reports (field exists, not populated)
- Surface unactioned P0-P2 discovered issues in orient
- Resolve merge conflicts with main
- Standardise heading hierarchy and typography across pages
- Unify loading/empty/error state patterns across pages
- Add timestamp and user_id to proxy metric inserts
- Accessibility pass: add ARIA attributes, focus-visible states, and error message linking across auth + form pages
- Hub page layout: apply four-zone model + Bento grid metrics
- Route change — landing owns root domain, hub at /hub
- Root route layout restructure — (dashboard) route group
- Dogfood pipeline complete — context in handoff, keyword match, resolve on build, write at release
- Release tool: auto-write dogfood observations to DB after each cycle
- Build_execute complete: mark linked dogfood entries as resolved
- Coerce cycle_number to Number and preserve cache on validation failure
- Planner epic-aware batching — when selecting cycle tasks, prefer co-scheduling tasks from the same epic rather than cherry-picking across epics
- Pre-plan codebase awareness — scan for existing implementations before generating handoffs