Changelog

388releases across 7 months

Every PAPI release, cycle by cycle. Each one pushes back against project drift.

Get started free

August 202610 releases

v0.356.0

The cycle that made "fixed" mean fixed, and gave your docs somewhere durable to live

  • Your registered docs now keep their content. A doc living in a gitignored folder survives a branch switch or a stash, and doc_read restores it byte for byte.
  • PAPI no longer marks an issue fixed just because the task that found it closed. Fixed now means someone actually fixed it, so expect your open count to jump the first time you look.
  • Found a problem and fixed it in the same session? Record it as fixed on the spot, instead of filing a task just to close it a minute later.
  • A new Discoveries tab charts caught against fixed across every cycle, so you can see whether your quality loop is closing or just filling up.
Full detail
  • The migration-replay auth.users stub was missing columns migrations read
  • Discoveries analytics tab — is the quality loop actually closing
  • Close five defects found by the risk-tier review of the C356 Dashboard branch
  • Hub caught panel becomes one open-debt tile with age and a resolve control
  • Resolve route so a discovered issue can be closed from the hub
  • Discovery read layer — caught-ledger.json and discoveries-by-cycle.json
  • Doc_read restores a stored body from the database
  • Staleness warning compares bundle content, and says it once
  • Hosted re-register no longer throws; doc bodies reach hosted users
  • Doc_register stores the body, .md-only, tier-scaled storage cap
  • Stage exit criteria are evaluated, and unevaluated stops reading as false
  • Hosted callers can finally see a fixed issue; appendCycleLearnings via RPC
  • Discoveries reach planning, build start and strategy review
  • Fix-or-file gate on build_execute; auto-triage cut to filed P0/P1
  • Orient stops auto-clearing; fixes attributed to the build
  • Adapters write per-finding via RPC; delete the auto-clear sweep
  • One shared findings parser, key and gate in @papi-ai/shared
  • Per-finding schema, dedup index, append_cycle_learnings RPC
  • The funnel becomes the page, not its fifth section
  • Make the S5 scorecard the actual exit criteria
  • Document the Hermes Agent install path
  • Instrument the second authentication and add web visitors as stage 0
  • Noindex auth routes, drop redundant robots Allow lines
  • Close the four blind spots in the acquisition funnel
  • Never send automated win-back copy to a paying customer
  • Programmatic Search Console access + gsc-report CLI
  • Alert on paid conversion and surface tier in admin

v0.355.0

Your pages load with real content, and PAPI asks instead of guessing which project you meant

  • Connecting with more than one project now asks which one, by name, instead of failing with an error you could not act on.
  • Your hub, board and roadmap arrive with real content on first load instead of an empty frame.
  • Task Flow counts every task in your project. It was quietly stopping at the newest 1000.
  • Teammates you invite can now see the projects they were added to.
Full detail
  • One owner-facing fold, not two competing attention surfaces
  • Cycle 355 — dashboard: server-rendered first paint, project-scoped routes, whole-project analytics, S5 exit criteria
  • Cycle 355 — core: connect ask-don't-refuse, stall correlation, product-first orient, CI colour + migration gates

v0.354.0

When something goes wrong, PAPI now tells you what and why

  • When a connection fails, PAPI tells you the actual reason and the one thing to do about it, instead of guessing that you skipped sign-in.
  • Project analytics show that project's numbers; some pages were quietly reporting totals from across every project.
  • Links inside a project stay inside it, so Decisions, Roadmap and Time Machine no longer drop you into a different project.
  • After three failed attempts on the same task, PAPI stops and asks you how to proceed rather than trying again the same way.
Full detail
  • Reconcile 10 audited migration names into BASELINE_GAP_NAMES
  • Add a loop-detection → Decision escalation primitive with guidance-injection on retry
  • Connect failures are invisible — record post-auth project-resolution failures and surface the reason in the connect stall escalation
  • Revoke anon EXECUTE on is_project_member/is_project_writer
  • Doc_register must make the doc durable, not just index it — commit untracked doc bodies at registration

v0.353.0

Everything waiting on you now lands in one place on your hub

  • One card on your hub collects everything waiting on you, instead of the same signals scattered across three separate places.
  • Switching cycles on the board keeps you inside your own project instead of bouncing you out of it.
  • Buttons and status colours across the dashboard hold their contrast properly, so nothing important is hard to read.
  • The runbook your assistant reads to install PAPI now leads with what PAPI does for your project, not with what PAPI is.
Full detail
  • Lock one outcome-led tagline across every public surface
  • Consolidate scattered hub attention surfaces into one aggregator with full cross-cycle signal coverage
  • Enforce AD-81 on /forgot-password and /reset-password — document the dormant recovery flow, do NOT delete
  • C352 ladder fallout: CTA fill contrast, hardcoded dashboard hexes, stale doc-styles contrast analysis
  • Repair the Vercel burn fetcher — date window and unit matching
  • Correct Railway burn figures — price usage units, snapshot daily flow

v0.352.0

  • Boot-smoke must strip DATABASE_URL, not just PAPI_*
  • Cycle 352 — dashboard visual system + payload hygiene + OAuth hardening

v0.351.0

A rebuilt landing page and demo, first-run guidance, and cleaner settings

  • The getpapi.ai landing page is fully rebuilt, with a self-playing plan, build, review, release loop and a live on-the-record decision board.
  • The product demo at /try is now a side-by-side walkthrough: type a command on the left, watch your hub react on the right.
  • First time you open your hub, quick pointers show where your decisions live, that tasks expand on click, and how to fill your backlog.
  • Your settings are split into clear sections (account, projects, keys, feedback), so finding what you need is faster.
Full detail
  • Cycle 351 — Core: hosted-path integrity + SECURITY DEFINER hardening
  • Cycle 351 — Dashboard: coachmarks + Ops-console/settings IA consolidation
  • Gate completeBuild active-task-scope clear on hasLocalWorkspace
  • Consolidate dumping-ground pages: merge /admin + /admin/activation into one badged Ops console; split 1400-line /settings into concern sections
  • Stop canonicalising public /docs/* pages into the project scope
  • Lightweight in-hub coachmarks for first-time users (decisions, task-expand, backlog) — NOT a full-screen bloom
  • Proof board reads as a showcase + rename Wes attribution
  • Leaderboard cycles never rest at 0 on mobile
  • Compact 2-col leaderboard + mobile composition pass (v7.2)
  • Leaderboard as two columns, name links to the live site
  • Pain beat v7.1, the sideways hourglass
  • Checkpoint(landing): v7 partial (agent interrupted) + final leaderboard roster + v7.1 spec
  • Redesign /try as chat-left / hub-right, dark canon
  • CRM has no per-touch history — every outreach past the last one is lost to a notes blob
  • V5+v6 — pain beat resolves through PAPI, vertical-space law swept page-wide
  • Delete ~500 lines of unreachable Contacts/Accounts render blocks in the owner-actions page (dead since repointed contacts to /crm)
  • Build checkpoint write/read/clear not gated on hasLocalWorkspace() — hosted multi-tenant cross-tenant collision risk
  • Remove the StartupBar widget from the landing route
  • The record beat runs on real data and gains the decision track
  • Polish(landing): precision pass — one container system, one gutter clamp, proof links to benchmarks
  • The record beat — every decision, on the record, staged as the live hub
  • Ecosystem strip restored at the hero's close
  • The loop gets its depth back — pain-killer plus three capabilities per station
  • Pain beat made legible — every label owned by its strand
  • Living close — verdict arrives, toggles choreograph, proof compacts
  • The three set-pieces — drift fray, live vignettes, the cycle ring
  • Hero v2 — the orient moment replaces the full board
  • Proof, tightened pricing, the imperative close, and the 7-beat mount
  • Visual-led middle beats — pillars, loop, strategy, control
  • Word-led hero and pain beats from the locked story
  • Governance beat — decision trail, tracked and revisable
  • Revert(landing): scrap hero experiments, restore original hero
  • Replace hero AmbientCard with self-playing Plan→Build→Review→Release loop
  • Hero rebuild 3 — self-playing AmbientCard, no chat, stripped fold
  • Make the hero board a living chat->board demo + drift purge
  • Surface /admin/burn from the admin landing — it was an orphan (no in-app link)
  • Rebuild getpapi.ai landing — 11 bands to 6 real-surface beats
  • Live $/hr burn + est-cost-today with honest provenance labels on admin/burn

v0.350.0

  • Cycle 350 — Core: onboarding & core-loop reliability

v0.349.0

Faster session starts and more reliable commits

  • Starting a session is faster and no longer stalls on projects with a long history.
  • Finishing a task now saves every file you changed into that task's commit, so nothing is left behind half-committed.
  • Fixed issues can be cleared from your alerts, so resolved items stop reappearing every session.
Full detail
  • Attention bus — owner-gated ops signals + hub strip
  • Attention bus: extend owner-attention beyond tasks.json — surface maintenance-due, planner crash-line, burn/cert, stuck users, feedback queue, harness drift through existing chrome + hub strip
  • Dedupe signed-in surfaces — repoint links, demote duplicate contacts/reviews tabs
  • Dedupe signed-in surfaces: single strategy-reviews surface, /crm canonical for contacts, delete dead /brain redirect
  • Make unset ops-webhook blackout observable (greppable BLACKOUT marker)
  • Orient keeps surfacing already-resolved P1/P2 discovered issues in Alerts with no tool to clear them (cycle_learnings.action_taken never set)
  • Build_execute auto-commit only stages FILES-LIKELY-TOUCHED, silently dropping new files created outside that list — committed tree fails to build
  • Orient times out (30s budget) — serial post-fanout tail stacks redundant heavy queries

v0.348.0

  • C348 audit remediation — deps, CSP, rate limit, fail-closed hardening
  • Rename edge deleteDoc var requesterUserId -> bearerUserId
  • Surface /admin/burn from the admin landing — it was an orphan (no in-app link)
  • Live $/hr burn + est-cost-today with honest provenance labels on admin/burn
  • User-owned hierarchy CRUD + strategy-review-driven progression

v0.347.0

  • General backlog importer — CSV/markdown + Linear
  • Warn + offer worktree isolation on concurrent-branch builds
  • Fail-closed owner-only gate on the public pack; v0.1.2
  • Claude Code lazy-load parity — mirror papi-cycle skills, trim CLAUDE.md
  • Prepare returns a context-file path on local stdio
  • Add /winback for one-to-one churned-signup reactivation
  • Fail loud on trimmed apply payload — no phantom empty cycle
  • Derive lifecycle stage from durable artifacts, not 30-day events
  • Budget plan enrichment tail so mature-board payloads stay under the client tool-result ceiling

July 20268 releases

v0.346.0

Per-project URLs, maintenance reminders, and PAPI building in the open

  • Your hub, board, and strategy pages now live at their own per-project web addresses, so you can bookmark or share a link straight to a project.
  • Your toolkit now flags maintenance that is due, like an overdue strategy review or security check, so nothing quietly slips.
  • Strategy reviews now push back only when your data warrants it, with no nagging on a clean cycle.
  • The getpapi.ai site now shows a live feed of what PAPI ships and learns, straight from real cycles.
Full detail
  • Use next/link for internal nav in changelog + LiveCycleC
  • De-flake hub-gate Playwright — serial + retries, robust nav wait
  • Remove duplicate Projects nav + surface version number
  • Public dogfood ticker on /changelog
  • Cadence-due maintenance signals on the toolkit surface
  • Live cycle + dogfood feed on landing
  • Project-scoped URLs — //hub, /board, /strategy, …
  • Earned adversarial pushback in strategy_review
  • Upgrade high-traffic MCP tool inputSchemas to JSON Schema 2020-12
  • Wrong-audience signups: measure ICP-share and tighten top-of-funnel targeting (non-devs pasting content-generation prompts as project names)
  • Cycle 346 — dashboard

v0.345.0

  • Cycle 345 — core
  • Cycle 345 — dashboard

v0.344.0

Run the whole cycle your way, with or without git

  • Run the full plan, build, review and release cycle even without a git repo. Your work stays safe in your project database, with a clear note at every step.
  • Skip the git ceremony you do not want. New switches turn off automatic branches, commits, or pull requests so PAPI fits how you work.
  • See every bug and idea you have reported, with its current status, in one place.
  • Invite teammates from the dashboard or straight from your assistant, and the Team plan is now purchasable.
Full detail
  • Make /benchmarks live — resolve conflict with /accuracy
  • Role vocabulary (Product Owner/Developer/Viewer) in the unified hub
  • Role language in the unified dashboard: Product Owner / Developer / PM as vocabulary + framing (no per-role layouts)
  • Public /accuracy planning-accuracy proof page (live data)
  • Public planning-accuracy evidence page — live scope-accuracy / est-vs-actual benchmark from PAPI's own data
  • MCP Apps feasibility spike — render hub/board inside the MCP client (sandboxed iframe)
  • Shared contributor gate + Team price/webhook tier mapping tests
  • Team invites through both the dashboard and the LLM — one flow, permissive gate, purchasable tier
  • Wire bug_list adapter types + proxy + server registration
  • Add bug_list — let users see the upstream bug/idea reports they've filed
  • Honest opt-in framing for hosted design agent
  • Publish:mcp must boot-smoke the published tarball before moving the 'latest' dist-tag
  • Guarded doc deletion + reorder + close editor DELETE grant
  • Reference contracts: add reorder + provenance-protected deletion, and guard the unguarded editor DELETE grant on doc_registry (latent data-loss)
  • Db-only notices module + no-git release test
  • No-git fallback mode: run the full plan/build/review/release cycle in the DB when the user has no git repo
  • PAPI-meta framing directive + capability registry test
  • Configurable workflow guardrails — let users opt out of git/branch/commit/PR ceremony and PAPI-meta framing; PAPI adapts to the user's workflow, not the reverse
  • Bump @papi-ai/shared 0.1.4 → 0.1.5 (hotfix: publish CAPABILITY_KEYS export)

v0.343.0

  • Restore landing-b/tokens.ts — it is a palette token source
  • ResolveUserTier queried non-existent user_profiles.user_id
  • Refresh public benchmark data through C342
  • Self-serve Stripe billing portal for Pro users
  • Wire getModelOutcomeStats + countPlanRunsForCycle to data-proxy edge
  • Stdio→remote migration docs + multi-project pin + revoked-key hint
  • Broadcast roadmap section + item images + compose skill
  • Sync the CRM on every automated email send
  • Enforce AD-58 — remove all server-side LLM paths + guard
  • Owner email-audience preview — see recipients before any send
  • Tier-scaled project cap (AD-77) + graceful limit affordance
  • Build-stage progress strip can never complete (0/6 → honest denominator)
  • Surface planner reasoning in the first-cycle reveal
  • Redesign post-setup first-cycle as an in-place hub arrival
  • Cycle 342 — Site Spine: Marketing IA Rebuild (v0.342.0)

v0.342.0-feat-cycle-342-core

  • Changelog curated summary layer + Field Guide blog restructure
  • Cold-outbound skill + greeting/subject/sent-tracking
  • /alternatives/taskmaster + /alternatives/hamster comparison pages
  • /for/claude-code, /for/cursor, /for/lovable, /for/codex
  • Newsletter capture (footer + blog) and surfaced RSS
  • Copy canon doc + retire 'It works where you work' from metadata
  • Homepage rebuilt as argument arc — pain, catch, objections, proof
  • /trust candor-format security page + /terms plain-language ToS
  • Pricing FAQ, refund guarantee, precise founding-price terms
  • /glossary — canonical term definitions with stable anchors
  • One MarketingShell — global nav + grouped sitemap footer on every public route
  • Repair 5 broken signed-out conversion paths

v0.341.0

Review acceptance works again for big builds

  • Accepting a review now returns a short confirmation instead of echoing the whole build back, so large builds no longer jam the accept step.
  • Finishing a build now checks the handoff's acceptance criteria before the task can close.
  • Release sweeps open pull requests first and flags unmerged work before closing the cycle.
  • Stray background PAPI processes left over from old sessions get cleaned up automatically.
Full detail
  • Merge shared cycle branch — core

v0.340.0

A quieter hub and one honest install path

  • The hub sheds noise: fewer panels, a clearer next move, and open issues surfaced where you plan.
  • Connect and setup copy no longer assumes which AI tool you build in.
  • The docs now agree with themselves on how to install and connect.
  • Going Pro from the homepage takes you straight to checkout.
Full detail
  • Docs canon — /docs redirect, /install retirement, llms.txt docs map, MCP query-string 404, Public PAPI tab
  • Release(adapter-pg): v0.2.7 — genuine-fix overwrite guard for auto-closed discovered issues
  • Release(server): v0.7.62 — hub polish core (fixed-count overwrite guard, open-issues surfacing, plan generation-active step)
  • Hub polish core — fixed-count race, open-issues surfacing, live plan step
  • Hub polish — wiring fixes + less-is-more compaction sweep
  • LLM-agnostic connect + fast-way parity from Alexander feedback
  • Wire homepage "Go Pro" CTA to Stripe Checkout
  • Unblock owner triage — bug_reports status vocab mismatch
  • Print project info at MCP server connection time
  • Align hub next-move with planner recommendedTaskId

v0.339.0

The hub now tells you what needs you

  • One ranked item that needs your attention, with the reason, carried through to the nav badge and favicon.
  • Task drawers link the pull request and show whether it merged.
  • Plans keep stale carried-over work visible by deferring it, never silently dropping it.
  • Your AI can fetch a plain-text install file and set up the connection on its own.
Full detail
  • Release(server): v0.7.61 — C339 server changes (2840 defer-not-cancel, 2838 discovered-issues bar, 2828 model attribution + data-proxy parity, 2824 fan-out review)
  • Remove /docs redirect that collided with the dashboard /docs route
  • Mirror build_reports.model into the data-proxy write path
  • Simplify hub — strip bloat, relocate dial, redesign review pips
  • Multi-lens fan-out review — emit N specialist legs + synthesis
  • Package the verification capability as 'Quality Gate' (AD-48)
  • Attributed-intelligence — record model on build_reports + outcome analytics
  • 'Needs you' attention model — rank one item, narrate it, drive nav badge + favicon
  • Surface PR link + merge state on the hub task drawer
  • Caught/fixed ledger — auto-close is not a fix
  • Align /pricing with dark-first plum canon (AD-46)
  • Strengthen root-layout metadata (metadataBase, OG/twitter defaults)
  • Tighten discovered_issues bar to out-of-scope real bugs only
  • Stop counting ad_hoc placeholder as a real surprise
  • Planner defers stale carry-forward, never cancels
  • Stuck-users queue surfaces same-day stalls (3h grace, not 2-day floor)
  • Serve agent-runnable /install.txt raw connect config
  • Recovery-email names the exact Authenticate step + token fallback
  • NameStep handles free-tier project-cap 400 with a forward path