Changelog

314releases tagged feature

Every PAPI release carrying the feature tag. What shipped, when.

Get started free

August 202612 releases

v0.362.0

The cycle that made starting a session fast again, and stopped hosted projects hitting dead ends

  • Opening a session is fast again. The first read of your project used to pull the whole board five times over and could time out; it now takes a single pass.
  • Hosted projects no longer hit dead ends on features that work locally. PAPI asks your connection what it genuinely supports instead of guessing.
  • Settings has one Connections tab: your tools, endpoint, keys, linked repo and connection health in one place, with a live status dot in the header.
  • Coming back after time away, PAPI tells you how long you have been gone and names the work waiting for you instead of showing an id.
Full detail
  • Collapse orient's 5 full-board pulls to 1 compact read
  • Build C9 and C13 — the tour is reachable again, and the demo that already existed is now pointed at
  • Rebuild light mode — close the token island, fix the toggle, invert the canon's default
  • Hub restyle round 2 — density, colour reduction, one stage map, no ambient pulse, ledger surfaced
  • Re-entry — say how long they were away, and name the work not its id
  • Connections as one surface — client, endpoint, keys, repo and health
  • Detect orphaned components in ci:local
  • Per-user release notes, rendered from the cycle log
  • Empty and error states name the next action instead of apologising
  • Close the dead data paths — 9 routes, 6 endpoints, 1 table
  • Mount HubMomentumStrip — the lifetime stats had no reader
  • Stop review_submit rolling back an accept whose branch was folded into a cycle branch
  • Stop /api/actions/* returning raw error text, and start logging it
  • Claim the device-flow API key atomically instead of read-then-write
  • Apply the Origin allow-list to /auth/collision and /oauth/revoke-all
  • LPAD truncation made br-/rv- allocation deterministically collide past 999
  • UX-O · Perceived performance — consistent skeletons, optimistic board updates, kill the 30s cache surprise
  • Br- and rv- display_id allocation is read-then-insert, and edge writeReview orders rv-NN lexicographically
  • A migration exists on production that is on no branch in this repo — reconcile or capture it
  • Assignee_id/reviewer_id on task update are not validated against project membership
  • EnsureDocDurable reports a false "NOT durable" for a doc committed on a different branch
  • Make PapiAdapter non-optional — kill the 45 capability-sniff sites that fork behaviour between owner and paying customers
  • Weekly Active Builders cannot be computed from tool_runs — re-key it on build_reports and move the bucketing into @papi-ai/shared
  • ClassifyIcp defaults every unrecognised signup to 'dev' — classify on positive signal, add an 'unknown' bucket

v0.361.0

  • Record GOTRUE_DISABLE_SIGNUP=true as config-as-code for the VPS
  • Strip the run-setup card to the command and one signal
  • Collapse onboarding to four steps, referral moves after setup
  • Widen the connect step, cut the chatty copy, split the manual path
  • Actually compress the hub fold, and clear the board chrome
  • Connect step becomes a 2-stepper, and stops narrating
  • Invert the hub fold — the next move becomes the hero
  • Bulk task actions on the board
  • Connect panel: "This is your project / this is your prompt" — project id + connection token first-class under the copy block, one auth story
  • MCPConnectBanner: name setup as the pre-setup next step and poll so it clears without navigation
  • Build_execute reports a successful auto-commit over a PARTIAL commit when the pre-commit hook fails
  • Stop the autostash sweeping a concurrent session's tracked-dirty files
  • Stop the auto-stash eating untracked work, and the review dispatch showing the wrong task's diff
  • Worktree ci:local blocked by Turbopack node_modules symlink-boundary check
  • Worktree:setup accepts a stray/broken node_modules dir instead of symlinking
  • Close two injection gaps found in pre-merge review
  • A build can propose a Decision or a Convention
  • Conventions — per-project build rules that ride every handoff
  • Pair the AD rejection guard with an admission rule
  • Tool descriptions sell the what/why at selection time
  • Orient's missing-.papi/ error is a Promise.all race — an unset-up user gets an arbitrary one of three "not found" messages
  • Secret-filter client-supplied codebase_scan server-side + make hosted "no filesystem scan" messaging match what the agent is then asked to read
  • Setup AD-seed failure handling misblames the LLM: any error reported as "invalid JSON", partial seeds reported as zero
  • Fix stale .impeccable.md pointer in planner prompts — it directs every external user to a file the skill stopped reading
  • Verify-project.test.ts's INTERNAL_IDENTIFIER regex is narrower than its own comment claims — hardcodes 2 tables, only catches 3-digit cycle refs
  • Hosted 403 minting Active Decisions: add allocateActiveDecision + applyActiveDecisionUpdates to proxy-adapter NO_FORWARD
  • Clear the two gates that were red on main

v0.360.0

The cycle that put a second lock on your private work, and proved the first one was the only one holding

  • Your private tasks and docs are now protected by the database itself, not just the app - a second lock behind the first.
  • Project settings pages work again, reachable straight from each project card.
  • Your personal queue is now "Needs You", and the nav says Admin where it used to say Owner.
  • Creating tasks no longer fails on bigger projects.
Full detail
  • Landing V2: simplify the explanation
  • Copy the production database to the VPS for self-host testing
  • Give ADMIN_USER_IDS holders a nav, not just a URL
  • Stop leaking internal identifiers into first-run user copy
  • C360 Core — display_id atomicity, escaped-defect linkage, executable acceptance, adapter-md split

v0.359.0

  • Stop the exit-criteria evaluators crashing on a missing project id
  • Rebuild HubSkeleton out of the hub's own classes, measured to zero jump
  • Give the connect step an in-flight state, and finish 3236's sweep
  • Make the hub command an inset value, and put the rule in canon
  • UX-B12 Surface owner actions to non-owner users
  • Make the agent-directed band the one primary action on connect
  • Take the OAuth browser hop off the critical install path
  • Hosted setup merges mcp__papi__* into an existing settings.json
  • Stop the hosted manifest depending on the server's own filesystem
  • Mark the OAuth sign-in as human-only at the command, not 12 lines upstream
  • Sync the shipped skill bundle and the plugin version after the C359 merges
  • Resolve project slugs per-user, and stop one null telemetry row killing /admin
  • One unattributed telemetry row no longer takes down the whole admin page
  • Resolve project slugs per-user, and stop asking for a singular row
  • Stop handing a GitHub token to an npm namesquat
  • Content section — build-in-public drafts per release and review
  • Wire the dead attention panel, cut the duplicate roadsigns, collapse the caught fold
  • AD contradiction surfaces as a decision, never a silent shelve
  • UX-B1 Invite button in the Hub → Team empty state

v0.358.0

  • Make VPS deployment atomic and rollback-safe
  • Bypass hosted project quotas

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.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.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.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 20266 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.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