v0.3.0 — the studio hardening campaign
First release since v0.2.1. Nine rounds of adversarial end-to-end testing against live CLI agents, every finding fixed and merged:
- Full-roster ACP via ecosystem adapters — official
@agentclientprotocol/claude-agent-acp+codex-acp, communitypi-acp, nativecopilot --acp/opencode acp; wicked owns only the agy bridge. Persistent sessions, token-level streaming, structured usage. - Deliberative council — lens-based seats, 75% bar with runoff ballots, full deliberation on the event stream.
- Evidence export — one call returns the run's units, transcripts, decision trail, and assumptions; built by a governed crew run and used to export the evidence of its own construction.
- Failure-recovery ladder — known environment refusals self-heal; unknown failures go to an agent triage judge under a deny-dominates flag filter; escalations arrive pre-diagnosed; autonomous runs keep fail-fast.
- External-transform assumptions — structured
known/needs-researchcapture with an Assumptions panel and needs-review badges. - Operator inject for ACP runs — queued delivery with receipts.
- Durable state home —
~/.wicked-crew/{core.db,bus.db}replaces the OS temp dir. - Worker workspace scoping — fixes a real containment failure where a CLI's own trust config let it write outside the run worktree.
- Stall + triage surfacing in studio, Burn panel usage/cost fix, collab built-in workflow, Playwright e2e harness.
Requires wicked-core-ts 0.2.0. See docs/articles/studio-a-control-plane-for-coding-agents.md for the full capability tour.
What's Changed
- chore(release): sync package.json to v0.2.1 by @github-actions[bot] in #22
- site: serve at wc.wickedagile.com (custom domain root) by @mikeparcewski in #23
- messaging: reshape to the wicked control-loop narrative by @mikeparcewski in #24
- docs: ASCII signature, narrative/event-grammar fixes, auto-deploy Pages by @mikeparcewski in #25
- chore(site): re-pin wicked-web to main for the reshaped shared chrome by @mikeparcewski in #26
- chore(deps): re-pin wicked-web (dropdown + featured crew chrome) by @mikeparcewski in #27
- chore(deps): re-pin wicked-web (dropdown + featured crew chrome) by @mikeparcewski in #28
- redesign(hero): the governed assembly line by @mikeparcewski in #29
- Mobile: stack BYO stage, gate console, rail, and council on phones by @mikeparcewski in #30
- chore(deps): re-pin wicked-web (dropdown + featured crew chrome) by @mikeparcewski in #31
- fix(mobile): real per-section mobile treatments for crew by @mikeparcewski in #34
- chore(deps): re-pin wicked-web (dropdown + featured crew chrome) by @mikeparcewski in #35
- fix(site): collapse crew control room across the full narrow range (mobile dead-zone) by @mikeparcewski in #36
- fix(site): compress crew mobile sections to fit a phone (BYO/gate/durable density) by @mikeparcewski in #37
- feat(site): phone-native crew sections (static gate/studio, compact BYO) — stop cramming desktop interactives by @mikeparcewski in #38
- fix(site): durable rail auto-plays on phones + council phone ballot shape by @mikeparcewski in #39
- feat(cli): thread --workflow flag through CLI → API → CoreAdapter by @mikeparcewski in #45
- fix(studio): 5 cockpit rendering bugs (phase title, transcript, ring, burn, assumptions) by @mikeparcewski in #46
- feat: governance read API seam — types, adapter, REST endpoints (crew#40) by @mikeparcewski in #47
- feat(crew#41): coverage view — turn coverage gate into an annotation worklist by @mikeparcewski in #48
- feat(crew#43): governance audit tab — surface per-run conformance claims in insight rail by @mikeparcewski in #49
- feat(crew#44): domain-model browser + workflow viewer by @mikeparcewski in #50
- feat(crew#42): governance management UI — PolicyManager + RuleManager by @mikeparcewski in #51
- fix(crew#62): debounce refresh() to prevent libuv thread-pool starvation by @mikeparcewski in #52
- studio: workflow selector, elapsed timer, auto-transcript, honest empty states by @mikeparcewski in #54
- studio: ChatGPT-style 3-column chat layout by @mikeparcewski in #55
- feat(studio/crew): repo onboarding — remote git URL + pipeline progress by @mikeparcewski in #56
- feat(studio): consumer AI chat UI redesign — wicked palette, bigger inputs, status tooltips by @mikeparcewski in #57
- feat(events): studio foundation wave — types, model, ledger badges by @mikeparcewski in #60
- studio: design wave — dark theme, graph explorer, nav layer, HITL steering by @mikeparcewski in #62
- feat(studio): P1 observability event types + RunModel fields (EVT-002/005/006/014/015) by @mikeparcewski in #67
- feat(studio): P2 observability event types + RunModel fields (EVT-003/004/007) by @mikeparcewski in #71
- feat(studio): P2 governance-deep event types + RunModel fields by @mikeparcewski in #72
- feat(studio): P2 decisions-full event types + RunModel fields (EVT-001/012/013) by @mikeparcewski in #75
- fix(studio): address bot review findings on P2 decisions-full events by @mikeparcewski in #76
- fix(studio): decouple unitReworkAmended guards for backward compat by @mikeparcewski in #78
- feat(studio): center panel manager dashboard (crew#73) by @mikeparcewski in #77
- fix(crew): set WICKED_CORE_EXE for gate-hook correctness in napi-rs addon mode by @mikeparcewski in #80
- feat(studio): full wicked dark-theme takeover by @mikeparcewski in #58
- fix(studio): keyboard accessibility — SettingsMenu, Modal, RunLink, useRoute by @mikeparcewski in #82
- fix(crew#63): only rm cloneDir on failed clone if we created it by @mikeparcewski in #81
- feat(crew#74): wire chat workflow — filter ChatsPage + stamp workflow_id by @mikeparcewski in #84
- feat(studio): multi-agent identity — CLI avatars, attribution, governance lock icon by @mikeparcewski in #86
- feat(studio): council deliberation state — pending agent units show deliberating indicator by @mikeparcewski in #87
- feat(studio): GFM markdown rendering in transcripts by @mikeparcewski in #85
- feat(studio): action cards + mode selector in chat panel by @mikeparcewski in #83
- feat(crew): add POST /runs/:id/inject for operator message injection by @mikeparcewski in #89
- feat(studio): inject targeting UI — send messages to agents mid-run by @mikeparcewski in #90
- feat(studio): click agent avatar → live terminal drawer (crew#74) by @mikeparcewski in #91
- build(deps): Bump astro from 7.0.7 to 7.1.3 in /site by @dependabot[bot] in #88
- fix(studio): hide system workflows from work-mode launch selector by @mikeparcewski in #92
- feat(studio): three-panel home view — Runs / Campaigns / Chats by @mikeparcewski in #93
- feat(crew): mirror four missing system workflow defs in adapter by @mikeparcewski in #94
- fix(studio): separate work/chat runs in sidebar + WorkPage; expose Coverage + Domain in settings by @mikeparcewski in #95
- fix(studio): correct stale LaunchForm docblock and 30-60s warning by @mikeparcewski in #96
- DoD: evidence-phase verification (v0.1 → v0.2) by @mikeparcewski in #97
- test(sc003): 100-run gate determinism test closes non-negotiable DoD gap by @mikeparcewski in #98
- docs(dod): close settings-panel worker registry criterion by @mikeparcewski in #99
- docs(dod): close acceptance-pipeline DoD criterion with PASS evidence by @mikeparcewski in #100
- test(sc005): governance deny blocks run at crew HTTP surface + close SC-005 in DoD by @mikeparcewski in #101
- docs(dod): check off commands/archetype/ criterion in scope-reduction section by @mikeparcewski in #102
- docs(dod): check off Section 5 scope-reduction items (all 4 satisfied) by @mikeparcewski in #103
- docs(dod): mark status as verified — all 34 DoD items now complete by @mikeparcewski in #104
- docs(dod): close SC-004 — crew-level council dispatch to ≥ 2 workers verified by @mikeparcewski in #105
- feat(studio): sidebar branding, hover-expand, dashboard range filter, repo layout, files panel by @mikeparcewski in #116
- feat(studio): git history + contributors in RepoDetailPage by @mikeparcewski in #117
- feat(studio): error boundary, degraded routing UX, loading skeletons by @mikeparcewski in #118
- feat(studio): shared time-range filter + metrics rows (crew#107) by @mikeparcewski in #121
- feat(studio): global notification bell (crew#113) by @mikeparcewski in #120
- feat(studio): run mode steering, file-op diff pane, right-panel inject (crew#114) by @mikeparcewski in #122
- fix(crew): chat workflow 400 — register overlay + patch session workflow_id by @mikeparcewski in #123
- fix(studio): add Escape key handler to Coverage and Repo Graph modals by @mikeparcewski in #124
- fix(studio): derive Tracked repo count from real graph data by @mikeparcewski in #125
- fix(studio): parse JSON error bodies in apiFetch and guard Ctrl+K handler by @mikeparcewski in #127
- fix(studio): guard gate typeof check in Upload JSON handler by @mikeparcewski in #128
- feat(acp): add claude-agent-acp ACP bridge binary by @mikeparcewski in #129
- feat(studio): live token streaming + council deliberation UI by @mikeparcewski in #135
- feat(acp): agent-acp-bridges — codex, pi, agy, opencode stdio ACP bridges by @mikeparcewski in #136
- feat(deploy): self-contained ACP bridge installation — no global installs, no symlinks by @mikeparcewski in #137
- feat(acp): adopt official/ecosystem ACP adapters — own only the agy bridge by @mikeparcewski in #138
- feat(studio): show operator-message lifecycle in the run thread by @mikeparcewski in #139
- feat(e2e): promote the Playwright studio-verification harness into the repo by @mikeparcewski in #140
- feat(api+studio): run evidence export — built by the wicked-crew agent team by @mikeparcewski in #141
- feat(studio): external-transform assumptions UI + evidence; ToS notices; studio article by @mikeparcewski in #142
- feat(crew): durable state home, agy workspace scoping, collab builtin, stall surfacing by @mikeparcewski in #143
- docs: studio article rewrite (editorial review round) by @mikeparcewski in #144
- chore: release v0.3.0 by @mikeparcewski in #145
New Contributors
- @github-actions[bot] made their first contribution in #22
Full Changelog: v0.2.1...v0.3.0