Summary
- Release 0.17.0 (stable)
- Built from v0.16.2...v0.17.0
- Published intentionally from main via tag promotion
Highlights
- chore: checkpoint pipeline state and total_tokens hook before v0.17.0 release
- fix(dashboard): auto-recover from render crashes after restart, not just asset 404s
- fix(dashboard): notification reopen gives feedback when question already resolved (TIN-1)
- fix(agents): gate gpt-5.5 out of work-agent model routing (TIN-1)
- fix(planning): complete-planning AUQ guard survives JSONL rotation (TIN-1)
- docs(remodel): s2 issue cockpit status band done + verified
- feat(dashboard): pr card + cost-top-right in issue cockpit band (s2)
- feat(dashboard): add phase-gated action strip to issue cockpit band (S2)
- feat(dashboard): issue cockpit status band — phase timeline + verification gates (S2)
- docs(remodel): planning terminal toggle verified; awaiting-input subsystem landed
- feat(dashboard): unify PermissionRequest into Needs-you + multi-kind list (PAN-1520)
- feat(dashboard): unified awaiting-input notification with title + answer action (#1102)
- refactor(dashboard): single isAwaitingInput predicate across surfaces (PAN-1520)
- feat(dashboard): needs-you entries show issue title not raw id (PAN-1520)
- feat(dashboard): unify awaiting-input indicator + non-blocking AUQ dialog + title-not-id (PAN-1520)
- docs: askuserquestion dashboard pipeline, 2026-05-31 fixes, needs-you recovery
- fix(dashboard): complete Needs-you AUQ recovery (add missing state + feed section)
- refactor(dashboard): make vite proxy detection a pure, testable resolveProxy()
- feat(dashboard): clickable 'Needs you' AskUserQuestion recovery in activity feeds
- fix(dashboard): stop conflating TRAEFIK_ENABLED with container mode in vite proxy
- fix(dashboard): restore AskUserQuestion popup for planning/conv/strike agents
- chore(state): update spec for PAN-1395 (status=proposed)
- feat(dashboard): show conversation token throughput alongside cost
- chore(state): update spec for PAN-1395 (status=proposed)
- docs(dashboard): record s1 verified live in browser
- docs(dashboard): mark S1 done in implementation log
- feat(dashboard): clicking an agent in the rail tree opens its conversation (S1)
- docs(dashboard): implementation log (section 16) for command deck rebuild
- docs(dashboard): synthesis section — three nested cockpits, all mocked
- docs(design): project cockpit mockup in real shell
- docs(design): the 4 pipeline/board lenses compared (doc-quality)
- docs(dashboard): project landing + pipeline-view audit (section 14)
- docs(dashboard): decisions log for command deck restoration (compaction-safe)
- docs(design): stage interaction options A vs B in real 4-col shell
- docs(design): issue RETHINK — tree+conversation, dissolve 'session'
- chore(state): update spec for PAN-1574 (status=proposed)
- docs(design): issue HomePane mockup rev2 — kitchen sink
- docs(plan): exhaustive Codex harness PRD — research-resolved (PAN-1574)
- docs(dashboard): data-wiring verdict — issue surfaces were nearly all real
- docs(dashboard): complete issue-click view inventory across all eras
- docs(design): issue HomePane mockup (Command Deck restoration #2)
- docs(plan): add Codex harness PRD draft (PAN-1574)
- docs(design): session AgentPane mockup rev2 — conversation-first
- Revert "chore: add eltmon-stream project to Panopticon config"
- docs(design): session AgentPane mockup (Command Deck restoration #1)
- chore: add eltmon-stream project to Panopticon config
- docs(dashboard): deeper view archaeology + first-principles synthesis
- docs(dashboard): living design doc for Command Deck view restoration
- Revert "fix(hooks): remove obsolete AskUserQuestion block (PAN-1520 deny)"
- chore(state): update spec for PAN-1395 (status=proposed)
- fix(hooks): remove obsolete AskUserQuestion block (PAN-1520 deny)
- docs(cli): document the 500-char focus hard limit in pan-handoff skill
- refactor(infra): remove --dangerously-skip-permissions from live code
- chore(beads): sync pipeline export + continue state
- feat(infra): scoped auto-approve hook replaces DSP for headless pipeline agents
- fix(planning): keep AskUserQuestion dialog alive while awaiting an answer
- fix(dashboard): keep diff links out of terminal mode
- test: repair 4 pre-existing red test files on main
- ci(infra): typecheck sync-sources/hooks (PAN-1570 prevention)
- test(dashboard): atomic context-layer save + backend disk test (PAN-1448)
- feat(conversations): add Pi-specific handoff authoring template (PAN-1541)
- fix(conversations): make summary fork harness-agnostic for Pi sources (PAN-1540)
- fix(costs): cost recorder dropped all events since 2026-05-21 (PAN-1570)
- fix(dashboard): inject prompt-time memory into Pi conversation follow-ups (PAN-1546)
- fix(composer): stop wiping the draft when returning to a conversation
- chore: merge PAN-1134 — Pi hook event channel + pipeline parity (#1539)
- Merge remote-tracking branch 'origin/main' into feature/pan-1134
- test(dashboard): repair ContextPage + IssueDrawer tests broken by this session's UI work
- Merge remote-tracking branch 'origin/main' into feature/pan-1134
- test(dashboard): dashboard-auth route update + regression test
- fix(terminal): guard XTerminal against StrictMode double-invoke
- feat(dashboard): keep model picker open after harness switch; harness-swap note; default Pi to gpt-5.5
- feat(dashboard): right-click a workspace tab for the full conversation menu
- feat(cli): preserve pre-existing context on sync; inject project layer into AGENTS.md (PAN-1569)
- feat(dashboard): remove conversation list from Issues section in CommandDeck
- docs(rules): add dev-scoped commit-often-on-main rule
- fix(dashboard): recover the UI from asset 404s during a server restart
- fix(cli): self-heal pan dev and stop the restart machinery from hijacking it
- feat(dashboard): sweeping title shimmer + restore editor-picker label
- docs(prd): rewrite project-setup-wizard-ui to cover unbuilt PAN-574 scope
- fix(memory): ingest pi work transcripts
- fix(pi): deliver injected context to Pi via --append-system-prompt, not the no-op extension fold (PAN-1566)
- feat(dashboard): shimmer the conversation title while it regenerates
- fix(dashboard): hide PaneBar scrollbar so it can't steal tab height
- fix(dashboard): point agent heartbeats at real API port + title handoffs by their focus
- feat(pi): deliver global engineering rules + prompt-time memory injection (PAN-1566, PAN-1546)
- feat(dashboard): intent-first fork/handoff dialog + fix name-field wipe
- fix(cli): pan handoff/fork spawn a live session via the server route (PAN-1568)
- fix(dashboard): pin Vite dev proxy to 127.0.0.1 so /api and /ws don't 502
- docs(rules): require linking every issue reference, not just first mention
- feat(dashboard): declutter conversation UI — kebab menus, action parity, tab-strip fix
- fix(dashboard): search full conversation with Ctrl-F
- docs(rules): add universal issue-references rule for clickable tracker links
- feat: add pipeline-list skill — issues by phase with titles (resource + lifecycle views)
- feat(dashboard): project-scoped nav, terminal drawer, deck hardening (PAN-1561) (#1563)
- chore: remove legacy docs/prds/active artifacts
- Merge branch 'main' of https://github.com/eltmon/panopticon-cli
- docs(design): PAN-1561 PRD + rendered v2 mockup
- Merge remote-tracking branch 'origin/main' into feature/pan-1134
- fix(cli): secure specialist auto-completion
- fix(cli): require structured Pi specialist sentinels
- fix(cli): honor Pi launcher session type
- fix(cli): secure Pi lifecycle event ingestion
- test(cli): fix verification gate regressions
- fix(cli): prefer issue-id workspace for review requests
- test(cli): disable Vite watching in frontend tests
- test(cli): disable Vite watching in flywheel smoke test
- feat(cli): add Pi hook parity event channel
- chore: auto-commit before sync with main
Breaking changes
- None explicitly called out in commit subjects. Review the full changelog before upgrading across versions.
Install
npm install -g @panctl/cli
Full changelog