This is the complete, commit-level changelog. For the guided tour of each release (what changed and why it matters, with screenshots and examples), see the release notes at smithers.sh/changelogs.
12 commits since v0.32.0: 3029 files changed, +26424 / -22589 lines. Release notes: smithers.sh/changelogs/0.33.0.
- refactor!: rename npm package smithers-orchestrator to smthrs (7c1e236e76)
- feat(pack): rename-package workflow (parallel luna sweep + finalize) with live UI (521d2ae97a)
- feat(pack): rename-dependents workflow — luna rename lanes + grep gate + sol review + draft PRs (a332473e6c)
- feat(ui): AgentTaskContentProps export + relative-time seconds granularity (8dfb769ed8)
- fix(types): Context.Tag/TagClass do not exist in Effect 4 (#1467) (8d7c599aff)
- fix: complete Effect 4 runtime compatibility (#1463) (c8a2077f40)
- chore(cli): mark apps/cli/src/index.js executable (2bb00cd0c2)
- test(readme): pin the hero image src+alt and fix stale contract assertions (#1345) (d69cc3e6a6)
- research(bench): orchbench persuasion-gap follow-ups + roadmapbench validation receipts (19dbebc78f)
- research(orchbench): freeze the 30-task confirmatory sample + language-balance wording (f60126d9ed)
- docs(changelog): rewrite 0.32.0 as the net delta from v0.31.0 (703d9b28af)
- docs(changelog): drop the media-gap TODO and refresh 0.32.0 tallies (4014fda134)
43 commits since v0.30.0: 446 files changed, +22934 / -899 lines. Release notes: smithers.sh/changelogs/0.31.0.
- feat(docs): Product API / Technical API split with capabilities catalog and human setup pages (509323cbd7)
- feat(pack): opus5-bug-sweep workflow + live UI (9669d1ae70)
- feat(cli): Opus-first implement/smart pools and oneshot chain (7bd50e03b4)
- feat(sota): registry v7 — Claude Opus 5 becomes the default implementer (401a55e509)
- feat(scorers): price claude-opus-5 ($5/$25, same as Opus 4.8) (f7e7b9ec71)
- feat(sota): registry v6 — Claude Opus 5 replaces Opus 4.8 as SOTA orchestrator (35af96aa51)
- feat(evals): authoring-side-effects suite (70 fixtures + handwritten cases + harness) (84d035e4e2)
- feat(observability): side-effect journal events in SmithersEvent union (e7057f783b)
- feat(cli): effect-boundary guard + report in rewind/timetravel, why/status/MCP surfacing (0a5fc5e8fd)
- feat(smithers): export side-effect + effect-boundary surface from the facade (1fd6381783)
- feat(scorers): side-effect compliance scorer + static workflow analysis (3d5569a3ac)
- feat(components): sideEffect + revert props on Task (e57d176b25)
- feat(gateway): effect-boundary params + report on rewind/jumpToFrame RPC surface (3fcb8359e4)
- feat(time-travel): effect-boundary guard, forced crossings, compensating reverts (4283cbb610)
- feat(engine): tool-call effect journal with intended/succeeded/unknown lifecycle (5906ea78ac)
- feat(db): side-effect journal schema + tool-call token migrations (0031, 0032) (a9d1f0a0ed)
- feat(errors): TIME_TRAVEL_SIDE_EFFECT_BLOCKED error code (26c487af5a)
- feat(tool-context): sideEffect/idempotent metadata + revert handlers on defineTool (e3e688be4b)
- feat(graph): sideEffect + revert authoring surface on Task descriptors (545d93ca28)
- feat(demoday-site): poster Aomi shot, Will's opening voice, rails after market (545e6174f9)
- feat(demoday-site): vibe-audit demo arc, data-flow + custom-fit slides, 17-step 3:00 deck (02b0b6575f)
- feat(demoday-site): sales-pipeline story, real-app gifs, rails slide, 15-step 3:00 script (bd98739f46)
- feat(demoday-site): traction slide leads with community, numbers off page 1 (45c5179879)
- feat(demoday-site): ship the demo-day pitch deck at demoday.smithers.sh (dd92921f85)
- feat(storybook-site): ship the UI component Storybook at storybook.smithers.sh (7be658c8de)
- fix(claude-plugin): guard bare
processin smithers-run.mjs for the Workflow-tool sandbox (a19cbe963f) - fix(demoday-site): start rehearsal audio inside the key-press gesture (f4a5bcb86d)
- docs: purge em-dashes from registry v7 prose (check-docs gate) (e46b172143)
- docs: llms bundle regen for registry v7 Opus-implements routing (c6fbffd400)
- docs: routing pages for the Claude-builds / Codex-checks split (34bed733c8)
- docs: llms bundle regen for Opus 5 SOTA registry v6 (3eb3a441a0)
- docs: Opus 5 takes the orchestrator seat across routing docs and examples (5d11fe9100)
- docs: side-effect-safe time travel across runtime/CLI/RPC pages + llms regen (1e26983ee4)
- docs(specs): side-effect-safe time travel design (8f0a595ee4)
- docs: catalog demoday-site in the package table + llms bundles (a4804a5f93)
- fix(demoday-site): accurate Aomi and Burns descriptions (ee33c56e05)
- chore(deps): time-travel gains driver+react-reconciler; scorers ships typescript for fixture analysis (193275da1d)
- feat(demoday-site): single-file build (scripts/build-single.ts) (0f7f5c700c)
- chore(dts): sync checked-in index.d.ts with landed startedBy, usage-report, and registry APIs (47a8ed82bd)
- feat(demoday-site): portable dist (relative asset paths) (7f1904fedb)
- fix(demoday-site): real parked-on-quota badge in the recover gif, no-cache HTML (6d65ea693e)
- fix(demoday-site): drop the downloads chip from the title slide (89903b11be)
- fix(ui): version-gate the terminal theme-toggle test to bun 1.4+ (10b9e361a1)
233 commits since v0.29.0: 844 files changed, +91249 / -21316 lines. Release notes: smithers.sh/changelogs/0.30.0.
- feat(engine): resume CLI sessions for structured-output corrections (#1347) (964bb9fa55, e464d0bc07)
- feat(plugin): attribute mirror launches to claude-code with the current session id (e931a4793c)
- feat(cli): --started-by-* attribution flags with harness auto-detection across up, oneshot, and MCP (e27410eb99)
- feat(gateway-ui): surface run startedBy provenance in RunList, RunMeta, and LaunchButton (adaa7c4335)
- feat(gateway): accept and expose startedBy across launch RPC, run rows, and OpenAPI (e378997591)
- feat(engine): persist normalized startedBy in run config, immutable across resume (12d1a2cde5)
- feat(driver): RunStartedBy launch-provenance type and normalizeRunStartedBy (86ed567cfc)
- feat(cli): token-usage and duration prediction in the monitor UI (6f3cbdcf19)
- feat(gateway-react): useGatewayRunTokenUsage and useGatewayUsageReports hooks (e397aa1051)
- feat(gateway): add listRunTokenUsage and listUsageReports RPC methods (7ad701254f)
- feat(engine): emit TokenUsageReported telemetry from failed attempts (b4911677f7)
- feat(usage): export UsageReport/UsageWindow types via a public types entry (550dc3f1ad)
- feat(pack): agui-adopt-product-fix — close Sol's cross-seat findings (cc9b6a40d9)
- feat(pack): agui-cross-verdicts — the program's two missing cross-seat reviews (89f51363ee)
- feat(ui,gateway-ui): workflow-canvas toolbar roving tabindex + graph a11y hardening (5e354b8222)
- feat(ui): sandbox-previews convergence round — AgentSandbox/WebPreview hardening + provenance (0603b2fae5)
- feat(pack): add the converge-agentic-ui-library final round (8e83d0f3bc)
- feat(gateway-ui): theme parity with the shared contract — tuned warning/info, styleguide font routing, pressed-state feedback, weight 650 (27da051f85)
- feat(ui): design-contract pass — cancelled reads neutral (+ styleguide parity test), tokens route ring/shadows/fonts through styleguide vars, 2px-grid geometry + weight roles enforced by contract tests, pressed-state feedback, shared sr-only/shimmer utilities (9fb78e6031)
- feat(ui-styleguide): design-contract pass — AA-tuned warning/info/placeholder, neutral cancelled/pending badges, distinct severity ladder, pressed-state feedback, --r-bubble (21e2badaa0)
- feat(gateway): listRuns offset — server-side pagination over the newest-first order (548bfa5843)
- feat(monitor): triage home — needs-you band, active now, ops footer, debug fold, keyboard kit (38f3420579)
- feat(gateway-ui): structured RunEventLog rows + node chat + MonitorButton (7d86e81e99)
- feat(oneshot): run the kimi seat on Kimi K3 (5a106686fa)
- feat(oneshot): live status narrator sidecar + goal/status cards in the oneshot UI (d7961a9c5c)
- feat(monitor): design pass — inline approvals, triage table, event times, tree durations (649e1e14f3)
- feat(monitor): model helpers — triage sort, task-vocabulary progress, run errors, heartbeat split (cc830ea19f)
- feat(gateway-react): carry persisted timestampMs on replayed run event frames (cdc04cc517)
- feat(pack): add the finish-agentic-ui-library continuation workflow (c257cf3ddb)
- feat(pack): add the build-agentic-ui-library program workflow + live UI (4fa72b91ae)
- feat(agents): add OmpAgent support for OMP harness (ef7e858f99)
- feat(ui): ship oneshot run dashboard (7fae8195ce)
- feat(cli): add oneshot workflow command (904009b7be)
- feat(models): Claude orchestrates and gates, Codex builds (SOTA registry v4) (d6e4aeb5c0)
- feat(evals): release-notes-visual cases gate charts + coverage + shared components (b3adb1f748)
- feat(ui): Recharts chart adapter with the validated series palette (6ad61df855)
- feat(monitor): collapsible inspector sections, prompt panel, fresher output (c802af1dd4)
- feat(devtools): carry the task's initial prompt on snapshot nodes (48b636806c)
- feat(evals): deliverable-behavior suite + deliverable-shape doctrine fixes (cc37465847)
- feat(pack): release workflow UI (851516b2ef)
- feat(gateway-ui): live NodeChatStream + fleet dashboard components, UI-compliance scorer, create-ui gate (c7d0d4e68a)
- feat(workflows): add bulletproof-ui-design-fixes2 (kimi residual rounds) (1fbecc227f)
- feat(workflows): add bulletproof-ui-design-fixes (fix the kimi design-pass findings) (02a707e8c1)
- feat(gateway): browser session service, spec build-order steps 1-2 (639a820fa3)
- feat(workflows): add bulletproof-ui-finalize (layering fix + isolated full gate) (63b2d0fd7c)
- feat(workflows): add bulletproof-ui-recovery4 for the issue-blitz status defect (bd2310a288)
- feat(workflows): add bulletproof-ui-recovery3 for the node-output lane (e8b1724458)
- feat(workflows): add bulletproof-ui-recovery2 for the stranded wave-2 lanes (d188c79985)
- feat(workflows): add bulletproof-ui-recovery for the two stranded wave-1 lanes (bfe81a7e16)
- feat(workflows): add bulletproof-ui-design-pass (opencode kimi-3 sweep) (f0d105485a)
- feat(workflows): add bulletproof-ui campaign + luna watchdog (4679cd03d9)
- fix(ui,gateway-ui): approvals-checkpoints convergence — async-safe identity, isolated observers, export/provenance sync (1faa6f944e)
- fix(server): exercise pinned browser proxy against DNS rebinding (b26d367011)
- fix(server): redact viewer keystrokes aimed at sensitive fields (7ba7a58e9d)
- fix(components): actually kill a timed-out CheckSuite command tree on Windows (6944c0c32c)
- fix(engine): drop the duplicated resolveCorrectionResumeSession declaration (a005a12c8b)
- fix(pack): update pack UIs and tests to the current component contracts (fcaed99988)
- fix(cli): enforce startedBy harness/session code-point limits in the MCP run_workflow schema (08edac4113)
- fix(gateway,driver): make startedBy launch attribution actually work end-to-end (bd29f1f451)
- fix(scripts): restore verify-observability.sh dropped by a docs commit (d36a33bef6)
- fix(cli): log registered workflows on the eager boot path; refresh stale pins (34caff2f7a)
- fix(driver): keep sanitized spawn causes shape-faithful; align parity double (819c5ba9cd)
- fix(scorers): keep string delimiters in the compliance masker (3135ccb851)
- fix(pack): trim trailing hyphens after slug truncation in audit-fix-train (4d77f97b1b)
- fix(ui): clean up message visibility subscriptions (4da677293f)
- fix(ui): revoke prompt image URLs when attachments clear (10fc8d50bc)
- fix(monitor): preserve run selection when Escape closes node inspector (3b754c5998)
- fix(gateway-pagination): preserve listRuns offsets end to end (3d19ec35cd)
- fix(gateway-react): fire a final token-usage refetch when polling stops (57b4990b03)
- fix(cli,engine): bound supervisor auto-resume retries and surface dead detached resumes (#1361) (04189cffa9)
- fix(evals): majority-of-3 judge panel + repair 5 defective cases (3dc5c87e99)
- fix(cli): admit detached runs before reporting success (3b4679f99c)
- fix(agents): allow OMP RPC preflight (bcf8e1e417)
- fix(ui): show oneshot execution metadata (3b5e0994bb)
- fix(oneshot): harden launch and override paths (eeaa42bacd)
- fix(cli): route interactive oneshot through TUI (f9ef339e60)
- fix(server): scope DevTools metadata to historical frames (5f04f985e1)
- fix(gateway-ui): preserve node chat transcripts beyond event ring (bda9b4f734)
- fix(ui): follow reduced-motion changes while the terminal is mounted (1ffa8cf515)
- fix(gateway-ui): let recovered loop/retry nodes shed their stale failure (ca72160535)
- fix(protocol): commit the DevToolsNode prompt declaration + gate protocol in check-dts (5d308e4ede)
- fix(pack): declare gateway-react/gateway-ui devDependencies for the flagship render test (e8b76e4d50)
- fix(what): stop the narrator remarking on unknown timing and absent data (18499832af)
- fix(workflows): coerce design-fixes2 inputs (string hydration) (d3464e9089)
- perf(oneshot): run Sol at high reasoning effort instead of xhigh (9f9a070b4c)
- refactor(types): export RunStartedBy from the smithers facade, drop unused gateway re-exports (3eea8a4031)
- test: cover startedBy persistence across chat-create, run status, db adapter, and continue-as-new (c5120a3197)
- test(oneshot): cover routing and runtime contracts (c6425f1ed0)
- test(cli): pin create-ui's fail-closed outcome in the seeded smoke e2e (b367066da0)
- docs: fix punctuation in the launch-run startedBy note (c1a9af149c)
- docs(branch): default the deploy snippet's input under schema-applied rendering (5ca9658f2b)
- docs: regenerate llms bundles on the merged landing stack (adc031e10f)
- docs: regenerate llms bundles for the stacked audit-fix lanes (c720802311)
- docs: regenerate llms bundles after MessageScroller compound docs (f17582d3b7, 6e5a1c4ef6)
- docs: regenerate llms bundles after eval-gap docs fixes (a046bca84f, 45349205d7)
- docs: document run launch attribution (startedBy) across CLI, RPC, and types (43df9edd4f)
- docs: regenerate llms bundles after input-defaults doc reconciliation (2b208b0147)
- docs(context-engineering): break up tasks into vertical slices (6c38e35da6)
- docs(home): add copyable "ask your agent" discovery prompt to the hero (4790bab261)
- docs: close the 0.30.0 docs-review gaps (8368074cd8)
- docs(workflow): warn that input schema defaults are never applied; coalesce at read sites (8e3c79078c)
- docs: fix agent-fluency eval gaps — verified pattern examples, time-travel command table, prominence one-liners (6f746104c7)
- docs: workflow-ui-design spacing/weight policy + --r-bubble; regenerate llms bundles (b4edb03ae7)
- docs: sync AgentLike engine union with source (omp) + regenerate llms bundles (0ce656ce8d)
- docs: regenerate llms bundles after concision pass + gateway-ui additions (bc3fc6398b)
- docs: concision pass over 257 pages + skills — same ideas, ~5% fewer words (e96d55114f)
- docs(spec): finalize oneshot spec (routing tiers, dual preferences, user override) (49217afef5)
- docs: remove em dashes from smithers skill (61615dfcd1)
- docs: navigate code-block/message-response pages + document UI-compliance scorer exports (a2f266bbe3)
- docs(specs): kimi-3 design-pass report for the bulletproof-ui campaign (0a7f2f52d3)
- docs(specs): gateway browser service contract, shared by apps/smithers and Smithers Code (d87b0c9cc5)
- fix(cli-tests): survive the bare CI runner and bun 1.3.x (eb30e8495e)
- fix(tests): second Windows batch unmasked by the now-passing gates (cd5078f2e6)
- fix(ci,server): real Chromium for browser-session tests; bun-version-tolerant auth-injection tests (8e78597b37)
- fix(tests): platform and timing hardening for the red CI shards (bdd22c57a0)
- fix(scripts): make the check-docs and check-llms gates work on Windows runners (ae6bf180f8)
- fix(gateway-ui): make the test suite file-order independent (54e790dcc2)
- fix(ci,scripts): give the dts build heap headroom (f5c360959c)
- test(pack): own agui-adopt-product-fix; regenerate llms bundles on the rebased stack (2bfacbb9a0)
- test(pack): own the agui-cross-verdicts workflow (f28554039a)
- test(pack): give every discoverable workflow a focused owner (11112b443e)
- fix(gateway): await workflow readiness and preserve workspace overrides (7ed41db653)
- fix(scorers): enforce workflow UI import provenance and lexical bindings (2f83567bc3)
- fix(browser-rpc): close runtime and published contract drift (e6a77b0a1f)
- fix(gateway-ui): guard checkpoint failures by ID (4aeb728e41)
- fix(ui): guard roving arrows from editable toolbar targets (c6abd12b2a)
- test(cli): reap detached oneshot processes (a4f2da19d9)
- fix(gateway-ui): expose opt-in heartbeat rows and inert event mains (13a9eb2652)
- fix(agents): close OMP credential and spawn error leaks (84d860e4b4)
- chore(pack): narrow converge-agentic-ui-library to the final landing round (a6ca496815)
- sanction MonitorButton in ui-arch guard + MessageScroller compound docs (72acf9a7a6)
- reasoning-tools convergence — recognized-type gate for summary parts, accurate provenance + re-aggregate (5397568359)
- apply input schema defaults before render (#1365) (fbc0a66dc4)
- migrate to Earendil Pi SDK (#1364) (f12ebf3ce7)
- add Pi extension manifest (#1363) (47ddbdf349)
- docs(ui): keep docs.json in its original compact formatting (bc9fdde3e5)
- docs(ui): add the UI docs-by-type overview and a dedicated llms-ui agent fragment (d371f2f1f9)
- register Kimi K3 in the SOTA registry (816a754e4f)
- integration fixups — happy-dom settings merge, ChatTranscript provenance, shipped-name mapping (d968a2cad8)
- conversation-foundation — compound scroller composition, follow-state recovery, frozen scroller behaviors (5970a6d84e)
- conversation-foundation — tracked message jumps, zero-count branches (dc8458ed1c)
- close conversation-foundation review findings (35ac303af3)
- ContextUsage focus-boundary, controlled-hover intents, stale hover state (7e6606084f)
- give ContextUsage trigger a usage-summary accessible name and clear hover timer on unmount (ce582b13ee)
- integration review — accurate gateway bindings docs, AgentTask/TaskItem/ChatTranscript gallery families (84adf81719)
- disable happy-dom iframe page loading in test preload (d2b126078c)
- integration — merge agentic-ui lane barrels, compose lane CSS, aggregate provenance, gallery + browser coverage (c379d575bf)
- barrel import per contract E, accurate canvas provenance, tightened guard + graph-override test (4db005ce85)
- honor integration-owned barrel; teach ui-arch guard the canvas layer (fc3b1e3e99)
- workflow-canvas lane — renderer-neutral canvas anatomy + WorkflowGraph nodeTypes seam (ff16ee990b)
- sandbox-previews lane — AgentSandbox, WebPreview, JSXPreview (4e1fe1a1fd)
- conversation-foundation — branch switching + layout-independent scroller geometry (98a493fa98)
- conversation-foundation lane — Message/MessageBranch families, Bubble compound, MessageScroller compound anatomy (31acff6ca4)
- agent-identity-context — frozen AgentCardProps typing (native div onClick), controlled-hover contract test (871f112610)
- agent-identity-context review — ContextUsage hover/click race + handler composition, AgentCard onSelect/onClick composition (b0960a1187)
- agent-identity-context lane — AgentDefinition/AgentCard, ModelSelector, badges, ContextUsage (b9e99fa494)
- approvals-checkpoints lane — Confirmation/ApprovalCard/Checkpoint + gateway wrappers (fa3f2b695f)
- reasoning-tools review — frozen CodeBlockTabs API, resolved tab/panel ARIA, summary-only docs (8993240162)
- reasoning-tools review — provider-safe summaries only, frozen Div contracts, tab a11y (98608c471d)
- reasoning-tools lane — compound Reasoning/ChainOfThought/ToolCall anatomy, CodeBlock group/tabs, provider-safe reasoning summaries (bcf1917995)
- coding-artifacts lane — Artifact/Snippet/PackageInfo/SchemaDisplay/StackTrace/TestResults/Commit/ChangeSummary/EnvironmentVariables/SecretField (ab3ef6100e)
- sources-citations lane — Sources compound, citation previews, Suggestion, OpenInChat (e8b098657f)
- prompt-attachments — fresh-list attachment intake, skip defaultPrevented document drops (79e04ace90)
- prompt-attachments lane — PromptInput family and Attachment compound (58dc798651)
- plans-tasks-queues lane — Plan compound anatomy, AgentTask, Queue, ActivityTimeline (302ee69585)
- fix(agents): align OMP contract and diagnostics (0dd738cede)
- fix(agents): complete OMP RPC lifecycle handling (13409ef91a)
- chore: remove agent-trace-otel demo workflow (a13462ac2b)
- test(cli): restore create-ui seeded smoke (green on current main) (dfd9254a52)
- test(gateway): honor cold-start wait budget (ea34427337)
- test(cli): align prose and seeded smoke contracts (21b08e7911)
- chore(docs): regenerate oneshot guidance bundles (c9986f5021)
- docs: define oneshot routing guidance (19eedc9499)
- fix(evals): close structural UI verifier export bypasses (9b132abd06)
- fix(pack): hard-gate create-ui compliance loop (21c3f5259e)
- fix(server): harden browser viewer actions frames and reconnects (c7ce0517c8)
- fix(browser): inline bounded screenshots and retain pick metadata (1665391e71)
- fix(server): make browser session creation transactional (c480354897)
- chore(pack): remove the one-shot bulletproof-ui campaign scaffolding (7ceab5c08e)
- chore(docs): clear house-style and diff-hygiene violations from the release range (bb167d38f8)
- fix(ui-architecture): skip git-ignored pack UI files, baseline new gateway-ui components (b7b8a37b73)
- browser viewer and screencast hardening (28e2849aca)
- clear design system residuals (adc4564850)
- harden browser viewer and screencast service (5716615c0c)
- add browser viewer and live screencast (baa4efad1c)
- refresh llms bundles (ecf52c0e3a)
- keep embedded diffs on house theme (b98409ae21)
- make adapter themes follow data-theme (e48afbbe32)
- (7f6ece0b03)
- preserve status token aliases (cc5fb49799)
- unify status colors across surfaces (a18a0c0798)
- centralize reduced motion and type scale (389abc0d49)
- honor walkthrough theme in Pierre diffs (031e7ef5b9)
- require dual color scheme in report prompt (42adb84832)
- compose flagship workflow shells (2d0eeccc07)
- use tinted review launch button (3ccdd748b6)
- enforce semantic token contrast (bbb3f8a106)
- fix(ui): make keyboard interactions and live status accessible (f492aae991)
- restore wave 1 gates (b44f9acb37)
- move CodeBlock into primitives (a1e73ca0df)
- derive issue blitz active status (fa72114abc)
- isolate flagship render mocks (084e15b7c6)
- exercise shipped flagship UIs (8b82d80568)
- render latest issue blitz iterations (1604f4efe0)
- isolate flagship React render state (4eec4f72e4)
- recover flagship composed UIs (ea954e4b2a)
- preserve upstream platform metadata (f112bbce39)
- align standalone styleguide architecture inventory (d0d4752032)
- isolate Pierre diff code cascade (9c02d65dfb)
- ratchet standalone styleguide review imports (1a422b44f1)
- import standalone theme from styleguide (d0772389cb)
- consume standalone theme through ui (d49369fce1)
- share landing page theme base (a050ee30eb)
- add standalone HTML theme bundle (33638e1ba8)
- preserve provenance governance (47d31b637b)
- drop fresh package violation baseline (cafcb1967a)
- guard nested pack theme modules (32142e97e3)
- cover pack theme modules (a3c712124b)
- cover pack UI import boundary (d5693bcd26)
- govern workflow pack UIs (181ec26255)
- prevent stale selected-node output (c05c05a722)
- document agent output parser (9f1e6339ed)
- render agentic node output (af9503f822)
- make copy timer restart deterministic (6130948d4e)
- add agentic response and code block (b04498587a)
- recover chat foundation lane (d6ba50555f)
- recognize agentic component layer (066356d6d4)
- add agentic plan and source components (405c1bccfe)
- add agentic reasoning and tool components (9a9cfd5b2a)
- degrade quietly when no gateway answers RPC URLs (06b926f0b9)
225 commits since v0.28.0: 726 files changed, +84604 / -7564 lines. Release notes: smithers.sh/changelogs/0.29.0.
- feat(xstate): reducer hash-versioning, sound prefix-cache key, bounded LRU (8e767206f1)
- feat(xstate): eventReceived correlationId scoping, timedOut bind fix, signal coverage tests (44a61c7159)
- feat(xstate): add re-entry task-identity lint (f11a0f95e1)
- feat(xstate): add @smthrs/xstate durable machine fold package (6180c27b37)
- feat(smithers): add finish-campaigns two-lane workflow (opencode-kimi + codex-sol) with UI, tests, and todo.md restore (ccd962c5e3)
- feat(ui): add shared Terminal xterm adapter (1eef7ff71c)
- feat(ui): add shared StageStrip pipeline-stage chip strip (34323ac1b8)
- feat(ui): add shared PierreDiffView diff adapter over @pierre/diffs (de3e7d2bdb)
- feat(gateway-ui): add WorkflowGraph DAG canvas (7f59823a1b)
- feat(ui): add monitor-redesign live run dashboard (050864ae2d)
- feat(workflows): add monitor-redesign swarm workflow (plan/review/implement lanes, merge queue, human test gate) (77fa923f55)
- feat(orchbench): bound the foreign-traffic gate at 10m and flag contended cells instead of blocking (1e0492b7e5)
- feat(microsandbox): land microsandbox draft final round (f02b610bca)
- feat(benchmarks): add OrchBench workflow, UI, scorer, and assets (e653891c78)
- feat(evals): support LLM-judge assertions in eval suites (9a0af2b3a2)
- feat(driver): add onError hook so external error reporters can capture run failures (4d10b7115b)
- feat(observability): support OTLP auth headers for authenticated trace export (5ac7cd4a0a)
- feat(signal): delivery idempotency, alert webhook, Zod-preserving native output (phase 2, round 6) (62571f2e22)
- feat(signal): SDK-agent provider fallback for daily-ceo-intel (phase 2, round 3) (ad23bf57bb)
- feat(signal): apps/signal Cloudflare deployables + phase-1 hardening (phase 2, round 2) (15ea42a52a)
- feat(ceo-intel): add daily-ceo-intel workflow, adapter lib, prompts, UI, and configs (phase 1) (8ab90ca165)
- feat(workflows): add a live UI for implement-testing-framework-e2e (bdd0278e39)
- feat(testing): emit durability trace events and assert journaled completions (7217eb4d8c)
- feat(testing): track live task and mediated-effect promises in CleanupScope leak detection (79b404002b)
- feat(pack): add the microsandbox-finish workflow and its live UI (4f295a29b5, 5555b77c41)
- feat(microsandbox): add the first-class Microsandbox microVM sandbox provider (9f0ee2fe6f)
- feat(apps): add kimi-benchmarks-site worker serving the Kimi K3 RoadmapBench report (5d1fa21714)
- feat(prompts): compose workflow UIs from the gateway-ui and ui component libraries in every UI-authoring prompt (198acf38a7)
- feat(workflows): merge same-change commits into one entry in the generated CHANGELOG.md (8f0166fc54)
- fix(provenance): park bind={[]} as missing instead of dispatching unproven (42045da538)
- fix(testing): harden real-process admission against impostor runner scripts (3811f25961)
- fix(smithers): raise finish-campaigns lane timeouts (150m work / 60m verify); sol xhigh attempts were killed twice at the 60m cap (5cd322459f)
- fix(time-travel): skip cwds never jj-snapshotted in planSandboxReverts (59a528e463)
- fix(signal): declare alchemy and @cloudflare/containers as runtime dependencies (eef472ab57)
- fix(ceo-intel): narrow assess-batch id filter so tsc accepts the regex test (4c96d0d12e)
- fix(signal): preserve cancellation/signal diagnostics past the failure-tail truncation (f1dd6f2bbc)
- fix(signal): redact secrets from surfaced errors, regression-test onStepEnd+Zod (phase 2, round 5) (d1c3d2e620)
- fix(signal): durable manual-trigger, finite retry budget, full-model probes (phase 2, round 4) (671bf50c2b)
- fix(signal): render the real issue date, not the prompt placeholder (432cc212af)
- fix(signal): select a provider that can actually serve; probe/serving parity for the model fallback (357e7f469b)
- fix(signal): manual /trigger survives client disconnect, adds 409 in-flight guard (54088d7f3e)
- fix(agents): stop treating allowed-with-overage-rejected rate_limit_events as quota failures (58743d6b20)
- fix(db): probe output tables via sqlite_master on sqlite-dialect external backends (2c1c1c724e)
- fix(cron): claim each fire via compare-and-set before launching so schedulers cannot double-fire (adda406287)
- fix(testing): give anonymous runner bindings unique identities and reject explicit binding conflicts (0bf025540d)
- fix(agents): bound HTTP tool bodies at 1 MiB and transcription audio at 25 MiB (88e0e3ff12)
- fix(cli): move detached run logs to .smithers/logs and reap them (d794200db1)
- fix(cli): stop smithers ui opening the wrong workflow UI on a stale gateway (593ea1f1ab)
- fix(cli): tolerate jj conflict markers in the workspace package.json (569eabc697)
- fix(server): cap WebSocket run-event subscriptions at every scope (42ec35c3ec)
- fix(server): dedupe concurrent resumes and identity-scope run cleanup (7df165ce69)
- fix(openapi): bound tool response bodies with a configurable byte cap (a6eaaa446a)
- fix(agents): stop classifying overageStatus rejected as a usage limit (bbc2d439ae)
- fix(telegram): cap retry_after, abort-aware backoff, preserve body-read aborts (647e59ad6a)
- fix(driver): strip the persisted runId column from table-shaped ctx.input (dfaaeaaca8)
- fix(pack): enforce the codex merge watchdog command deadline in a detached process group (06bdcc1b64)
- fix(pack): resolve repo root and heads via jj in the codex issue merge queue (b801deee4e)
- fix(test): skip ship-pipeline browser e2e when no Playwright binary is installed (48129336b5)
- fix(cli): restore the share-pack UI mount the issue train dropped (fb31078278)
- fix(ui): call the gateway hooks with their real signatures in the smoketest UI (66c1fac69a)
- fix(claude-mirror): pid-verify the run owner before emitting run-stalled (6cf5a608fd)
- fix(components): decode renderMdx entities (0d8c1807d2)
- fix(agent-eliza): preserve executable frontmatter (bf6dceb29c)
- refactor(testing): run the first fresh ready task deterministically before racing survivors (1f42eba954)
- refactor(sandbox): retire the Freestyle example provider in favor of first-class Microsandbox (019708a71f)
- refactor(microsandbox): make the SDK mock a test-only fixture and cover the provider against a real guest (7567c7a53b)
- test(e2e): probe SmithersError parity at the child-process spawn boundary (eedbf6f666)
- test(cli): accept the normalized bunx invocation in the custom-UI guide gate (ffcdee0e2a)
- test(testing): make the fakeAgent swap-race assertion scheduler-independent (c646f74870)
- test(server): cover concurrent gateway UI bundling through independent resolver plugins (502011192f)
- test(pack): pin issue-train safety gates, microsandbox-finish prep, and PATH-fallback jj resolution (02c8fcfee0)
- test(server): cover gateway UI bundle retry when a poisoned global Bun plugin breaks in-process Bun.build (9af2f9f193)
- docs(xstate): add XState integration page and regenerate llms bundles (87f839995e)
- docs(how-it-works): useState is process-local across frames, not reset per frame; regen llms bundles (99f6634b58)
- docs(reference): add feature-inventory and browser runtime pages, tighten component/package doc coverage gates, regen llms bundles (cfe08a07f9)
- docs(spec): add external-integrations, runtime-portability, schedules-alerts, workflow-packs, and workflow-testing feature specs; regen ddd UI modules (597490436a)
- docs(testing): add workflow testing framework guide (e7d04e665c)
- docs(agents): document the OpenAIAgent api option and the signal/kimi-benchmarks-site workspace packages (423c1af651)
- docs(specs): add daily-ceo-intel spec (The Smithers Signal) (63f7a7e35d)
- docs(cloudflare): align Worker-native claim with the serverless run-driver reality (bf5c7b2507)
- docs(openapi): document maxResponseBodyBytes and regenerate llms bundles (16fd3cce31)
- docs: add the kimi-benchmarks-site package row and normalize bare smithers ui commands (5b7fb9b917)
- docs(pack): rewrite the cloud-execution specs and Plue workflows for the Microsandbox-only plane (bff793250d)
- docs(microsandbox): document the Microsandbox provider and regenerate llms bundles (0ce4f3cf81)
- docs(ui): add the shared UI component library reference and bundle it for agents (782a7eaa4a)
- docs: align onboarding with the curated workflow pack (63f7e29121)
- docs: correct 0.28.0 release stats for the re-pointed tag (1188 commits, 424 fixes) (06a02a892c)
- publish env dumps atomically (8b1676155a)
- finalize combined 0.29.0 changelogs (60a00fc090)
- preserve child diagnostics in replay probes (6641cedaec)
- harden testing campaign verification loops (e10e97b9eb)
- derive finish-campaign node types from the run tree (342380d249)
- record green testing campaign root gate (c2e8c1aafc)
- settle durable poll exhaustion (0bf8a82a19)
- settle durable poll after retry (d800574045)
- budget account regeneration under load (2149759ce0)
- record final root gate isolation (f45f8ce5f0)
- exclude workspace state from package fixtures (4ad19b20c8)
- regenerate XState feature inventory (0c3526d3f7)
- update the release notes for XState (2e91c7f704)
- keep renderer version synchronized (dbe817b68d)
- inventory XState public package (9434001ffc)
- match released DevTools version (e22a677a83)
- drop stray brace in the re-entry lint table (68326fe369)
- refresh webhook declarations (14d4f416c2)
- distinguish workflow render hooks (e3945356a0)
- record testing campaign gate progress (a71241fc30)
- seal riskless gate toolchain PATH (f3cb53a48a)
- regenerate llms bundles for the rebased xstate docs (c23ae3f9a9)
- align the XState package with the release version (d5a165cf29)
- pin shared-clock seq uniqueness across concurrent signals and outputs (2cd3246aa0)
- mark the xstate peer optional and gate the facade's isolation (faf4476118)
- keep provenance seq on the live completion row (bbc9d85481)
- replace em-dashes with house-style punctuation (d005899049)
- document re-entry lint, eventReceived options bag, cache key (7c3bb99320)
- exact xstate devDep pin + API-presence assertion (bb1b79946f)
- determinism-error and final-state/liveness conformance coverage (0c4edd82d2)
- assign owners to shipped workflows (fb97dd2afc)
- sync no-Kimi role expectations (696abc8321)
- document tagged event results (d324a2e45e)
- support fork provenance reads (feb3e0565a)
- declare workflow UI runtime dependency (58f55edb85)
- refresh generated artifacts (c346de1686)
- synchronize workspace release versions (0a0d47706a)
- prepare the combined release changelog (5b5c647431)
- track current schema migration head (39d167e040, efc6ecfa92)
- expose durable signal rows to workflow contexts (893d5abeb6)
- sync tokens to design system v2 and render the workspace picker mark (88506c1f3e)
- align status semantics with design system v2 (running=brand, waiting/paused=amber, queued/pending=muted) (93fa907be6)
- hide output provenance from payloads (b069b48901)
- sync DevTools renderer version (3a09ce3509)
- regenerate llms bundles for recovered shared-UI landings (7a915c63a9)
- add shared NodeOutputCard run-aware output card (4a2994dc5e)
- add shared MarkdownEditor Milkdown Crepe adapter (36e8707fe2)
- add shared Markdown renderer primitive (8fbc061cf0)
- recover shared-ui-library + land-shared-ui campaign tooling with batch-gating fixes (932deb4ad4)
- style(cli): adopt shared monitor design tokens (3a282bd848)
- style(server): refresh default operator UI chrome (70ac93f19b)
- style(gateway-ui): align status colors with shared theme (36041df5f7)
- style(ui): expand shared theme and status tokens (cc79a5dd6c)
- chore(pack): strip kimi from all role chains (no-kimi directive) (5b904f10a7)
- add shared FileTree component (534501163f)
- port dependency-free DiffHunks + diff domain into packages/ui (d279bcc909)
- add shared CollapsiblePanel component (983966d392)
- close coverage backlog: rewind retry-survivor, fork seq allocation, provenance atomicity, untagged timeout hard-error (58498fdd25)
- restore exact rewind state and provenance (4d416c6a34)
- require explicit tagged wait results (c9bf71e810)
- expose durable typed output rows (962728913d)
- persist shared output and signal provenance (9f2b689efd)
- xstate spec rev 3: fold in Fable review + Phase 0 validation findings (29cdb06605)
- preserve facade component prop types (#1353) (6eb1192d19)
- add XState integration design spec (derived-fold model, rev 2 post sol review) (63799b8184)
- chore(workflows): mark daily-ceo-intel pack source as example (00f8f5a85f)
- chore(scripts): refresh ui-architecture baseline with signal site and kimi-benchmarks-site entries (5da8732620)
- chore(signal): move alchemy and @cloudflare/containers to runtime dependencies (10100484f6)
- chore: gitignore engine dynamic-workflow e2e scratch dirs (3af882ad9f)
- chore(workflows): move implement-testing-framework-e2e implementation lanes from luna to fable (e1f63a7582)
- feat(testing): add cutpoint-conformance, replay-identity, and artifact-parity suites; split probe admission from runWorkflow (dd8b8aeff5)
- chore: gitignore smithers.db backup and compaction artifacts (55fbb1c064)
- feat(testing): expand real-backend testing framework and e2e coverage (9437603640)
- chore(docs): regenerate llms bundles (8edeb4bc17, bfdd0b9295)
- chore(docs): regenerate llms bundles after rebasing the signal stack onto main (278640d7af)
- chore(agents): drop broken kimi from active pools (kimi-cli LLM-not-set) (6b244c16f3)
- chore(agents): drop exhausted codex from active pools, add kimi fallback to strong pools (87a837e5cc)
- chore(agents): demote codex providers to pool tails while weekly quota is exhausted (cb2e87d56b)
- chore(testing): regenerate the shipped index bundle (8f6bc64d51)
- microsandbox-finish (b795b89a96)
- chore: gitignore .wrangler local cache dirs (0fa99563ec)
- chore(docs): regenerate llms bundles and the seeded workflow pack (aaeb4489e2)
- strip em-dashes from 0.29.0 changelog (house style) (c1609fa48a)
- add 0.29.0 changelog (1da40a5828)
- 0.29.0 (28ddd663d2)
- close final review findings (7614f265dd)
- stabilize public component declarations (0abfda5407)
- make Hindsight projection best effort (306d05c44b)
- validate configs and serialize local appends (2525ea6b4e)
- define projection and legacy semantics (ce1ea6b2fc)
- refresh recall declarations (d14a782a5a)
- keep recalled tasks fresh and bounded (3ff6b3630a)
- define freshness and hard limits (e05e468b28)
- cover publication-aware guard (73c82bf7c7)
- honor database ownership boundary (068b238194)
- bound memory tags and recall output (b05e2e3f4f)
- preserve transactional store identity (532960cde6)
- enforce scoped docs and llms checks (1704991e27)
- keep Hindsight opt-in (54d52eaea2)
- verify real Hindsight contract (81ce76a42a)
- preserve per-bank recall scopes (313a3d262c)
- define bank-scoped recall (56c3e1142d)
- verify llms without published writes (b5dd1beb1a)
- clean runtime lint warnings (f605fb91af)
- document Hindsight deployment (c8c6c11c67)
- wire task memory runtime (ce3b068a05)
- add Hindsight-backed storage (e5f97bb1b5)
- add declarative Memory context (efb533bd52)
- define the Memory component contract (66a4876477)
1188 commits since v0.27.0: 4232 files changed, +369623 / -50575 lines. Release notes: smithers.sh/changelogs/0.28.0.
- feat(workflows): teach release-content the release-post format, commit-level CHANGELOG.md, and verified UI recordings (7fbe42f313)
- feat(workflows): wire release stats and real UI recordings into the changelog/thread prompts (7e903c0142)
- feat(workflows): compute release stats and record real Monitor UI recordings in release-content (04d16c5f31)
- feat(workflows): add a live gateway-react UI for the smoketest workflow (486ad3a3bd)
- feat(examples): add the hijacked-chat-pipeline example with a PTY-backed chat UI (1917552074)
- feat(ui): add ChatTranscript, ChatMessage, and ChatComposer chat primitives (b2dea5133b)
- feat(gateway): add run-level diff RPC (c3f92880fd)
- feat(control): add accessible control request dialog (651cc945a6)
- feat(workflows): add issue-blitz workflow with live UI (cb7cbf47d7)
- feat(protocol): add gateway-rpc wire contract module (c1d6798c02)
- feat(testing): production-parity simulate and nonce-verified real-process admission (0c98a543a4)
- feat(components): Trellis dynamic delegation (delegation-v2) with workflow, UI, and docs (bb8fd8d424)
- feat(driver): thread task states/failures and pinned concurrency into the render context (d2b57a3ae6)
- feat(engine): budget structured-output corrections with Task maxSchemaRetries (af4bb3d404)
- feat(evals): add phase one authoring benchmark (b330ea2fd7)
- feat(cli): add durable pack sharing workflows (350d9a0a3a)
- feat(cli): add pack workflow eject (5e8efe4d95)
- feat(cli): complete workflow pack lifecycle (1a540e72e3)
- feat(cli): install and discover workflow packs (3b29b5588f)
- feat(cli): add smithers.toon pack manifests (e8b931e030)
- feat(workflows): implement-packs orchestration for the packs feature (46eec7e2a5)
- feat(engine): provenance binding — ctx.prove, Task bind, BOUND_STALE (e8e028a41f)
- feat(release): publish every fully green main commit to the npm next channel (5b07767382)
- feat(workflows): add riskless-github-issue-sweep workflow (22f897a9b5)
- feat(workflows): authoring benchmark eval, baseline claude-haiku-4-5 passes (fb4ee82c33)
- feat(runtime): add browser adapter and browser-first conformance tests (0a110744e2)
- feat(testing): kernel executor owns ready-set racing and leftover controls fail the run (c6baba81bc)
- feat(engine,cli): worktree ownership records with
smithers worktree list|prunereaping (41e626a9d6) - feat(coverage): run multi-segment 'bun test && bun test' scripts and merge their LCOV reports (a4c11fd5fa)
- feat(ticket-fleet): route simple issues to luna, weight strong work to sol (fb8bdd2aaf)
- feat(ticket-fleet): direct split mode skips triage/research/planning (7868649590)
- feat(ticket-fleet): explicit Sol/Fable implementer split with cross-model review (8b7cab79b1)
- feat(testing): deterministic scenario kernel with seeded scheduling, replay bundles, and real-db/process adapters (09334d9056)
- feat(monitor): embedded-guest mode — ?embed=1 chrome-less hosting (pinned-run detail / rail-less overview), fail-closed postMessage selection to an explicit hostOrigin, inline two-step cancel replacing window.confirm (iframe-safe), ?theme= stamping for host theme parity; pure embed parsing in monitorModel + 139 tests (511f1ce3ef)
- feat(workflows): add the implement-testing-framework-e2e workflow (36ce317afc)
- feat(codex-plugin): harden durable spawn-tool routing policy (17af8ef927, 5f223da5a0)
- feat(codex-plugin): durable spawn-tool routing policy via Codex App Server (6e2d3cd142)
- feat(cli): run status, scoped supervision, and observability (c3d55aabc0)
- feat(scheduler): opt-in failurePolicy="quarantine" for containers (9d310b892f)
- feat(evals): gateway extension + eval-suite-run workflow (server half of multi #77) (#1286) (65a6ffb241)
- feat(gateway): cross-run score comparison RPCs (unblocks multi#5 / Smithers Cloud evals) (#1173) (6b8f96a155)
- feat(gateway): cross-run score comparison — listScoresForRuns + getScoreDetail RPCs, GET /v1/api/scores/compare, db adapter queries, client types (multi#5) (8cbce007cc)
- feat(ticket-fleet): sol plan, luna implement, sol-review loop to LGTM, fable final polish; concurrency 32 (501c5b8a02)
- feat: Derive the default run concurrency from declared Parallel widths (closes #1057) (5463c2b84b)
- feat: Report live owners as busy instead of orphaned (closes #1055) (fe4c841946)
- feat: Expand rendered coverage for workflow UI surfaces (closes #1053) (0b02482f38)
- feat: Add rendered coverage for runs and run inspector surfaces (closes #1045) (dba9cb87d2)
- feat: Migrate monitor shell, filters, and actions to shared UI primitives (closes #1033) (72c67b0c99)
- feat: Support dynamically generated workflow files as lifecycle-bound child nodes (closes #1002) (d9fcda3659)
- feat: Implement cascading cancellation and detached-owner process cleanup (closes #1001) (d50f47a7fc)
- feat: Honor run and approval filters in multiplayer collections (closes #1014) (4d3df0227f)
- feat: Add a runnable multi-output childRun reference (closes #1006) (3deac78668)
- feat: Document the childRun last-task output contract (closes #1004) (68cb88fd35)
- feat: Add lifecycle-linked parentage for CLI-launched child runs (closes #1000) (6bd62b7e53)
- feat(engine): numeric node priority for concurrency-limited scheduling (8e3c12a64b)
- feat(pack): codex-paused kill-switch flips codex-first chains to Claude (ac0696930b)
- feat(workflows): validate create-workflow skill docs with a real YAML frontmatter parser (bf022d3581)
- feat(cli): one-click Resume button on the monitor health strip (45e3999567)
- feat(cli): slim the init pack to focused authoring workflows and preserve starters as examples/ (f1994f9446)
- feat(workflows): gate create-workflow success on a verified companion skill doc (fa2eb211f1)
- feat(cli): scope the Claude plugin monitor to session-subscribed runs (dc7e0d6b28)
- feat(time-travel): content-address snapshot payloads (eb2eeecca1)
- feat(cli): monitor model readers for scores, crons, ops stats, and /metrics (5c90f63533, 78f331f499)
- feat(cli): show agent engine, model, chain, and attempts in monitor inspector (199caed753)
- feat(gateway-client): map agent metadata onto GatewayRunNode (0fdcc3174b)
- feat(server): surface declared and acting agent on devtools snapshots (990b88ec28)
- feat(engine): capture declared task agent into the frame task index (eb9a4cb43e)
- feat(protocol): add devtools agent summary types to task nodes (17093ffef1)
- feat(cli): monitor diff view, timeline tab, and run/task controls (2823c84b7f)
- feat(server): node-states read route and retryTask RPC (5fc14ed06a)
- feat(cli): seed the monitoring workflows in the init pack (e6e351104e)
- feat(monitor): interactive DevTools-style XML tree view (3e012c775e)
- feat(monitor): stream agent session transcripts, XML tree toggle, visible hijack affordance (77e4df4222)
- feat(monitor): hijack a node's agent session in an embedded terminal (22fecebbcc)
- feat(gateway): PTY hijack websocket channel and per-node hijack candidates (9a81f78354)
- feat(monitor): readable per-field node output + streaming transcript cadence (c28ca1b922)
- feat(cli): smithers what — cheap-agent "what happened" recaps for runs and nodes (ec14970c1a)
- feat(monitor): paginated all-runs table on the landing view (9be93f8990)
- feat(ui-styleguide): geometry tokens and base resets in the workflow UI theme (e93fcb3f96)
- feat(cli): open the Smithers Monitor automatically when a run starts (bcb896370f)
- feat(monitor): Create UI button and live per-node output transcript (206bea030a)
- feat(workflows): create-ui — one agent authors and verifies a workflow UI (64ac87759b)
- feat(gateway): resolve workflow UIs from ui/<key>.tsx by convention at request time (60ae83919b)
- feat(claude-plugin): informative /workflows mirror (0.2.2) (80dcef1d1d)
- feat(monitor): activity event view and a frame-by-frame scrubber (8963e2516c)
- feat(monitor): always-on run health strip with live diagnosis (f9ca97c735)
- feat(monitor): quota visibility and an embedded custom-UI modal (4057776e8c)
- feat(workflows): agent-free events-probe for gateway liveness checks (3c4af6f9c6)
- feat(monitor): container rollup, failure reasons, and a notable-events filter (9cd8377bbc)
- feat(cli): redesign init around one agent question + hijacked tutorial (76cb2dac56)
- feat(workflows): add ticket-fleet backlog pipeline with UI and monitor cron (fe945212af)
- feat(workflows): run issues through local merge queue (79f5474213)
- feat(workflows): harden codex issue merge queue for public issues (884a28d8f1)
- feat(workflows): extend codex issue merge queue helpers (9e8cf252c4)
- feat(workflows): add subscription-only Codex account chain (e10f81e281)
- feat(workflows): add fail-closed public issue agent CLI policy (f673bf70fe)
- feat(workflows): add cross-provider agent failover (ebcf3b1a35)
- feat(telegram-summary): add OpenAI summarizer provider (9a6e909d43)
- feat(workflows): add codex issue merge queue workflow + watchdog (106d0c7887)
- feat(docs): adapt landing page into Mintlify docs site (brass editorial theme) (#770) (0d1dd4cb8d)
- feat(testing): compile matcher bun:test augmentation via tsup entry (adbc6ab9d2)
- feat(review): onboarding landing page + GET /api/plan for hosted walkthrough lifecycle (4885708295)
- feat(workflows): route-and-merge-issues — push routed fixes to main via serial MergeQueue (32eeb3309f)
- feat(review): enforce api key spend caps (1f2b713039)
- feat(testing): add workflow simulator (5571f57808)
- feat(accounts): add PKCE helpers (7087faf0e7)
- feat(workflows): add issue 491 plan workflow (991c8342c6)
- feat(review): add walkthrough history management (9a6e812c7d)
- feat(ddd-ui): tutorial teaches with a feature card, features hides empty buckets (08c30f31e3)
- feat(ddd-ui): guard destructive discard-all and premature reload (569d6db606)
- feat(ddd-ui): render ticket bodies as markdown, add severity facet tally (77df96b7bb)
- feat(ddd-ui): structured output cards, segmented feature detail, collapsible source (0972eb5839)
- feat(ddd-ui): Live tab reads as a run monitor, not a text wall (c1869ca73d)
- feat(ddd-ui): shell run-status header, phase stepper, complete ARIA tabs (b814271bd5)
- feat(workflows): SMITHERS_NO_FABLE env gate for route-and-stack-issues (05b50afdb9)
- feat(workflows): route-and-stack-issues — comment-routed strategies + stacked PR train (40f0712cde)
- feat(workflows): add pr-review-improve-merge pipeline (c2ea81acd2)
- feat(memory): durable knowledge — provenance, append-only notes with supersession, status gating, lazy FTS (#642) (654e0c910f)
- feat(benchmarks): kanban-bench --no-global-cap and --subtree modes (962a74a725)
- feat(graph,scheduler): subtreeConcurrency semantic on <Parallel> (db867fbb3e)
- feat(engine): demand-driven maxConcurrency auto-raise (4ec5eff5e6)
- feat(benchmarks): kanban-bench --no-input mode (52b0c8423f)
- feat(engine): warn once when tasks starve on the maxConcurrency cap (ee19d0c4e0)
- feat(benchmarks): kanban workflow speed benchmark + findings (1343b0bd4c)
- feat(workflows): add test fortress workflow pack (534dc93e5a)
- feat(engine,driver): surface empty-prompt and render failures as typed errors (a4b3ea9cc1)
- feat(engine): drive a run to completion under plain Node (1b2) (3d3d411382)
- feat(ddd): add feature-spec pack installer and DDD agents (a3e5bb1f49)
- feat(workflows): serverless-refactor — Codex+Opus dual-plan/review with Opus synthesis (ebc9fff837)
- feat(evals): expand UI judging ground-truth guidance (0d7ebac88f)
- feat(cli): redirect
up --dry-runtosmithers graph(8a6a458a59) - feat(evals): trust observed UI features as ground truth in judging (8278040814)
- feat(smithers): expose sandbox providers via subpath exports (342f8ca28a)
- feat(workflows): add Break Smithers EDD loop workflow (68a3b6dc52, 97a549b6fa)
- feat(evals): add ui-functional eval runner (bed58a5b84)
- feat(gcp): add first-class GCP sandbox provider package (8e28b425b1)
- feat(aws): add first-class AWS sandbox provider package (1ae4a4e416)
- feat(vercel): add first-class Vercel sandbox provider package (b772977240)
- feat(daytona): add first-class Daytona sandbox provider package (21a28f35bb)
- feat(sandbox): extract shared provider-kit for sandbox adapters (644f0cc8d1)
- feat(smithers): re-export UI/TUI view prop types (fce3bf1934)
- feat(workflows): add daily benchmark-maintenance and canary system workflows (224e4722bd)
- feat(sota): add benchmark results to the model registry (9d7f5df30f)
- feat(server): resolve workflow-owned UI/TUI views via entryFile (369c8e151b)
- feat(cli): add agent-assisted smithers upgrade workflow (b11c4c2ca8)
- feat(estimate): add <Estimate> workflow cost and token forecast (5bdb8baa69)
- feat(components): add <UI>/<TUI> workflow view primitives (7b406404a7)
- feat(scorers): centralize model token prices and cost estimator (3e8033b200)
- feat(cli): notify when a newer SOTA model registry ships (d8a1fee567)
- feat(sota): add daily model research cron (d96199fdab)
- feat(sota): add canonical model registry, generator, and drift check (7e01de0dcb)
- feat(benchmarks): add benchmark results site (bc3ce2ce56)
- feat(benchmarks): add cloud benchmark fleet package (9915267b5a)
- feat(gateway): pauseRun RPC for graceful pause (dc3eed2bd2)
- feat: graceful pause —
smithers pause+ resumablepausedrun status (9befbe5c77) - feat(cli): seed delegation-chain workflow + multi-file UI into the init pack (7fdc008a80)
- feat(ui): delegation-chain workflow UI (5239b18d7b)
- feat(components): delegation-chain composites, schemas, prompts (75c89e0549)
- feat(gateway-react): delegation flux store + useDelegationChain (a5b42a3da3)
- feat(scorers): delegation scorers + weighted run aggregation (7e9f3311d3)
- feat(workflows): agentTier input on the audit workflow (0291b7cf2a)
- feat(cli): serve the global ~/.smithers pack from the gateway (b6dd181a44)
- feat(cli): theme-aware init pack templates on the shared ui components (5dfa7a01b5)
- feat(ui): @smthrs/ui — token-native shadcn-anatomy component library (48fcaada6f)
- feat(server): theme gateway UI pages before first paint (53b0181018)
- feat(gateway-ui): follow style-guide theme tokens in inline component styles (1db896a131)
- fix(agents): pin Whisper audio downloads (def2a76c25)
- fix(observability,telegram): stop toJSON and AbortError secret leaks (5b78c9b14a)
- fix(workflows): isolate issue-blitz publication (a5e85ae717)
- fix(cli): harden pack scanning and discovery (f7f5f48b80)
- feat(engine): enforce replay-unsafe tool approval (d0e007256f)
- fix(cli): secure token store rewrites (49de5d4b5c)
- fix(cli): staged, symlink-safe pack installs with same-filesystem swap (1af32cb6c0)
- fix(cli): non-destructive staged publishing, idempotent retries, agent manifest completion (0acf52a92a)
- fix(cli): share publishes a staged copy, never the live pack (eeefe4b526)
- fix(cli): strip agent configuration from shared packs (e7e62f9c6d)
- fix(sandbox): resolve provider streamLogPath through realpath confinement (4c3c5d1c19)
- fix(observability): redact structured credential fields (56af962ec3)
- fix(integrations): reject foreign GitHub API URLs (06adbb2df3)
- fix(agents): reject invalid HTTP tool base URLs (71d965894b)
- fix(electric-proxy): make whereTemplate authoritative on template-only shapes (3101beb5ac)
- fix(telegram): redact bot tokens from network errors (c796d66cbc)
- fix(openapi): merge protected headers case-insensitively (0e951829df)
- fix(testing): harden real-db admission and bind cut points to SmithersDb CAS methods (6da6f4c9d0)
- fix(testing): challenge real-process admission with adapter-owned nonces (f2e7795b8c)
- fix(.smithers): admit Homebrew dylib formula roots and pin inert OpenSSL config in the public-issue sandbox (c6a7ee9e5b)
- fix(bump): stage release paths without shell interpolation (closes #1032) (c4838e1317)
- fix(sandbox): execute gcloud commands without shell interpolation (closes #1031) (8cc99b53c5)
- fix: Harden API-key web-search providers against redirect leakage (closes #1022) (25ad3819a6)
- fix: Harden the Anthropic review proxy against upstream-key leakage (closes #1021) (b464322cf0)
- fix: Harden ElevenLabs TTS redirects against xi-api-key leakage (closes #1020) (52ce83f553)
- fix: Harden Exa search redirects against API-key leakage (closes #1019) (90b8e15400)
- fix: Harden OpenAPI tool redirects against auth-header leakage (closes #1018) (d00347d58d)
- fix: Harden generic HTTP tool redirects against secret-header leakage (closes #1017) (3c0bbafe5b)
- fix(agents): support isolated CLI environments (a0c9158ec6)
- fix(electric-proxy): derive opaque principalId instead of leaking token suffix (#753) (b6500c4f25)
- test(db): guard direct database access (c8fc98a8e7)
- fix(cli): harden command parsing and bounds (7159e5db08)
- fix(review): harden prompts and completion polling (c721cbf536)
- fix(sandbox): harden remote provider execution results (a0b4b03fce)
- fix(server): validate trusted host origins (d2d88edb46)
- fix(engine): reject diff bundle path escapes (3920a2bcc7)
- fix(scorers): isolate renamed scorer aggregates (83597c923d)
- fix(telegram-summary): match configured usernames (0e4c190103)
- fix(engine): normalize durable signal correlations (ed1779bee0)
- fix(ci): checkout before the release-next gate step (f37917eab1)
- fix(memory): treat note searches as literal text (120ac11385)
- fix(review): refresh JWKS on kid miss (95e3da143f)
- fix(agents): make diagnostics non-blocking (bcab39d0d7)
- fix(agents): drop the deprecated --full-auto alias when an explicit codex sandbox is set (ddcc06febb)
- fix(test): best-effort temp cleanup in the rewind recovery suite on Windows (f4008cb994)
- fix(time-travel): fence stale rewind recovery (9d1e554ff9)
- fix(scheduler): prevent durable timer starvation (d6b899d45e)
- fix(test): unblock the Linux suite from a bun mock.module execFileSync deadlock (524079c217)
- fix(integrations): drain accepted webhooks on shutdown (b6ea25646e)
- fix(integrations): acknowledge polling batches after delivery (1d856eda1f)
- fix(test): repair the macOS hermetic-root gate and finish Windows-proofing the .smithers suites (8e0f8113d5)
- fix(coverage): load react aliases eagerly and stop failing merges on bun inventory noise (c62fb4f65a)
- fix(ci): scope the Windows shard and coverage merge to what they can own (836f1ad63a)
- fix(ci): gate Bun lockfile drift (340ca5461c)
- fix(test): type the refresh-skills task result for the .smithers typecheck gate (56168f3f1d)
- fix(test): finish Windows-proofing .smithers suites (7aa796cd2c)
- fix(test): give the real npm-pack mode test a CI-sized timeout (9b16c8ec1e)
- fix(workflows): report the corrected document round from create-workflow's retry loop (c42c034f19)
- fix(test): make .smithers temp cleanup EBUSY-proof on Windows (8c1e92225b)
- fix(workflows): preserve ticket-fleet train outcomes (c9fb95806b)
- fix(test): sync root-script contract, teach snapshot fakes the upsert-lock statement, retry Windows temp cleanup (b4a474f1b1)
- fix: repair trellis docs snippet and CRLF-safe sentinel assertion (12d2512e21)
- fix: stabilize time-travel capture race and bound UI bundle fan-out (8bb033d251)
- fix(cli): repair init-pack contract tests (6f7fb97170)
- fix(agents,engine): process the first pool NDJSON record and isolate browser runs (6562452c15)
- fix(db): publish heartbeatSandbox in the committed declarations (0b030ec130)
- fix(components): fail CheckSuite checks that overflow the capture buffer (5ed2519c2a)
- fix(server): resolve gateway UI bundle paths absolutely (2937099411)
- fix(db): allocate stream sequences atomically (95d4af1850)
- fix(graph): detect inactive MDX preload via object children instead of stringified prompts (fc9220955e)
- fix(gateway): serialize tsup declaration builds to stop d.ts races (61f30b5bf6)
- fix(agents): classify claude 'No conversation found' as session loss and retry fresh (d5ff21a321)
- fix(agents): publish complete CLI agent types (d99f30b5fd)
- fix(workflows): repair seeded workflow smoke contracts (562b9dd6ff)
- fix(e2e): bound runtime child cleanup (7c4c4ec431)
- fix(control-plane): cancel quota-parked runs (b8998c3a56)
- fix(e2e): align case30 fake agent and sqlite close with typed contracts (2db5734e1d)
- fix(cli): isolate semantic MCP database fixtures (e9f631f09d)
- fix(test): keep integration gates hermetic (ae29d42355)
- fix(ci): isolate postgres migrate-store tests (3f3acb85ed)
- fix(scripts): escalate workspace test timeouts to SIGKILL (5cf2bef538)
- fix(testing): preserve files in files-only fake-agent wrappers (3b7ee401dd)
- fix(capture-gifs): reject slug collisions (b026ccca40)
- fix(scripts): reject forbidden fault test modifiers (0a74826118)
- fix(testing): validate function mock output wrappers (5621df00c7)
- fix(cli): honor env in global pack root and scan JS pack modules (2e1d51f69e)
- fix(control-plane): atomically persist mutations and audit events (74abd56e10)
- fix(graph): coerce numeric extraction props (e0b5e3274c)
- fix(cli): collapse duplicate home workflow directories (48f7f97381)
- fix(cli): isolate HOME fallback in global pack regression (732bd561e1)
- fix(agents): reject non-HTTP URL schemes (c89c88fe70)
- fix(engine): unify workflow-pack React modules (9cae4801f7)
- fix(e2e): reap timed-out smithers CLI process groups (54efcbb902)
- fix(smithers): align migration schema expectations (364f0be292)
- fix(e2e): unbreak case31 nonce and raise real-process handshake timeout (3bf7070932)
- fix(graph): detect object markers in coerced prompts (18590eb39f, 85b2b3d0e2)
- fix(approval): reject malformed access restrictions (038dfbd5d4, 7bbe87708a)
- fix(architecture): detect default namespace hook exports (ecca76faf1)
- fix(vcs): report selected jj workspace (0a48f6fa32)
- fix(vcs): restore targets after failed workspace adds (a3e75e9a4f)
- fix(cli): treat graceful pauses as non-failure exits (1e408efc00)
- fix(components): fail exhausted delegation leaf attempts (9ebf7e3b52)
- fix(gateway): preserve run event replay order (dd77ab4fad)
- fix(engine): anchor malformed waiting timers to attempt start time (6bccb234b5)
- fix(gateway): guard processDueCrons against overlapping ticks (155e372e33)
- fix(engine): bound durable deferred resolutions (45d1faaaa5)
- fix(engine): support concurrent WatchTree waiters (08997b6fc0)
- fix(cli): enforce loopback Host on local UI proxies (3355ac66d1)
- fix(smithers-pack): harden seeded components, prompts, and workflow inputs (363037b338)
- fix(db,components): handle unions, lazy schemas, and recursion in zod example/table generation (7aff0128a1)
- fix(graph): reject unsupported nested loop lanes (6c00aedd95)
- fix(graph): reject nested loops through fork containers (678f2a8915)
- fix(graph): reject unsupported nested loops during extraction (39ce0cdae4)
- fix(cli): harden shared pack publishing (4c1845d127)
- fix(cli): harden durable pack sharing (091f5d28fe)
- fix(cli): sass closures, gated convention UI, and rollback-safe eject copies (e82a721985)
- fix(cli): eject carries convention UIs and asset leaves; prove run-shadow in tests (05ace5983c)
- fix(cli): resolve aliased UI entries during pack eject (154207d2ef)
- fix(cli): make pack eject closure self-contained (c6b1c4d7de)
- fix(cli): resolve directory imports during pack eject (fc6a454fa9)
- fix(cli): allow smthrs subpaths in pack import scan and bare #ref shorthand (71b4e59973)
- fix(cli): harden pack lifecycle per phase-2 Sol review (2b637c5f03)
- fix(cli): close phase-2 pack gaps — qualified shadow resolution, subdir tarballs, packs update, re-export scan (68d56ff057)
- fix(cli): report pack workflow eligibility (3fc8c2c9fd)
- fix(engine): keep discardResumeSession visible through retry-task resets (d184738cf2)
- fix(engine): honor discardResumeSession on hijack-continuation and continue fallbacks (eaff9ddd69)
- fix(cli): scaffold smithers.toon on agents-only init and document the manifest (d13e13c25b)
- fix(cli): validate pack manifest nulls and UI inventory (0cc1c917bc)
- fix(cli): reject invalid pack manifest sections (089517f670)
- fix(repo): restore root gate invariants (53aedd3ec2)
- fix(engine): harden provenance binding revalidation (2cae4e2a45)
- fix(graph): name both loop ids in the nested-Loop NESTED_LOOP error (73a86b983d)
- fix(gateway-react): preserve multiplayer run forests and recover parked streams (7f6c4ab6e3)
- fix(agents): suppress secondary diagnostics after aborts (dc1628b254)
- fix(errors): preserve plain-object legacy causes (4df6fabf18)
- fix(control-plane): cascade project usage limits (6b0b02f736)
- fix(cloudflare): refresh in-place declaration output (64e37cbc02)
- fix(aws): declare ECS CloudWatch log stream prefix (d41acfcdea)
- fix(aws): declare S3 transport workdir option (f37cb006ec)
- fix(agents): mark replay_run destructive (67ae638bbb)
- fix(gateway-ui): include the first run event (6cf02eec1c)
- fix(telegram-summary): preserve digest after ingest failure (dd4d04aff2)
- fix(cloudflare): default unknown process exits to failure (80d9125f01)
- fix(cloudflare): expose sleepAfter in provider options (c668f9187c)
- fix(e2e): pass rootDir to hand-built task runtimes in case23/case26 (8497b0a2ab)
- fix(gateway): guard legacy RPC aliases against prototype keys (f37c1c9a68)
- fix(agent-eliza): import workflow files via file URLs (3ea966353e)
- fix(openapi): capture tool duration start at effect execution (730e349d3f)
- fix(cli): classify create-ui as a curated system workflow (14c1a300b6)
- fix(cli): seed create-ui so the monitor’s “Create UI” button works outside the dev repo (2504b4416e)
- fix(monitor): open node live output at the tail, not the oldest 120 events (87e61db5fe)
- fix(monitor): stop the settled-node "Reopen session" button from parking a live run (3edb6a9666)
- fix(cli): make
smithers downterminate surviving run owners likecanceldoes (58cd7ecc7c) - fix(workflows): compute daily cron runLabel defaults lazily (27d9a22016)
- fix(db): escape LIKE wildcards in listNodeEvents nodeId needle (e59a95b4b8)
- fix(db): snake-case output tables in deleteOutputRow on non-sqlite backends (fbb7b2e0f1)
- fix(agents): preserve malformed JSON response bodies (e52896cc5a)
- fix(release): assert the release tag matches HEAD before publishing (06a5da190d)
- fix(components): run CheckSuite command checks in the run's rootDir (1abdfedda4)
- fix(server): keep whatHappened.js diffable — no raw NUL byte (d3fa5e87b3)
- fix(gateway): express any-JSON array items validly in OpenAPI 3.1 (0466e459be)
- fix(gateway-react): surface run-event source-fetch failures (281e2dbb51)
- fix(review): guard walkthrough DELETE against missing R2 binding (57daf8e1dd)
- fix(react-reconciler): skip dev graph fallback when package resolves (c7cc5bad2f)
- fix(scorers): neutral cost-weight fallback in estimateAccuracyScorer (0fa4926cb5)
- fix(observability): remove conflicting trace annotation export (67bea7399b)
- fix(gateway-react): scope mutation collection invalidation (7ebe0e5292)
- fix(usage): key cached reports by account identity (4d36a590cc)
- fix(aws): skip redundant StopBuild after natural completion (6608f4ff78)
- fix(gateway): preserve GatewayDocRow kind literals (a38c4a8940)
- fix(integrations): avoid final GitHub retry delay (b58ef7c6ea)
- fix(aws): abort pending sandbox requests (0fb5e44856)
- fix(gateway-client): bound unread WebSocket events (81df8a587d)
- fix(gateway-react): surface collection load errors (402da7862c)
- fix(time-travel): serialize rewinds with durable leases (2121c9b2b2)
- fix(migrate): roll back incomplete target copies (2e29d6aed3)
- fix(react-reconciler): make DevTools teardown order-safe (8669bd023d)
- fix(protocol): expose DevTools snapshot run state (0790e7b208)
- fix(gateway): validate SSE cursors before streaming (44573b9b90)
- fix(gateway-client): page local run-event tails (75b9799287)
- fix(errors): wrap top-level arrays in errorToJson into a record (82240a06e0)
- fix(integrations): use invalid-config reason for duplicate webhook source ids (b38a11f4a8)
- fix(aws): preserve failed S3 cleanup keys (94860834d5)
- fix(ticket-fleet): spawn the train gate's install directly, not via a login shell (9163583a9a)
- fix(testing): anchor fakeAgent writes to directory handles (792bb5bf60)
- fix(memory): gate note side effects on insert (f8b7bbf420)
- fix(smithers): refresh hot schema validators (65e3978549)
- fix(driver): classify only exact abort errors as cancellation (4832514082)
- fix(review): correct Anthropic token prices (2f7a246e43)
- fix(server): isolate run registries per server (755dfbeb65)
- fix(ticket-fleet): rebuild ticket-close commits on the live origin tip (46374126ff)
- fix(ticket-fleet): harden the merge train per adversarial review (b53f3a71f3)
- fix(gateway-client): render paused runs as waiting (6dd333b957)
- fix(scorers): restore replay-stable sampling seed (36434bd0f0)
- fix(devtools): reject null task updates (9c49aac49c)
- fix(review): keep overview chart segments within track (5374a51cc6)
- fix(driver): cancel aborts during deadline waits (01a18a4b5d)
- fix(integrations): timestamp Telegram approvals at resolution (f1c10c616f)
- fix(gateway): match custom approval scopes literally (58eb3757b3)
- fix(cli): supervise only resumes runs whose owner PID is verifiably dead (acb56001ca)
- fix(pi-plugin): enforce gateway challenge timeout (e8c8779877)
- fix(agents): narrow reached quota detection (b7d448f9ed)
- fix(gateway-react): prioritize cascade reaffirmations (44bcef7d75)
- fix(pi-plugin): surface SSE HTTP errors (36523d54e4)
- fix(ticket-fleet): merge-train landing so the queue never wedges on a moved main (72bf9c8058)
- fix(workflows): fail stale approvals when target-scoped commits move in implement-testing-framework-e2e (ad63ddaa3f)
- fix(integrations): reject full webhook queues (160ba20c3e)
- fix(integrations): expand nested Telegram markdown sentinels (190437deb1)
- fix(agents): drain MCP stderr only once (7900216bf9)
- fix(db): claim external runs with runtime ownership (2cc4fd13e9)
- fix(ticket-fleet): land immediately when the rebase is patch-identical (d9a5d0e5ae)
- fix(ticket-fleet): scope the landing gate to changed packages (a046cdc056)
- fix(ticket-fleet): retry lane bootstrap when a concurrent pnpm install loses (57c757c199)
- fix(cli): bound gateway health probes with an independent deadline race (9c9a9c49a8)
- fix(gateway-client): keep approvals RPC-backed — no Electric shape can express pending semantics (5cbef31a99)
- fix(testing): strict-order control rendezvous, adapter trust registry, and leak-preserving cleanup (8ee004053a)
- fix(ticket-fleet): diff each lane against its live merge-base with main (d63434f4fe)
- fix(engine): fail over to the next agent on a rate limit before parking the run (0fea382d71)
- fix(engine): honor declared subtreeConcurrency width in the slot-cap auto-raise (2d0f4ac7ba)
- fix(ticket-fleet): the implement agent commits its own work (0357d5571e)
- fix(ticket-fleet): commit lane fixes atomically with luna-authored messages (cda59e9e73)
- fix(agents): treat Claude org_level_disabled as a transient rate-limit, not a multi-hour quota park (afc636ab38)
- fix(usage): report Codex weekly window when the 5-hour window is absent (092369690b)
- fix(vercel): fix(vercel): [medium] per-command deadline sent as SDK
timeoutnottimeoutMs; abort signal (ba0a573cd9) - fix(cloudflare): fix(cloudflare): [low] non-object result JSON throws cryptic
inTypeError instead of guar (031824f8c3) - fix(daytona): fix(daytona): [medium] exec ignores per-tool timeoutMs client-side, unlike create/startup and (0be6074951)
- fix(react-reconciler): fix(react-reconciler): [medium] devtools clobbers last-good snapshot with a null tree (0a48435c8a)
- fix(gateway): fix(gateway): [low] runRecord uses 3.0-only
nullableunder an OpenAPI 3.1.0 spec, so getRun' (4992cf6117) - fix(memory): [low] deleteThread's sync sqlite transaction has no backend guard, degrades to obscure TypeErro (b2c9ec68db)
- fix(errors): [low] errorToJson truncates a top-level plain Error's
.causeand own props on the durable fai (8836f9714b) - fix(gateway-react): fix(gateway-react): [low] unstable filtered
rowsdefeats useGatewayRunEvents memo, cau (9cadc75c02) - fix(smithers): fix(smithers/tools): [low] grep passes pattern to rg without
--, dash-leading patterns sile (585101afc6) - fix(server): [low] electric-write endpoint skips assertJsonPayloadWithinBounds body-size guard (c861f082e5)
- fix(engine): [low] compute-callback timeout setTimeout is never cleared (ref-timer keeps event loop alive) (317a80fd42)
- fix(gateway-react): low] foldDelegation compareRecords not a total order for _approval markers (9fe6a13cd6)
- fix(components): medium] Empty commitRange in git-only repos points review gates at an empty diff (bb970a32b4)
- fix(scorers): medium] Delegation scorer: empty {events:[]} payload doesn't fall back to context (b1ba94bff3)
- fix(usage): Anthropic header probe swallows non-ok responses as a blank 'headers' row instead of reporting t (b3a26182f0)
- fix(gateway): submitApproval requestSchema rejects the top-level
notefield the TS type declares and the s (3b76e6f816) - fix(react-reconciler): injectIntoDevTools registers stale package name '@smthrs/core-react' ( (4b7976ab54)
- fix(react-reconciler):
getFiberId(fiber) ?? setFiberId(fiber)fallback would assign an undefined DevTools (ad10c40a1a) - fix(observability): sandboxCompletedTotal loses its status tag when the event has no runtime (78936eaec9)
- fix(observability): context-window metrics ignore cache tokens whenever inputTokens is present (28a92a7441)
- fix(observability): agentActionsTotal catalog labels (action_name/action_type) never match the emitted tags (f149b371fd)
- fix(review): missing R2 binding crashes /w/<id> with a TypeError instead of a clean 503 (5b246812e5)
- fix(review): quiz prompt promises walkthrough-answerability but the quiz task never receives the story (db8833d4ea)
- fix(openapi): YAML specs fail on Node — parseSpecText uses bare require() in an ESM module (40c16d32c9)
- fix(pi-plugin): DevToolsStore classifies decode errors by message substring instead of SmithersError code (8dfab870f2)
- fix(time-travel): frame/snapshot truncation silently skipped when every frame postdates the target attempt ( (62cb564ab6)
- fix(tui): hijack Returned dialog height 6 clips its "[d] dismiss" line (276695ace5)
- fix(driver): idle-timeout kill message reports the configured timeout, not the Bun-floored effective one (593c169433)
- fix(gateway-client): approvals collection onUpdate hardcodes approved:true — a deny-shaped update silently a (a375ff208b)
- fix(integrations): LinearOutbound drops smithersContext when rendering its inner Task (82bcfd95af)
- fix(agents): AmpAgentOptions.ide/.jetbrains are ignored — buildCommand always emits --no-ide/--no-jetbrains (4eeb007d69)
- fix(agents): usage extraction scans the output file, not raw stdout, when commandSpec.outputFile is set (01081b1181)
- fix(scorers): emitScorerEvent bare-bus fallback dies on a throwing bus.emit, aborting scoring despite its co (63eda9f3c2)
- fix(control-plane): control-plane.test.js contains byte-identical duplicated test blocks (3-5 copies each) (eece273c20)
- fix(db): migration 0017 (scorer context columns) is a silent no-op on Postgres/PGlite — ledger marks it appl (8258964646)
- fix(graph): classifyClaudeWorkflowNodeKind returns "compute" for legacy dom-extracted Subflow/Sandbox descri (52c6df73d1)
- fix(server): GET /v1/runs/:runId/events parses afterSeq after SSE headers are flushed (9e8b11d906)
- fix(server): gateway listCrons() returns each cron N times when N workflows share a DB (c3b8029438)
- fix(electric-proxy):
electric.shape.forwardedreports the process-wide forwardedBytes counter as the closi (b37992ee58) - fix(engine): legacyExecuteTask JSDoc
toolConfigtype omitstraceContext, which the function reads (720a31c51b) - fix(engine): JSON-repair follow-up generate() omits rootDir/maxOutputBytes/taskContext (2902ed815d)
- fix(memory): saveMessage re-save overwrites createdAtMs, breaking message ordering on crash-resume/replay (844b07d115)
- fix(memory): Summarizer agent.run failures escape as UnknownException instead of SmithersError (0318495f53)
- fix(agent-eliza): unvalidated frontmatter tags/aliases crash the workflow formatter (
.joinon a string) (d6f0b339df) - fix(monitor): kill the two claude-monitor false-notification classes at the source — cancellation now finalizes pending approval/human gates through the shared cancel path (no more approval-pending ghosts for days-dead runs, monitor-side terminal guard as defense in depth), and task liveness heartbeats come from the execution layer with PID-verified owners + stale-owner write fencing (long silent tool calls under CPU load no longer read as run-stalled; genuinely dead runs still flag on time). Completes the claim-based cancellation landed in dcdfd84665. (a0b5b2df1f)
- fix(db): scope sqlite transaction ownership; serialise updateWhere (477de464bb)
- fix(smithers): refuse malformed WAL/SHM sidecars instead of crashing (9ee23aa908)
- fix(cli): add eval-suite-run to the curated system workflow contract (5ac8219478)
- fix(workflows): narrow suite before the eval-suite-run case fan-out (19b6bec122)
- fix(engine): regenerate index.d.ts with the ChildWorkflowFileRef union (b297056d15)
- fix(smithers): collect closed embedded PGlite instances eagerly (d7538a833f)
- fix(agents): drop duplicated abortableDelay declaration (fbc0c3b18a)
- fix(cli): stop scaffolding the legacy components dir and pin pack deps (fd1a80258a)
- fix(cli): claude-mirror never surfaces gates for terminal runs (768da2f873)
- fix(engine): claim-based terminal cancellation with owner-guarded writes (dcdfd84665)
- fix(smithers): restore executeChildWorkflow in the umbrella index.d.ts (e71a545dac)
- fix(codex-plugin): ABA-proof status guard, journal ownership in status, TOML-safe test paths (288c3bae58)
- fix(codex-plugin): user-layer recovery ownership + real durability-transition tests (5edf84178a, 3902c55a75, 928d8d7d1f)
- fix(codex-plugin): harden routing recovery and Windows launch (215ca485e7, 8a71b543f1)
- fix(codex-plugin): stale-lock reclaim and crash-safe routing (072b10dd0c)
- fix(engine): harden durable runs against quota, resets, and workflow edits (5cde9031c4)
- fix(engine): quota failure must not demote a task down its agent failover chain (13180d991c)
- fix(cli): stop
smithers cancelfrom cascade-cancelling time-travel forks (2d1219d5d9) - fix(ticket-fleet): make createIssue idempotent by title across sync-apply retries (910ff7f2fe)
- fix(time-travel): replay re-blesses workflow hashes so an edited replay resumes (06c762ba26)
- fix(ticket-fleet): make sync-apply decompose idempotent across retries (033a2ff947)
- fix(db): resolve camelCase output keys to snake_case physical tables in deleteOutputRow (00d7a8ac53)
- fix(db): drop unreleased snapshot payload prototype triggers (bd26249f9f)
- fix(storage): harden snapshot compatibility boundaries (5aab244847)
- fix(monitor): honest container inspector + agent attribution on failures (1807996f95)
- fix(monitor): name the unreachable-gateway state instead of an empty runs list (c2c9e3eaba)
- fix(ci): green main — events-probe string key, regen seeded pack for codexAccounts (d4c34be091)
- fix(monitor): first paint says loading, never a false empty verdict (6d70f42d4b)
- fix(monitor): per-node live output survives busy runs (a96572d09c)
- fix(workflows): make ticket-fleet slugify collision-proof under truncation (efb6d56b43)
- fix(cli): failure notifications suggested nonexistent 'smithers autopsy' (ad7c43c79c)
- fix(workflows): collision-proof ticket-fleet sweep node ids (1022f8326d)
- fix(gateway-client): a terminal run never renders stranded nodes as running (7f8e282f3c)
- fix(engine,vcs): never lose the worktree-creation lock race (#935) (bdb89faceb)
- fix(cli): claude monitor never misses a terminal run transition (88a8ba7f1b)
- fix(cli): stall notification suggested nonexistent 'smithers explain' (a7cf60e0c7)
- fix(cli): restore autoOpenMonitor.js dropped by a concurrent index sweep (40c42e7acf)
- fix(gateway): thread listWorkflows includeSystem through REST and collections (4c8ae4ec50)
- fix(gateway): devtools snapshots carry per-node lifecycle states (#817) (5740af8e43)
- fix(ui): ticket-fleet dashboard renders pending outputs as data and hides failures (7b7c31d20a)
- fix(workflows): ticket-fleet main-guard false positive on concurrent worktree bookmarks (6e57126d62)
- fix(claude-plugin): accept a workflow file path in the /workflows mirror (9c5ca4e8aa)
- fix(storage): honor authoritative SQLite selection (2d77ec1ee8)
- fix(vcs): preserve bundled jj executable mode (ae00d05b6a)
- fix(docs): align editor integration invariant (03c97298bb)
- fix(workflow): avoid conditional Smithering deadlocks (6e37c0b3b7)
- fix(examples): serialize prompt inputs safely (8b81c6b6fb)
- fix(e2e): narrow inspector fault assertions (231ed7bc60)
- fix(testing): publish Bun matcher declarations (641c1926e3)
- fix(accounts): export authorization URL helper (30ea43b38c)
- fix(scripts): update direct DB access ratchet (9598e9010e)
- fix(components): pace Poller with a durable Timer, not a task timeout (31d4ec6714)
- fix(accounts): preserve unknown-provider entries across add/remove rewrites (b393602be8)
- fix(sandbox): preserve ship timestamp and harden failure-path bookkeeping (1c29e9a555)
- fix(graph): reject duplicate inline Subflow ids in extractGraph (#766) (259615adb8)
- fix(smithers): stop backend-inference probe from provisioning pglite schema (#765) (e13e01769b)
- fix(electric-proxy): propagate client disconnect to upstream Electric stream (#764) (5518c26af1)
- fix(gateway-ui): key RunEventLog auto-follow on newest frame seq (#762) (45b05c7ff6)
- fix(sandbox): point sandbox-exec CA at real requestPath, not /workspace (#761) (fb96cb175e)
- fix(accounts): make stale accounts-lock break atomic and identity-verified (#760) (271ce993ce)
- fix(telegram-summary): window undated messages by created_at_ms (#773) (d23bff95b3)
- fix(sandbox): compute real totalDiffLines for SandboxDiffReviewRequested (#771) (34e13552d9)
- fix(agent-eliza): dangling symlink no longer aborts loadWorkflowsFromDir (b4ed3d990f)
- docs(readme): fix broken bugfix example (ctx.latest arity, unguarded deref) via Task deps (35d6a8bcb8)
- fix(workflows): run merge queue inside <Worktree>, not a cwd-pinned agent (10a3ccadb2)
- fix(components): wire deps map + until across seven composites (3530eb2e08)
- fix(workflows): replace removed codex --search flag with tools.web_search config (368646b8f8)
- fix(ddd-ui): match loading-copy convention and complete feature-detail sub-tab ARIA (8638b1871f)
- fix(examples): point smthrs at published package instead of src (5c59f620af)
- fix(components): flatten element strategy to text before passing to task (c24c6bd7d5)
- fix(agents): stop re-arming inactivity timer after RPC settle (8c39a847f7)
- fix(memory): tolerate Windows EBUSY on temp-dir teardown in file-backed e2e (0ff47c5f40)
- fix(ddd): use in-process fixture agents so DDD e2e runs green on CI (ecbd55301f)
- fix(graph): narrow HumanTask meta before reading maxAttempts (9b69571b7d)
- fix(graph): escapeSmithersDir returns an absolute root on Windows (2a3ce82667)
- fix(react-reconciler): devtools preload must not reinstall over a live RDT hook (7b99904496)
- fix(gateway): serializeApprovalRow declares its camelCase wire shape instead of echoing the row type (48bc48d016)
- fix(time-travel): drop the SmithersError typedef shadowing the value import so the dts build parses (9f841e9e70)
- fix(workflows): TestFortress used nonexistent Task retry prop — split into retries + retryPolicy (0d3d92be7d)
- fix(engine): reconcileEventWait must skip terminal-state waiters to prevent hang on partial resumes (f5542b5b3c)
- fix(driver): make spawn capture truncation UTF-8 boundary safe (4c8a416f72)
- fix(scheduler): cap retry schedule walk for extreme attempt values (801a38ceb1)
- fix(graph): clamp negative retries to zero in task extraction (4f34a105dc)
- fix(engine): validate non-object human request schemas without object coercion (476937f217)
- fix(scheduler): respect try-catch error filters (d9114b8fff)
- fix(engine): treat malformed cache rows as misses (ac0b602d5e)
- fix(db): dedupe concurrent signal redelivery (6486d35891)
- fix(db): guard run ancestry cycles (94092c613c)
- fix(time-travel): guard recursive timeline formatting (e1310d5b73)
- fix(openapi): cap schema conversion recursion (1ab98bcbda)
- fix(memory): chunk large message deletes (8a9aa79121)
- fix(cli): bound semantic watch_run timeouts (c6fe770033)
- fix(time-travel): validate snapshot shapes (a086245b1a)
- fix(openapi): reject swagger specs and preserve metadata (88cce83242)
- fix(memory): validate limits and stabilize history order (7c552a8d1d)
- fix(db): dedupe concurrent identical events (010644d6c2)
- fix(tui): truncate large tree output previews (6141f171fd)
- fix(cli): reject invalid subcommands before side effects (613ccf0f5c)
- fix(ddd): dedupe hashed bug tickets (ebcf392c0d)
- fix(cli): run timeline semantic tools in runtime (afa3a949fb)
- fix(cli): scan more active runs during down (5d9a0eaac9)
- fix(scripts): skip symlinked boundary artifacts (601b4c5fb8)
- fix(time-travel): guard timeline tree recursion (c4b6266b1d)
- fix(sandbox): preserve results after cleanup warnings (d3a400c5c4)
- fix(components): support optional smithers context (e21b4874a8)
- fix(test-fortress): absorb transient agent failures (7cd92b10be)
- fix(ddd): harden generated backlog materialization (aeeb3a3af8)
- fix(workflows): drop unsupported key props from TestFortressTrack call sites (d74ea721b0)
- fix(server): declare @smthrs/graph as a runtime dependency (#641) (bbc1264e90)
- fix(gateway): name the frame-schema builders' return type for declaration emit (cdb2a3fecd)
- fix(kanban): correct the loop review gate and input default (7af334cfd9)
- fix(agents): honor diagnostic env for gcloud (ee63229f73)
- fix(vcs): repair the jj binary exec bit and surface a friendly EACCES remediation (c1589142ae)
- fix(engine,graph,server,smithers): resolve the run root above a nested .smithers (8903bb26a8)
- fix(engine): reuse a healthy agent when a failover chain's terminal rung is unavailable (9a9307da2e)
- fix(agents): classify machine quota tokens and distill agent CLI failures (8583683df4)
- fix(engine,gateway): support node-compatible runtime entrypoints (4dfbbe441f)
- fix(observability): add paused and waiting-quota to run status/state unions (7f4c953c19)
- fix(engine,cli): stop worktree agents corrupting the parent's node_modules (2bafeab4f6)
- fix(workflows): align system ui type usage (9a23f4ac01)
- fix(scorers): export ModelPrice type (eeb89bb2e0)
- fix(engine): AsyncLocalStorage-scope the platform layer + apply final Opus review (f9343160f5)
- fix(agents): narrow Claude limit banner detection (e5a19ccf92)
- fix(time-travel): truncate revert state atomically (4b00ae85fc)
- fix(testing): validate schema outputs from agent tasks (f2fe7ddb2d)
- fix(workflows): default daily maintenance inputs (1624bd8164)
- fix(cli): stabilize workflow output and prompt handling (6a1eab6aae)
- fix(gateway): hydrate delegated run state safely (98ae02574b)
- fix(engine): apply input schema defaults before validation (b4b43092b2)
- fix(cloudflare): reconcile results in sandbox process mode + thread sleepAfter (32fc7400b6)
- fix(tui): size graph connector column from arrow string (#640) (a648cd551e)
- fix(gateway-client): track default handshake client version with package version (#638) (d6e0fb115f)
- fix(workflows): serverless-refactor correctness + task-list (Fable review) (fc911562e4)
- fix(components): reviewGate reads ctx.latest, not ctx.outputMaybe (22f171d9bc)
- fix(pi-plugin): show "Denied" instead of "Denyd" in approve toast (#636) (c3c9f8d910)
- fix(gcp): refine mock sandbox environment and runner test (fa08569a90)
- fix(gcp): harden Cloud Run Jobs sandbox runner (83cb008c6a)
- fix(sandbox): scrub egress CA/secrets consistently across provider adapters (1417e61c30)
- fix(db): actually load on isolates — drop transitive bun:sqlite via schema-migrations (74dedc2e50)
- fix(workflows): read node output .row in break-smithers UI (2b453ea652)
- fix: review + fixes for the prior 2 days of commits (70 findings, #634) (ad5e014157)
- fix(cli): wait for smart upgrade escalation (d57f8cd529)
- fix(sota): guard verdict-JSON scan against infinite loop (e7e3715c1f)
- fix(agents): classify Claude session-limit banner on raw stdout lines too (e5e3f77fa5)
- fix(gateway): auto-resume waiting-quota runs once the limit resets (96674f5893)
- fix(agents): classify Claude/Fable session-limit and credit banners as quota (185d15ce7e)
- fix(ui): approval surface, reject flow, prefetch gating, edit locks (164f649aca)
- fix(components): run scorers get real inputs; chunk reviews + probe edits act (4e8e349d2f)
- fix(gateway-react): approval-gate visibility + durable iteration enumeration (4cd7075376)
- fix(ui): pin @jsxImportSource react on ui package JSX sources (b43480f58f)
- fix(server): dedupe react-dom in gateway UI bundles; theme the operator console (ba8e3c8263)
- ci: run every root gate before failing and sync the timer-wake docs needle (efa405a03b)
- ci: shard the Linux workspace tests and parallelize the serial extras (1976cd1cdf)
- perf(gateway): per-node event reads as one SQL pass (0b80d11b5b)
- perf(gateway-client): coalesce change invalidations, stop refetch storms (2591200afe)
- perf(monitor): fast node inspection with honest loading states (8db411121f)
- perf(workflows): ticket-fleet sweeps at 64-wide, lanes at 24 (2b79b3a833)
- perf(engine): incremental frame snapshots (436ce77cc1)
- perf(engine): TTL-cache worktree fetch and skip no-op rebases (84ae787c39)
- perf(cli): load workflow modules concurrently at gateway boot (6564c80320)
- perf(server): serve production React in gateway UI bundles (c919f63dea)
- refactor(gateway-client): source sync row types from protocol gateway-rpc (dbc353d090)
- refactor(gateway-react): export wildcard src subpaths (9b0de96f81)
- refactor(e2e): fork @vercel/node dev bridge and reap runner child trees (cf0594a3c8)
- refactor(gateway-react): consume RPC types via gateway-client (538e16121f)
- refactor(gateway-client): add /rpc subpath over protocol gateway-rpc (70305c24ee)
- refactor(gateway): source RPC types from protocol gateway-rpc (b72bfdafdb)
- refactor(monitor): share the run-scores poll between panels (0369ecd293)
- refactor(cli): simplify a dead condition in cancel-cascade (e5ccc7dffc)
- refactor(cli): drop the dead directCancelRun export (53b717daba)
- refactor(observability): remove the dead drifted metric-catalog copy (88f35435fc)
- refactor(e2e): extract shared case08 inspector helpers (403a3c3e49)
- refactor(ticket-fleet): replace the serial merge queue with a real merge train (804c6d7c93)
- refactor(workflows): harden implement-testing-framework-e2e checks and consensus prompt (fb24a6d756)
- refactor(workflows): implement-testing-framework-e2e durable plan reuse + sol-readiness gating (b80949bf7e)
- refactor(ticket-fleet): land-as-you-go merge queue + cross-run triage memoization (b15c62738b)
- refactor: Isolate unauthenticated WebSocket capacity (closes #1008) (bb12831a3a)
- refactor: Make stall detection recognize durable activity under load (closes #1054) (74b8444968)
- refactor: Make Monitor connection states actionable (closes #1041) (8e0866416d)
- refactor: Forward abortSignal to custom document parsing providers (closes #1037) (75336798ed)
- refactor: Propagate cancellation through generated OpenAPI tools (closes #1026) (fb45b79792)
- refactor: Propagate cancellation through document parsing providers and polling (closes #1024) (52f75b2389)
- refactor: Propagate AI SDK abortSignal through generic HTTP tools (closes #1023) (aa2ea49e6f)
- refactor: Bound and deduplicate Gateway SSE subscriptions (closes #1013) (ced5684687)
- refactor: Share one heartbeat scheduler per WebSocket connection (closes #1012) (1db5d0b34d)
- refactor: Make childRun output validation diagnostics actionable (closes #1005) (48123fa585)
- refactor: Make Mistral OCR requests abortable (closes #1039) (22a2c65aa4)
- refactor: Make GitHub Effect fetches abort on fiber interruption (closes #1030) (5040e4ebcc)
- refactor: Make Linear Effect fetches abort on fiber interruption (closes #1029) (354f013cfc)
- refactor: Make Telegram Effect fetches abort on fiber interruption (closes #1028) (1c88f3a959)
- refactor: Propagate abortSignal through Whisper and Deepgram transcription (closes #1027) (003d0c7177)
- refactor: Propagate abortSignal through MCP tool calls (closes #1025) (5519be3c3e)
- refactor(cli): treat the curated init pack as a fixed inventory (37fec2b686)
- refactor(ddd): fold the DDD satellite workflows into one vendor-neutral docs-driven-development workflow (38c6975dd3)
- refactor(workflows): ticket-fleet root-drift guard warns instead of killing the run (fd3d1494f9)
- refactor(workflows): ticket-fleet chains are codex-first with no sonnet tier (e239471fe4)
- refactor(workflows): switch codex merge watchdog to retry-task repairs (3a09ff82b7)
- refactor(agents): adopt Codex 5.6 (Luna/Terra/Sol) agent pools and routing (fb17c6a5db)
- refactor(workflows): use <Task deps> for agent-task upstream consumption (4c3ecd85e4)
- refactor(electric-proxy): ship compiled JS instead of raw TypeScript (df48241d38)
- refactor(engine): lazy-load @effect/sql-sqlite-bun — engine now imports under plain Node (025d31bc76)
- refactor(engine): lazy-load bun:sqlite + drizzle-bun in the effect builder (b9a271aef7)
- refactor(ddd): make the workflow pack portable (17adda5aa3)
- refactor(engine): injectable @effect/platform layer + portable sleep (1b) (2619377ea9)
- refactor(ddd): update ddd-generate-docs workflow (dabf901e37)
- refactor(workflows): migrate break-smithers and vcs to workflow-owned UI (ae6ea42242)
- refactor(db): drop static bun:sqlite import so storage loads on isolates (5bd82fbc40)
- refactor(workflows): migrate to workflow-owned <UI> declarations (50b289023a)
- refactor(vcs): stylistic cleanup + folder READMEs (23eea75ed7)
- refactor(usage): stylistic cleanup + folder READMEs (02614079f4)
- refactor(ui-styleguide): stylistic cleanup + folder READMEs (f9b1507810)
- refactor(ui): stylistic cleanup + folder READMEs (9482758c43)
- refactor(tui): stylistic cleanup + folder READMEs (859987cf5e)
- refactor(tool-context): stylistic cleanup + folder READMEs (9baaaa1100)
- refactor(time-travel): stylistic cleanup + folder READMEs (1aaa629b8c)
- refactor(telegram): stylistic cleanup + folder READMEs (b3c2574d7f)
- refactor(smithers): stylistic cleanup + folder READMEs (1ee86919cd)
- refactor(server): stylistic cleanup + folder READMEs (0a634d5a83)
- refactor(scorers): stylistic cleanup + folder READMEs (2a94e790a4)
- refactor(scheduler): stylistic cleanup + folder READMEs (ba99e40baf)
- refactor(sandbox): stylistic cleanup + folder READMEs (ce18ddf6e3)
- refactor(react-reconciler): stylistic cleanup + folder READMEs (cd779d6cdb)
- refactor(protocol): stylistic cleanup + folder READMEs (532f63a797)
- refactor(pi-plugin): stylistic cleanup + folder READMEs (f8ab6dff9f)
- refactor(openapi): stylistic cleanup + folder READMEs (491eba313c)
- refactor(memory): stylistic cleanup + folder READMEs (86f7f4edca)
- refactor(integrations): stylistic cleanup + folder READMEs (4f9345f6c3)
- refactor(graph): stylistic cleanup + folder READMEs (9465dccdcd)
- refactor(gateway-ui): stylistic cleanup + folder READMEs (e58b75c750)
- refactor(gateway-client): stylistic cleanup + folder READMEs (064e55bdd1)
- refactor(gateway): stylistic cleanup + folder READMEs (3d6f7768c2)
- refactor(errors): stylistic cleanup + folder READMEs (3beff7c7f4)
- refactor(engine): stylistic cleanup + folder READMEs (b3d4252dfa)
- refactor(electric-proxy): stylistic cleanup + folder READMEs (7d062f8aa8)
- refactor(driver): stylistic cleanup + folder READMEs (dd2bf12f31)
- refactor(devtools): stylistic cleanup + folder READMEs (948175e1be)
- refactor(db): stylistic cleanup + folder READMEs (440deb8ae7)
- refactor(control-plane): stylistic cleanup + folder READMEs (1520172534)
- refactor(components): stylistic cleanup + folder READMEs (9155b62a14)
- refactor(cloudflare): stylistic cleanup + folder READMEs (ad1ccc8c12)
- refactor(agents): stylistic cleanup + folder READMEs (cddb30fc33)
- refactor(agent-eliza): stylistic cleanup + folder READMEs (96c2e4df54)
- refactor(accounts): stylistic cleanup + folder READMEs (87309bcd3e)
- refactor(telegram-summary): stylistic cleanup + folder READMEs (cb553cf902)
- refactor(review): stylistic cleanup + folder READMEs (9d99096912)
- refactor(observability): stylistic cleanup + folder READMEs (4cbb8442d1)
- refactor(cli): stylistic cleanup + folder READMEs (c271a4e652)
- refactor(bug-worker): stylistic cleanup + folder READMEs (6c4ea8839a)
- refactor(gateway-react): delegation flux state machine on Effect.ts (1771e6adc0)
- refactor(gateway-ui): delegate the status vocabulary to @smthrs/ui (9aeba9af8c)
- fix(tests): make the three main-blocking reds hermetic and correct (5dfa46b347)
- test(server): pin the RPC schema head at migration 0029 (7e3e3923fe)
- test(smithers): sync the CI package/build contract with the sharded Linux lane (40e8082f1f)
- test(cli): include share-pack UI mount (9d2e1d5804)
- test(build): make the check-dts declaration gate injectable and self-tested (0b932c0adc)
- test(smithers): sync root gate contract (1e214672d2)
- test(agents): cover pool capability report (9df5b3f10c)
- test(faults): track case02 skip removal in the fault-skip ledger (8afded4ded)
- test(monitor): cover authenticated gateway recovery (1529ba5589)
- test(monitor): cover responsive layouts (953ef1fa3d)
- feat(db): classify stale sandbox heartbeats (ab41de8ce9)
- test(cli): cover cascading cancellation orphan reaping (99a8b2facd)
- test(e2e): run case 30 against real workspace runtime (db1fdf972d)
- test(e2e): cover file and VCS pointer integrity (63f71311c2)
- test(e2e): cover browser automation reference runtime (4e8e020e7e)
- test(e2e): cover auth persistence across workspace suspend (1df8bca7d9)
- test(cli): cover monitor live state updates (c6b3d8eea8)
- test(cli): cover monitor reduced motion (ef9614acfe)
- test(smithers): add light and dark theme visual coverage (f35aefe125)
- test(e2e): exercise case08 inspector through production path (c09cc14c88)
- test(cli): run cron soak through real scheduler (4e3b644818)
- test(smithers): cover keyboard navigation and focus visibility (be8ba289e8)
- test(build): cover Cloudflare declaration freshness (15b51e1a78)
- test(testing): cover invalid function mock wrappers (9a62425272)
- test(cli): require MCP confirmation for destructive time travel (fd8b7c9a8e)
- test(testing): prove engine-owned schema rejection and unique run ids (eb0da591fd)
- test(smithers-pack): split and expand the local pack test suites (4f5ddc6250)
- test(evals): add deterministic phase one authoring benchmark (ef73b69702, d54d01da3b)
- test(workflows): land the seeded pack contract suite on the staging/completion semantics (6cec290f12)
- test(cli): sync seeded-pack contracts with add/share-pack workflows (4f48d1c44d)
- test(cli): full pack lifecycle e2e through the real CLI and engine (3160936d07)
- test(cli): give init-scaffold manifest tests the slow-path 30s timeout (824cfba3d8)
- test(driver): pin provenance sha256 to NIST vectors + platform-crypto differential (da0136d2f0)
- test(e2e): pass the admission nonce to case31's direct engine child spawns (ce0d76e143)
- test(smithers): browser coverage for monitor, VCS, approvals, themes, and resilience surfaces (bffcefbd4a)
- test(ci): add Smithers five-runtime conformance matrix (2abcca1d31)
- test(smithers): rendered browser coverage for eleven local-ui surfaces (d8c2fa2d4c)
- test(cli): cover create-ui in seeded workflow checks (eaaaf6f714)
- chore(pack): fail generation when a “seeded” header isn’t in the seed list (bb18a5e459)
- test(engine): isolate Postgres snapshot dedup assertions (6d662b0dbd)
- ci: actually run the engine Postgres time-travel suite (d385268706)
- test(e2e): pin replay-determinism divergence to its exact sequence (9b516fdf66)
- test(cli): isolate happy-dom and Bun.build from the shared test module graph (e98e4bb981)
- test: deterministic SSE overflow pump; guard review UI mount on #root (9d8fa1d13e)
- test(server): track schema head 0026 and writer-queued backpressure errors (2318fb9d8c)
- test(smithers): correct migrate-store contracts; simplify CI invocations (1838091931)
- test(smithers): chunk migrate-store suites one test per CI process (044cc47068)
- test(e2e): align fault contracts with pid-verified run-state taxonomy (7a5eda246a)
- test(smithers): split the migrate-store suite into per-process chunks (8cdf20b67a)
- test: fix deterministic Windows CI reds (f67cf955e6)
- test(smithers): collect PGlite WASM between migrate-store tests (de949093d5)
- test(cli): match seeded create-workflow fixture stages by exact prompt headers (b88b9fbb7b)
- test(cli): mirror-harness expects the tick row's post-0.2.2 label (07f4be8896)
- test(cli): autoOpenMonitor unit tests via the spawnImpl seam (14ec40f088)
- test(components): isolate task-deps context test with in-memory DBs (f38bb2eaa4)
- test(components): pin fixed backoff in schema no-burn-retry test (a4186db9bb)
- test(cli): tolerate SQLite writer contention (b0c092d8b3)
- test(e2e): real product-path inspector state for case08 (#306 cov-11) (7313adff50)
- test(e2e): de-mock fault cases case04/05/10/11/16/27 onto real SmithersDb/Gateway (224ee97d89)
- test(e2e): use SmithersDb in sandbox fault case (64d70e61ef)
- test(review): add seeded bug eval corpus (e2b14fefdb)
- test(cli): stub ai-sdk so examples render as graphs in CI (90e1f68622)
- test(ddd-ui): update tab tests for segmented detail, guarded actions, markdown bodies (c259574c56)
- chore(tickets): mark completed coverage audit tickets done (2ae7adf609)
- test(smithers): add version bump propagation test (dabb8183ef)
- test(smithers): add test script wiring gate test (b5508a7ee2)
- test(smithers): add fault skip audit gate test (3bea3362d6)
- test(smithers): add effect version gate test (417e770358)
- test(server): add gateway approval allowed users test (bec3cf7ea8)
- test(engine): add approval timeout inert gap e2e test (353a154d2d)
- test(components): add devops automation boundary hardening test (4595c2d8c8)
- test(components): add AI orchestration boundary hardening e2e test (50afab5046)
- test(cli): add optimize command unit tests (0c0b8bd40f)
- test(cli): add hijack session unit tests (984e22dfe0)
- test(cli): add examples tsconfig published-types test (c493b29269)
- test(cli): add examples tree smoke test (738903576f)
- test(cli): add unit tests for CLI subcommand handlers (c11202302d)
- test(e2e): use real DB in kill-engine-mid-task fault case (7af936a509)
- test(engine): cover non-finite auto-approve thresholds (fe1f0bca16)
- test(components): cover empty escalation levels with human fallback (79bed26587)
- test(components): assert SuperSmithers flattens element strategy to text (cc3d73d902)
- test: make Windows-shard assertions platform-correct across tui, components, driver, memory (af9415908c)
- test(telegram-summary): fix RequestInfo and nullable id type errors (5262950b46)
- test(gateway-client): make the Electric preload guard order-independent (61d3aa7c62)
- test(agents): pin Claude interpreter rate-limit and tool-output summarization boundaries (e5d52ffd72)
- test(engine): pin WaitForEvent correlationId routing and partial-resume hang regression (7256a58f34)
- test(engine): cover retryPolicy delays, depsOptional, async approval, and scorer context through the engine (7c03c845c5)
- test(components): cover Poller with agent checks and maxAttempts exhaustion (25aa6bfb13)
- test(components): pin Subflow inline mode and Task memory as known gaps (fbcc0f78b1)
- test(components): pin ReviewLoop and Panel/DecisionTable/Debate/Optimizer/SuperSmithers boundaries (41182fcbbe)
- test(hitl): pin human-request expiry boundaries, HumanTask cancel flow, and maxAttempts clamp (846779ffd1)
- test(scheduler): pin tcf dunder catchErrors parsing and empty-catch arming (85f4edb0dc)
- test(scheduler): cover catchErrors matching in try-catch-finally (31367d8503)
- test(scheduler): cover schedule dispatch invariants (265aeebd25)
- test(engine): cover workflow doctor workflow discovery (95fa5eaf41)
- test(engine): cover logDir override, VCS metadata, and workflowName persistence (d3e6a88a68)
- test(engine): cover task heartbeat throttling e2e (3502bd0c68)
- test(engine): cover retry and cache boundary gaps e2e (b98a798616)
- test(engine): add quota park lifecycle e2e (202d82f128)
- test(engine): cover hot-overlay hardlink and copy fallbacks (7cd9ca84ea)
- test(driver): cover SmithersCtx residual gaps (470ec7f022)
- test(smithers): cover workspace utility scripts (ca85cdc8fe)
- test(smithers): cover placeholder normalization rules (a4b41cbe5f)
- test(components): cover devops automation gaps (31a5715e6b)
- test(agents): cover integration option combinations (42a12e26d9)
- test(db): isolate pglite expected-error client (9edcc43bef)
- test(engine): harden human-in-the-loop e2e gap coverage (d4f9e16663)
- test(scheduler): pin fractional ralph maxIterations ceil-like cap (e8fe40368d)
- test(components): pin Approval rank-mode fallback for non-array persisted decisions (3e95bba4ea)
- test(components): cover multi-failure catchErrors arming in TryCatchFinally (7fe5e99c31)
- test(components): cover AI orchestration boundary combinations (7e206fbe4a)
- test(engine): cover resume claim race guards (5afb3a69bc)
- test(cli): cover invalid cron pattern persistence (b6390d0dd4)
- test(scheduler): cover approval timeout denial policies (081f48eb7f)
- test(engine): cover human request boundary helpers (8a03cd3e91)
- test(components): cover saga compensation failure (8df3ff256c)
- test(components,scheduler): cover flow-control gap boundaries (81859b0b95)
- test(engine): cover budget and docs sync fallbacks (223812289b)
- test(engine): cover workflow hash and fork fallbacks (8e23db10ef)
- test(cli): cover detached resume spawn args (58442ffe6f)
- test(cli): cover source fallback helpers (3fb580e1a7)
- test(tui): allow approval fixture outputs (05109da162)
- test(server): absorb operator ui socket cleanup errors (50120f4635)
- test(tui): cover real gateway integration (db843ef5fa)
- test(cli): cover supervisor dry-run polling (c32486270a)
- test(tui): cover failed partial output truncation (4217a6e3ab)
- test(server): cover devtools warnings and recovery (eb4ac6a40b)
- test(cli): assert invalid openapi diagnostics (c92866baf2)
- test(server): cover stream backpressure drains (56166b8983)
- test(cli): cover openapi invalid spec failures (265436496b)
- test(server): cover explicit webhook run targeting (2bda8f1169)
- test(server): cover gateway lifecycle branches (575ae35935, 7faec97d87)
- test(server): cover default operator ui client (14e206f34a)
- test(time-travel): cover timeline recursion guards (50dc9a98c1)
- test(cli): cover semantic MCP sqlite tools (abf86ecbed)
- test(server): cover gateway stream gap resync (b316f43105)
- test(db): cover persistence boundary helpers (370788f2aa)
- test(server): cover gateway RPC data paths (741ddaac95)
- test(smithers): cover migration source open failures (02a42b98d1)
- test(server): stabilize lifecycle rejection coverage (714719e033)
- test(cli): cover cyclic timeline semantic errors (c66ffcfae0)
- test(testing): cover fake agent and runTask branches (f9c85712a5)
- test(scorers): cover pricing and judge parsing (436a3b1a23)
- test(openapi): cover body encoding branches (1ed438087c)
- test(memory): cover store and summarizer branches (8c05fea1f0)
- test(errors): cover safe serialization branches (238b32d38f)
- test(electric-proxy): cover shape proxy edge cases (3f2c318ab3)
- test(cli): cover supervisor shutdown e2e (2a302913b4)
- test(vcs): cover jj fallback paths (960aaab09f)
- test(usage): cover credential and provider probes (49130cc41b)
- test(pi-plugin): cover extension command edges (edfbad78cc)
- test(graph): cover extraction and reconciler edges (e7066923a7)
- test(tui): cover live rendering modes (06285f89fa)
- test(scheduler): cover planning and retry branches (f25546c9ba)
- test(smithers): cover package and migration contracts (b658cccbe2)
- test(db): cover external sqlite and postgres branches (279829e4fa)
- test(agents): cover adapters and provider edges (00f9dfacc4)
- test(gateway): cover collections and ui components (43caec4287)
- test(engine): cover wait and human task flows (1aa04dd019)
- test(driver): cover abort and child process branches (e6150f8780)
- test(apps): cover site workers and telegram summary (a562a42df1)
- test(gateway-react): stabilize delegation poll coverage (6f41750886)
- test(db): cover output helpers (9ed8ff0eae)
- test(db): cover docs and snapshot helpers (202042c378)
- test(agents): cover http tool branches (1bb6509689)
- test(gateway-react): cover delegation poll paths (27e875ee4d)
- test(agents): cover web search providers (5b5ef51b48)
- test(integrations): relax github component timeouts (2110ca0e0b)
- test(db): cover adapter edge branches (5123863915)
- test(agents): cover base cli helpers (4a70d377e0)
- test(integrations): cover telegram edge cases (1100e65b72)
- test(agents): stabilize diagnostics coverage (4f4cfb2dd7)
- test(gateway-react): cover delegation chain hook (349eb85a4a, 8492a65061)
- test(db): cover frame codec branches (28c5643024)
- test(db): cover txid capture helpers (c8af843929)
- test(integrations): cover linear retry backoff (8149644ed5)
- test(review-github): cover json line parsing (9ae3c7248b)
- test(review-cli): cover publish body read failures (9e88eafd9d)
- test(integrations): cover linear client branches (08ab4fe3ca)
- test(gateway-react): cover invalidation sort (58824ec6a8)
- test(db): cover deep schema unwrap guard (7448d7c6e4)
- test(review-walkthrough): cover impact chip rendering (7c03aebb27)
- test(review-server): cover invalid admin bodies (9d6c87f474)
- test(review-github): cover silent gh failures (5923536de6)
- test(review-cli): cover progress reporter failures (6a8f6efefc)
- test(db): cover wrapped schema helpers (128379a404)
- test(agents): cover diagnostics edge probes (3eff321b03)
- test(time-travel): cover single-node retry (9565604bfd)
- test(integrations): cover github response decoding (aa8915bd0a)
- test(db): cover pure helper seams (32318efb28)
- test(agents): cover rpc command sink errors (7e3bfc99ab)
- test(integrations): cover github trigger helpers (6e4bf89773)
- test(agents): cover rpc command runner (0a9d8458da)
- test(pi-plugin): cover run inspector controls (3accb5b9ea)
- test(integrations): cover verifier delivery gaps (3520962ddc, 7d2dba49f0)
- test(gateway-client): cover multiplayer collection edges (d01cd01429)
- test(db): cover run state derivation (997b9194ea)
- test(agents): cover base cli stream wrapper (a98a8956fd)
- test(review): cover diff walkthrough rendering (58cea028ea)
- test(observability): cover otel layer rendering (8b66857ca7)
- test(components): cover commit range injection (744f005b08)
- test(time-travel): cover jump rollback seams (76131b57d6)
- test(pi-plugin): cover devtools views (fa8edd3945)
- test(agents): cover agent error branches (08b63c1834)
- test(review): cover publish and server gaps (c7b6364cd9)
- test(gateway-react): cover delegation reducer gaps (e2643b3a21)
- test(gateway-client): cover missing fetch fallback (a21d7886ce)
- test(components): cover delegation state callbacks (98cb431dfb)
- test(observability): cover logging level seams (76767fdee1)
- test(time-travel): close restore coverage gaps (5e3b17c653)
- test(pi-plugin): cover devtools store gaps (cc1a0c9ca7)
- test(db): cover internal schema exports (4f494312f7)
- test(agents): cover interpreter and sdk tool edges (aa1216f023)
- test(review): cover cli and workflow units (132d06f152)
- test(observability): cover metrics and tracing edges (96b41e9b08)
- test(gateway-react): cover collection hooks (8d957d3100)
- test(gateway-client): cover data helpers and reconnects (7971e788f0)
- test(components): close delegation coverage gaps (436866440f)
- test(sandbox): harden cloud provider coverage (b90241a06d)
- test(evals): break-smithers loop — Coverage-map eval generator scrapes internal CLI helpers as (75a2865b17)
- test(evals): break-smithers loop — Docs present bash network blocking as real isolation, but on (1b4bbd61fc)
- test(engine): dependsOn onto a needs-deferred task inside a Loop resolves without deadlock (e426d19001)
- test(smithers): stabilize sqlite sidecar cleanup (987f02651a)
- test(evals): match factory-namespaced JSX tags (903987c373)
- test(evals): add knowledge-cli eval cases from break-smithers (650766b229, e3d2d264fc)
- test(evals): break-smithers loop — CTA next-step commands render as TOON command,description co (e56a595240)
- test(evals): break-smithers loop — smithers graph crashes with cryptic undefined is not an obje (097dba90fa)
- test(evals): break-smithers loop — <Parallel> docs claim 'default: unlimited (no cap)' but a ru (9d6688a880)
- test(evals): break-smithers loop — smithers graph <id> (and up <id>) reject workflow IDs with a (840341eea6)
- test(evals): break-smithers loop — smithers graph/up hides all detail when a workflow has 2+ bu (1dd304d4ce)
- test(sandbox): add provider contract-suite test (3fe3e0da39)
- test(evals): add UI eval fixture workflow (b66f433a39)
- test(sandbox): add provider-kit contract tests (bed1ae39de)
- test(evals): break-smithers loop — Unknown/typo'd CLI command prints a bare Unknown command: X (985e0e7bb5)
- test(evals): add orchestration-behavior fluency suite (eval-before-change) (628ce93375)
- test(electric-proxy): allow fixture teardown to finish (b1645bc389)
- fix(server): clear leaked console-client setTimeout retries at DOM teardown (a33243bffa)
- fix(e2e): RSS soak budgets measure growth over baseline, not absolute RSS (11ba3c4206)
- test(e2e): real timeout for case14 gateway round-trip (d939f63961)
- docs: rewrite CHANGELOG and 0.28.0 release notes/marketing with commit stats and monitor recordings (7874ff1f57)
- docs: rewrite the 0.28.0 changelog around user-facing wins (a01c3f5110)
- docs: sync generated component and config docs with the release-gate and CheckSuite changes (20ec4ffbb8)
- docs: theme the landing page for light mode via palette variables (1e2b684b9c)
- docs(marketing): add 0.28.0 launch campaign (550947a8f5)
- docs(changelog): complete 0.28.0 release notes (355bd2fa50)
- docs: align gateway package READMEs with the protocol-owned wire contract (0716c44345)
- docs: align integration sweep runtime contracts (8b30a2cf4a)
- docs: document concurrency auto-raise behavior (631e23b020)
- docs(research): workflow authoring friction postmortem (7874a2c0bd)
- docs(workflows): consolidate the workflow authoring rules (4ee496f8bc, 8ae8d0aba5, 120b5e0151)
- docs(workflows): publish authoring rules in all bundles (aaf9573e68)
- docs: repair shared gates — regen composite embeds, document maxConcurrencyPinned, refresh llms bundles (d0aaa74b8a)
- docs(workflows): document the add and share-pack system workflows (38691277ef)
- docs: regenerate clean LLM bundles (e7ab729db3)
- docs(cli): document workflow pack lifecycle (6e87b82d7a)
- docs: conform pack-manifest section to house style (89d56691f4)
- docs(components): regenerate stale composite source embeds (b1a1709137)
- docs(workflows): add the archival note to all archived example pages, and regenerate bundles (498c1920a9)
- docs: cover WorkflowFileRef, memory-notes backend limits, CodexAgent apiKey, and the Monitor surface (6be146cf9d)
- docs(cli): fix catalog/README/skill drift for up, plan, and Monitor auto-open (be52587676)
- docs(cli): supervise now requires an explicit scope (a867abc9c2)
- docs(components): regenerate check-suite embedded source (236fa8cf1a)
- docs(changelog): cover the post-tag 0.28.0 fixes and features (b73f800c17)
- docs: cover allowedRedirectOrigins in OpenAPI tools; track moved DB opener (2078363277)
- docs: add the 0.28.0 changelog (7beb241ed1)
- docs: fix evals pages for house style and refresh generated embeds (ee1fcc520a)
- docs: document acceptWorkflowChange and failurePolicy public surface (29ad692121)
- docs: refresh docs, skills, and llms bundles for the curated pack and consolidated DDD workflow (c36fb7f618)
- docs(runtime): drop em-dash from database storage audit (b06ddfe5cf)
- docs(cloudflare): document D1 transaction rejection (dc18edcc15)
- docs(runtime): document database storage audit (bda4895002)
- docs: cut the README from 465 to 286 lines (d030da817f)
- docs: say any model or harness, not just any model (aaf8ece52f)
- docs: reposition around observability and time travel (619876f3dc)
- docs: add real Monitor screenshots, drop banner and download stat (35e7df0c0d)
- docs: add comparison pages and promote the crash-resume demo (a135986cb2)
- docs: lead README, homepage, and package metadata with outcomes (1bf4a6eac7)
- docs: regenerate llms bundles from committed docs (e8fa505003)
- docs(models): refresh 5.6 and Fable role defaults (501aaa2c8a)
- docs: reframe run control as gateway-first workspace contract (dfe446a620)
- docs(readme): clarify workflow run caption (ee5ea412ec)
- docs(accounts): use bunx smthrs in the legacy-account cleanup hint (f49621df6f)
- docs(readme): restructure around three prompt-led examples (26a310c2c5)
- docs(epics): record completed coverage gap work (5280f9d447)
- docs: regenerate review-loop composite source embed (e565971591)
- docs(components): refresh composite source embeds (58b4c1fad1)
- docs(specs): kanban benchmark round 3 — all four engine fixes measured (b12dea8f20)
- docs(specs): kanban benchmark round 2 results (a4d2d53c29)
- docs(llms): bundle the execution-model + serverless-deployment pages (e241239e40)
- docs: engine drives a run under plain Node (1b2 landed) — status refresh (c2e168b361)
- docs(workflows): hello example uses --input; drop nonexistent --name flag (9d3b5ec109)
- docs: fix correctness & completeness defects across docs (6298198910)
- docs(gateway): Next.js consumers need transpilePackages for electric-proxy (0ea1cb114e)
- docs: engine module now imports under plain Node (status refresh) (ad05cd2d7c)
- docs: correct the Node-runtime engine claim (Bun today, Node in progress) (fd91cd3e6b)
- docs: clarify sandbox and workflow UI examples (03bc9918e3)
- docs(deployment): add serverless deployment guide (control-plane host + storage + provider matrix) (2993d0c109)
- docs: correct execution-model facts (Fable review) — ElizaAgent, process-mode billing (c12a66ac7f)
- docs(ddd): update DDD root helper and regenerated workflow source (ed39cc10b8)
- docs: refresh sandbox-providers, task, and custom-ui pages, regenerate bundles (220dd725ad)
- docs(ddd): expand feature spec content and regenerate pack data (60e7601681)
- docs: show each workflow's UI on its page (6aaacfb712)
- docs: regenerate workflow-UI and TUI screenshots, refresh guides and bundles (dfdeb3de80)
- docs: add sandbox provider pages and guard, regenerate bundles (13fdbbed7e)
- docs: explain where agents run, sandboxes & cost (serverless execution model) (2986e36c72)
- docs(sandbox): document provider-kit in package README (92d14787bd)
- docs: add orchestrator context lifeline rule, regenerate bundles (254b5404f5)
- docs: design first-class sandbox provider plugins (182729f6d1)
- docs: add UI/TUI component and upgrade workflow pages, regenerate bundles (f2b9004b54)
- docs: document upgrade command and WorkflowView types, regenerate llms bundles (56ada5cb76)
- docs: document SOTA npm scripts and bunx upgrade path (366142101d)
- docs: design workflow estimation (12cef7e848)
- docs: add generated SOTA models reference page (da301d12b9)
- docs: design SOTA model registry (55beb0f9a7)
- docs: design cloud benchmark fleet (a9ead09c30)
- docs: refresh Panel/Poller embeds; retarget check-docs needle to subscribedStream (2694690cda)
- docs: delegation-chain guide + reference; regen llms bundles (d106a2ecae)
- docs: delegation-chain bootstrap simulation ledger (0e3d08c6e0)
- docs(specs): refresh feature inventory to 0.28.0 HEAD (ce4e5198) (8672d25c0d)
- docs: components-first workflow-UI guides + CLI overview; regen llms bundles (ece2192c8d)
- docs: document theme-aware gateway UI shell and token-following components (db4f088d48)
- chore: refresh generated .d.ts artifacts (7aef3c0dc3, 351e303ec3)
- fix: land issue-train waves 0-1 (17 reviewed fixes) (f57123ff86)
- chore(ui): remove stale manifest and barrel entries (a0774e94b2)
- fix(gateway): persist immutable jj commit ids for durable run diffs (a60ac5a370)
- fix(engine): consume replay-unsafe approvals instead of re-parking (04897e786d)
- fix(docs): freeze published versioned llms bundles (59afb7e56f)
- fix(release): verify remote tag and latest CI attempt before publishing (db1e13fd29)
- fix(cli): never force-push a pack repo we did not create (c2a748ebc0)
- fix(gateway): make run diffs durable and typed (897eaa8522)
- chore(evals): refresh phase1-authoring benchmark report (e4280613bb)
- test(monitor): verify responsive overview layouts (64a3d1a081)
- chore(cli): remove dead auto-open monitor code (d8ac5684f3)
- chore(e2e): typecheck browser and worker fixtures with lane-specific tsconfigs (968ba91f8d)
- sync approval restriction source embeds (bce8f336b5)
- atomically rewrite token store (07237346e0)
- chore: sync lockfiles for gateway protocol deps (580ff71c9a)
- feat(agents): add PoolAgent support for pool CLI (#816) (5a04633e87)
- "🐛 fix(approval): reject malformed access restrictions" (83d98de957)
- chore(repo): reconcile rebased stack with main (06cda287a0)
- chore(gates): add UI architecture gate with baseline and shadcn provenance (07977fa8fb)
- chore(build): allow TS 6.0 deprecations in dts build tsconfigs (b958f093ef)
- chore(gates): align authoring benchmark and docs gates (59a2d97264)
- chore(workflows): implement-packs quota hatches and approval-stable review mount (15424e8933)
- chore(tickets): close gh-789-fix-gateway-react-medium-multiplayer-run-tree-reco.md (#789) (0b1a861b44)
- chore(tickets): close gh-594-errors-smitherserror-s-options-vs-cause-heuristic-.md (#594) (80564b53a9)
- chore(tickets): close gh-632-low-diagnostics-can-report-secondary-codex-auth-fa.md (#632) (c4ef4865d7)
- chore(tickets): close gh-564-control-plane-smithers-cp-usage-limits-lacks-the-c.md (#564) (8ea311f575)
- chore(tickets): close gh-845-fix-cloudflare-declaration-build-output.md (#845) (6453e943b6)
- chore(tickets): close gh-870-add-workdir-to-the-s3-transport-declaration.md (#870) (d926aba5ba)
- chore(tickets): close gh-871-add-awslogsstreamprefix-to-the-ecs-runner-declarat.md (#871) (a7b7bd86c9)
- chore(tickets): close gh-842-mark-replay-run-destructive-in-the-agent-contract.md (#842) (22a61cdb54)
- chore(tickets): close gh-750-fix-gateway-ui-medium-runeventlog-afterseq-0-drops.md (#750) (d08f03904e)
- chore(tickets): close gh-747-fix-telegram-summary-medium-transient-pre-digest-i.md (#747) (16ff9b2c42)
- chore(tickets): close gh-735-fix-cloudflare-low-add-missing-sleepafter-to-expor.md (#735) (3997f8c241)
- chore(tickets): close gh-742-cloudflare-medium-process-mode-defaults-an-undeter.md (#742) (73e8fbe010)
- chore(tickets): close gh-740-gateway-rpc-medium-canonicalgatewayrpcmethod-uses-.md (#740) (bcd2dc5bcd)
- chore(tickets): close gh-601-observability-coremetrics-js-ships-a-drifted-dupli.md (#601) (1ecdfc8d75)
- fix(observability): pin the single-source metric catalog surface (991b03c195)
- chore(tickets): close gh-730-fix-agent-eliza-low-conventions-loader-dynamic-imp.md (#730) (558ff09646)
- chore(tickets): close gh-593-openapi-executetooleffect-captures-its-duration-st.md (#593) (3a9def8b32)
- chore(tickets): close gh-658-fix-agents-medium-http-tool-throws-on-malformed-js.md (#658) (da99c00545)
- chore(cli): mark the bundled openclaw-plugin manifest private (e2e74f18db)
- chore(tickets): close gh-607-react-reconciler-resolveextractgraph-attempts-the-.md (#607) (92ed94eb93)
- chore(tickets): close gh-623-low-estimateaccuracyscorer-cost-weight-fallback-of.md (#623) (27b9210764)
- chore(tickets): close gh-602-observability-coretracing-getcurrentsmitherstracea.md (#602) (6f6ed12ad1)
- chore(tickets): close gh-697-fix-gateway-react-medium-usegatewaymutation-ignore.md (#697) (d7f0e8715c)
- chore(tickets): close gh-810-fix-usage-medium-same-label-account-replacement-re.md (#810) (7d2646df61)
- chore(tickets): close gh-721-fix-aws-low-codebuild-runner-omits-stopped-true-on.md (#721) (824280bd1d)
- chore(tickets): close gh-610-gateway-gatewaydocrow-kind-literal-union-is-absorb.md (#610) (0d31804c56)
- chore(tickets): close gh-814-fix-integrations-low-github-sleeps-after-the-final.md (#814) (ef5489d426)
- chore(tickets): close gh-803-fix-observability-high-structured-api-keys-bypass-.md (#803) (1a74501b27)
- chore(tickets): close gh-807-fix-aws-medium-aborting-ecs-or-codebuild-runs-leav.md (#807) (1200ec600c)
- chore(tickets): close gh-802-fix-integrations-high-github-pagination-follows-fo.md (#802) (9db6ae4d79)
- chore(tickets): close gh-796-fix-gateway-client-medium-unread-websocket-events-.md (#796) (835aad7da5)
- chore(tickets): close gh-794-fix-gateway-react-medium-collection-hooks-hide-loa.md (#794) (61b863fa95)
- chore(tickets): close gh-777-time-travel-high-process-local-rewind-lock-allows-.md (#777) (9a83b7aadf)
- chore(tickets): close gh-778-smithers-migrate-medium-late-migration-failure-lea.md (#778) (b1be35c152)
- chore(tickets): close gh-783-react-reconciler-medium-out-of-order-devtools-tear.md (#783) (8466aa8e69)
- chore(tickets): close gh-595-errors-errortojson-returns-a-top-level-array-for-a.md (#595) (cd9d025fab)
- chore(tickets): close gh-576-integrations-duplicate-webhook-source-id-throws-in.md (#576) (c3ce0bf3d3)
- chore(tickets): close gh-804-fix-openapi-medium-case-insensitive-authorization-.md (#804) (f6f88773e9)
- chore(tickets): close gh-808-fix-aws-medium-s3-cleanup-clears-tracked-keys-befo.md (#808) (0e7ef4bc33)
- chore(tickets): close gh-543-electric-proxy-wheretemplate-only-shapes-fail-open.md (#543) (bc243deec4)
- chore(tickets): close gh-812-fix-telegram-low-fetch-error-messages-can-disclose.md (#812) (b58f201dce)
- chore(tickets): close gh-784-testing-fakeagent-medium-symlinked-paths-escape-ro.md (#784) (43e1ec95ce)
- chore(tickets): close gh-781-memory-medium-losing-savenote-id-collisions-still-.md (#781) (1424b65c69)
- chore(tickets): close gh-780-smithers-hot-medium-ddl-only-cache-signature-reuse.md (#780) (c1a734840d)
- chore(tickets): close gh-779-driver-medium-ordinary-errors-containing-abort-are.md (#779) (56aa00bf0c)
- chore(tickets): close gh-597-review-stale-prices-table-over-meters-fable-5-1-5x.md (#597) (c874d749b1)
- chore(tickets): close gh-555-server-module-level-runs-registry-is-shared-across.md (#555) (e4ad9e5eb8)
- chore(tickets): close gh-618-medium-sampling-hash-separator-changed-inside-a-st.md (#618) (6dec63522a)
- chore(tickets): close gh-611-devtools-applydelta-s-updatetask-lets-task-null-th.md (#611) (106ff910c6)
- chore(tickets): close gh-599-review-overview-chart-segment-bump-overflows-the-t.md (#599) (7e080adc4c)
- chore(tickets): close gh-574-integrations-telegram-approval-decidedat-records-t.md (#574) (fee732fa24)
- chore(tickets): close gh-552-server-approval-allowedscopes-gate-silently-degrad.md (#552) (d3f6c975b7)
- chore(tickets): close gh-580-driver-abort-during-a-deadline-wait-rejects-run-wi.md (#580) (2f0dac0403)
- chore(tickets): close gh-626-low-paused-run-renders-neutral-queued-tone-in-gate.md (#626) (849a6b2db8)
- chore(tickets): close gh-587-pi-plugin-gatewaywsconnection-waitforevent-s-5s-ti.md (#587) (017eaecfd2)
- chore(tickets): close gh-615-medium-broadened-quota-regex-matches-benign-prose-.md (#615) (8fe22d1500)
- chore(tickets): close gh-625-low-folddelegation-cascade-tie-broken-by-bfs-order.md (#625) (b449015849)
- chore(tickets): close gh-588-pi-plugin-smitherspihttpclient-events-silently-swa.md (#588) (c27342f122)
- chore(testing): regenerate bundled index.js and index.d.ts (0e5d26a786)
- chore(tickets): close gh-575-integrations-webhook-offer-on-a-full-bounded-queue.md (#575) (1c933e305d)
- chore(tickets): close gh-572-integrations-telegram-markdown-converter-leaves-ra.md (#572) (1db306083d)
- chore(tickets): close gh-570-agents-createmcptoolset-drains-mcp-server-stderr-t.md (#570) (65f65fbb89)
- chore(tickets): close gh-562-db-claimrunforresume-external-driver-branch-update.md (#562) (e7d7e59f99)
- wrap smithers skill description in YAML folded scalar (#982) (6a22884632)
- fix(ci): run postgres-gated CLI and migrate-store suites in separate processes (b9ed31a3b2)
- chore(deps): bump @electric-sql/pglite 0.5.3 → 0.5.4 (20e8569720)
- fix(scripts): skip nested jj worktrees in the dependency boundary check (ddd438f2c9)
- chore(tickets): re-point gh-1063 subtickets at the re-filed open issues (797e0e1a73)
- chore(skills): install smithers skill mirrors for .agents, .crush, and .windsurf (a59f043db5)
- chore(tickets): ticket-fleet two-way sync (dab232d596, 25ffa4a1ea, f775c691ac, fc1ddac3d3)
- run-event WebSocket delivery through one bounded writer (closes #1011) (ef93f70da3)
- a server-side WebSocket authentication deadline (closes #1007) (a64fafaea4)
- LlamaParse requests and polling cancellation-aware (closes #1040) (9cf93ff314)
- prefer-resume semantics for child fan-out (closes #1003) (030cd2fef6)
- score and cron filters in multiplayer collections (closes #1016) (175c84b11e)
- document and ticket filters and hide tombstones (closes #1015) (ec0432df54)
- chore(agents): stop using OpenCode — drop it from the workspace agent config (6469cc473e)
- chore(agents): swap paid-API opencode fallback for subscription Claude Code (74e0e25eee)
- chore(ticket-fleet): route support seats to luna, sweep concurrency 6 (9eff8ca78e)
- chore(ticket-fleet): fall back to Claude when Codex is rate-limited (4a2c95f214)
- chore(ticket-fleet): split roles across sol/luna/fable, cap sweep concurrency (1825c44b34)
- chore(gateway): regenerate index.d.ts with whatHappened RPC method (d3565fa9da)
- chore: gitignore stray screenshot and claude-mirror subscription state (a6c6d970e7)
- chore(cli): add @pierre/diffs for monitor diff rendering (a1e89ccc3c)
- fix(claude-plugin): monitor streams actionable transitions only (0.2.4) (d08998b30f)
- marketing: add GitHub social preview card (65db782108)
- chore(tickets): saturated-engine stall false positive claimed a second run (006851f691)
- chore(tickets): stall detection flags live saturated engines as orphaned (f78bf8a654)
- style(ui): ticket-fleet dashboard says loading instead of zeros on first paint (fb33cf18b8)
- style(monitor): readable node transcripts for live AND finished nodes (acc8a73c34)
- chore(tickets): cancelled run stays running and stall alerts re-fire (3ec43fa1a4)
- style(monitor): token-based spacing/type/radius system, even panel rhythm (d9ce5f9a60)
- chore(tickets): close monitor-tree-live-node-states (#817) (6c7f6928eb)
- chore(tickets): monitor tree shows live runs as all-queued (#817) (d951300dd0)
- chore(claude-plugin): bump to 0.2.1 for the mirror path fix (790a8cd1db)
- chore(workflows): register new codex queue tests (c36f998b4a)
- chore(sota): refresh model registry to Codex 5.6 / Gemini 3.5 / Kimi k2.7 (9a6ea33ff9)
- fix(docs): unbreak check-docs — regenerate composite embeds, align gate to source (df238ac0a6)
- chore(scripts): drop stale find-db.js entry from db-access ratchet (#763) (951c637af1)
- refactor(scheduler): remove unreachable findDescriptor linear-scan fallback (#772) (027a1b3b73)
- chore(workflows): route-and-merge-issues is Opus-only (drop Codex/Sonnet/Fable) (4292feeb34)
- chore(workflows): raise route-and-stack-issues maxConcurrency cap to 32 (3de11c23a3)
- style(ddd-ui): restore type hierarchy, un-mute body text, fill status badges (f16fce063a)
- chore(.smithers): use role-specific agent pools in test-fortress (0dd0e6a8a4)
- chore(graph): refresh dom extract declarations (7a24eeb7cb)
- chore: ignore generated test coverage artifacts (41227020cd)
- chore(cli): sync ValidationLoop embed with the canonical component (1854f3ab77)
- style(gateway-react): tighten cascade comment (f676b93a7e)
- chore(agents): allow diagnostics runner injection (9c48dc448c)
- chore(test-fortress): untrack status page artifact (35a9a47ec0)
- chore(test-fortress): stop tracking status page (c37f201bef)
- chore(test-fortress): ignore generated status artifacts (ef887e1095)
- chore(test-fortress): refresh status snapshot (bffb47d51e)
- chore(gateway): check generated declaration surface (599942c12f)
- chore(docs): sync llms-observability bundle fragment (d7579334b5)
- fix(server): drop dead capitalized Authorization header lookup in assertAuth (#639) (0d0e4c6e03)
- fix(server): unwrap cause chain in getNodeOutput malformed-row detection (#637) (0d41e79539)
- refactor(agents): drop dead hints property from PiAgent.buildCommand (#635) (8ad91b0bb9)
- chore(server): regenerate gatewayUi bundle for workflow-owned UI (ff0b6e9db3, 7e7fa83b49)
- feat(aws): add createAwsSandboxProvider factory and test (f4df5591da)
- feat(aws): add index, tests, and README to AWS provider package (d63f9b4bfc)
- chore(sandbox): add generated type declarations for gcp and vercel providers (39ac90209d)
- chore(sandbox): regenerate provider-kit type declarations (f58ef4c836)
- chore: gitignore daily-canary state dir (c3bbea8556)
- chore: refresh pinned model IDs to current SOTA (071f20a67e)
- surface overdue timers and stabilize fuzzy select (#521) (16f0736d90)
- add workflow test helpers (#518) (2ef17bcb4c)
- surface mounted approvals (#516) (e90348dcee)
- add smithers review command (#519) (07a2b703b8)
- publish subpath declarations (#513) (48706f2545)
- stabilize CI gates, streams, and CLI fixtures (#515) (d24d92d0b5)
- stop MCP waits on caller abort (#520) (53ece10d8c)
- enforce api key spend caps (#514) (c660177519)
- pin React JSX runtime for consumer workspaces (#512) (f977795d72)
- validate preselected restore targets (#511) (702721f589)
- carry timer anchors across continuations (#517) (0d88d746cc)
- chore(observability): clean stale dts chunks on rebuild (54a0d74e68)
- fix(observability): un-stick the dts pipeline; real types for ./metrics (7819c47180)
- chore(ui): restore trailing newlines on ui sources (4c541a7cfd)
- chore(release): bump to 0.28.0 + review follow-ups for the ui library (ce4e519806)
Release notes for every earlier version are at
smithers.sh/changelogs. Commit-level history
before 0.28.0 is available with
git log v0.26.1..v0.27.0 and the corresponding tags.