Skip to content
Like what we’re building? Star on GitHub

Changelog — v0.x

Archived releases. The current major is in the changelog.

Releases before v0.15.0 are not listed: their commits are no longer reachable from main (the history was rewritten). They remain on the GitHub releases page.

0.51.0 (2026-07-19)

Features

  • config-editor: editable cadence + custom title + mint category guard (03e19e3)

0.50.0 (2026-07-19)

Features

  • alert: persist stall episodes as run_health events (626cff9)
  • backend: add grok CLI-agent backend (Grok Build) (#237) (e4c43e9)
  • backend: add xAI Grok as a first-class claw provider (#236) (41d9147)
  • board: board-as-pipeline-projection slice + ADR-071 (refs #125) (#132) (f12c5aa)
  • board: card run history — Issue.Runs[] run-history list (refs #125) (#154) (c01a820)
  • board: external repo link writable on native cards (53756a7)
  • board: move a paused dispatched run's card into an 'Awaiting input' column (#125) (#173) (c15059b), closes #165, references #161
  • board: per-card ⏸ Awaiting input badge (denormalized signal) (#161) (ebd1a15), references #125 #125 #125
  • board: persisted bot filter in the pipeline view (View.Bot) (#125) (#160) (979c01c), references #153 #153
  • board: render image-path inputs as a carousel on the /pipelines card sidebar (#224) (f3749f1)
  • bots,cli: feed-watch (Vigie) veille bot + iterion runs prune (#213) (e5b0ef5)
  • bots,studio: forge-aware PR-first wording (MR only on GitLab) (94f44c6)
  • bots: app-dev (Appy) — complete application from a prompt (f7589d6)
  • bots: Appy declares its repo need + fresh-repo publication path (3b9ed9e)
  • bots: enum-constrain the closed-set vars of four catalog bots (9076f08)
  • bots: manifest launch: hints — bot-declared launch-form hierarchy (6fb7312)
  • bots: manifest repo: block — a bot's runtime repository need (a0712be)
  • bots: tailored launch: hierarchy for nine catalog bots (99f6347)
  • chart: optional forfait secret envFrom on the runner (50da374)
  • claude_code: forward user/plugin MCP servers via --mcp-config (#137) (fd39c5f)
  • cli: host-cron schedule gate — overlap skip, guard command, tick audit (54e7a87)
  • cli: iterion import — lossy Claude-Code workflow-script (.js) → draft .bot (ef9b825)
  • cli: iterion issue import — self-hosted forge→board sync (#125 T6) (#152) (9f5c0f8), references repo#number
  • cloud: native recurring schedules can run stateful repo-bound bots (#219) (7aa80aa)
  • cloudsched: schedgate gate between CAS win and launch + tenant tick audit (cd918ab)
  • config-editor role — SSO-team-scoped access to config-share (ADR-078) (#235) (4a02f6a)
  • config: expose the NATS work-queue tuning knobs via env + YAML (#200) (50267cf)
  • configshare: declarative per-bot shareable surface + per-share field subsetting (#232) (12614ef)
  • dsl: enum constraint on vars — [enum: "a", "b"] closed value sets (cc9e451)
  • dsl: explicit else fallback edge — src -> dst else (59c6a1e)
  • dsl: optional node description: field surfaced as run-console label (e519c2f)
  • dsl: parallel fan-out of isolated subbots (+ nested & resume SubbotRunner fixes) (#197) (cd64ed8)
  • dsl: parallel_safe — parallel fan_out_each of a mutating tool (#230) (6ae9530)
  • eventbus: implement NATSBus for cross-replica trigger fan-out (#201) (d346b6e)
  • forge: per-bot unbind, schedule-tuning preservation, first-class schedule↔repo binding (8f64d72)
  • forge: RepoCreator capability — create repositories on github/gitlab/forgejo (d05c2a2)
  • forge: team-wide connected-repo aggregator GET /api/teams/{id}/forge/repos (e08871d)
  • forge: wizard-resumable callbacks + connection health + opt-in create-repo grant (7e4e424)
  • git,server,studio: lines-changed stat on finalized worktree runs (1e39888)
  • observability: background-loop liveness + panic isolation (99e12fa)
  • plugin: env-based enablement + config for cloud/headless (#146) (9af99ab)
  • queue,runner,cloudpublisher: cross-process run steering over NATS (5b65698)
  • runner: wire k8s sandbox reaper into the runner claim-loop (closes managed-cloud OOM credential leak) (#145) (881234a), references #120
  • runs: repo-targeted launches — repo_url + connection_id on POST /api/runs (0d92804), references #219
  • runtime: distinct classification for provider usage-window blocks (75f6375)
  • runtime: live override channel — resume-safe loop bumps and budget raises (a599f24)
  • runview,dispatcher: ADR-046 LaunchSpec convergence — route EngineRunner.Dispatch through the launch authority (#210) (38799ea)
  • runview: live-steering service commands with truthful contract (a7413fe)
  • schedgate: shared overlap policy + guard exec + tick record (4c27e40)
  • scoped config-share editor — self-service, per-field, per-repo (#226) (71eb098)
  • secrets: log when generic-secret resolution silently drops a credential (#139) (b2432de)
  • server,studio: post-mortem shell in the preserved run worktree (625f3e3)
  • server,studio: settings-provenance captions on the Launch dialog (895702c)
  • server,studio: studio import route — .js workflow script → draft bot (2168303)
  • server: HTTP + WS routes for live-run steering (878c6da)
  • store,runner,cloudpublisher: T-42 IRRef fallback for oversized compiled IR at NATS enqueue (#211) (cd333b3)
  • store,server,studio: run-tree reverse queries + shard-tuple projection (#125 T4b) (#162) (185caeb), references #159
  • store: durable deletion tombstones — late writers can't resurrect runs (8b9b296)
  • store: ListRunsBySchedule reverse query + schedule run provenance (eebf619)
  • studio+bots: one-click action-gate verdicts + fingerprint verify_probe (9d74c1e)
  • studio+server: people flows work without email — invite links, token redemption, admin password reset (b67e5d1)
  • studio+server: repo-first everywhere — Nexie targets the active repo, pipelines scope, repo pickers (005722f)
  • studio: add bot group dimension to board pipeline lens (#125) (#153) (0a8c9ca)
  • studio: authored node descriptions in run-console headers + board sub-route fallbacks (19bfcbd)
  • studio: automation-families explainer + wizard-first integrations tab (33cc6b6)
  • studio: cloud Home golden path + repo-first shell polish (4514adf)
  • studio: cloud launches always offer a repo target (25871b0)
  • studio: config-share delivery log drawer (1e13c47)
  • studio: edit-trigger dialog + schedgate-preserving enable toggle (770d1d1)
  • studio: enum vars render as a select everywhere vars are edited (2541447)
  • studio: explanatory fallbacks for gated routes + admin route wiring (a5e9862)
  • studio: forgeLabel helper for provider-aware PR/MR wording (7a53fd6)
  • studio: global pipeline board — execution projection, details sidebar, human gates, priority-driven launch (#193) (5897ed1), closes #2, references #N #205 #205
  • studio: guided bind-bot wizard + bind affordances (62eee23)
  • studio: guided connect-repo wizard + repo-centric integrations (f95e1cd)
  • studio: guided step-by-step CreateWebhookDialog (e303eef)
  • studio: humanize node ids in the run console (b24361e)
  • studio: inline resume + bulk cancel/delete on the runs list (565977e)
  • studio: inline subbot flow display — child pipeline in the parent's editor & run canvas (#206) (65bbd28)
  • studio: Launch 'Target repository' section from the bot's repo: block (cacb752)
  • studio: launch page leads with target+inputs; scheduled bots get a management surface (07f0e9b)
  • studio: launch view persona header, auto-managed vars, progressive disclosure (0afca05)
  • studio: live steering affordances on the Overview meters (77cf020)
  • studio: per-bot launch hierarchy + bot/engine options split (c7e50b5)
  • studio: per-schedule variables in the New Schedule form (#234) (5cf4a46)
  • studio: platform audit + dead-letter-queue admin pages (0da7a8b)
  • studio: produced elements list the files written by the pipeline's nodes, not a raw git status (#208) (525ebee)
  • studio: render run tree (shard/fork children) in run console + card (#125 T4b) (#169) (42d3d2b), references #162
  • studio: repo detail view — bound bots, schedules, triggers (358d271)
  • studio: repo-first shell — RepoSwitcher, scoped views, team escamotée (e7ccff9)
  • studio: rich Schedules tab in Automations with create/edit (ce43afe)
  • studio: shared CronField with presets + humanized preview in EnableRepoPanel (3df0716)
  • studio: tick-policy editor on the Scheduled bots surface (381278a)
  • trigger: schedule-gate on the spine scheduler + typed run provenance (8c38166)
  • web-search: sovereign web search tiers (SearXNG → Firecrawl) (#135) (c95ac55)
  • webhooks: auto-heal PRs ejected from the merge queue via Billy (#133) (e0732e9)
  • whats-next: Nexie v3 — roadmap-study cycle as skill-level behavior (ADR-075) (#214) (9cc0358)

Bug Fixes

  • auth,forge: make intentional swallows explicit, log infra failures (W1) (772cb25)
  • bots/billy: push-back recovers from a branch that advanced on the remote (#209) (d6596d2), references #193
  • bots/vetty: make post_feedback deterministic (tool, not an LLM turn) (#194) (c0bb43a)
  • bots: feed-watch drops board capability — unblocks cloud digest (#221) (30ef868)
  • bots: feed-watch git-push state is rebase-retry safe for concurrent cloud runs (#220) (575c204)
  • bots: feed-watch synthesize pins backend claude_code (forfait-compatible) (#222) (33f6f42)
  • bots: harden feed-watch against editorial prompt-injection & feed SSRF (#225) (410cd1d)
  • bots: repo: block serializes snake_case on the wire (3f2b44e)
  • ci: pass a clean semver to the image build — no more vv0.32.0 / vmain (#84) (551ea06), closes #83
  • claude_code: export CLAUDE_CODE_OAUTH_TOKEN for the forfait (headless auth) (#185) (927b534)
  • claude_code: forfait OAuth must suppress an inherited ANTHROPIC_API_KEY (#184) (f3e6814)
  • claudesdk: log undeliverable control-protocol responses (W1) (218aca6)
  • cli: runs prune survives unreadable run dirs — surface, never delete (#215) (d28898a)
  • cloudpublisher: rollback failure joins the publish error (W1) (92e7844)
  • codex: make delegated writes reliable (#191) (cd6e28f)
  • codex: use localImage app-server input variant (#192) (2236f33)
  • delegate/codex: survive multi-MB image events — vendored SDK fork with 64MB scanner cap and surfaced transport errors (#212) (da8b68e), closes #24
  • delegate: let text-output backends satisfy single-string-field schemas (#170) (de24277)
  • dispatcher,bots: close the two #125 réserves — awaiting-input lifecycle + deterministic drift gate (#179) (ce39344), references #173 pre-#173 #167
  • dispatcher/native: surface watcher errors and max-seq recovery failure (W1) (0a76b87)
  • docker: copy root internal/ into the go-builder stage (50f0d81)
  • dsl: expose subbot output schemas (#207) (dcaea1a)
  • forge: App token narrowing includes schedule-target repos (8b898b7)
  • forge: mark GitHub-App connection degraded on 422 permissions-not-granted (stop re-mint loop) (#159) (f676794), references #125
  • kimi: support current stream-json protocol (#188) (0490eaa)
  • mcp: never cache an empty tool-discovery result (cold-start poisoning) (#172) (42dbfd8)
  • mcp: retry tool discovery on an empty result (startup race) (#177) (cf7b764), references #172 #172
  • model: consume tenant codex ChatGPT-forfait in cloud runs (#171) (c199c35)
  • queue: raise consumer MaxAckPending from 1 (fleet serialised to 1 run) (#158) (1b87361)
  • runner: bake pinned firecrawl-mcp into runner image (+ renovate auto-bump) (#176) (ca51b44), references #172
  • runner: close the clone SSRF TOCTOU with a pinned-dial clone-guard proxy (#198) (c640b39)
  • runner: demote non-root SSRF IP-pin skip to info-once (#141) (#143) (faf385f)
  • runner: propagate git author identity seeding failure (W1) (2477770)
  • runner: resolve plugin MCP servers for cloud runs (0-tools bug) (#178) (39c3612)
  • runner: skip k8s sandbox reaper when runner is the isolation boundary (#147) (e484097), references #145
  • runtime/skills: mirror a flat <name>.md alias next to the SKILL.md dir (#187) (7ce6398)
  • runtime: cloud resume routes queued runs by checkpoint evidence (cf47255)
  • runtime: never rewrite a malformed .claude/settings.json (W1) (8cfb895)
  • runtime: queued resume with no checkpoint restarts from entry (d4301a2)
  • runtime: worktree:auto degrades in-place on an empty repo (unborn HEAD) (b89c47c)
  • runview: log trigger-event publish failure on run outcome (W1) (0abd8f0)
  • secrets: materialize as:file secrets on host (non-sandbox) runs (#217) (59b8f73)
  • secrets: stop refresh-worker noise for non-refreshable oauth records (ee60c06)
  • server,boardmongo: cloud parity for the awaiting-input lifecycle (#125) (#181) (b66a101), references #173
  • server: graceful GitHub App callback on setup_action=update (85d4004)
  • server: malformed board launch-context overrides block the card (W1) (505288e)
  • server: propagate swallowed persistence errors in routes (W1) (434641f)
  • server: surface valkey OAuth-state and board-MCP token write failures (W1) (b01e352)
  • skills/verify-build: put the codegen-drift gate in the copyable example (#167) (#174) (d0c6154), references 159/#162
  • studio)+feat(configshare: dialog overflow scroll + durable (never-expires) shares (#233) (cd4ec7f)
  • studio: audit round 1 — explainer visible sans trigger store, 404 triggers gate, bot description framing (20314e6)
  • studio: board answer affordance must render the paused node's schema (#134) (a8b9cbc), references #132 #125
  • studio: board copy says staged-launch, not dispatcher, when dispatcher is off (6641536)
  • studio: board hidden-count hint + single wizard disclosure; e2e bilan (47f667d)
  • studio: bot home scrolls when taller than the viewport (#238) (018e563)
  • studio: cloud mode tells the truth — no dead ends, no local-only affordances (048c8e8)
  • studio: cloud-truth + feedback polish (b642e27)
  • studio: cloud-truthful marketplace copy + pipeline board polish (5382068)
  • studio: create-repo connection picker unions the full connection list (edda807)
  • studio: cron field label mentions the CRON_TZ prefix (a668493)
  • studio: dedicated /login route, landing Sign-in buttons navigate to it (4395318)
  • studio: formatRelative handles future instants (39ce1d2)
  • studio: guard undefined preset.values in BotHome PresetsCard (#138) (59c08fb)
  • studio: humanize CRON_TZ-prefixed cron expressions (4035d99)
  • studio: humanize raw enums and ids on account/admin/integrations surfaces (510b043)
  • studio: replay pace was halved by a stale-ref re-schedule (2b8b72c)
  • studio: restore Input import in ScheduleDialogs (c1964e6)
  • studio: signup flows through the auth context, entering the app directly (3a5a727)
  • studio: suppress the WS "stale" banner on paused/terminal runs (#144) (f476cab)
  • studio: timestamp-true run replay with idle-gap compression (d987654)
  • studio: ux audit round 1 — schedules reachable without trigger spine, clamped bot descriptions (4a4050a)
  • studio: whats-next pre-flight surfaces terminal outcome instead of infinite loader (75e7bdd)
  • webhooks: never auto-launch a bot on draft PRs/MRs (GitHub, GitLab, Forgejo) (#196) (869bebc)
  • webhooks: never auto-launch on fork PRs; keep dep-bot PRs off the improve loop (#189) (063c111)

Performance Improvements

  • studio: idle cadence for the runs pollers when nothing is active (82e09ea)

0.49.1 (2026-07-12)

0.49.0 (2026-07-12)

Features

  • store: per-run tags — label runs with short tags for filtering/grouping (#129) (#130) (a25b79c)

0.48.0 (2026-07-12)

Features

  • branch-improve-loop: in-loop adversarial review stage (parity with feature-dev) (c1fef12)
  • feature-dev: in-loop adversarial review stage — ship PRs pre-refined (45811e7)
  • per-run operator notes shown in the run header (#128) (9efc3eb)
  • sandbox/k8s: self-terminating manifests + orphan reconcile for leaked sandboxes (#120) (c85199f), references #NNN
  • skills/verify-build: mirror CI's codegen-freshness/drift gates in-loop (bf58575)
  • store: cloud twins for the three fs-only run-detail seams (fork, tool-I/O, artifact-files) (#123) (a16ac51)

Bug Fixes

  • sandbox/k8s: preserve ownerReference on mid-run secret refresh (main red) (34af88a), references #120 #121

0.47.0 (2026-07-12)

Features

  • sandbox: extend mid-run file-secret refresh to sandboxed runs (#116) (#121) (c3bc777), references #99 #99

0.46.0 (2026-07-12)

Features

  • cloud: persist per-file diff content so cloud run panels render diffs (#122) (70c3fe3)

Bug Fixes

  • runview: emit terminated when cloud/external run event stream ends (d5880f0)

0.45.0 (2026-07-12)

Features

  • studio: hide cloud-unavailable run affordances instead of erroring (#124) (6619956)

Bug Fixes

  • cloud: DeleteRun cleans run_logs + gate sibling reapers on lock authority (c1324a1)
  • runview: detect dead run-console WebSocket and auto-recover (2793f90)

0.44.1 (2026-07-11)

0.44.0 (2026-07-11)

Features

  • runview: surface resolved backend + model on the run header (#114) (9ff3acb)

Bug Fixes

  • runview: don't reap runner-owned runs from the lock-less cloud server (b7b63f7)

0.43.1 (2026-07-11)

Bug Fixes

0.43.0 (2026-07-11)

Features

  • botscaffold: single-agent bundle scaffolder with parse+compile validation and template gallery (aeb06fd)
  • bots: manifest icon for all 21 catalog bots (7c44143)
  • bundle: manifest icon field surfaced through discovery and bot metadata API (189ac27)
  • cloud: launch-time budget overrides ride the RunMessage to the runner (b8cb4ae)
  • marketplace: kind-aware InspectSource, plugin entries, Icon field, list sort (0c40f94)
  • marketplace: kind-aware submit/install/uninstall across server and CLI (b112350)
  • marketplace: plugin entries download as a source zip (d3b9e35)
  • plugin: Inspect, ReadReadme, RunLifecycle, InstallWith(ref/subpath), Detail projection (fa1e924)
  • plugins: stream lifecycle command output live (8c74de4)
  • runview: launch budget overrides on the HTTP API + runs ?bot= filter (13c0ef5)
  • secrets: fail launch on unresolved required secret (#110) (27f6887)
  • server: bot creation endpoint + builder template gallery (0c869a7)
  • server: one-click trigger enablement from a bot's manifest invocations (7348ada)
  • server: plugin detail + lifecycle run endpoints; studio API client (788ea33)
  • studio: /bots gallery + per-bot home page (d25e317)
  • studio: bot emoji identity — botVisual precedence, EmojiPicker, metadata icon field (0310032)
  • studio: budget overrides + review-mode in the launch modal (3d3e540)
  • studio: complete the command palette's navigate group (779114b)
  • studio: debounced auto-save on the bot metadata form (9813ddf)
  • studio: guided bot builder with template gallery + embedded live test pane (8ea2b4c)
  • studio: humanizeCron renders weekday ranges (0 7 * * 1-5) (4224f0f)
  • studio: humanized cron preview in the bot builder (431399f)
  • studio: marketplace kind pills, sort, featured strip, plugin install-state, reject dialog (2dcadf6)
  • studio: plugins view as connector-style card gallery with detail drawer (ab6e1c7)

Bug Fixes

  • botscaffold: don't fail scaffolding on the credential-detection C018 (fa9e409)
  • openapi: regenerate spec + studio types to clear drift on main (6fd1adc)
  • server: pruned run history renders as an empty state, not a 500 (ee0809b)
  • studio/board: audit findings — drag placeholder, body size, delete affordance, priority hint (c6f1af8)
  • studio/runs: compact long workflow file paths in the run list (243d82f)
  • studio/runs: drop the 'Unsaved workflow' header subtitle when nothing is loaded (76f9cc4)
  • studio/runs: files-panel copy for a removed worktree + docked conversation on narrow viewports (51b3756)
  • studio/runs: full retry error on hover in the banner progress line (2779809)
  • studio/whats-next: dedupe narration/question twin + copyable run id (d841052)
  • studio: distinct persona identities for the 12 fallback-robot bots (420ca94)
  • studio: hide the contextual header bar when it has nothing to show (949d229)
  • studio: resolve latent eslint errors (prefer-const, useless assignment) (605a2b5)
  • studio: show a reconnect screen when the server is unreachable, not the sign-in form (4e01055)
  • studio: surface recovery pauses as answerable questions in the run conversation (16c8ae8)

0.42.0 (2026-07-11)

Features

  • claude_code: pass --thinking-display summarized + exact thinking tokens (98f296c)
  • codex: forward node image inputs (images:) for image-to-image (461da8e), references #103

Bug Fixes

  • cloud: capture plan snapshots for cloud runs (Mongo run_plans) (#106) (7e5ef2e)
  • vendor: claw-code-go pseudo-version timestamp back to UTC (third occurrence) (d2169cf)

0.41.0 (2026-07-11)

Features

  • board card UX for triggered runs — carry issue link/mission + live run link (#107) (b67131d)

Bug Fixes

  • vendor: correct claw-code-go pseudo-version timestamp to UTC (79fd4ad)

0.40.0 (2026-07-11)

Features

  • codex: add per-node full_access opt-in for network egress (7bed767)
  • logs: surface extended-thinking content as foldable log blocks (6d5e899)
  • runtime: persist branch_abandoned events when a cancelled fan-out outlives its grace period (e702f93)
  • runview: reconcile orphaned runs periodically, not only at boot (b9f1fcb)

Bug Fixes

  • bots: drop unsafe raw template interpolation in tool/script bodies (55d7170)
  • bots: give devbox-setup a deterministic entry checkpoint (75c3d9c)
  • bots: make sec-audit-source deepsec opt-in (default false) (be091cc)
  • ci: align e2e test timeout with the Taskfile (120s -> 240s) (b281c04)
  • claude_code: surface redacted thinking + accept canonical model specs (490b89d)
  • cloud: charge LLM spend to the org usage key so the monthly cost cap works across teams (fec19f1)
  • delegate: classify DNS failures and two missing errnos structurally, not by message (4f6ac71)
  • delegate: kill the in-container process when a sandboxed CLI agent is cancelled (67d3799)
  • dispatcher: recover external-tracker claims stranded by a crashed daemon (66837e6)
  • runner: bound each git subprocess with a wall-clock timeout (1dfe867)
  • runner: bound each git subprocess with a wall-clock timeout (e3b60f6)
  • runtime,store: retry the failure-status flip and surface quota-compensation failures (3708a2f)
  • server: derive the queued-orphan sweep cutoff from the real redelivery window (67e1190)
  • server: release the metered quota unit when a concurrent duplicate webhook loses the idempotency insert (ce8affb)
  • store: write-ahead barrier — re-sync events.jsonl before a checkpoint write after a failed event fsync (d91fcc4)

0.39.1 (2026-07-10)

0.39.0 (2026-07-10)

Features

  • persist run git metadata for cloud Commits/Files panels (#102) (c434aa4)
  • studio: Table + Drawer primitives, Dialog stacking, aria-invalid on form controls (e48b389)

Bug Fixes

  • dsl: loop clause unbounded/fuel_cap survive the AST JSON round-trip (b5c67da)
  • runview: persist run.json before Launch returns, keep WS subscribers across a pause (c2793b7)
  • studio: consistent cloud-only degradation in local mode (82a2c66)
  • studio: dialogs without description opt out of aria-describedby (e75c0b9)
  • studio: editor tab restore, loop-bound labels, canvas theming (0951e89)
  • studio: run console polish — commits errors, terminal-state copy, launch deep-link (1ebb8d1)
  • studio: whats-next console frictions + dark-mode affordances (b5cd0db)

0.38.0 (2026-07-10)

Features

  • cli: complete iterion remote — typed subcommands for the full cloud API surface (e5ace41)

Bug Fixes

  • runner: refresh materialised file secrets mid-run from the store (6dd452c), closes #99

0.37.4 (2026-07-10)

Features

  • chart: config.extraEnv passthrough + embed tzdata in the binary (32bac8c)

Bug Fixes

  • runner: persist executor agent-stream lines into the run log (6031a35)
  • webhooks: carry resolved PR context into board-mode command cards (bc29180)
  • webhooks: resolve PR head/base for PR-surface command comments (499957c)
  • webhooks: stamp Billy push-back vars on PR/MR command comments (642b1ba)

0.37.3 (2026-07-10)

Bug Fixes

  • forge: scope refresh worker ctx to the connection tenant (a65d64a)

0.37.2 (2026-07-10)

Features

  • chart: optional shared RWX build-cache PVC for runner pods (67e5540)
  • runner: attribute github-app commits to the App bot (2157c0f)

0.37.1 (2026-07-09)

0.37.0 (2026-07-09)

Features

  • report: surface resolved verify command in report header (#89) (24fd5ac)

0.36.0 (2026-07-09)

Features

  • billy: post the review verdict as a comment on the PR (5795b09)
  • delegate: dedicated CLI-agent backend for non-claude-code argv (kimi-code) (#90) (3002d1c), references #76
  • dsl: inline external file into prompt via {{include "..."}} (#73) (b335b29)
  • dsl: per-node command: override for a claude-code-compatible CLI on claude_code (#76) (941ba77)
  • dsl: per-node timeout on LLM nodes (agent/judge) (#72) (c06f64d)
  • model: inject schema-validation error into structured-output retry prompt (#71) (38ec711)

Bug Fixes

  • runner: attribute bot commits to the push-token owner, not a stray account (46af8b4)

0.35.0 (2026-07-09)

Features

  • board: carry the webhook's key/secret overrides onto the launched card (2350109)
  • webhooks: branch_improve_as_pr — Billy opens a PR onto the contributor's branch (ef8131e)
  • webhooks: zero-touch issue lane — AutoImplementOnOpen dispatches on issue open (4387cc1)

Bug Fixes

  • chart: supply the required JetStream account to the KEDA runner scaler (85e7574)
  • forge: grant issues:write to the App installation token for the MR back-link (dcd006a)
  • forge: surface GitHub's 422 message when minting an App installation token (5840fc3)
  • server: fall back to the caller's team when resuming a run with no TenantID (20f2533)
  • server: scope cloud run resume to the run's tenant (was panicking) (a171804)

Performance Improvements

  • queue: raise redelivery budget (MaxDeliver 3→8, AckWait 5→10min) for burst resilience (2f68417)
  • runner: warm the Nix store with the Go toolchain in the devbox runner image (d0dad39)

0.34.0 (2026-07-09)

Features

  • billy: deterministic PR push-back — banked commits land ON the PR (1d076a6), references #84

Bug Fixes

  • chart: mount a writable /run/iterion tmpfs on the runner for in-pod file secrets (7625887)
  • forge: backfill the per-bot token binding on an idempotent re-provision (9b339c9)
  • forge: bind the managed forge token per bot so board-launched runs can push (483e69a), references #86
  • runner: materialize file secrets when the sandbox is RESOLVED inactive, not undeclared (56a5680), references #84
  • webhooks: route a labeled issue to the implementer, not the reviewer (2281a2e), references #85

0.33.1 (2026-07-08)

0.33.0 (2026-07-08)

Bug Fixes

  • runner: ITERION_SANDBOX_OVERRIDE — run in-pod when the runner is the isolation boundary (36fb786), references #84

0.32.0 (2026-07-08)

Features

  • adr-cartograph: v2 minimal-framing — deterministic decision manifest + one campaign agent (ADR-058) (b700770)
  • backend: <system-reminder> envelopes on harness injections + post-compaction todo reseed (0fbe26c)
  • backend: posture autonomy/delivery clauses + ultracode orchestration mechanics (0646939)
  • bots: calibrated prompt-level pass — G5 baseline, sub-agent fan-out, security-dismissal asymmetry (ADR-058 rollout) (a497f1a)
  • bots: deterministic forge_auth_probe before finalize_mr (Billy/Willy/Featurly) (db812f0)
  • chart: per-runner image + securityContext overrides (for the devbox runner) (f263f12)
  • cloud: Mongo-backed desktop SSO ticket store (multi-replica) (c86e912)
  • dep-update-guard: v2 calibrated — deterministic verify gate replaces the self-reporting validate agent (ADR-058) (1d52d5e)
  • desktop: multi-connection workspace — local + cloud panes side by side (350ca52)
  • desktop: optional cloud connections via authenticating loopback proxy (6b59b9a)
  • desktop: re-login prompt on cloud:auth-expired (0b8db84)
  • desktop: scope-aware pane auth + Browser-Live WS (724f4c7)
  • desktop: single-use WS ticket instead of JWT-in-URL (945ab3f)
  • desktop: SSO sign-in for cloud connections (cloud→loopback ticket) (2cb436a)
  • desktop: unified pane re-login, native-menu forwarding, OAuth-first cloud connect (d3f109d)
  • dispatcher: deterministic PR-aware ticket router (opt-in) (0933da8)
  • dispatcher: github tracker author_allowlist — trusted-author dispatch scope (b2bdfb8)
  • docs-refresh: v2 minimal-framing — deterministic drift manifest + one campaign agent (ADR-058) (f3dcfc4)
  • events: assistant_text narration events on both backends (a934dfa)
  • feature-dev: v2 minimal-framing campaign — one agent ships the feature (ADR-058) (11aa9b6)
  • feature-gap-fill: v2 minimal-framing campaign — close the gap in one agent's natural flow (ADR-058) (a57789d)
  • interaction: ask_user structured options across both backends (fc14daf)
  • rgaa-audit: v2 light pass — one audit agent absorbs the surface classifier (ADR-058) (383ce0a)
  • runner: devbox-first-class runner image (experiment) — cross-lang toolchain (3269ec9)
  • runview: persist launch-time model/backend overrides on the run + show in Overview (1227f71)
  • secured-renovacy: Phase 2 → one review campaign + deterministic build gate (ADR-058, scoped) (c50c837)
  • server: accept ?ticket= on the Browser-Live CDP WS endpoint (10ddfb7)
  • skills: first-class skill library referenceable from workflows (85eb2ec)
  • studio: consolidate Chat + Browser into one tabbed side dock (48b7bda)
  • studio: first-class run Overview tab — the axis/config, separate from diffs (ec3a7ba)
  • studio: pending-input badge on nav — runs count + Nexie dot (caf5f90)
  • studio: redesign run Overview into a mission-control dashboard (0001a59)
  • studio: unified Nexie chat — one composer, narration, no forms (d1158f2)
  • studio: unified run header + resizable left panel (a1e3506)
  • test-coverage: v2 minimal-framing campaign — mutation-proof tests in one agent's natural flow (ADR-058) (8ed21bd)
  • webhooks: opt-in block_fork_prs — filter fork PRs from auto-launch (1f47aac)
  • webhooks: route a same-repo ticket PR to Billy (branch-improve) with a fork guard (cc9400f)
  • whats-next: route an issue with an open PR to Billy, with a fork guard (1f5082f)
  • whats-next: v2 — conversational co-CTO single-agent rewrite (e99a5b4)

Bug Fixes

  • bots: refresh the stale committed catalog + freshness guard (c105532)
  • claude_code: forward-progress watchdog — catch a talking-but-not-acting spin (acb25e7)
  • cli: bound crontab read/write subprocess calls (bf56b70)
  • cloud: cancelling a run panics on the tenant filter — bypass it in CancelRun (1a56a49)
  • delegate: kill the in-container claude on session end — stream-abort no longer leaks the sandboxed subprocess (native:221edac8) (ec31b05)
  • delegate: self-clean the previous sandboxed attempt on respawn (834a53a)
  • desktop: black webview on Linux — disable WebKitGTK DMABUF renderer (92075c4)
  • desktop: nix build script — LIBRARY_PATH + production tag for runnable GUI (d2b985a)
  • detect: bound keychain probe on the credential-detection poll (f17c804)
  • dispatcher: bound docker rm and git status subprocess calls (6862f41)
  • git: bound every git subprocess with a 30s timeout (d1748c2)
  • review-pr: rename the emit node — collides with the reserved emit keyword (ec25ee3)
  • rgaa-audit: require per-candidate status + fail-safe NC counting — dogfood 019f3d3b-7aea (d6b966f)
  • runtime: bound every worktree git subprocess with a 60s timeout (e7be401)
  • runtime: finalize must never git-commit on the operator's live checkout (c583470)
  • runtime: linked-worktree promotion requires delegated workspace authority (fa7474a)
  • runtime: mirror flat skills as <name>/SKILL.md so claude_code discovers them (6a03866)
  • runtime: re-check item type in fan_out_each DAG dependency pass (3122c10)
  • runview: bound git worktree add during fork with a timeout (bde6276)
  • sandbox: mount ~/.claude.json alongside ~/.claude (root cause of native:221edac8) (a239f80)
  • server: detach browser CDP session on WS proxy teardown (a872b6c)
  • server: launch/resume a catalog bundle by id or path in cloud mode (ba99b4e)
  • server: surface deferred flush errors on upload staging write (3ebc708)
  • studio: derive unsaved-launch source from the document, not currentSource (2c2dcbf)
  • studio: launch an unsaved workflow via inline source (cloud editor) (93bc604)
  • studio: Secrets scope picker uses the Select primitive, not a raw <select> (1fc901e)
  • webhooks: a failed launch is retryable, not a terminal duplicate (02f648b)
  • webhooks: make block_fork_prs settable via the API + regen OpenAPI spec (9fbad36)

Performance Improvements

  • bots: verify_probe reuses a fresh verify.sh + verify_build effort→medium (Billy/Willy/Featurly) (b7ea4bd)

0.31.0 (2026-07-05)

Features

  • runview: persist bot plans as artifacts + studio Plans panel (50a258e)

0.30.0 (2026-07-05)

Features

  • branch-improve-loop: v2 minimal-framing campaign — review+improve the branch diff (ADR-058) (abd95df)
  • secretguard: keep materialized secrets out of the subprocess argv (env-indirection) (4ecd1b2)
  • secrets: local sealed secret store for desktop/CLI (94f4e68)
  • secrets: wire local secrets into project-switch + dispatcher paths (39f2cd6)
  • whats-next: dogfood-cycle skill — validate bots by real runs (c12e696)
  • whole-improve-loop: v2 minimal-framing campaign — lean on the agent, not a rigid graph (fb60b07)

Bug Fixes

  • bots: session-mining prompt hardening — pre-existing-failure protocol + sub-agent fan-out hints (2430eb4)
  • claude_code: seed os.Environ() in formatOutput host spawn (0a39821)
  • dispatcher: keep a dirty workspace instead of tearing it down (e51faed)
  • feature-dev: pre-existing test-failure protocol in act + fix prompts (5b7eeeb)
  • parser: accept needs: on subbot nodes (TokenNeeds, not TokenIdent) (9dd1dd6), closes #63
  • runtime: bank uncommitted worktree output instead of destroying it (0793670)
  • sandbox: persist Node package caches + re-lay all nested HOME ancestors (b3a0d27)
  • studio: collapse the files panel to Branch-only when the worktree is gone (8c5e5a4)

0.29.0 (2026-07-03)

Features

  • backend: configurable LLM client identity — ITERION_LLM_USER_AGENT + revendor claw @05398ca (e9359e5)
  • claude_code: fast in-core deadlock remediation for orchestration-tool hangs (cbf7505)
  • claw: dev-purpose Claude-forfait (OAuth) auth for the claw backend (d2c9a30)
  • claw: honor Retry-After on 429/503 retries (service-respecting backoff) (40a7148)
  • forge-sec: least-privilege follow-ons (H1 narrowing, H4 + H3-UI studio) (9a00830)
  • forge-sec: least-privilege hardening for cloud forge integration (654a254)
  • launch: per-node/-group model & backend overrides at launch (20ecf11)
  • logs: log tool RESULTS (📤) as expandable blocks — claw⇄claude_code parity (2539e4a)
  • recovery: adaptive transient retry + bounded forfait-aware auto-resume (f84ad6a)
  • resume: honor per-node --model/--backend overrides on resume (04e84f2)
  • reviewtopology: count a usable backend (claude_code forfait) as a family (7d44eae)
  • reviewtopology: mono/dual review topology for bi-model loop bots (pilot) (dcdd856)
  • reviewtopology: resolve topology on studio/API + dispatcher launch surfaces (ce32dc8)
  • reviewtopology: roll out mono/dual to the 4 remaining review-loop bots (97ddd91)
  • run: make the MCP startup health-check non-fatal via --skip-mcp-health (67e11e1)
  • runs: DELETE /api/runs/{id} — delete a run + all its data, with a studio button (a2a20ab)
  • runstream: Mongo log stream source — cloud live logs end to end (bafff5f)
  • runview: monotonic active-duration + semantic loop counting (85ea12d), references node#N
  • store: run_logs persistence — RunLogStore, Mongo/filesystem impls, runner writer (dadb206)
  • studio: expandable full tool IN/OUT inline in the Events timeline (2f33b5b)
  • studio: per-node model & backend dropdowns in the Launch form (3117d40)
  • tooldisplay: expandable full body when a tool-log header truncates (d7eb5ae)
  • whole-improve-loop: axis-driven work-list sweep (ADR-057) — v1.0.0 (a1b3a83)
  • whole-improve-loop: coherent-unit chunking + partial-view guard (ADR-055 increment 2b) (f66ba1e), references issue-#12
  • whole-improve-loop: per-unit convergence + incremental commit (ADR-055 increment 1) (a548086)
  • whole-improve-loop: per-unit verify gate + shared reviewer↔fixer context (ADR-055 increment 2a+2c) (7f96e62)

Bug Fixes

  • backend,studio: stderr race, fd leak, log-buffer byte math, WS handle churn (01c1439)
  • ci: regenerate drifted artifacts — stale go.sum entries + openapi spec/types (e21533a)
  • claude_code: detect "hit your session limit" as a rate-limit signal (7e9b36d)
  • claw: force initial tool use so gpt-5.5 grounds agent/judge nodes in real reads (f259810)
  • forge-sec: verify GitHub-App installation ownership at connect (IDOR) (6189595)
  • logs: actually log claude_code tool results — wire result logging into handleUserMessage (7291949)
  • model: bound streamed text/thinking block accumulation (OOM guard) (2b5e586)
  • runtime,server: bound webhook projection goroutines, warn on empty fan_out_each, document board-MCP tenant invariant (05d5571)
  • runtime: clear special-node attempt counter only after full success (5807771)
  • runtime: loop back-edge wins shared input key over the entry edge on re-entry (4b32430)
  • runtime: persist budget/spend across resume, isolate resume maps, chain event observers (98aef95), references branchID#seq
  • server-sec: close open-redirect, double-charge on webhook replay, and token-narrowing broadening (dd192f9)
  • studio/board: gate dispatcher UI on dispatcher_enabled (no false "unreachable" in cloud mode) (e70db25)
  • studio: live-stream logs for runs not launched in-process (EnsureLogSource) (d4f12e3)
  • studio: per-node Logs tab no longer blanks on an iteration mismatch (3e44ad8), references #8
  • supervise: stop debounce timer on coordinator exit (b981dca)
  • tooldisplay: show workspace-relative paths in tool-log headers (4b51ead)
  • whole-improve-loop: shell-safe commit_item message label (f68d90a)
  • whole-improve-loop: write scratch files out-of-tree via ${PROJECT_SCRATCH_DIR} (e75db90)

0.28.1 (2026-06-30)

0.28.0 (2026-06-30)

Features

  • cloud,docs: cloud budget ceiling + ADR-050 + dsl quickref (45274de)
  • dsl,runtime: in-bot event-driven emit/wait primitives (ADR-051) (aef1756)
  • dsl,runtime: Layer B — unbounded loops bounded by fuel + liveness (fe42960)
  • dsl/expr: Layer 0 — bounded combinators, indexing, total helpers (eef4a56)

Bug Fixes

  • dsl/ir: renumber index-on-scalar diagnostic C116 → C120 (7f9f27b), references #60
  • runtime: execute subbot nodes inside fan_out_each branches (82ff426), closes #61

0.27.0 (2026-06-30)

Features

  • artifacts: labelled artifacts + centralized, label-grouped Artifacts view (fcd9c9d)
  • bots: supply-shield malware + supply-shield-cve CVE PR-gates (47a6fc7)
  • cli: iterion migrate orgs — idempotent, reversible teams→orgs backfill (+ tests) (65be863)
  • cli: iterion remote — login + drive a remote instance over its API (dd8aabc)
  • dsl: reusable node-group macro (group/use, compile-time expansion) (de2b608), references #59
  • dsl: sequential foreach iteration (as foreach name(item in coll)) (3b9fdcc)
  • dsl: subbot node — run another .bot as a nested run (Phase D) (b0bb712), references #3751
  • forge: deep-link the forge app delete page in the OAuth-app delete confirm (3c66101)
  • forge: deepen forge integration as an interchangeable substrate (ADR-049) (72b517d)
  • forge: GitHub org dropdown via a read:org grant for App creation (4db0e8a)
  • forge: self-service least-privilege GitHub App (manifest → install → github_app) (038db57)
  • identity: Org→Teams two-level tenancy — model, store, auth, JWT, launch gate, org REST (P0+P1 backend) (be69b5e)
  • marketplace: group entries by plugin category — bots first-class, one per row (db6a54d)
  • openapi: offline spec generator + typed studio client + CI drift guard (2281897)
  • openapi: type forge routes + migrate orgs/pats/forge studio modules to typed client (55e6057)
  • org: nightly sweeper that hard-purges soft-deleted orgs (total purge) (1d71be0)
  • org: soft-delete with 24h grace + restore (sweeper purge comes next) (79e04f9)
  • org: super-admin org deletion + drop duplicate org nav entry (17e99b8)
  • plugin: claw honours .claude/settings.json command-hooks (hooks parity) (b5f7cb9)
  • plugin: commands + agents contribution kinds (claude_code parity via mirror) (f6eb5a3)
  • plugin: complete config — rewriter {{config}} expansion, iterion plugin config CLI, docs (56aa043)
  • plugin: hooks contribution kind — idempotent merge into .claude/settings.json (5a8abbb)
  • plugin: install public skill libraries as synthesized skills-only plugins (b577693)
  • plugin: plugin ecosystem — rtk-as-plugin + KG explorers + marketplace/CLI (f277770)
  • plugin: rtk used by default on runs — compression opt-out for agent/judge (9ad42b7)
  • resources: named-instance lease pool (resources: ["a", "b", ...]) (a3c92af)
  • resources: named-resource semaphores + studio editor & fan-out viz (2419f44)
  • runtime: data-driven fan-out (router mode fan_out_each) (aee4eed)
  • runtime: dependency-DAG scheduling for fan_out_each (key + depends_on) (fadf0d3)
  • server,cli: live OpenAPI 3 route inventory + iterion remote openapi|routes (d55abf3)
  • server: SSO + domains org-scoped under /api/orgs/{id}/sso (dcc4a3f)
  • server: typed OpenAPI schemas — reflect Go types → JSON Schema + route registry (d38f8dd)
  • sso: super-admin bypasses GitHub grant proof-of-control (cb472f8)
  • studio,plugin: install plugins from the UI (super-admin) + filter by type (22209d0)
  • studio,plugin: per-plugin configuration (Firefox-add-on-style preferences) (a48e9ab)
  • studio: app-shell glow-up — grouped nav with section captions, signature active state, route fade + richer empty states (4b74c8c)
  • studio: dedicated Integrations destination, split from Team settings + guided forge wiring (78a1dc1)
  • studio: dedicated org switcher at top of sidebar (5a9c8ae)
  • studio: deeper polish — run-console title, tactile node palette, premium ⌘K, vector brand mark (+ Kbd primitive) (82c88c8)
  • studio: edit org name + slug in the admin org drawer (8f059ff)
  • studio: explicit identity header in the account menu (full email) (120cd36)
  • studio: LLM-curated Session-board widgets (Phase 2, opt-in) (30c917d)
  • studio: move the account menu to the top-right header (5fbcfa7)
  • studio: org tree in AuthContext + two-section Org/Team picker + Org nav entry (P2.9/P2.10) (c77999b)
  • studio: per-run Tasks board — persistent friendly task-list view (Phase 1) (bc5b6bc)
  • studio: Plugins management view (5f1e237)
  • studio: render fan_out_each replicated-region frame on the editor canvas (3d2f7ee)
  • studio: split Org vs Team settings — OrgPage + slim TeamPage + super-admin real orgs (P2.11/P2.12) (9e53bdb)
  • studio: visual harmonization pass across every view — Geist typography, PageHeader/Card primitives, consistent elevation (358a876)

Bug Fixes

  • bots: reliable cross-run dedup + clean load_cache (supply-shield family) (98fc87c)
  • bots: supply-shield normalize_deps robust to package-keyed dict with a details object (356fde8)
  • ci: gofmt ast/ir + de-flake TestResourceSemaphore_BoundsConcurrency (d3117a7), references #59
  • dsl: renumber fan_out_each diag codes to C113-C115 (5f2e070)
  • forge,security: least-privilege GitHub App manifest — drop administration, use repository_hooks (dc3b58a)
  • forge: bake OAuth callback_urls into the GitHub App manifest (95c3772)
  • forge: create the GitHub App under the chosen org (installable org-wide) (71796a8)
  • forge: manifest sets setup_url (redirect after install) + Install opens a new tab (b2e1fe1)
  • forge: org-picker callback under the SSO github callback path (b4b411c)
  • model: clear error for an empty conversation instead of an opaque provider 400 (c418833)
  • openapi: regenerate spec + client for the plugin routes (drift unmasked by Node 24) (15477e6)
  • orgsweep,safety: re-assert eligibility inside PurgeOrg before the irreversible purge (8e79b7d)
  • studio: account chip shows user only + drop duplicate team nav entry (29340d6)
  • studio: de-dupe org/team 'Manage' entries + refresh switcher on org create (087c8f4)
  • studio: friendlier team breadcrumb — drop org/name/slug redundancy (7581856)
  • studio: gate GitHub-grant Save on >=1 grant, not on dirty (3b1814d)
  • studio: harmonize collapsed org icon width with nav rows (7cb2684)
  • studio: hide token-auto-create radio for GitHub in OAuth-app register (c87dab5)
  • studio: launch compress control reflects the default-on behaviour (4832b5d)
  • studio: make GitHub-grant edits' staged-save explicit + align row controls (0302380)
  • studio: org dropdown keeps an 'Other organization…' free-text fallback (4b9d191)
  • studio: unify GitHub allow-list — saving 0 grants removes the gating (7a39a1f)
  • studio: WiringGuide collapses once forge+repo wired (async-load fix) (303570a)

0.26.0 (2026-06-27)

Features

  • bundle: .botz is now a real ZIP (extractable with unzip), legacy tar.gz still read (b0c8321)

Bug Fixes

  • marketplace,forge: search 500 + stale "OAuth (no app)" in cloud (ef39ef9)

0.25.0 (2026-06-27)

Features

  • board: implement BoardAdmin on the cloud Mongo store (board editing in cloud) (ceb5ddd)
  • runner: keep the Claude forfait token fresh for the whole run (5c68330)

0.24.0 (2026-06-27)

Features

  • board: forge↔board sync, push-to-forge, and linked PR + CI on cards (febcc00)
  • board: serve the kanban board in cloud mode (per-team Mongo board) (97b8052)
  • forge: issue + PR + CI client capabilities for all 3 providers (e962522)
  • studio: board forge UI — sync toggle, push-to-forge, linked PR + CI, repo swimlanes (929c0c9)

0.23.2 (2026-06-27)

Features

  • sec-audit-source: scan_health flags detected-but-uncovered languages (6629175)

Bug Fixes

  • ci: unbreak image build — invalid ${{ }} expression in a run: comment (722d8f8)
  • runner: SSRF connect-time hardening for git clone (TOCTOU) (28a8690)
  • sec-audit-source: keep trivy from timing out (skip node_modules, raise timeout) (34605fe)
  • sec-audit-source: prevent silent zero-language-scanner runs (5688378)
  • sec-audit-source: revert langs to json (string[] breaks tool shell) (aa2811d)
  • sec-audit-source: surface silent scanner output-file gaps (3b0deec)
  • secretguard: shell-escape materialized secret values (RCE) (43161df)
  • security: close studio Login open-redirect + pin desktop-release tools (b554fd0)
  • server: CSRF-guard project switch/add/remove endpoints (488a0e8)
  • studio: forge connect + LLM-credentials panel resilience (e3f7d73)
  • studio: gate no-auth local studio on a loopback bind (cafa3b9)

0.23.1 (2026-06-25)

Bug Fixes

  • ci: harden release/image workflows vs GHA script injection (d230005)

0.23.0 (2026-06-25)

Features

  • chart: emit Valkey/Redis env (config.redis) for distributed state (3a45a33)
  • server: distribute ephemeral state via Valkey (HA-ready) (901454c)

Bug Fixes

  • backend: fail fast on claude_code model-unavailable result (d36d205)
  • sec-audit-source: decouple detect_tech backend/model env vars (036522d)
  • studio: AuditTab null guard (events: null → [] on empty log) (5a772db)
  • studio: refresh access token on 401 before signing out (8917a27)
  • studio: suppress browser autofill in forge connect/register forms (d20ccad)

0.22.0 (2026-06-25)

Features

  • auth: GitHub SSO tiered access — teamless submitter vs authorized team (8f867f8)
  • studio: Automations view — manage event-driven triggers by repo/bot (49b2681)
  • trigger: custom-integration ingress (POST /api/v1/triggers/emit) (5a90cc5)
  • trigger: direct-mode launcher over runview + run-completion source (1d56ea4)
  • trigger: git-forge events on the spine (observational, no double-launch) (0bcbfce)
  • trigger: scheduled source — in-process Scheduler over schedule subscriptions (9363d21)
  • trigger: unified event-driven run spine + iterion board-event source (97caeb0)

Bug Fixes

  • model: surface unregistered system-prompt reference (7605025)
  • trigger: gate custom-emit launches + cancellable spine workers (d574a16)

0.21.0 (2026-06-25)

Features

  • chart: marketplace toggle + config-checksum pod reload (11f3686)
  • cloud,oauth: browser OAuth forfait for Claude + org fallback (ba9eb33)
  • config: default Anthropic forfait client id to the public Claude Code client (d6c9f2d)
  • e2e: auto-resume driver + whats-next (Nexie) live test (c7ec94a)
  • e2e: budget→resume recovery test (+ budget fixture to OpenAI) (4796541)
  • e2e: follow-up feature tests — skills-mirroring, permission ask, rtk (06ced1a)
  • e2e: keyless cross-family quality panel (claude_code OAuth judge works) (63218f5)
  • e2e: live tests for review-pr (Revi) + docs-refresh (Doki) (1007998)
  • e2e: live-test quality/value snapshot foundation + per-bot files (71abd75)
  • e2e: Phase 2b live tests — rgaa-audit, revi-converse, adr-cartograph, evolve (fb8aec2)
  • e2e: Phase 3 live tests — 7 code-mutating bots (9e4e9ff)
  • e2e: Phase 4 sec bots (Seki, Depsy) — all 19 bots covered (5eab6a9)
  • e2e: Phase 5 feature tests — 7 more engine features (5f3a51c)
  • e2e: Phase 5 feature tests — cursors, ultracode, supervisor (cd45302)
  • e2e: Phase 7 wiring — per-bot/per-feature Taskfile targets (23ff4c3)
  • e2e: route Anthropic judge via claude_code OAuth (true cross-family, no API key) (a867957)
  • e2e: sandbox network-allowlist + run-fork live tests (worktree) (035acf7)
  • e2e: schedule trigger → live bot run test (7b3680f)
  • permission: --permission* overrides on iterion resume (2bc4231)
  • permission: claw ask-mode approve→execute round-trip (3ee7a8a)
  • permission: RunHeader gate badge + structural infra-tool exemption (5954c36)
  • permission: tool-permission gate (anti-prompt-injection) — claude_code ⇄ claw parity (755bac9)
  • permission: unified ask-approval marker → claude_code auto-grant (d046d7b)
  • sso: make cloud SSO discoverable, recoverable, and admin-friendly (54dac9c)
  • studio: commercial cloud landing + public marketplace (browse/download/seed) (67ec6ab)
  • studio: Launch-modal permission toggle (off/ask/deny) (9d5e4ee)
  • studio: markdown + syntax-highlighted code across all chat surfaces (afe61db)
  • studio: permission approval card (allow once / always / deny) (f800634)
  • studio: polish cloud landing — brand mark, theme toggle, hero design (56f02eb)
  • supervise: in-.bot supervisor <name>: DSL block + engine auto-spawn (1b6a2b0)
  • supervise: node-scoped supervisor agents + iterion supervise CLI (f0fc414)
  • supervise: raw Claude Code session bridge (transcript tail + hook drain) (b2e14ae)

Bug Fixes

  • e2e: claude_code judge → text-JSON path + diagnostic (still opt-in) (2cde92d)
  • e2e: credential-aware judge panel (live-run finding) (44b3f5f)
  • e2e: make the claude_code judge actually produce a verdict (6085c61)
  • permission: two live-dogfood bugs — pause on interaction:none + exempt StructuredOutput (ddac6ba)
  • permission: warn (C112) on inert tool-node permission (a16d33b)
  • quality: flatten judge schema (robust cross-backend structured output) (2fac5de)
  • runner,skills: exclude .claude/ run-scratch from review diff + env-based forge auth (5c71848)
  • supervise: make cross-process + CLI supervision actually deliver (live-dogfood fixes) (e6dd489)
  • supervise: match Claude Code's project-key encoding for raw sessions (3c2c2ef)

0.20.0 (2026-06-24)

Features

  • webhooks: GitHub issues.labeled → launch bot (featurly) with PR back-link (eb4c457)
  • webhooks: one-way board tracking card for issue-labels + GitLab issue support (2bd2575)

Bug Fixes

  • claw: forward z.ai (GLM) creds into the sandbox claw runner (aa914dd)
  • runner: seed a git author identity in the cloud clone (k8s commit_changes) (31aa363)
  • sandbox: k8s — mount workspace at the worktree path + force-delete stale pod on resume (a24511f)

0.19.0 (2026-06-24)

Features

  • author-filtered webhooks + Vetty dependency-PR guard (#49) (853d336)
  • marketplace: backend foundation — scope/status model, uninstall/update, .botz upload (797edfb)
  • marketplace: cloud scoping, moderation flow, scope picker + queue UI (1d2f10f)
  • marketplace: iterion marketplace list|submit|install CLI (609a73f)
  • marketplace: seed the workspace's bot bundles as builtin entries (e888e74)
  • marketplace: studio installed-state, uninstall/update, .botz import (6acc5c6)
  • studio: native Open + inline Recents/Examples submenus in File menu (1ff8895)

Bug Fixes

  • sandbox: k8s workspace-delivery — archive entries by name, not "." root (1c39254)
  • sandbox: k8s workspace-delivery — tar --no-overwrite-dir (non-root extract) (48cf5f1)
  • studio: refit canvas viewport when an editor tab regains visibility (e26be98)
  • webhooks: carry RepoURL through the cloud board dispatcher (issue-comment runs) (adf4968)

0.18.2 (2026-06-24)

Bug Fixes

  • unblock red main — gofmt manifest_pullpolicy_test.go + publish dispatcher freed-slot snapshot before Release worker (#47) (c9b78e0)

0.18.1 (2026-06-24)

Bug Fixes

  • detect: claude.ai web-auth fallback for claude_code, unified with macOS Keychain (#44) (224c7c0), references #45
  • webhooks: set RepoURL for issue-comment runs (clone-url fallback + default-branch ref) (748050f)

0.18.0 (2026-06-24)

Features

  • board: custom-field schema editor (add/edit/rename/delete/reorder) (b272d4d)
  • board: editable columns — add/rename/delete/reorder with issue migration (92998da)
  • board: saved views (named filter/sort/group presets) (107e912)
  • board: swimlane grouping (by assignee/label/priority/custom field) (917c9cf)
  • sandbox: deliver the workspace into the k8s sandbox (Phase 5 V2) (1712e4e)

Bug Fixes

  • detect: recognize macOS Keychain for Claude Code OAuth (claude_code falsely unavailable on Mac) (#45) (478dab8)
  • evolve,sec-audit-deps: forfait overflow + real SCA CVE findings (326c980)
  • sandbox: bake the claude_code CLI into the sandbox image (post_create sudo on k8s) (c436431)
  • sandbox: drop ALL host bind mounts on k8s, not just the bot's declared ones (6c794e0)
  • sandbox: drop docker-only host bind mounts on k8s + pull mutable sandbox images fresh (25b04eb)

0.17.2 (2026-06-24)

Bug Fixes

  • chart: grant the sandbox runner RBAC for per-run Secrets (fb03b4e)
  • runner: wire ITERION_SANDBOX_DEFAULT / HOST_STATE into the cloud engine (89ed642)
  • sandbox: make claw-in-sandbox work on kubernetes (bake iterion + gate host bind-mounts) (1ca693d)

0.17.1 (2026-06-24)

Bug Fixes

  • chart: set ITERION_SANDBOX_HOST_STATE=none on cloud runners (6a9aee2)

0.17.0 (2026-06-24)

Features

  • board: Mongo-backed BoardStore for cloud (P2 step 2) (df3e852)
  • board: native issue comments + board.comment capability (a04e5a8)
  • bots: add Testy test-coverage augmentation bot (de3b749)
  • bots: author invocations into curated catalog + make forge: optional (166e8fb)
  • bots: MR generation on branch-improve-loop (comment -> run -> MR) (37441bc)
  • bots: RGAA accessibility — Willy preset + Acci audit bot (8de44c9)
  • bots: typed manifest invocations schema + registry surface (80af0f7)
  • cli: add iterion models command to inspect model capabilities (4250d8c)
  • cli: clear, actionable error for missing .bot/.botz file path (a58475b)
  • cli: inject budget overrides at runtime for all bots (17f3d89)
  • cloud: board dispatcher — CAS-based, leaderless, auto-runs cards (07806e0)
  • cloudsched: cloud scheduler core — store + CAS ticker + cron (P3) (57afc3f)
  • cloud: wire board-mode cards + the cloud scheduler into the server (5b2c662)
  • dispatcher: CloudPublishingRunner — enqueue + poll-to-terminal (P2 step 4) (3faa6bc)
  • model: add GLM context-window capabilities and bump z.ai model (9f46f4d)
  • model: resolve model capabilities dynamically with curated fallback (970687f)
  • provider-fallback: add per-element model to provider fallback chain (9493f96)
  • runtime: default worktree:auto for workspace isolation by default (6569460)
  • studio: cron picker for scheduled bots in the enable dialog (387f4b9)
  • studio: Integrations picker surfaces all repo-capable bots, grouped (4cbaaa7)
  • validation: static bot-structure validation — manifest↔workflow + DSL typing (f962a4a)
  • verified-action: integrate ADR-044 Verified Action recovery ladder (b135cce)
  • webhooks: command→bot route registry + orchestrator command map (14ad0b7)
  • webhooks: consume GitHub/Forgejo issue_comment for /commands (fc575f6)
  • webhooks: generic /command routing on GitLab notes + dispatch sink (548108f)
  • webhooks: trigger an improvement MR from an issue comment (97ec3d0)
  • whole-improve-loop: configurable + model-adaptive chunk budget (v0.4.0) (071c37d)
  • whole-improve-loop: progressive context disclosure (explore mode, v0.5.0) (dc22b62)

Bug Fixes

  • adr-cartograph: harden review-loop convergence (asymptote) to stop opus oscillation (b5fc5be)
  • adr-rechallenge: entry node uses {{vars.}} not {{input.}} (finding #2) (32a9c58)
  • delegate: carry dropped Task fields to the sandboxed claw runner (c3edba6)
  • delegate: retry on transient "API Error" result text from claude_code (63dbd78)
  • docs-refresh: enforce asymptote — symmetric streak gate + do-not-relitigate (3b65310), references #4
  • dsl: cap review-loop scanned-areas accumulator to bound reviewer input (356053e)
  • e2e: run whole-improve-loop convergence tests in inline mode (0f1d8d6)
  • forge: enable preview honours forge-optional bots + shows commands (945a958)
  • model: glm-5.2 context window is 1M, not 200K (a3c4acf)
  • rgaa-audit: inline env in node model fields ({{vars}} not resolved there) (48caf6e)
  • runner: SSRF guard on clone host — block private/internal addresses (2303f26)
  • runtime: bound each node to remaining max_duration via a hard deadline (522c165)
  • sandbox: also reroute oversized 'bash -c' via stdin (tool nodes use bash, not sh) (836e210)
  • sandbox: make devbox first-class — writable tmpfs for HOME-nested bind parents (bd805ae)
  • sandbox: PROJECT_SCRATCH_DIR sandbox-writable; sec-audit-deps uses it (finding #1) (947f757)
  • sandbox: route oversized commands to docker via stdin to avoid E2BIG argv overflow (faf11a8)
  • scan-shards: unique shard run-ids per file-list + pass --parent-run-id (dacd307)
  • sec-audit-source: big-context fallback + missing-field retry for triage+voters (ab6c0ab)
  • sec-audit-source: default triage+voters to opus (first-class), glm chain opt-in (40a61ce)
  • secured-renovacy: drop git-layer :(exclude) pathspecs from prepare_commit execSync (sh paren error) (d59e9cd)
  • secured-renovacy: filter gitignored paths from explicit git add (3rd commit edge-case) (ec0d670)
  • secured-renovacy: keep toolchain caches out of worktree + harden commit-prep buffers (8a86e8b)
  • secured-renovacy: unstage stray caches after git add -A (Revi review finding) (3bc1ecc)
  • secured-renovacy: use :(exclude) long-form pathspec, not :! (git magic parse) (085c730)
  • secured-renovacy: use plain 'git add -A' (robust primitive) over brittle exclude-pathspecs (6d9c406)
  • whole-improve-loop: make improvement-axis findings blocking, not deferred (eeb8b7a)

0.16.1 (2026-06-22)

Bug Fixes

  • server: wire ExamplesDir to the bots catalog in cloud mode (06349f4)

0.16.0 (2026-06-22)

Features

  • studio: UX friction pass — destructive confirms, form primitives, missing states, a11y (26c31a1)

Bug Fixes

  • orgsso: use errors.New for verbless error literals (dc9ade0)
  • studio: center collapsed sidebar icons, make logo the expand toggle, drop wordmark caret (4c553c1)
  • studio: restore sidebar brand icon, center collapsed mark, fix UserTeamChip overflow (b5ebdd8)

0.15.1 (2026-06-22)

Bug Fixes

  • dispatcher: build the stale-claim PID check on Windows (2d22361)

0.15.0 (2026-06-22)

⚠ BREAKING CHANGES

  • remove .iter workflow support

Features

  • add dual-verdict PR review+fix workflow example (80310cf)
  • add sandbox file secrets (7995e04)
  • alerts: add run-health alerting with webhook, browser, and desktop sinks (98652b3)
  • audit: tenant + platform audit log with REST surfaces (a87d275)
  • auth: add password-change endpoint to complete bootstrap rotation (0ce3723)
  • auth: declarative super-admin password via ITERION_BOOTSTRAP_ADMIN_PASSWORD (178e079)
  • auth: GitHub proof-of-control for SSO team-gating (aa3679c)
  • auth: GitHub team→org SSO gating (Phase 2) (9ae04e8)
  • auth: JWKS ID-token signature verification (Phase 3 hardening) (6c8d626)
  • auth: per-org Keycloak login + hardened generic OIDC connector (07cfa87)
  • auth: per-org SSO auto-link gated on DNS-verified email domains (5abb1d3)
  • auth: per-tenant SSO provider store (orgsso) (7870231)
  • auth: personal access tokens (iap_) for programmatic API access (10a3b8b)
  • auth: Phase A — multitenant auth foundation (email+pwd + Google + GitHub + OIDC) (d894f5c)
  • auth: re-issue bootstrap admin temp password while still pending (00540a4)
  • auth: revoke stale GitHub-SSO memberships on re-login (91a8c53)
  • auth: SMTP mail + self-service password reset + session hygiene (d512600)
  • backend,dsl: add per-node provider fallback chain (351a75f)
  • backend/claw: forward provider credentials into the in-sandbox runner (0985705)
  • backend/openai: route claw via ChatGPT-forfait OAuth when codex auth.json present (598b31d)
  • backend: multimodal claw + CLI fallbacks for image attachments (9aded84)
  • backend: per-turn capture hooks + SessionIDKey + lazy conversation marshal (1f5fd6e)
  • backend: retry transient network failures with backoff (9ae7b85)
  • backends: first-class ZAI_API_KEY support (auto-routes Claude Code + claw to z.ai/GLM) (710bc3e)
  • backends: plumb ANTHROPIC_BASE_URL + OPENAI_BASE_URL through the claw registry; document z.ai/GLM pattern (9b1b056)
  • backend: surface thinking time + tokens for claw and claude_code (55f87d3)
  • bench: add iterion bench asymptote — inter-session quality stabilisation (7dee6bb)
  • benchmark: OTLP/gRPC exporter for iterion run events (49baf13)
  • board,bots,studio: fold findings inbox into board's inbox state (ee39cde)
  • board: add set_bot — canonical bot selector, distinct from assignee (45d10a5)
  • board: bot capabilities + __mcp-board stdio server (steps 1-6/12) (55dd876)
  • board: HTTP MCP handler + claw in-process tools (steps 7-8/12) (17f51ea)
  • board: iterion bots list + whats-next PO mode + e2e + docs (steps 9-12/12) (b83923d)
  • botregistry: expose bots + vars schema over HTTP for board form (27ee040)
  • bots,runtime: findings handoff via ${PROJECT_MEMORY_DIR}/findings (20f9071)
  • bots: ADR suite — Adry (cartograph) + ReArchi (re-challenge) + Fini (gap-fill) (944eca8)
  • bots: bmady — BMAD-METHOD agile delivery bot with human gates (352bd70)
  • bots: editable manifest metadata, catalog toggle + when_to_use, registry-driven dispatch (e8cff9b)
  • bots: Evoly — strategic evolution partner of Nexie (per-bot memory) (569ce1b)
  • bots: marketplace foundation — install a bot from a git/local repo (7ed6247)
  • bots: parameterize reviewer + fixer model: via env vars across 4 bots (13ff42f)
  • bots: surface bundle display_name as a first-class catalog field (f1d405e)
  • branch_improve_loop: chunk diff + stream review for large PRs (#11) (9561b4c)
  • branding: add logo + favicon pack across web, desktop, README (339e566)
  • branding: use simplified logo for small favicons + desktop appicon (18c444b)
  • brew: add Homebrew tap for CLI + desktop with auto-update (83ada48)
  • bundle,studio: manifest forge: block — declare a bot's forge-access needs (Integrations Phase 0) (7179ae3)
  • bundle,studio: persona display_name on bot manifests + RunHeader chip (8f13529)
  • bundle+dsl: .botz packaging + named presets (49953bb)
  • bundle: iterion bundle init + pack producer CLI + docs (ee63211)
  • bundle: use main.bot as the bundle entry point (50740fc)
  • byok: Phase C — multi-key BYOK + per-run sealed credentials (422f06b)
  • ci/desktop: switch macOS to a single darwin/universal build (f9050a8)
  • claude_code: default to claude-opus-4-7 with extra-high effort (fa5da40)
  • claude_code: ITERION_CLAUDE_CODE_MODEL env override + auto-loaded .env (068c264)
  • claw: registerable built-in tools, reasoning_effort observability, cache marshal contract (7ca95da)
  • claw: wire model-aware compaction with env / workflow / node cascade (a8ce323)
  • cli: add --bot / --bot-arg to iterion issue create for typed dispatch args (188633d)
  • cli: add iterion schedule — cron for recurring bots (34b981d), references #9
  • cli: add per-node inspection to inspect command (df95f94)
  • close 4 deferred roadmap items — coverage, sigstore, compaction (d572368)
  • cloud: enforce per-org launch quotas + fill the usage views (2fa8582)
  • cloud: eventstream package + iterion migrate to-cloud (T-22 partial / T-42) (c5ecccb)
  • cloud: inline source for Launch/Resume + SubmitResume rollback (ec8bbf9)
  • cloud: NATS queue + runner pool + server/runner subcommands (T-25/26/27/28/29/30) (ce1941c)
  • cloud: Prometheus metrics + W3C trace propagation (T-40/41) (4286100)
  • cloud: scaffold cloud-readiness foundation (config, queue, store iface) (49e9e19)
  • cloud: ship bot catalog in image + resolve webhook bots from disk; MR review on open only (5a7dc33)
  • cloud: wire metrics + OTel spans + cloud hardening from 2026-05-07 review (6c1aed1), references P1#7
  • code_review: add Revi — a read-only cross-family code reviewer bot (93d0010)
  • code-review: publish reviews onto a forge PR with inline ```suggestion blocks (ec8cbad), references devthejo/iterion-revi-livetest#1
  • codex: frugal-by-default preamble + sandbox-mapped AllowedTools (85dcbe0)
  • codex: safer sandbox, two-pass output, live budget, retry classifier (33add8d)
  • conductor: GitHub + Forgejo tracker adapters (65a2328)
  • conductor: in-editor Manager + .botz support + pause flag (4996598)
  • conductor: native kanban tracker + iterion issue CLI (faef095)
  • conductor: route dispatch by issue.assignee with default fallback (2d8f0eb)
  • conductor: runnable daemon — actor, dispatch, hooks, HTTP, CLI (e77b256)
  • config: SessionToken + ITERION_LOG_FORMAT honored in cloud (ad922ad)
  • config: wire per-org SSO store + TrustedAutoLinkProviders at boot (b3babbe)
  • contrib: Mattermost @clarify-bot adapter + completion-webhook docs (d770cdb)
  • control auto-answer (5425679)
  • cost: consult claw live registry pricing before static table (8f82705)
  • cursors: add prompt-engineering cursor primitive (81d4f51)
  • delegate to claude-code and codex (fde02db)
  • delegate/claude_code: forward CLI stderr to backend logger (5fdd76d)
  • delegate/claude_code: log resolved CLI invocation in sandbox path (d22c5f5)
  • delegate/claude_code: surface CLI exit code in silent-failure path (24df94d)
  • delegate: inline Claude Agent SDK with NDJSON message callback (9d154b2)
  • delegate: rich agent activity streaming with tool inputs and text (6855574)
  • delegate: stream Claude Code stderr to logs in real-time (094804d)
  • delegate: stream Codex stderr to logs in real-time (d6358eb)
  • delegate: two-pass execution for guaranteed structured output (9c5b545)
  • deploy: /healthz, Dockerfile, docker-compose.cloud.yml, Helm chart, image CI (T-34/35/36/37/38/39) (e56e589)
  • deploy: Phase F — Helm/compose rewire + admin/user docs (8ba6ccc)
  • desktop: --server-only headless daemon mode + GUI auto-attach (cd0cdfe)
  • desktop,cli: iterion-control MCP — drive desktop runs from a peer claude session (e746309)
  • desktop: auto-close daemons silently when no run is in flight (4fb494c)
  • desktop: bind F12 + Ctrl+Shift+I to WebKit inspector (vendor patch) (02cfc73)
  • desktop: cross-daemon deep-link via GetDaemonURLForStore binding (1d25ca5)
  • desktop: enable WebView context menu in production builds (38bc7d2)
  • desktop: per-project daemons + GUI auto-spawn + quit popup (Phase 2) (1431369)
  • desktop: set Linux window icon via Wails Linux.Icon (0632fce)
  • desktop: ship Linux .deb alongside AppImage and .tar.gz (295477b)
  • desktop: ship Linux raw-binary tarball alongside AppImage (78b7a1e)
  • desktop: ship the iterion CLI inside the Linux .deb (6c4b66c)
  • desktop: source ~/.iterion/env (or $ITERION_ENV_FILE) at startup (99c8c5b), references #-comments
  • desktop: SPA-in-GUI + visible project label + project removal (833ac7c)
  • desktop: wire Wails packaging end-to-end (Linux amd64 AppImage + CI matrix) (63f6318)
  • detect, editor: surface both OPENAI auth paths with overridden-by indicator (de2a573)
  • devbox-setup: implement the executable main.bot (detect -> generate -> verify) (58536c2)
  • devbox-setup: scaffold the devbox-setup bot (manifest + playbook skill + design) (964e043)
  • diagram: full (e06c07b)
  • dispatcher,studio: auto-start + persisted desired state + chip aligned with manager lifecycle (bbcaa84), references #5
  • dispatcher,studio: board & dispatcher UX seams (6bcaa35)
  • dispatcher,studio: surface last run + worktree on board issue (c045488)
  • dispatcher: decouple Snapshot read path from the actor goroutine (89dd2f5)
  • dispatcher: offload candidate discovery off the actor goroutine (77a2cb8)
  • dispatcher: offload finishRun tracker HTTP off the actor goroutine (a72d40f)
  • dispatcher: offload post-claim dispatch I/O off the actor (ADR-028 Step 4) (70b3d4e)
  • dispatcher: one-click auto-configure & start from the studio (7090f50)
  • dispatcher: per-ticket bot override in buildSpec (f17f127)
  • dispatcher: resume from prior run on retry (no more re-running from scratch) (7f6febc)
  • dispatcher: transition claimed issues to in_progress on Claim (e18570c)
  • dispatch: zero-config mode + bots-as-assignees routing (9d49f18)
  • doc-align: doc-count chunking for reviewer batches (≤30 docs/iter) (6a09fc8), closes #2
  • doc-align: v0.15.0 manifest-driven reviewers (ca4340d3) (062c849)
  • doc-align: v0.15.4 mark_issue_for_review post-commit (03bb82f)
  • docs-refresh: author docs from zero when a repo has none (DEFAULT-CREATE) (d1048d1)
  • docs-refresh: md_link internal-link/anchor scanner (v0.14.0) + first dogfood bilan (04f07ff), references path#anchor #heading-anchor #fragment #Lnn #iter-vs-bot
  • dsl, runtime: add session: inherit_if_available for tolerant session continuity (3c061ce)
  • dsl,backends: per-node provider override + env-var expansion on backend/provider (896ac4f)
  • dsl,executor: {{!ref}} raw substitution + braced-only env expansion (96a04f2)
  • dsl,runtime: memory.project_root flag for cross-worktree shared scopes (3997c46)
  • dsl,runtime: templated loop caps — as <name>("{{outputs.X.cap}}") (7241263)
  • dsl): unified interaction: property with delegate input forwarding + fix(editor: replace node edit modal with sidebar selection, enable double-click subnode view (2530642)
  • dsl/expr: add if(cond, then, else) builtin for compute nodes (eb7eee2)
  • dsl/expr: add join(arr, sep) string builtin (0e8c380)
  • dsl: add .bot extension alias + curate examples/ (3d1ba1a)
  • dsl: add attachments: block for file/image inputs (9909d26)
  • dsl: add session: fork mode for non-consuming session branching (fed3de8)
  • dsl: allow env-substituted reasoning_effort (1c93633)
  • dsl: backtick-delimited raw strings + Node alternative for select_candidate (e924fad)
  • dsl: compaction block on workflow + agent/judge nodes (611d003)
  • dsl: compute node, when expressions, loop/run namespaces (dedc4a9)
  • dsl: publish artifacts from compute/tool nodes + surface plans (d1cee51)
  • dsl: strict-escape directive, block scalar |, and script:/language: tool fields (bd1a4a9)
  • dsl: thread rtk: field through the DSL pipeline (feefd8e)
  • e2e: add exhaustive DSL coverage live test and clean examples (88a77be)
  • editor,backend: auto-detect LLM credentials + zero-config default template (8119a79)
  • editor,runtime: browser preview pane (PR 1 — passive iframe viewer) (68584ae)
  • editor,runtime: browser screenshots + scrubber time-travel (PR 2) (5e28b5e)
  • editor,server: browser live mode + host Chromium runner (PR 4) (281fed9)
  • editor/home: cross-daemon Open → on Global Active Runs banner (186daaf)
  • editor/home: merge "in other locations" into RunsPanel, running-only filter (0b5dafa)
  • editor/launch: confirm modal when launching a non-sandboxed workflow (4d42d06)
  • editor/pilote: live progress, pre-flight panel, history hydration (821db67)
  • editor/pilote: rich interaction primitives — radio/checkbox/select/free_text + Other (5f4b933)
  • editor/pilote: SurveyCard renders the explore output richly (47505ea)
  • editor/run-view: add ErrorBoundary around run routes + surface dropped WS messages (f424e68)
  • editor/run-view: collapse log level filters into a popover (532bd4d)
  • editor/runs: auto re-engage follow-tail when scrolling back to bottom (c2eb4d2)
  • editor+desktop: downloads history panel + native save dialog (c7a1988)
  • editor: accelerated replay mode in the Scrubber (2751185)
  • editor: add library panel with pre-configured node and primitive templates (ceae152)
  • editor: add llm icons support (d3ef0df)
  • editor: add multi-node pattern drag-and-drop from library (f782fa4)
  • editor: add Pilote view — chat-style first-class entry for whats-next (c3c250b)
  • editor: add subnode palette with drag-and-drop and connections in detail view (9ebf1b5)
  • editor: add tool palette with rectangle selection mode (69cc216)
  • editor: add visual node grouping with macro view (f4d2057)
  • editor: add visual selection highlight to canvas nodes (54fe686)
  • editor: add WebSocket file watching with fsnotify (6e48e02)
  • editor: AgentChatbox + queued-message store slice (F-UX-4) (2169a5f)
  • editor: all primitive represented as nodes (9251917)
  • editor: Artifacts tab on RunView listing per-run files with download links (0a10178)
  • editor: catch up with current DSL surface (ca38e27)
  • editor: chronological sorting (2251905)
  • editor: collapsible side panels, click-to-add palette, toolbar overflow (9ec792f)
  • editor: conductor control bar + settings drawer + per-card run state (a052733)
  • editor: contextual Inspector, inline diagnostics, ref autocomplete, structured diagnostics (8f5e24a)
  • editor: copy log button next to download (6f14b83)
  • editor: elevate prompts as first-class with comfortable editor and launch textareas (b485e16)
  • editor: file/image upload UI in the Launch modal (0349597)
  • editor: FilePicker search aggregates across all tabs (c22e759)
  • editor: first draft (06bea9b)
  • editor: foldable continuation blocks in Logs panel (f2e50a8)
  • editor: Git-Graph-style tree view with line counts in Files tab (e3298ce)
  • editor: harmonize chrome via shared AppHeader + PageShell (3e435f8)
  • editor: Home banner — active runs across all iterion stores (ecda2aa)
  • editor: Kanban Board + Conductor dashboard SPA views (b54f7e9)
  • editor: landing dashboard with active runs + recents (2fb538d)
  • editor: live run log capture and follow-live node tracking (2e0441d)
  • editor: migrate RunView human pause to WizardForm (F-UX-2) (cad58c4)
  • editor: modal-first node editing with sub-node detail navigation (dc0482b)
  • editor: modernize node visuals + auto-open diagnostics on error (287caff), references #E74C3C
  • editor: modified-files panel with Monaco diff for run view (c1cce1d)
  • editor: pass 4 (5dbdd71)
  • editor: pass 5 (7f6161e)
  • editor: pass 6 (5f02c3c)
  • editor: per-(node, iteration) Logs tab in NodeDetailPanel (ca377cd)
  • editor: per-node cost + Report tab with provider/model/node breakdowns (60b4fbe)
  • editor: Phase E — admin UI SPA (login, BYOK, OAuth, teams) (a268146)
  • editor: queued-state UX (QueueDepthBar + QueuedBanner) (T-13/14/15) (6b19323)
  • editor: refresh button on creds pill + force-invalidate server cache (6ca884c)
  • editor: rotating "thinking" word footer in run Logs tab (9b26093)
  • editor: second draft (5a20c48)
  • editor: smart edge routing with 4-side handles and node avoidance (86646cd)
  • editor: summarize verdict/objective inline, fold the rest (3cc067a)
  • editor: surface backend/model/effort on canvas + run view (e6e552c)
  • editor: surface selected project in toolbar, run header + window title (a5801d5)
  • editor: surface why getDesktopWsBase falls through (62b06d1)
  • editor: third draft (2d0a0b4)
  • editor: tighten toolbar ergonomics + UX fixes (4c3f140)
  • editor: tool-aware Logs footer — spinner while tools run, random-words only on LLM waits (c66892c)
  • editor: tools-aware log footer + tasks/agents side panel (9fefd83)
  • editor: top-level HumanInteractionPanel for paused runs (a72bbcf)
  • editor: typewriter reveal for ThinkingFooter words (33e24de)
  • editor: unified nav + active runs inline + WS status dot (5f2015c)
  • editor: web parity for ProjectSwitcher (hot-swap workdir) (eca10f8)
  • editor: WizardForm + Pilote adoption (F-UX-1) (faa32bc)
  • effort: xhigh + max levels, model-driven from claw-code-go (863dede)
  • evolve: restore mid-turn ask_user investigation (engine bug fixed) (6a238fa)
  • example: false-positive resistance in vibe_review_alternating (1b77394)
  • examples/bots: opt vibe_* bots into sandbox by default (2ce0255), references #1
  • examples/bots: whole_improve_loop axis override + new branch_improve_loop (ca4fa9e)
  • examples/doc-align: v0.10.0 — Bot: doc-align trailer for revert tracking (f93835f)
  • examples/doc-align: v0.11.0 — enforce_fix_scope mechanically reverts out-of-declaration edits (b76e0ed)
  • examples/doc-align: v0.12.0 — scope-honesty gate via reviewer-mediated feedback (7a90eae)
  • examples/doc-align: v0.13.0 — Goodhart-proof scope-honesty gate (threshold in tool, not prompt) (c7f3293)
  • examples/doc-align: v0.2.0 — wire G4 gate, mechanical coverage, GPT session inherit, self-exclusion, incremental mode (e4d1fb4)
  • examples/doc-align: v0.3.0 — explicit blocker_count + relaxed streak gate + coverage clamp (fa1f03a)
  • examples/doc-align: v0.4.0 — strict anchor_kind/code_anchor consistency contract (0605092)
  • examples/doc-align: v0.5.0 — inter-run audit cache for 5-10× speedup on incremental runs (72411f1)
  • examples/doc-align: v0.6.0 — counter-omission audit (code→doc presence) (820c21b)
  • examples/doc-align: v0.7.0 — reviewer_gpt rides fix_gpt session via inherit_if_available (89e0fdc)
  • examples/doc-align: v0.8.0 — configurable scanner exclusion list for multi-repo audit (0fc2969)
  • examples/doc-align: v0.9.0 — first-iter triage + adversarial spot-check discipline (b03661b), references #3 #6
  • examples/secured-renovacy: batch non-scope ecosystem families (eslint-, graphql-, etc.) (9939e71)
  • examples/secured-renovacy: family batching path (Phase 2) (108f99a)
  • examples/secured-renovacy: family_align_code — breaking-change study + apply for batched families (1be3029)
  • examples/secured-renovacy: head-session forkable from detect_stack (658456f)
  • examples/secured-renovacy: Opus 4.7 max + claw GPT-5.5 max across the board (d7248e1)
  • examples/secured-renovacy: patch fast-track + audit trail + parallel intel + done short-circuit + provider routing (bc6d3a7)
  • examples/secured-renovacy: re-evaluate package risk against changelog evidence (cca0482)
  • examples/secured-renovacy: sandbox: auto for supply-chain isolation (2f61787)
  • examples/whats-next: orchestrator bundle that creates kanban issues (444419d)
  • examples: add doc-align bot bundle (134ca1a)
  • examples: add dogfood_editor_ui_loop with Playwright MCP (58920c7)
  • examples: add playwright_visual_qa PoC (b2ae2c2)
  • examples: add secured-renovacy autonomous package upgrade recipe (8b5dd43)
  • examples: add vibe_feature_dev workflow (99093fa)
  • examples: embed shipped recipes for cwd-agnostic loading (65755f2)
  • examples: sec-audit-source + sec-audit-deps security audit bundles (d725490)
  • examples: secured-renovacy bundle source dir (bot.iter + manifest) (222b115)
  • examples: vibe workflows force highest effort + ADR traceability (a3a0c91)
  • executor: support string[] substitution in tool commands (8156663)
  • expr: function call syntax + length/concat/unique/contains builtins (4a99c35)
  • feature-dev: diff manifest preprocessor + tighter reviewer_gpt budget (768e455), references #5 #5
  • feature-dev: simpler reviewer budget discipline — drop the manifest tool node (02828ae)
  • forge,studio,docs: Phase 1 polish — OAuth refresh worker + enable preview + docs (19c2b4f)
  • forge,studio: auto-create the forge OAuth app (GitLab + Forgejo) — admin token or reuse a connection (d1b6150)
  • forge,studio: GitHub App-Manifest auto-create (one-click, no admin token) (206d5e9)
  • forge,studio: per-tenant, per-instance OAuth-app credential store (replaces env map) (fabd62b)
  • forge/forgejo,server,studio: Forgejo/Gitea provider — OAuth + PAT (Phase 4) (5504904)
  • forge/github,server,studio,docs: GitHub App connect mode (Phase 2) (00e7fd7), references PKCS#1 PKCS#8
  • forge/github,server,studio: GitHub provider — OAuth App + PAT (Phase 3) (d3391d5)
  • forge/gitlab: GitLab admin client + OAuth (Phase 1e) (2264686), references #1
  • forge: connection + orchestrator backbone for self-serve repo integrations (Phase 1a) (6ffc754)
  • git: cap diff payload reads to avoid OOM on oversized files (92ccd13)
  • git: gate git clone sources to safe https/ssh transports (a7f44eb)
  • goai mcp (a149443)
  • human in the loop improvement (449f643)
  • interaction: claw backend honors interaction protocol; LLM escalation works for any backend (d978573)
  • interaction: compact persisted conversation at ask_user pause (6ae5523)
  • interaction: native ask_user MCP tool for claude_code delegate (a63051f)
  • interaction: persist LLM conversation across ask_user pauses (claw) (d4438f4)
  • interaction: wire claw-code-go's native ask_user tool to iterion's pause/resume (2486015)
  • ir: discourage codex backend with C030 warning (faa155b)
  • ir: validate template refs at compile time and deduplicate shared enums (57b9834)
  • iter,vendor: vibe_review compaction block + sync claw vendor (0018c82)
  • iter: cumulative scanned_areas via accumulator pattern (327d543)
  • iter: force production-ready scope + convergence pattern (1d486f3)
  • iter: per-family fixers inherit reviewer session (0616305)
  • iter: vibe_review_alternating requires strict double approval (dff1c25)
  • knowledge: FS quota — per-space + org-aggregate ceilings (Phase 1) (6b1e1e9)
  • knowledge: MemoryStore interface + FS adapter (Phase 0) (03bc49c)
  • llm router (96110a7)
  • log: add TruncateMiddle for rune-aware middle ellipsis (e55cdc7)
  • logs: show LLM responses, tool calls, and delegation activity at info level (350c580)
  • marketplace: hosted bot registry — submit, browse, install (Phase B) (b37335d)
  • marketplace: wire the Mongo store for cloud mode (opt-in) (7a86baa)
  • mcp: add health-check, declarative sanitization rules, and tool discovery cache (427c783)
  • mcp: bridge iterion MCP manager into claw via Provider (e7b358c)
  • mcp: improve implem (08e560a)
  • memory: cloud Mongo adapter + 2-level transactional quota (Phase 6) (15f1018)
  • memory: DSL visibility: + FS shared-tree (Phase 7) (5a27d06)
  • memory: export/import — codec + CLI + REST (Phase 8) (71b759f)
  • memory: per-workspace memory tree + auto-index + DSL opt-in (758f4be)
  • migrate: one-shot iterion migrate run-paths for the examples->bots move (6e3df95)
  • model, runview: claw cooperative chatbox delivery (F-UX-5) (cc1b6e5)
  • model: compact tool-loop history between iterations (e4f099f)
  • model: cut Anthropic spend with prompt caching, per-node max_tokens, cache telemetry (6e63dbf)
  • model: real subagent runner for claw agent tool (8fa6303)
  • model: replace goai with claw-code-go/pkg/api native client (f2fe194)
  • model: retry on claw APIError + fix Anthropic prompt cache observability (5fd5af7)
  • model: wire bedrock/vertex/foundry provider factories (26968c8)
  • multitenancy: Phase B — tenant_id everywhere (schema v2 + ctx scoping) (35e3fae)
  • mvp3c: watch.subscribe / watch.unsubscribe capabilities (claw) (748387f)
  • native-tracker: per-ticket Bot + BotArgs first-class fields (9994829)
  • native,studio: label vocabulary panel — rename / merge / delete (bf6cd46)
  • native,whats-next: canonical label vocabulary + list_labels query before invent (859a181)
  • notify: HMAC-authenticate completion webhooks + adapter endpoints (09bf339)
  • notify: run-completion webhook + clarify facilitator bot (72f2c18)
  • oauth: Phase D — Claude Code + Codex OAuth-forfait per-user (2289acc)
  • observability: control-plane metrics + chart hardening (PDB, alerts, NOTES) (c6499f1)
  • observability: surface primary tool argument in claw step logs (622be96)
  • orgusage: per-org monthly run/cost counters (mongo CAS + memory) (a11a4b9)
  • presets: file-based preset sous-bots with launch-time ## Focus (7a89ce7)
  • privacy: add pure-Go privacy_filter/privacy_unfilter built-in tools (aa85704)
  • queue: orphan-run sweeper + DLQ bridge and admin endpoints (78640dd)
  • reasoning effort (b13dc35)
  • recovery dispatch + cost tracking + tool classifier + Prometheus exporter (7070c75)
  • remove .iter workflow support (af69642)
  • review-pr: emit one-click suggestion blocks for local fixes (086374f), references #4
  • round robin (b01e93e)
  • router: add delegate support to LLM routers (838b273)
  • rtk: add rtk command-output compressor primitive (6dacad0), references #1155
  • rtk: studio Launch toggle + server launch wiring (2455b76)
  • rtk: wire rtk into claude_code, claw, and tool-node surfaces (aa0cdca)
  • run-console: default to Workflow view on run open (fbfd93d)
  • run-console: live execution view with Phase 1–3 + edge polish (b48deda)
  • run-console: pause UI, metrics, time-travel scrubber, polish (5c3d2d5)
  • run-console: replace IR view with iteration-aware Workflow view (79e7c1d)
  • run-view/logs: single global horizontal scroll + word-wrap toggle (cf5cd24)
  • run-view: iteration pills, structured tool args, canvas toolbar (3c1621b)
  • runlog: persist tool inputs for every call (symmetric with output) (c78bd45)
  • runlog: persist tool outputs on tool_called events (in+out like Claude Code) (cf7ed10)
  • runlog: sidecar tool I/O blobs + paginated lazy fetch (262831a)
  • runner-image: gh CLI + neutral git identity; forge skill for 3 forges (e49f82f)
  • runner: clone the webhook repo + materialize file secrets without a sandbox (9d5ba64)
  • runner: cooperative cancel for queued runs (T-32 partial) (5ded0f3)
  • runs: commit-and-finalize endpoint for uncommitted bot work (45914dc), references #2
  • runs: filter runs by bot and by repo/folder (b6b8026)
  • runtime, delegate: drain operator chatbox at pauseAtHuman (F-UX-6) (966c3e9)
  • runtime,billy: out-of-tree scratch dir + gpt-fixer overflow guard (a67eb13)
  • runtime,model: C082 part 1 — per-run gateway board MCP listener + executor wiring (ee406ac)
  • runtime,runview,editor: worktree finalization, friendly-name plumbing, cost UI fix (43ba66a)
  • runtime,studio: guided review-&-merge gate (interaction: review) (7948d56)
  • runtime,studio: in-studio merge-conflict resolver (bba40be)
  • runtime/sandbox: bind-mount host iterion binary so claw nodes work in slim images (358eb14)
  • runtime/sandbox: default network policy = open (a92002e)
  • runtime+claw: network-transient retry budget for occasional internet outages (9d57696)
  • runtime: cloud-mode dispatch for __scan-shards via /api/v1/runs/launch (d6d0963)
  • runtime: delegate interaction handling and enhanced resume (3924fad)
  • runtime: expose {{attachments.X}} refs through TemplateData (5e91083)
  • runtime: operator pause + per-node git snapshots + fork rehydration (d789c7f)
  • runtime: parent/shard fields + __scan-shards CLI for distributed security scans (c9f7c83)
  • runtime: resume from failed and cancelled runs (6b6c36d)
  • runtime: session continuity for delegate nodes with review-fix workflow + e2e live test and results (05da887)
  • runtime: show LLM output preview at info log level (3724693)
  • runtime: wire sandbox driver logger + emit sandbox_started event (69181c2)
  • runview,runtime: graceful recovery from orphan running runs and entry-node failures (6ae16b4)
  • runview: add Force resume button in run header (1da6476)
  • runview: commit diff modal, Files tab mode toggle + stacking/race fixes (05a228d)
  • runview: commits tab + deferred squash/merge in run view (89c2c72)
  • runview: detached run subprocesses survive editor restart (1942548)
  • runview: editable squash commit message in Commits-tab merge UI (7a74c70)
  • runview: graceful drain on SIGTERM (bd418a3)
  • runview: info tab + always-visible merge controls (d75b401)
  • runview: resume modal + batched event replay (028b2fd)
  • runview: Service.Pause + Service.Fork + bundle skill catalog (a615114)
  • runview: show claude_code effective model + context window/usage on nodes (0fa8f2e)
  • runview: surface provider default reasoning_effort (6ea2ebe)
  • runview: timer reflects time actually consumed by the run (891e3a4)
  • sandbox,examples: inline image override + ${localEnv:VAR} expansion in inline blocks (db7e982)
  • sandbox,runner: add glab so Revi can post reviews on GitLab MRs (53b6120)
  • sandbox/full: pre-install operator + dev tooling (gh, yq, kubectl, helm, k9s, fnm, direnv, g) (6dce0ef)
  • sandbox: add sandbox doctor --strict pre-flight config validation (ed57aa1)
  • sandbox: auto-mount ~/.iterion + ~/.claude with opt-out (dd0d815)
  • sandbox: bind-mount run attachments read-only into the container (d139b2a)
  • sandbox: cloud V1 e2e validated + V2-5 + V2-8 (bf77dcf), references #1 #2 #3
  • sandbox: default image fallback when sandbox: auto has no devcontainer (6957424)
  • sandbox: doctor warns when host iterion binary is dynamically linked (3321cfb)
  • sandbox: opt-in persistent /nix store via a digest-keyed docker volume (354b5b4), references #1
  • sandbox: Phase 0 — driver abstraction, IR plumbing, doctor command (e60cf59)
  • sandbox: Phase 1a — DockerDriver core (image, lifecycle, exec, command) (9afcb53)
  • sandbox: Phase 1d — block-form DSL parser for sandbox (4501653)
  • sandbox: Phase 2 + engine integration (devcontainer.json, claude_code routing, tool node routing) (c1d3581)
  • sandbox: Phase 3a — HTTP CONNECT proxy + glob matcher + iterion-default preset (ad76b21)
  • sandbox: Phase 3b — wire CONNECT proxy into engine + docker driver (5908a54)
  • sandbox: Phase 4 V1 — claw backend split via iterion __claw-runner (7119f01)
  • sandbox: Phase 5 V1 — KubernetesDriver (sibling-pod per run) (4df36af)
  • sandbox: stream postCreate stdout/stderr live to the driver logger (9c9f0b5)
  • sandbox: V2 IPC + sandbox.build + sandbox.mounts (PVCs) (2afc894)
  • sdk: add TypeScript SDK wrapping the iterion CLI (bbf2b4f)
  • sec-audit-deps: implement CVE-scanner parsers (govulncheck/pip-audit/npm audit) (4f9679d)
  • sec-audit-deps: implement supply-chain malware heuristics (install-hook, locale-anomaly) (2d4dbcf), references #1
  • sec-audit-source: add harness-ported and new security skills (1dc0344)
  • sec-audit-source: make the cost-tier LLM backend env-overridable (4df2054)
  • sec-audit-source: N-vote adversarial revalidation (3 disprove voters) (be809ae)
  • sec-audit-source: optional deepsec scanner backend (0bf72f4)
  • sec-audit-source: project security context + diff/incremental mode (93f13be)
  • sec-audit-source: remediation apply modes + human approval gate (de7ab21)
  • sec-audit-source: remediation verification ladder (propose mode) (c9ebc60)
  • sec-audit-source: vote-N treats unwired-but-dangerous sinks as uncertain, not dismiss (8b32f9d)
  • sec-audit-source: wire plan_shards + dispatch_shards for Cap. 3 fan-out (4527b01)
  • sec-audit: ship a scanner sandbox image so audits aren't a façade (cc8d1d9)
  • secrets: bot-secret bindings + resolution tiers (Phase 4) (e848a7b)
  • secrets: Layer 0 — auto-redact secrets from observability sinks (407dc0b)
  • secrets: Layer 1 (backstop) — anti-exfil system-prompt clause (03b8548)
  • secrets: Layer 1 structural — DSL secrets: block + placeholder materialization (57f2168)
  • secrets: Layer 2 core — TLS-inspection proxy for secret egress substitution (65f07ef)
  • secrets: Layer 2 follow-ups — trust-store breadth + k8s CA injection (ed6f043)
  • secrets: Layer 2 wiring — enable TLS inspection from the engine (docker) (736631e)
  • secrets: optional file-secrets + Revi forge_token + deploy example (Phase 9) (5c0ec91)
  • secured-renovacy: family fast-path supports any package manager (98afbf7)
  • secured-renovacy: multi-ecosystem foundation + update_scope var (caeb356)
  • secured-renovacy: per-node effort vars + read-only ~/.claude + remaining_count visibility (49fc076)
  • secured-renovacy: per-package ecosystem manager resolution (8d974a1)
  • secured-renovacy: prompt polish + audit/changelog schema extension (5ab3cc8)
  • secured-renovacy: SBOM emission before terminal done (029ec5d)
  • secured-renovacy: write_audit_md + emit_sbom write to ITERION_ARTIFACT_FILES_DIR (bfc1138)
  • seki,sandbox: big-repo remediation robustness — tunable budget, default-on /nix, reliable skill path (d4d68bf), references #1
  • seki: enable deepsec by default (enable_deepsec=true) (bcf3b1b)
  • seki: Tier-2 — run project build/test in the project's devbox toolchain (5cf8af5), references #1
  • server,cli: REST /pause /fork /skills + WS pause envelope + iterion fork (1621204)
  • server,editor: make embedded examples openable post-launch + auto-clean stale recents (dc953f7)
  • server,forge: HTTP routes + wiring for self-serve forge integrations (Phase 1f) (78eb17b)
  • server,runview: C082 part 2 — wire the board MCP producer side (fdd9ad4)
  • server,sandbox: browser session registry + CDP WS proxy (PR 3 — architecture) (341361f)
  • server,studio: /insights cross-run dashboard — cost over time + fail rate + P50/P95 duration (0dd52d5), closes #3, references #3
  • server,studio: findings inbox view + DELETE endpoint (d9200bf)
  • server: /readyz pings deps + auth-exempt health endpoints (023f095)
  • server/ws: live-tail cross-store events.jsonl for foreign-store WS (3ebf050)
  • server: cloud Launch/Resume/Cancel via NATS publisher (T-31/32/33) (db62d3e)
  • server: expose embedded recipes via the examples HTTP API (461d80d)
  • server: memoize terminal-run cost scans for runs-stats dashboard (434e5f3)
  • server: per-org SSO CRUD + org-slug provider routing (606f2e7)
  • server: super-admin org console + launch suspend gate (Phase 2) (429b281)
  • server: wire /api/runs/uploads, /api/server/info and launch attachments (005e46b)
  • server: wire MongoSource into WS event handler (T-21/T-23) (3875f78)
  • skill: add iterion-dsl agent skill for AI workflow authoring (95dc227)
  • spend-cap: per-day LLM spend cap with shared ledger + auto-pause (40c6d46), references #6
  • store, server, runview: operator chat-message inbox (F-UX-3) (fb29648)
  • store,server,cli: auto-promote orphan runs at server boot + --force-stale resume (b255100), references #5
  • store/blob: S3 client implementation (T-16) (aebc837)
  • store/cloud: MongoRunStore + S3 wiring + factory cloud branch (T-17/18/19) (117e75f)
  • store+editor: stamp log byte offset on every event for replay sync (04d6eb9)
  • store+runtime+server: per-run artifact-files area with bind-mount + HTTP (f9859a5)
  • store: capture launch env + iterion version in run.json (67dd8e8)
  • store: deterministic human-friendly run names (dcc9c76)
  • store: disjoint run names from ThinkingFooter franglais (4873e5e)
  • store: groovier names with rock'n'roll + iterion franglais (17e884b)
  • store: implement persistence improvements (artifact index, checkpoint resilience, flock) (59da6c9)
  • store: per-project keyed global store, project-local opt-in (c227dd6)
  • store: persist per-run attachments via FS + S3 backends (f36bd3d)
  • store: self-ignore .iterion/ via auto-written .gitignore (44c4df4)
  • store: switch run names to 3-word Neon-Cosmos theme (bf132d9)
  • store: TurnCheckpoint primitives + Fork metadata + paused_operator status (d625f22)
  • store: unify CLI/editor run store via ascending discovery (45874db)
  • studio,dispatcher: WhatsNext UX cluster + run→ticket linkage + post-merge transition (ddf9c4d), references #N
  • studio,server: make forge OAuth the first-class default where configured (af48766)
  • studio: "Connect to a repo" affordance on forge-capable bots in the catalog (833dc90)
  • studio/board: editable custom args + always-visible key/value editor (c5a148b)
  • studio/board: last-run link on cards + stale-retry hint on terminal issues (91c8765)
  • studio/board: multi-select via Shift/Ctrl-click with multi-drag (a2ced9c)
  • studio/board: tabbed ticket form with bot picker + typed args (267e75d)
  • studio/board: View diff button — branch diff modal from the board (242bd2e)
  • studio/chat: Enter-to-send toggle + bottom-area swap + bigger chatbox (ccd0a46)
  • studio/chat: per-bot persona table, switch whats-next to "Nexie" (a95a45a)
  • studio/conversation: render roadmap-item objects as cards, not JSON (9885d63)
  • studio/dispatcher,board,runs: surface resume + paused + sandbox-error UX signals (7c05865)
  • studio/forms: render JSON multi-select fields as checkboxes (845d83b)
  • studio/run-view: canvas-first refonte + floating chat panel (54c7c5d)
  • studio/run-view: conversation-first chat timeline as default (929ddd0)
  • studio/run-view: default-open events drawer + sticky follow-live (e9d5a76)
  • studio/runChat: surface engine retries on running banner cards (50358a0)
  • studio/runs: back-link to Runs from Analytics and Findings (4e505a5)
  • studio/runs: bundle_name as Workflow column, friendly name as Run (89068d5)
  • studio/runs: rename a run inline from RunHeader (id stable) (581d467)
  • studio/runs: RunCanvasIR centering race fix + Scrubber/RunMetrics fuse (fe99641)
  • studio/runs: RunCanvasIR centering race fix + Scrubber/RunMetrics fuse (cont.) (da209de)
  • studio/runs: stalled-Xs badge when backend stops emitting events (cb5e5e7)
  • studio/whats-next: always-on composer + standby — never strand Nexie (a8d0c94)
  • studio/whats-next: dispatcher status chip on IssuesSummaryCard (ad97f58)
  • studio/whats-next: keep ended sessions visible by default + add explicit New session action (4534c03)
  • studio/whats-next: quick-action strip on free-text human turns (0f9ef6c)
  • studio/whats-next: rename "AI" badge to "Niblet" in chat turns (a36dcad)
  • studio/whats-next: render priorities form upfront instead of bare Start (dcfe57b)
  • studio/whats-next: Resume button in SessionHeader (7bd07ff)
  • studio/whats-next: rotating loading phrases per node in chat banners (782bb0a)
  • studio/whats-next: server-side discovery when localStorage is empty (ee6e191)
  • studio/whats-next: WatchPanel for dispatcher-bound tickets (6a1f69b)
  • studio: add combined files view with lifecycle-reactive default (7bcb8c4)
  • studio: add in-run worktree file editor (4124ae9)
  • studio: board triage UX — bulk actions, keyboard, label multi-select (a11bd55)
  • studio: bot metadata editor + catalog manager (c05727d)
  • studio: bots API client + BotPicker + BotArgsForm (1d25a66)
  • studio: Checkbox/Radio/FieldLabel/BrandWordmark primitives + sidebar wordmark (f35e601)
  • studio: clarify run/dispatcher UI copy, states, and tooltips (4615dfc)
  • studio: clickable bot avatar leading each run row (c43a74d)
  • studio: confirm before destructive deletes (api key, edge, project) (294a034)
  • studio: consistent confirms, surfaced failures, assignee autocomplete (74f2d46)
  • studio: consolidate LLM creds and theme into a Settings dialog (f1b1abf)
  • studio: electric-indigo accent identity + scrim & reduced-motion tokens (482d411), references #4f46e5 #818cf8 #4f46e5 #7c3aed #4f46e5
  • studio: expose publish on tool/compute nodes in the editor (5249ba2)
  • studio: gentle terminal caret for empty slates (cyberpunk tone) (4904db8)
  • studio: HeaderBanner tone primitive + dedup banner rows (da22385)
  • studio: Home bots show description + technical name, in roster order (ae919be)
  • studio: Home shows only first-class bots, by persona name + emoji (566c984)
  • studio: inline preview for collapsed log bubbles (54aa14b)
  • studio: Integrations tab — connect a forge + enable bots on a repo (Phase 1g) (0c0dc37)
  • studio: keyboard activation + platform-aware shortcut hints (72f1bba)
  • studio: launch & credential affordances (9636c3f)
  • studio: parallel editor tabs via EditorTabHost (ce36a48)
  • studio: parallel run tabs via TabRouter + RunTabHost (9359abc)
  • studio: pause button + ForkDialog + skill chip picker + forked-from row (7e19a26)
  • studio: per-bot persona identity (emoji + colour) in the bot UI (b43d630)
  • studio: per-org SSO admin UI + login org routing (Phase 4) (3ac8478)
  • studio: pre-select the bot in the forge enable dialog from the catalog deep-link (896483e)
  • studio: readable human-form labels + relax required-by-default (9f77999)
  • studio: readable verdict card for reviewer/judge artifacts (1678ae6)
  • studio: retire sync badge and keep board columns visible when empty (13f3e99)
  • studio: run classification — source badge + filter/sort/group (28fa2e8)
  • studio: Select fit variant + lock the raw-<select> ban (5db5722)
  • studio: self-serve cloud UI — webhooks, secrets, bindings, usage, audit, auth flows (be35e59)
  • studio: super-admin Organizations admin page (Phase 10) (6d3ec1e)
  • studio: surface human node instructions: in the run console (44beb6e)
  • studio: unify whatsnext loading UX with logs ThinkingFooter (8592fba)
  • studio: UX round — design-system consistency, a11y/keyboard, error UX, onboarding (8477a06)
  • studio: UX round 2 — broken-class sweep, silent-failure surfacing, token/responsive consistency, a11y + confirm parity (35447f6)
  • support Claude Opus 4.8 + Ultracode effort mode (11f842b)
  • surface full multi-line tool commands in Tools tab and run.log (4641600)
  • taskfile: add fast desktop .deb build for local iteration (fc90af3)
  • template: resolve outputs/loop/artifacts/run refs in prompt bodies (a627026)
  • tiered watchdog + reviewer_gpt tools for vibe_review (c499f83)
  • tool-logs: surface tool target on every call + structured TodoWrite (f8bd984)
  • tool: add MCP schema fingerprinting and dynamic per-node tool policies (f69f4ec)
  • tool: add template refs and shell execution for tool node commands (13d4e35)
  • tooldisplay+editor: surface full Agent/Task details in log + Tools tab (ef55960)
  • tool: expose claw read_image / screenshot via RegisterClawComputerUse (4ed8bfc)
  • tool: expose full computer_use action surface to claw backend (a10b0e5)
  • tool: pipe BashExtraEnv from ClawDefaults into the bash tool (1c79eb3)
  • ux: backlog batch — copy/paste polish, multi-select, deep dive on board/run console (dfbf292)
  • ux: vague 1 quick wins — copy buttons, share link, filters, sandbox badge, board shortcuts (f7d09b9)
  • ux: vague 2 deep-linking + error surfacing (b5e39c4)
  • ux: vague 3 deep-dive — budget, navigation, palette, search, onboarding (f85049e)
  • webhooks: conversational note flow + replier authorization (A2) (3897d1f)
  • webhooks: GitHub + Forgejo + generic providers and GitLab /revi re-review (d220687)
  • webhooks: GitLab note-event parsing + forge-conversations design (A1) (4dddaba)
  • webhooks: ground revi-converse in the review thread — thread_context injection (9a70431)
  • webhooks: in-thread conversational reply — /revi <question> answers in the thread (A4/A5) (b54aaad)
  • webhooks: inbound GitLab MR webhook -> launch Revi (Phase 5) (2e56748)
  • webhooks: inbound webhook-token spine (Phase 3) (ee177b4)
  • webhooks: note-flow metrics + conversational merge polish (04d1f67)
  • webhooks: per-webhook BYOK key override (cb427fc)
  • webhooks: per-webhook ForgeBaseURL pin for the GitLab bot token (a9cc869)
  • webhooks: per-webhook secret-binding override (e.g. distinct forge token) (fc78998)
  • webhooks: reply-in-thread trigger — a plain reply to Revi answers (no /revi) (ac90dba)
  • whats-next/skills: split in-session triage from dispatched issues (31ccbc0)
  • whats-next: assignee discipline — confident → closest → ambiguous → propose new bot (7050e3b)
  • whats-next: checkbox picker on dispatch_more without explicit detail (184a020)
  • whats-next: dispatch-just-created shortcut + contextual prompt on ask_continue (5ea5786), closes UX#3
  • whats-next: dynamic checkbox form on ask_which_to_process (2face35)
  • whats-next: fast-path launcher for "just dispatch existing items" (1c82190)
  • whats-next: findings auto-hygiene — archive resolved findings (#7) (261de65)
  • whats-next: inline dispatch button on WatchPanel backlog rows (a3859a9), references UX#4
  • whats-next: per-item checkbox at human_review to drop roadmap items pre-emit (63fcb85)
  • whats-next: post-emit triage loop + plan-handed-off milestone (401668d)
  • whats-next: Quick mode — free-text ask_continue with dry-run banner (4f4dd44), references UX#5
  • whats-next: reframe done as standby — Nexie never self-ends (484b1da)
  • whats-next: runtime-driven watch fan-out (MVP3b) (ff38287)
  • whats-next: smart-default the ask_continue radio + fix radio defaultValue (9042ae3), references UX#2 UX#1 UX#2
  • whole_improve_loop: auto-fragment large workspaces to fit context budget (#12) (eac11b7)
  • whole_improve_loop: publish reviewer verdicts as artifacts (f0790a7)
  • whole-improve-loop: add scope_globs to prune the chunk plan for focused runs (ec2752c)
  • whole-improve-loop: deterministic build/test gate before commit (skill-guided, universal) (9419b12)
  • workflow: add commit phase to vibe_feature_dev (8478da1)
  • workflow: add iterion_goai_to_claw_port.iter (e3e7953)
  • workflow: add simplify pass between implementation and commit (bb352bd)
  • workflow: cumulative parity tracking and outer_loop(20) (914a34f)
  • workflow: deterministic parity scan, outer_loop(50), updated docs (623c73c)
  • workflow: LLM parity scanner with deterministic line count baseline (7114e70)
  • workflow: parallel review, cross-batch learning, Codex retry, cost tracking (0434ce1)
  • workflow: redesign rust_to_go_port with batch progression, loop fallbacks, and quality gates (15ac801)
  • workflow: vibe_feature_dev runs in a worktree, A/C-style commit phase (6a9dcbc)
  • workflow: worktree: auto for per-run git worktree isolation (e2ee233)

Bug Fixes

  • address Go and TypeScript review findings (0f4ae2d)
  • address recovery and event log review findings (2150d36)
  • adr-cartograph: build_manifest re-globs docs/adr so the loop converges (f328963), references #5
  • adr-cartograph: calibrate reviewers to converge (finding #6) (7546d0d)
  • adr-cartograph: gaps are not blockers — the real convergence fix (#6) (61e995b)
  • adr-cartograph: gaps bypass review entirely — structural #6 fix (0991035)
  • adr-cartograph: shell-safe data passing in build_manifest (dogfood finding) (1bbca1c)
  • adr-rechallenge: build addendum commit message in write_addendum (dogfood finding) (3a639f2)
  • agent: improve CLAUDE.md (9978fd9)
  • alert: a run paused for human input is not "stalled" (no false toast/badge) (48be060)
  • alert: recover from panicking sinks in dispatch goroutine (54038ac)
  • auth, queue, store: revoke sessions on admin-disable, ctx pre-check in NATS Fetch, collect S3 per-object delete errors (F-CL-4, F-CL-5, F-ST-5) (834f988)
  • auth, server: Sprint-8 batch — wire brute-force lockout + pending-password gate (5a48e30)
  • auth,cli,git,infra,desktop: eight sweep-confirmed low-severity bugs (170c01e)
  • auth/oidc, server, bundle: Sprint-4 cleanup — PendingAuth GC + tar symlink TOCTOU (e5d312f)
  • auth/oidc, server: user-agent binding for OIDC flow + safePath race + WS slow consumer (F-CL-3, F-S3, F-R3) (51c0f40)
  • auth: atomic refresh-token rotation + surface stored-hash corruption (9b55905)
  • auth: plug lockout-state timing oracle (F-CL-1) (3e86d04)
  • auth: surface RevokeUserSessions failure on token-reuse (963a715)
  • backend, auth, secrets, store, conductor: subprocess kill + jwt rotation + strict tenant + conductor auth + native event-replay (F-BE-2, F-CL-9/2, F-ST-4, F-CD-7/2) (fb43ae3)
  • backend,runview,dsl: five sweep-confirmed medium bugs (173f506)
  • backend/claude_code: recover from formatting-pass failure via Pass 1 parse (fc1e8f0), references #3 #2
  • backend/claw: keep stdin open on docker exec so the in-sandbox runner can read its task envelope (ff44501)
  • backend/model: coerce reasoning_effort to provider-supported tier (6f56a5d)
  • backend/model: emit per-node tagged log line for claw delegations (380c452)
  • backend/model: expand ${VAR:-default} in agent/judge/router model specs (6cd66f1)
  • backend/model: FieldTypeJSON property must accept any value, not just object (311b427)
  • backend/tool: bridge claude_code FQN to claw's dot-form MCP tools (5d6a8a0)
  • backend: resolve tool registry and structured output fallback for CLI delegation (6d8caf2)
  • backend: restore Claude Code native adaptivity + claw prompt parity (6fad19a)
  • backend: retry observability + typed transients + zai detection + recovery event + drainer (F-BE-1/3/4/5/6/7) (8e4959c)
  • backend: six sweep-confirmed low-severity bugs (56d8cf7)
  • backlog cleanup — F-NEW-3, F-NEW-4, F-NEW-6, F-NEW-10, F-NEW-13 (f673c6c)
  • batch P1+P2 bug-review fixes across runtime, store, backend, conductor, server (d28c8de)
  • boardops: add empty required: [] to list_issues schema (7c2de97)
  • botregistry: dedupe bots by name across discovery roots (ab0766b)
  • bots: fail honestly on loop exhaustion in feature_dev / whole_improve_loop / branch_improve_loop (f62dd62)
  • bots: honor overlay at dispatch + drop studio path-string surgery (4b7ceef)
  • bots: pin sandbox user numeric 1000:1000 (was "devbox") — silence host_state UID warning (667cb60)
  • brew: grant id-token: write so token-bureau OIDC exchange works (37ebe58)
  • brew: switch trigger from release:published to workflow_run (616818d)
  • brew: trigger brew-update via token-bureau + workflow_dispatch backfill (559780e)
  • build/linux: StartupWMClass uses GTK-capitalized class form (74d2df1)
  • bundle, conductor/tracker: atomic bundle cache install + forgejo 409 race handling (F-ST-6, F-CD-5) (de8d51c)
  • bundle: restrict extracted + cache permissions to owner-only (35e998f)
  • cancel: eager finalize + handle non-active failed_resumable cancel (6ea2eaf)
  • catalog: finish kebab rename in manifests + static preamble; regen surfaces new caps (f124aab)
  • ci/desktop: cancel-in-progress only on workflow_dispatch, keep tags serialised (966f659)
  • ci/desktop: defensive Windows .exe location with diagnostic on miss (ec98f8b)
  • ci/desktop: drop linux/arm64 exec smoke; ELF arch check is enough (f865520)
  • ci/desktop: inline editor:build on Windows + activate pnpm version explicitly (9891a07)
  • ci/desktop: Package step copies the right Windows .exe filename (b3bfd64)
  • ci/desktop: Package step uses canonical wails output path on Windows (6984f61)
  • ci/desktop: publish job runs on tag push only (0f182b9)
  • ci/desktop: read packageManager from root package.json, not editor/ (9795d5c)
  • ci/desktop: rewrite Windows Package step to dodge set-e + glob trap (08e1205)
  • ci/desktop: unblock mac signing, linux/arm64 smoke check, windows corepack (80a11af)
  • ci/image: lowercase image ref before Trivy scan (cba3e71)
  • ci/image: use v-prefixed trivy-action tag (931840d)
  • ci: add workflows permission for release (6db8ef7)
  • ci: build editor frontend before go vet to populate embedded static files (24fe42f)
  • ci: build editor frontend in release workflow (15a2498)
  • ci: bump Go toolchain to 1.26 + GOTOOLCHAIN=auto for desktop release (06e57ff)
  • ci: complete editor→studio rename + claw-code-go bump + cosign ref lowercase (5aeebe0)
  • ci: correct DSL syntax for cloud-e2e inline smoke workflow (fb9d908)
  • ci: correct editor static assets path (15d9413)
  • ci: gofmt the review-pr-mix fixture (b4487b8)
  • ci: pin subchart fullnameOverride so cloud-e2e ConfigMap URIs resolve (c0543c5)
  • ci: release (ddd595a)
  • ci: remove conflicting pnpm version from action-setup (f20c6f1)
  • ci: remove conflicting pnpm version from action-setup (40aef1b)
  • ci: repair YAML syntax errors in tests.yml (b571781)
  • ci: replace task dependency with standalone build script in release hook (ffb8e0f)
  • ci: unblock cloud-e2e — correct fullname + slim subchart deps (a82dcd9)
  • ci: use corepack and token-bureau, update action versions (98c0064)
  • claude_code: bound cliProcess.close() with process-group kill ladder (e5b9cba)
  • claude_code: break Edit-miss wedges with a re-Read hint (aea4477), references #8
  • claude_code: set --json-schema in Pass-1 so schema+tools nodes skip the formatting pass (d8e8dde1) (3b29efb)
  • claudesdk,sandbox: C082 part 3 — inline MCP config + NO_PROXY host gateway (b7adba1)
  • claudesdk: drop hookSpecificOutput when no actionable fields (102773f)
  • claudesdk: honor ctx in Session.Stream() so hung CLI streams exit (f9f2883)
  • claudesdk: release ToChan producer on cancel when consumer has stopped (065366b)
  • claudesdk: skip host CLI validation when CommandBuilder routes via sandbox (916aee6)
  • claudesdk: skip stdin pipe in one-shot Prompt to silence CLI warning (86ce716)
  • claw runner: execute filesystem builtins inside the sandbox, not back on the launcher (533f201)
  • claw_backend: also alias mcp__a__b FQNs in the launcher's ToolDefs map (d3a879a)
  • claw/vendor: always emit tool_result text field (empty tool output → anthropic 400) (bbdca0d)
  • claw: also recover when tool-loop text is non-JSON narrative (2cb377c)
  • claw: bridge mcp__ FQN tool names to the sanitized form at dispatch (019cef4)
  • claw: reactive compact-and-retry on context-window rejection (c5f57c1)
  • claw: recover empty tool-loop response via structured-output pass (c98cce8)
  • claw: recovery pass demands a final result, never a placeholder (4bfa483)
  • claw: reviewer reliability — tool-use guard + stream-truncation retry (b7cc66a)
  • claw: tag per-turn logs [node#iter/claw] with the real iteration (164f19f), references #0
  • cli/run: guard against typed-nil PrometheusExporter interface (794283b)
  • cli+desktop: CLI-launched runs visible to daemon (logs + close-dialog) (d0f0d16)
  • cli: apply recipe before constructing executor in run.go (1f69d5b)
  • cli: apply run.log tee in resume too (matches the launch-side fix) (ca73073)
  • cli: bundle temp-dir leak, swallowed inspect errors, ctx/chdir/gitignore hardening (e14c6c9)
  • cli: expand env vars in MCP server config + auto-allocate PlanMode (c5196c2)
  • cli: handle dropped error from http.NewRequestWithContext in scan-shards cloud dispatch (4c525a6)
  • cli: resume re-seeds executor vars from run.Inputs (8852be3)
  • cli: scan-shards pre-dispatch failures report immediately, not after timeout (59cfedc)
  • cli: surface real error from interactive TTY pause loop (2859017)
  • cloud-e2e: bypass auth in smoke test via config.disableAuth instead of stale SESSION_TOKEN (f138b56)
  • cloud-e2e: unblock end-to-end pipeline (6 chained fixes) (89ae887)
  • cloud: production-readiness pass — readyz, KEDA, runner, migrate, NetworkPolicy (032f519)
  • cloudpublisher: carry tenant onto the detached MarkUsed ctx for BYOK keys (da30254)
  • cmd/iterion: scan_shards_test goroutine ctx race (f8bb18b)
  • Codex context window issue (783da5a)
  • codex: logs output (831f1d7)
  • concurrency: plug goroutine/timer leaks, races, and silent error swallowing (761dad5)
  • conductor, server: mutator panic recovery + tombstones + MCP board TTL/bound (F-CD-3/4/11) (2cf85d9)
  • conductor, store, sandbox, dsl: env allowlist + attachment cap + host canonicalisation + unparse polish (F-CD-13, F-ST-11, F-SB-8/9, F-DSL-10/13/14) (cdbf573)
  • conductor/tracker: validate Repo path on adapter construction (F-CD-6) (55122cd)
  • conductor: SaveConfig under lock, SetBoard write-then-swap, cancel re-spam guard (F-CD-8, F-CD-9, F-CD-12) (752e9e1)
  • cost: add gpt-5.5 family + missing model variants to price table (690e4e8)
  • data-integrity: carry capabilities across boundaries, fsync atomic writes, deep-copy fan-out outputs (fa0f679)
  • delegate,runview: route MCP/runner spawns through iterion CLI binary, not iterion-desktop (b973544)
  • delegate/claude_code: backfill empty ResultMessage.Result with last assistant text (8c1bde9)
  • delegate/claude_code: broaden rate-limit detection to ZAI wire format (3c67bcb)
  • delegate/claude_code: drop fork when parent fingerprint missing (7564699)
  • delegate/claude_code: drop session fork on cross-provider switch (2ec8339)
  • delegate/claude_code: route Pass 2 formatOutput through sandbox (58236f6)
  • delegate/claude_code: skip native ask_user MCP server when sandboxed (358dbe0)
  • delegate/claude_code: two-pass falls back to Pass 1 parse when Pass 2 returns empty (dce037b)
  • delegate/claude_code: use in-container claude path + bind-mount cwd (7161c2e)
  • delegate/claude_code: wire tool_max_steps + detect rate-limit assistant text (3e9611f)
  • delegate: claude_code session idle timeout watchdog (0a1fc70)
  • delegate: cleaner activity logs with claude-code prefix and stripped MCP names (f21a506)
  • delegate: context check in Codex retry loop, fix duplicate prompt instruction (aa24bf2), closes #7
  • delegate: into init and e2e live test (46c07de)
  • delegate: log delegate stderr at info level, not debug (ef6fed5)
  • delegate: recovery formatting pass when structured output is empty (23a5119)
  • delegate: surface claude_code stderr live during runSession (2ef9bb7)
  • delegate: treat empty structured_output as miss, fall through to text parse (9f35600)
  • delegate: trigger recovery formatting pass on fallback text output (6bc39ab)
  • delegate: use session resume for formatting pass and add timeout safety (b349582)
  • delegate: use standalone formatting pass instead of session fork (c4c605d)
  • deps: pin lodash/lodash-es to ^4.18.0 to clear CVE-2026-4800 (dc1b15a)
  • desktop-release: glob *.app for macOS Package step after Studio rebrand (82bbb6d)
  • desktop-release: lift NODE_OPTIONS to job env so wails-triggered vite rebuild also gets the heap (cd9d388)
  • desktop,editor: native Save-As dialog for run log download (2100a5c)
  • desktop/RemoveProject: also stop daemon when current project removed (901cf76)
  • desktop/RemoveProject: cascade stop the per-project daemon (c3a44ea)
  • desktop: asset proxy waits up to 30s for serverURL on first request (2edf29b)
  • desktop: call g_set_prgname before Wails boots GTK (63a4419)
  • desktop: containment check on RevealInFinder (F-C2) (41d791b)
  • desktop: defer onboarding server restart + follow system color-scheme (171f573)
  • desktop: implement missing GetSessionToken binding (8e165ca)
  • desktop: linux .deb triage + browser pane CDP + dev tooling (ff69acb)
  • desktop: make daemon attach opt-in + soft-no-op project switch (0bb7443)
  • desktop: menu "New project" picks a directory instead of opening switcher (a9fa2de)
  • desktop: post _NET_WM_ICON via direct XChangeProperty on Linux (74eef0e)
  • desktop: preserve setup-go's Go on CI + treat manifest 404 as 'no update' (05df312)
  • desktop: project list stays in sync after deleting non-current project (45a7fa2)
  • desktop: quit dialog — single yes/no instead of 3 mismatched buttons (474302d)
  • desktop: re-source ~/.iterion/env on credentials refresh (251949a)
  • desktop: refresh treats env file as source of truth, even for shell-pre-loaded keys (35565fb)
  • desktop: RemoveProject must restart editor server when deleted project was current (e3d551f)
  • desktop: rename WM_CLASS Iterion-desktop → Iterion (6193350)
  • desktop: restrict OpenExternal binding to http(s) URLs (3faf249)
  • desktop: stop warning when only codex CLI is missing (6e694e1)
  • desktop: wire OnForceRefresh in the headless daemon too (0db793f)
  • detect: probe ~/.claude/.credentials.json + harden frontend nullable slices (8d1b45c)
  • detect: stub binary probes in tests so units pass without claude/codex CLI installed (baa1074)
  • devbox-setup: model field needs ${ENV} not {{vars}} (dogfood-found) (4da680a), references #1 #2
  • devbox,seki: devbox needs the container user real HOME in the sandbox + persist the generated file (0e97382)
  • dispatch defaults: drop workspace_dir overrides — let runtime PROJECT_DIR win (262f500)
  • dispatch defaults: seed per-issue workspaces via git worktree hook (00ed277)
  • dispatcher, sandbox: run.log capture + z.ai allowlist entry (8e80cb4)
  • dispatcher,server: operator-cancel + mid-session inbox for dispatcher runs (c6ab27f)
  • dispatcher/native: include bot_args in DefaultBoard fields (77841f2)
  • dispatcher/native: mirror out-of-process disk writes into the index via fsnotify (b85427c)
  • dispatcher: align run id + friendly name with manual launches (54be78d)
  • dispatcher: auto-transition in_progress → review on clean finish to break re-dispatch loop (e5d58a5)
  • dispatcher: bound hook wait via cmd.WaitDelay so timeout actually returns (3e4bf74)
  • dispatcher: cancel hammers leftover sandbox container + Shutdown preserves operator intent (d744d87), references #5
  • dispatcher: close ticket on studio merge even when actor is idle (ed2b0ce)
  • dispatcher: correct heartbeatStore.WriteTurn signature (2-arg) (0a65ffb)
  • dispatcher: default feature_dev's feature_prompt from the issue when bot_args omit it (aab5486)
  • dispatcher: default merged_state to "done" so merged tickets auto-close (6da2fc1)
  • dispatcher: don't silently run default workflow when an explicit bot won't resolve (3246ab6)
  • dispatcher: forgejo pagination/host-case, reject negative issue ids, safe watcher Close (f9a28b6)
  • dispatcher: graceful shutdown + dead-PID claim sweep (c6b5423)
  • dispatcher: longer backoff + park for sandbox-setup retries (bbeb813)
  • dispatcher: loud-fail unroutable bots, drop dead WorkflowPath, normalize names (3d69f9e)
  • dispatcher: make EngineRunner.Close run cleanup exactly once (e9ed8dd)
  • dispatcher: re-run fresh instead of looping a doomed resume after bot source change (c8871ed), references #4
  • dispatcher: route by per-ticket bot, not just assignee (48ebd70), references #10
  • dispatcher: size actor cmds buffer on MaxConcurrent (23e261a)
  • dispatcher: stamp last_run at dispatch, not only at finish (8e46921), references #10
  • dispatcher: stop the doomed-resume loop on source-changed tickets (7469874)
  • dispatcher: sweep stale local claims at Manager construction (57d5034)
  • dispatcher: synchronous heartbeat + force-reap + skip full-cap scan (910185a)
  • dispatcher: teach refreshRunningStates about the in_progress transition (bdaa09c)
  • dispatcher: warn loudly when a clean run produced no commit (5ecc985)
  • dispatcher: wire spec.WorkspacePath as runtime.WithWorkDir (68e741a9) (e5cc331)
  • dispatcher: wire WithRecoveryDispatch so dispatcher-spawned runs retry transients (5f40d46)
  • dispatcher: wrap RunStore to fire OnEvent on every AppendEvent (a5bb906)
  • doc-align: bump reviewer tool_max_steps 5 → 10 (546297c)
  • doc-align: coverage gate no longer counts unscanned anchors as drift (a705405)
  • doc-align: fail honestly on loop exhaustion instead of silent empty success (af0c64f)
  • doc-align: realign to repo-agnostic + document & enforce the rule (8ae8e29), references #2
  • doc-align: reviewer_gpt session: fresh + tool_max_steps 40→20 (8ece3de)
  • doc-align: scanner no longer drops path prefix → phantom drift (f9077a1)
  • doc-align: v0.14.0 — cumulative_declared_paths across iters (e79d91c7) (7c4f329)
  • doc-align: v0.15.1-3 tuning for clean end-to-end convergence (346b6b2)
  • doc-align: v0.15.6-8 mark_issue_for_review now actually transitions (c2c2fd2)
  • docker: COPY bots/ into go-builder so the image builds (ae6ee9d)
  • dockerfile: absolute /usr/sbin paths for groupadd/useradd (4279233)
  • dockerfile: install passwd to provide groupadd/useradd on debian:12-slim (462c5b3)
  • dockerfile: use root pnpm-lock.yaml — editor/ is a workspace member (3390276)
  • docker: pin claude-code 2.1.175 / codex 0.139.0 — StructuredOutput emission bug in 2.1.128 (5a6da16)
  • docker: ship jq in the runtime image + python3 fallback in forge-reply skill (4e00342)
  • docs: baas-overview mermaid sequence parse error (7a46556)
  • docs: correct commit count — 49 by iterion, 21 pre-existing (8e33baa)
  • dsl,runtime: four sweep-confirmed low-severity bugs (c265272)
  • dsl/expr, store/blob, dsl/ast: numeric coverage + checked arithmetic + sanitized attachment key + reject ambiguous when (F-DSL-6/7/8/9, F-ST-10) (9e3fa23)
  • dsl/expr: cap recursive-descent depth at 256 levels (F-DSL-15) (c0ea2b5)
  • dsl/ir: correct language-without-script check (script == "", not command == "") (156b156)
  • dsl/parser: diagnose duplicate top-level vars/presets/attachments (503dda4)
  • dsl/unparse: emit templated loop cap (39c8899)
  • dsl: cover all editor-critical fields in AST JSON enc + unparse (9852719)
  • dsl: emit tool node input field in unparse to close round-trip gap (ed1870d)
  • dsl: integer-overflow, llm-router expr-condition, cursor-NaN, keyword-prompt guards (090b73b)
  • dsl: tighten lexer normalisation, expr semantics, edge clauses, and bundle-aware resume hash (F-DSL-1/2/3/4/5/11/12) (ed05e0f)
  • dsl: tighten parser, diagnostics, refs validation and CLI (5bb144f)
  • e2e testing + wip (f7f566f)
  • e2e/live + examples: wire bundle skills + switch renovacy to full image (866185b), references #3 #2
  • e2e/live: count commits across all refs in requireWorkspaceCommitGrowth (3117517), references #3
  • e2e/live: drop workspace_dir override from sandboxed _Real tests (b4fe76b)
  • e2e/live: per-attempt run id for _Real tests so retries don't 409 (2b1c0bf)
  • e2e/live: read security_audit verdict from events not artifact (06fb14c)
  • e2e/live: use Artifact.Data not .Output in protestware assertion (efe64c0)
  • e2e: make the live bot suite runnable in OAuth-forfait mode (806c61c)
  • e2e: pre-Sprint-8 stabilise whole_improve_loop on docker-less hosts (f0453d9)
  • e2e: update stale sec-audit-source tests to the current pipeline (d8bd6f7)
  • editor-state: plug SPA races, stale closures and cleanup hooks (045103a)
  • editor-ui: auth bootstrap retry, snapshot alloc, pilote fallback (0d5fb5b)
  • editor, desktop: refresh + docs link actually work in the Wails app (8080bb0)
  • editor/CommitsPanel: expose merge action for cancelled runs (0a64d50)
  • editor/conductor: gate Force tick & Reload config on manager state (c49c390)
  • editor/home: pending state for cross-daemon row click (9f5faf8)
  • editor/pilote: always show "console" link in SessionHeader (cea27be)
  • editor/pilote: finalize stuck banners on run terminal events (F-TS-1) (a46d3f1)
  • editor/pilote: incremental transcript fold + questions payload + scroll/hydration guards (F-TS-5/6/7, F-R4) (686235a)
  • editor/pilote: keep store runId on unmount + Other-row local state + sort events by seq before fold (F-TS-2, F-TS-3, F-TS-4) (8108ed5)
  • editor/run-view: reject invalid panel layout shares from localStorage (cdace8f)
  • editor/run-view: reset per-run UI state on runId change + defer scrubber/search compute (5b3d33b)
  • editor/runs: hide inactive Cancel + show clear error on run-load 404 (7e1573c)
  • editor/runs: make whole log block row clickable to fold/unfold (64b6a1c)
  • editor/runs: stale REST snapshot no longer regresses post-snap WS state (4343ff3)
  • editor/snapshotReducer: close in-flight execs on terminal run events (ef4268b)
  • editor+server: make Artifacts tab Download/Open buttons work (59e44db)
  • editor: add left to right nodes sort (7238a36)
  • editor: add llm router support (76e2679)
  • editor: add virtual start node (fa3c089)
  • editor: auto-create document on startup for immediate drag-and-drop (1135bf7)
  • editor: bypass Login screen in local / DisableAuth deployments (b0a83e2)
  • editor: canvas reflects form edits and resolves env-substituted effort (602510b)
  • editor: clean up pre-existing TypeScript strict-mode errors (9ab2c20)
  • editor: clear remaining TypeScript errors (768cbbb)
  • editor: close in-flight execs on run-terminal events (mirror snapshot.go) (b16f750)
  • editor: default run view bottom tab to Logs (3c20346)
  • editor: download log via blob fetch instead of target="_blank" (55a89ba)
  • editor: EventLog attributes events via tracked execution_id (92ad266)
  • editor: force REST snapshot refresh after answer to recover canvas (f7c55dd)
  • editor: give inspector collapse button a dedicated header bar (5315b90)
  • editor: hide _meta keys + unwrap single-level nesting in Review block (6a1d0de)
  • editor: hide multitenant chrome chip in local / desktop mode (f2a0026)
  • editor: HumanInteractionPanel UX + auto-close + correct boolean answers (e05e95f)
  • editor: improve canvas UX defaults and layout behavior (5c79d72)
  • editor: improve sorting (c4e9841)
  • editor: inspector consistency on subview / sub-node selection (6301873)
  • editor: IRNode card color reflects DOMINANT status, not selected (e733537)
  • editor: never fall back to ws://wails/ when desktop bindings stall (e674437)
  • editor: node_started must not downgrade a terminal exec to running (8eb3f60)
  • editor: node/workflow deep-link routes to /editor, not / (3a2dc02)
  • editor: non-desktop fallback also carries ?store= on cross-store nav (44697bc)
  • editor: pilote race guards + IssueModal submit guard (F-TS-8/9/10, F-U3) (c9b8e39)
  • editor: polish HumanInteractionPanel — remove redundant header, hide approved checkbox, render review context inline (7b99fe1)
  • editor: pre-fill empty-string var defaults as empty, not as the literal raw (85eac8e)
  • editor: preserve log subscriber state across reconnect-token bumps (fbf9462)
  • editor: ProjectSwitcher remove-confirm reachable + Cancel button greys on non-running runs (8f6b4ec)
  • editor: refresh WS subscription after Approve/Reject submit (d259c15)
  • editor: replay mode — suppress historical toasts + follow scrubbed running node (2a6435c)
  • editor: retry initial run snapshot fetch on 404 race (faaed4f)
  • editor: route downstream events via lastExecIDByNode (fe2ddc6)
  • editor: route LogLinesView log fetches via apiURL helper (d26d715)
  • editor: route-level code-split + Radix Dialog migration for modal backdrops (F-P3, F-U2) (28982e2)
  • editor: show schemas/vars for compute nodes and clear edit focus on subview exit (24b658e)
  • editor: show the human node's resolved input as the Review block (f698557)
  • editor: stabilize artifact-list fetch in NodeDetailPanel (6bb6e48)
  • editor: surface event-history hydration failures as a toast (dc9d14f)
  • editor: title — drop "untitled.bot" fallback on Home + unmatched routes (369ab4b)
  • editor: translate NodeDetailPanel tool-payload affordances to English (72fe0f1)
  • editor: ux (f063a09)
  • effort: show env-subst literal on canvas + normalise bar to model max (7cb16ac)
  • effort: surface env-substituted reasoning_effort in editor + run console (cfe32a7)
  • errors: running rust to go (149a178)
  • evolve: full-pipeline dogfood fixes — review input ref + findings RepoRoot key (46a40e8)
  • examples/bots: pin reviewer_gpt + fix_gpt to claw backend (aec37a6)
  • examples/bots: switch vibe_* sandbox to inline mode + iterion-sandbox-full (ae6c43a)
  • examples/bots: trim devbox install from post_create (efbd97b)
  • examples/bots: wire claude_code into sandbox via mount + post_create (0041f0b)
  • examples/doc-align: revert v0.2.0 reviewer_gpt session: inherit (iter-1 failure) (b09f96f)
  • examples/doc-align: v0.13.1 — enforce_fix_scope argv handling (bf39bba)
  • examples/secured-renovacy: absorb row-field drift in bucket_patches + select_candidate (ebf8d8c)
  • examples/secured-renovacy: align_code never received changelog_review breaking changes (f11ec73)
  • examples/secured-renovacy: batch_upgrade_patches + batch_commit stdout hygiene (86c805b)
  • examples/secured-renovacy: bucket_patches handles object-keyed-by-name packages (843de52), references #3
  • examples/secured-renovacy: bump reviewer tool_max_steps to 80 (ae7fbcf)
  • examples/secured-renovacy: bump tool_max_steps for GLM thoroughness (be2ac28)
  • examples/secured-renovacy: changelog_review budget discipline (85951ba)
  • examples/secured-renovacy: commit via files_lines + git commit -F - (cee0f6c)
  • examples/secured-renovacy: commit_changes amend pass re-discovers files via git add -A (03d5742)
  • examples/secured-renovacy: commit_changes noop + select_candidate filters already-at-target (a787b22)
  • examples/secured-renovacy: commit_changes redirects git stdout to stderr (dac6dcb)
  • examples/secured-renovacy: default GPT reviewer effort to xhigh, not max (39ebb18)
  • examples/secured-renovacy: discover_outdated budget discipline (001fac6)
  • examples/secured-renovacy: drop git_* tools from claw backend nodes (b324991)
  • examples/secured-renovacy: family path — drop lint smoke + pipe family ledger to solos (0b31e2f)
  • examples/secured-renovacy: harden patch fast-track tools (f29c1b6)
  • examples/secured-renovacy: per-ecosystem dispatch in batch_upgrade_patches (091b16c), references #3
  • examples/secured-renovacy: pin detect_stack output to exact schema field names (c00cc43)
  • examples/secured-renovacy: pin reviewer verdict to exact schema field names (1020722)
  • examples/secured-renovacy: prepare_commit filters iterion script temp files (bcf0fe9)
  • examples/secured-renovacy: prepare_commit JS tool needs no-bang template form for strings (fed20d0)
  • examples/secured-renovacy: prepare_commit robust file collection + model env var (5b70ffc)
  • examples/secured-renovacy: propagate _session_fingerprint alongside _session_id (77e2aaa)
  • examples/secured-renovacy: require detect_stack to verify its commands empirically before returning (ca8a4a3)
  • examples/secured-renovacy: review_commit_auto stdout hygiene (aaf045f)
  • examples/secured-renovacy: rewrite broken tools using {{!}} + braced-only env (e69fac3)
  • examples/secured-renovacy: route Phase 2 loop-exhaust to fail; document deferred refactors (af2a453), references #13
  • examples/secured-renovacy: scope reviewer test-runs to targeted probes (b9cfcd6)
  • examples/secured-renovacy: session 15 quick-win recipe tuning (c4e871b)
  • examples/secured-renovacy: skip review_commit_auto on pure pushback (01ebb42)
  • examples/secured-renovacy: tighten fix_loop cap from 5 to 3 (12c5ae1), closes 4-#5
  • examples/secured-renovacy: trim head-session prompt + bump discover_outdated turns (5f873a2)
  • examples/secured-renovacy: unblock upgrade phase + richer commit messages + done short-circuit (2fd133e)
  • examples/secured-renovacy: unbreak jq filters + tr + printf JSON escapes (4e62eb1)
  • examples/secured-renovacy: validate_upgrade budget discipline (b30a3d3), references #1
  • examples/secured-renovacy: write_audit_md uses shell-escape uniformly (f8de4ec)
  • examples: default human_gate model to openai/gpt-5.4-mini (bf03050)
  • examples: hardcode human_gate planner model to openai/gpt-5.4-mini (002915f)
  • examples: pin backend: claw on every LLM-driving node in playwright_visual_qa (a97f53e)
  • examples: pipe task_description through workflow vars in human_gate (e7a2446)
  • examples: playwright --headless + relax judge console_errors heuristic (b902009)
  • executor: eliminate concurrent map write on ClawExecutor.schemas (40bea10)
  • executor: seed vars from .iter defaults so prompt templates resolve (c263fe4)
  • expr: if() short-circuits the un-taken branch (a3a9757b) (bf96f4a)
  • expr: length() accepts any reflect-typed slice/array/map (734e0f7)
  • feature_dev,claude_code: stabilize the implementer — bound sessions, graceful max-turns, tool-error circuit-breaker (5d3030e)
  • feature_dev: converge the review loop — decouple reviewer effort + high-confidence-gated exit (6b31d9e)
  • feature_dev: reviewer_gpt must diff the working tree, not HEAD^...HEAD (304171c)
  • feature-dev: stage new files (git add -A) so review converges on new-file features (44d34c9)
  • git,mcp,auth,cli: four sweep-confirmed low-severity security bugs (2d25206)
  • git,runtime: resolve linked worktrees back to main repo for project_root (c87a7c5)
  • github repo target (76656d5)
  • gitignore)+docs(bot-runs: Doki dogfood — gitignore runtime skill mirror; docs-refresh bilan (a9b6d67)
  • gitignore: ignore all per-run sandbox scratch dirs (.tmp-*/), incl Go caches (dad2851)
  • go: plug timer leak, env merge, shell quoting, interval floor (e7e79e4)
  • green up mongo-conformance + cloud-e2e CI jobs (9d6cf10)
  • helm: always render runner probes + prod monitoringEndpoint hint (02e39fb), references P1#10
  • helm: cloud-ready hardening (dc614d0)
  • home: drop redundant "WhatsNext —" prefix on hero card (6a7e08f)
  • image: bump kubectl to v1.36.0 to clear Go stdlib CVEs (5c51f4d)
  • image: drop npm/npx + system node_modules to clear Trivy CVE (559a78c)
  • improve reliability of delegate (5971578)
  • iter: constrain family enum + retry instead of done on fallback (0f40dea)
  • iter: route reviewer.scanned_areas into streak_check input (052e0e5)
  • live e2e (9ad8c1d)
  • live test ok (8e9c185)
  • live test track tools logs (e1cd5af)
  • live-tests: wire model field, repair codex/opus drift, switch to Opus 4.7 + GPT 5.5 (18e0a57)
  • live-test: wip (36ad78a)
  • live-test: wip (0b7a640)
  • live-test: wip (359c53c)
  • live-test: wip (11b8847)
  • live-test: wip (0cd2597)
  • live-test: wip + ensure artifact + report (a6af676)
  • logging: improve (a695e75)
  • mcp: EnsureServers rollback no longer tears down already-live servers (835cf5e)
  • mcp: guard against nil map when fingerprint cache is null (57beb73)
  • mcp: preserve Auth on DSL-declared MCP servers through mergeCatalog (b4c0f26)
  • memory,desktop: quota stat-under-lock race + bound updater downloads (1f833fe)
  • memory: close 3 multi-tenant memory gaps Billy flagged (843b7f7)
  • memory: cloud tenant fail-close + WriteDocument optimistic-lock (Mongo) (0473021)
  • memory: reject path-traversal in SpaceRef qualifiers (Billy finding #4) (a5db57b)
  • mermaid (9c4b5c3)
  • missing ok buttons (e03601a)
  • model/executor: substitute nil script refs as null literal (b9100f7)
  • model: check _needs_interaction before schema validation (ask_user on schema+tools nodes) (e93ccc1)
  • model: claw structured-output calls work with Anthropic models (9197bcf)
  • model: convert extractBackendFields panic to typed error (324bb57)
  • model: resolve {{run.id}} in tool command + script bodies (ea61817)
  • model: surface the real tool_result error instead of generic "tool error" (ebc7fe2)
  • native: torn-tail hardening for events.jsonl writes (32b52d9)
  • netproxy: force-unblock parked io.Copy on tunnel teardown (e1720e3)
  • netproxy: resolve host.docker.internal → loopback for proxied host-service dials (C082) (ae0ea5a)
  • no mandatory failed node (9fbee6c)
  • notify: pin resolved IP for completion callback (DNS-rebind) (cc5c335)
  • openai: OPENAI_API_KEY now wins over ChatGPT-OAuth (precedence inversion) (1e7bc72)
  • pnpm: migration + upgrade (230cc09)
  • production-readiness hardening — Hub shutdown, fan_out, runview streaming, WS origin (f8a60a9)
  • put live test appart (fc37aa0)
  • queue/nats: Lock runner identity + payload pre-check + ping + consumer name (3778f60)
  • refactor(dsl) live test pass (9a573aa)
  • release: bump Node old-space cap + docker login before cosign chart sign (79c7011)
  • release: rename app title to "Iterion Studio" + fix scripts/build.sh editor→studio leftover (05de581)
  • resume: inline-launched runs no longer require source on resume (268bf6e)
  • review-pr: post GitLab inline comments via nested-JSON position, not glab -f brackets (2f771a2)
  • review-pr: reliable inline anchoring + structured publish output (13dbae0)
  • review: 1 (3c44aac)
  • review: 2 (7c94ba1)
  • review: apply all 16 findings from cross-repo review (b8807e4)
  • router: add model fallback chain for LLM routers (8ceb767)
  • router: use RouterMode instead of Model to dispatch LLM routers (581beaf)
  • run-view: canvas toolbar no longer overlaps status filter chips (17808a6)
  • run-view: preserve active tab when switching iteration on a node (0160b63)
  • run-view: unify iteration selector on 0-based array index (d1be207)
  • runner, auth, queue, secrets: tenant-strict + SSO-consent + NATS timeout + OAuth retry/sanity (F-CL-6/7/8/10) (bab14e0)
  • runner, cloudpublisher, store: close tenant + race holes in the runner / publisher path (c49a6cb)
  • runner,review-pr: isolate forge CLI auth per-run — stop cross-run identity leak (74d831a)
  • runner,runtime: log instead of silently swallowing delivery + store errors (912c305)
  • runner,runtime: python3 in the image + nil-ctx panic on resume (25f2395)
  • runner: apply WithForceResume + cancel run on heartbeat refresh (0f30014)
  • runner: confine no-sandbox file-secret writes to the secrets mount dir (470a44e)
  • runner: mirror bot bundle skills into cloud run workspaces (2085cc4)
  • runner: remove partial file secrets when materialize fails (f4488d2)
  • runner: synchronize Shutdown with processOne delivery ack/nak (b213934)
  • runner: validate webhook RepoURL/RepoSHA before they reach git (341c54e)
  • runs: commit-and-finalize leaves merge_status=pending, not skipped (8a29d6e)
  • runtime, conductor, backend: best-effort all-done topology + retry counter persistence + P3 polish (F-RT-6/9, F-CD-14/15, F-BE-8/9) (f14e69c)
  • runtime, conductor: mirror skills + cap backoff + worker WG + atomic hooks (F-RT-7, F-RT-8, F-CD-1, F-CD-10) (88404e4)
  • runtime,bots: worktree workspace_dir guard + reviewer mandate fan-out (e18d345)
  • runtime,doc-align: walk worktree pointer files in findGitRoot + drop reviewer_gpt to medium (f168180)
  • runtime,e2e: preserve Run.Attachments past the post-promote SaveRun (a5d486b)
  • runtime,proc: skip /tmp/go-build* sibling when locating iterion binary (46b4255)
  • runtime,runview,editor: key exec_id on iteration_path for nested loops (03eb79c)
  • runtime,sdk: validate branch name, sentinel git args, plug pipe leak (6860244)
  • runtime,studio: surface worktree-branch failure so commits aren't silently orphaned (2ff5c56)
  • runtime,workflow: substitute workflow var defaults in entry node + tool judges (8014bbd)
  • runtime/bundle: per-file marker for skill mirror — refresh on bundle upgrade, preserve user customisation (3de8f37)
  • runtime/delegates: never truncate log bodies — fold instead (b343ce9)
  • runtime/executor: JSON-encode maps and complex slices in shell template substitution (cab9f2d)
  • runtime/executor: preserve ${X} when env unset (no default) — don't eat JS template literals (5573969)
  • runtime/executor: script tools use JSON literal rendering + JS template literals preserved (d5bb5b5)
  • runtime/executor: separate stdout/stderr capture for tool nodes (fc08090)
  • runtime/executor: tool nodes use bash -c instead of sh -c (f3537ca)
  • runtime/recovery: classify delegate.ErrRateLimited as RATE_LIMITED (7489c67)
  • runtime/recovery: register ExecutionFailed recipe for generic node failures (0b6f11b)
  • runtime/recovery: route 5xx + http2 timeouts to NETWORK_TRANSIENT (97ddac2)
  • runtime/sandbox: bind-mount the parent .git so worktrees stay git-functional inside the container (cb04116)
  • runtime/sandbox: carry block fields through auto-fallback to default image (c86209e)
  • runtime/sandbox: disable git commit.gpgsign inside the container (fb844d4)
  • runtime/sandbox: log UID-mismatch and unparsable-user warnings to operator (3e3a4cb)
  • runtime/sandbox: mount ~/.codex for ChatGPT-forfait OAuth inside sandbox (fee6d46)
  • runtime/sandbox: mount ~/.gitconfig so in-container git commit works (642c3bd)
  • runtime/sandbox: surface non-ENOENT stat errors on bind-mount probes (6dc9ae4)
  • runtime: auto-detect baseline when workDir is a git worktree (3d447c9)
  • runtime: bound fan_out collector drain after cancellation (881dcd4)
  • runtime: bound LLM-router fan-out cancellation (port fan_out hardening) (6c3b293)
  • runtime: cancel siblings on budget overrun + skip loop edges in branches (74e4ce0)
  • runtime: cap interaction-recursion depth to 5 (5f76aae)
  • runtime: claim resume atomically (CAS) to stop duplicate concurrent executions (4df0eca)
  • runtime: classify expired/invalid credentials (401/403) as non-retryable (f126509)
  • runtime: coerce CLI --answer values to the human node output schema (b35d988)
  • runtime: cover all setup-phase exits with worktree finalize defer (e0a0c07)
  • runtime: currentLoopIteration uses loop.Body, not just edge endpoints (ce3cf20)
  • runtime: detect env-templated claw backends so the sandbox mounts iterion (f247f36)
  • runtime: emit iteration in node_started, align frontend reducer (7cd4f34)
  • runtime: env-expand ${PROJECT_DIR} in user-provided var overrides too (3f00f77)
  • runtime: finalize worktree on CLI resume to terminal status (F-RT-1) (0eeb95f)
  • runtime: interaction-inline re-exec, resume nil ctx, llm-router best_effort terminal (38b8335)
  • runtime: make fan_out semaphore acquire cancellation-aware (a65defd)
  • runtime: plug resume nil-map writes, alias drift, missing edge_selected, failed-status recovery (F-RT-2/3/4/5) (c84f117)
  • runtime: preserve checkpoint state on sandbox-failure during resume (8ed8754), references #5
  • runtime: preserve nil edge-mapping values in node input (221f24f)
  • runtime: re-bootstrap sandbox on resume so tool nodes don't fall back to host (16cec29)
  • runtime: read worktree .git pointer to find real gitdir (nested worktrees) (9a10fc4)
  • runtime: recover missed worktree finalize on daemon startup (64619cc)
  • runtime: RecoverFinalize also runs on cancelled runs (63b4d92)
  • runtime: remap ${PROJECT_DIR} to in-container workspace when sandboxed (5f8674f)
  • runtime: reset loop counters on re-entry from outside the loop body (84ccc9a)
  • runtime: resume restores workDir + re-resolves vars from r.Inputs (7e908c2)
  • runtime: sandbox must bind whole .git, not just per-run worktree subdir (d20647c)
  • runtime: scope loop counter reset to back-edge target nodes (652f4c6)
  • runtime: squash title from first commit + isolate git children (e199e27)
  • runtime: stale outputs in round-robin loops and artifact versioning in fan-out branches (fbcab65)
  • runtime: stale round-robin outputs, fan-out artifact versioning, and add syntax validation (57dfed2)
  • runtime: surface silent failures in resume + recovery dispatch (a56fd78)
  • runtime: treat DoneNode status-flip failure as non-fatal (ce0825c)
  • runtime: worktree path must be absolute (fed1608)
  • runview, server: plumb caller ctx into runview to enforce tenant scoping in cloud mode (faab90f)
  • runview,editor: post-resume re-execution flips exec back to running (1c83ecf)
  • runview/eventstream: mongo change-stream auto-reconnect (b457f39)
  • runview: add missing LogSlice + BuildLogSlice (810827a)
  • runview: bar normalises after async caps fetch (e5a2ee1)
  • runview: caps lookup keyed on declared model, not runtime alias (7f0e0e1)
  • runview: caps prefetch no longer dropped under React StrictMode (66b57eb)
  • runview: clear FinishedAt on resume to unfreeze duration ticker (a7116dd)
  • runview: close in-flight executions on terminal run events (fdeac02)
  • runview: contain Files / Commits tab content within left panel (84efe00)
  • runview: detect out-of-band merges so the studio stops offering a stale squash (6892ba6)
  • runview: drop phantom "[]" watched issue from stringified empty arrays (ed7caa5)
  • runview: flip human node from paused to finished on node_finished (315ea04)
  • runview: follow-tail scrolls to bottom on mount and on live appends (a202d7b)
  • runview: gate merge form on final_branch, not workflow worktree flag (8c53032)
  • runview: gate syscall.Kill behind unix build tag for windows CI (81e5331)
  • runview: handle bundle_path runs in BuildWireWorkflowFromStore (505efd6)
  • runview: honor --store-dir for board MCP via WithStoreDir (95bbd97)
  • runview: keep follow-tail toggle from un-checking on data/filter reflows (05e53b0)
  • runview: label Files panel by source-of-truth (live vs historical) (6a50c8e)
  • runview: merge footer no longer clipped by left panel overflow (44610cd)
  • runview: mirror bundle skills on studio launches too (F-NEW-4) (54caf3c)
  • runview: never downgrade terminal exec on duplicate node_started (00b30a2), references family_upgrade#0
  • runview: never reap a sandbox container whose run is in another store (481f244)
  • runview: reap orphan sandbox containers at daemon startup (6fb6b6a)
  • runview: redial WS after resume so events flow without refresh (f453df4)
  • runview: register native board tools on claw's tool registry (0344281)
  • runview: render file diff for finalized worktree runs (815f14c)
  • runview: sandbox-container reaper must never reap a live run (liveness probe) (77f3060)
  • runview: scroll to tail when re-checking the Follow tail toggle (0466fad)
  • runview: seed RunLogBuffer offset from existing run.log size (1b979c0)
  • runview: stamp tenant ctx on drain + resume + post-cancel paths (d24a554)
  • runview: wire WithoutTenantFilter into boot-time reconcile so cloud server doesn't panic on startup (f179656)
  • sandbox,runtime: worktree gitdir bind + silent-deny telemetry (676d733)
  • sandbox/devcontainer: allowlist ${localEnv:NAME} substitutions (F-SB-1) (ff66104)
  • sandbox/docker,delegate: forward stdin to claude in sandbox via --interactive (6eb3b8d)
  • sandbox/docker,runtime: recover from leftover container on resume (58525a5)
  • sandbox/docker: bind network proxy on 0.0.0.0 so containers can reach it (6346e26)
  • sandbox/docker: give PostCreate cleanup a real budget (7fb64bf)
  • sandbox/docker: validate mounts, buildx context, and plain args (F-SB-2, F-SB-3, F-SB-4) (c7d0535)
  • sandbox/kubernetes: fail-closed on missing ITERION_POD_IP, drop in-cluster NO_PROXY bypass (F-SB-6, F-SB-7) (55303ec)
  • sandbox/kubernetes: validate env vars at manifest build + exec injection (F-SB-5) (7c0906f)
  • sandbox/netproxy: close-after-response so inspected streaming LLM calls don't hang (778b986)
  • sandbox/netproxy: extend silent-deny to GitHub Copilot CDN + Sentry (ec545a7)
  • sandbox/netproxy: handle bracketed IPv6 literals in CONNECT host (1aaa2fe)
  • sandbox/netproxy: silent-deny claude-code MCP proxy probe (19616e4)
  • sandbox: apply Phase 4 review feedback (waitErr, BaseDir, compaction limit) (93b5f5f)
  • sandbox: bind workspace at host's absolute path inside container (f365ff1)
  • sandbox: cap docker pull with explicit timeout (a126b5a)
  • sandbox: expand ${localEnv:VAR} / ${localWorkspaceFolder} before docker run (a8ed063)
  • sandbox: harden claude_code postCreate against broken npm installs (9755f17)
  • sandbox: install Go 1.26.4 in iterion-sandbox-full (was apt's 1.24) (af07835)
  • sandbox: mount the host_state HOME tmpfs exec (was noexec → broke go toolchain) (d2ab8fb)
  • sandbox: numeric USER 1000 on final stage for k8s/OpenShift (92b1783)
  • sandbox: warn instead of fail on driver-available for cross-host --target (6574154)
  • sandbox: writable HOME tmpfs so devbox/go are first-class under host_state (061dbef)
  • scripts/desktop/build-deb.sh: install all hicolor sizes, not just 256x256 (51aab53)
  • sdk-ts: plug SIGKILL timer leak, surface JSON parse errors, doc events() lifecycle (e849497)
  • sdk: claude_code initialize deadlock when hooks are configured (fceb8a4)
  • sdk: tolerate evolving claude_code init payload shapes (019f08a)
  • sec-audit-deps: live-dogfood fixes — sandbox claude + filter_cached robustness + datetime (0443122)
  • sec-audit-deps: make update_cache populate the real cache (1991661)
  • sec-audit-deps: self-label the scaffold so a run can't pose as a complete SCA (9b7d527)
  • sec-audit-source: bound scanner findings to stop triage context overflow (280b49d), references #1
  • sec-audit-source: cap remediation loop by max_fix_per_run + generous safety bound (d55ecec)
  • sec-audit-source: default remediate=false — read-only auditor out of the box (92c40d6)
  • sec-audit-source: filter_cached_files tolerates triage candidates as a dict (d6ad8f3)
  • sec-audit-source: guard revalidate against zero-candidate context overflow (704d7d6)
  • sec-audit-source: harden langs handling + thread via edges + sandbox claude (live-dogfood fixes) (b8fecc7)
  • sec-audit-source: repair scanner invocations — unblocks scan_health (a8fac4c)
  • sec-audit-source: robust claude-code install in sandbox post_create (1f00d8c)
  • sec-audit-source: route node outputs into tool commands via input (4e138e5)
  • sec-audit-source: run the 3 voters sequentially, not via fan_out_all (6bb863e)
  • sec-audit-source: scan_health gate — stop silent zero-finding façade (2c5bfca)
  • sec-audit-source: unquote interpolated tool-command vars (ecdcbd3)
  • sec-audit: bound detect_tech with a deterministic inventory (f3f7b76)
  • sec-audit: run scanners sequentially, not as a parallel fan-out (d33e3ec)
  • secrets,memory: enforce bot-secret binding egress and isolate bot memory by id (1ffc4bc)
  • secrets: pad dev master key to 32 bytes so AES-256-GCM sealer init succeeds (cdadacf)
  • secured-renovacy: add go support + graceful skip in family_upgrade/validate (bbab559)
  • secured-renovacy: commit_changes exposes sha — clean field for downstream (a3ad38b)
  • secured-renovacy: correct resolve_pkg_ecosystem template form + drop sandbox.env passthrough (401d683)
  • secured-renovacy: deterministic revert_changes + mutualisation note (5e52eca)
  • secured-renovacy: drop readonly ~/.claude mount + correct template-form in resolve_pkg_ecosystem (20ee9bc)
  • secured-renovacy: family_revert must fail on git reset error (875b513)
  • security: cap HTTP JSON bodies, tighten file perms, least-priv CI (63784ce)
  • security: close shell-injection / JSON-AST trust holes + tighten parser (d7a0c17)
  • security: editor binds to 127.0.0.1 by default + --bind flag (6c0c413)
  • security: harden iframe sandbox, OpenRunFile TOCTOU, MCP retry (8ec9885)
  • security: resolve the 6 high-severity gosec taint findings (#9 triage) (c9e1819), references #nosec #nosec
  • seki: bound deepsec process with a timeout so a network hang auto-recovers (b0715ec)
  • seki: feed the reviewer-isolation judge its projected input (f53b26e)
  • seki: point deepsec process at the baked claude CLI (CLAUDE_CODE_EXECUTABLE) (61ebbe0)
  • seki: redact secret values from generated context.md (98a39b5)
  • seki: relay remediation loop attempted-ledger off the loop target (c9365ba)
  • seki: represent the attempted-ledger as a shell-safe comma string (49e161b)
  • seki: resolve deepsec workspace offline via global symlink (e424373)
  • seki: retry deepsec process once on transient failure (9e68220)
  • seki: terminate the remediation loop — select_finding drops the attempted-ledger (022874e)
  • server + editor + bot: cross-store run navigation + tighten security_audit semantics (a3dfeab), references #3
  • server,delegate: C082 closer — board MCP serverInfo.version + alwaysLoad (21e9a66)
  • server,dispatcher,store: four sweep-confirmed medium bugs (c79e842)
  • server,editor: pass .iter source inline on cloud-mode launch + resume (e04da59)
  • server,runview: three sweep-confirmed low-severity bugs (5108e24)
  • server,studio: 404 (not SPA shell) for unrouted /api paths (1ad8323)
  • server/examples: list + load workflows in subdirectories (29ab578)
  • server/hub: race on currentOriginCheck (726f7b4)
  • server/projects: stop /tmp pollution in switcher + auto-prune dead dirs (4829bf6)
  • server/runs: cross-store log tail + reject state-changing writes (c328587)
  • server/runs: filter stale orphan running runs from global banner (c8bbba2)
  • server/ws: cancel envelope also flips paused/failed_resumable (5d55dcd)
  • server/ws: paginate replay so terminal events past page cap reach client (c39acb8)
  • server: accept ?t=<jwt> on /api/ws file-event endpoint (5478436)
  • server: accept same-origin + PublicURL for state-changing requests (aed027d)
  • server: board MCP GET→405 (Streamable-HTTP) + plan: remaining cause likely HTTPS-only MCP (816dcd0)
  • server: cap fork-run request body + make Hub.Stop idempotent (58e7ea5)
  • server: contain panics in fire-and-forget background goroutines (5ba2070)
  • server: fill ring-buffer gap from run.log on log subscribe (0c8b52e)
  • server: harden cross-store WS tail Errors channel + negative log offset (dcd21ca)
  • server: harden upload filename validation (c2d048f)
  • server: make safePath idempotent on absolute inputs (0c6d623)
  • server: materialise inline source on launch to fix desktop import-then-run (36b981d)
  • server: omit access_token from auth response body for browser clients (8d3169f)
  • server: plug safePath WorkDir race and drop-on-full WS sends (F-S3, F-R3) (13b1918)
  • server: propagate WorkDir to engine + align inline-source cache with resolved store (cc64a40)
  • server: replay run.log on WS subscribe for terminated runs + log cancel attribution (d2e48a7), references #3
  • server: require ITERION_SESSION_TOKEN in cloud mode (80c93e5)
  • server: resume falls back to inline-source cache when safePath rejects (dd317c3)
  • server: SPA fallback for client-side routes (acc763a)
  • server: SSRF gate when bound non-loopback, in-process auth rate-limit (F-S4, F-C1) (f6bc38c)
  • server: stamp dev tenant_id in DisableAuth path so mongo writes don't panic (510f9b0)
  • server: stop WS event-stream from pegging a CPU on closed Errors chan (f1f2162)
  • server: tenant-scope cancel/pause/log/tool-blob run endpoints (6b60598)
  • server: use all:static prefix on go:embed to handle empty static dir (6d641a5)
  • server: wire callback_url through POST /api/runs (was dropped) (b43be2d)
  • server: wire reapStagedUploads to actually run (a937bb5)
  • six sweep-confirmed low-severity correctness/resource bugs (0498211)
  • split mcp playwright command/args + vendor claw-code-go ConvertTools fix (f194a4e)
  • Sprint-3 regressions from the d28c8dea follow-up review (24f6c90)
  • Sprint-5 batch — full-tree bug-review pass (f30012c)
  • Sprint-6 batch — full-tree bug-review pass (3039e75)
  • Sprint-7 batch — Go + editor TS bug-review pass (6ee52e6)
  • Sprint-8 batch — P2 robustness across never-audited packages (c2f5e6e)
  • Sprint-8 batch — runtime + observability + git P1 fixes (c566e51)
  • static binary (fbd8337)
  • store, bundle: tenant-scoped seq + tar leaf O_NOFOLLOW + Windows PID liveness (F-ST-7/8/9) (f92dc2c)
  • store,dsl,ignore: seed seq from disk on resume + cosmetic + ignore .iterion-* (6e6b25a)
  • store/blob: Ping + Close + best-effort DeleteRun (3679f70)
  • store/blob: return errors instead of panicking on bad IDs (6f2dbec)
  • store/cloud: drain blob client on Mongo init failure (12d54a5)
  • store/mongo: context-bound the WriteDocument CAS retry (was capped at 5) (79bc707)
  • store/mongo: Ping + AppendEvent retry + accurate Capabilities (91afa10)
  • store/mongo: widen AppendEvent retry budget to absorb conformance concurrency (aaec54d)
  • store: backfill friendly name on LoadRun for legacy runs (fb75633)
  • store: bound ResolveStoreDir walk-up to the git repo root (8e96d09)
  • store: guard s.logger.Warn against nil logger in 3 sites (139e2cf)
  • store: guard turn index.json read-modify-write with s.mu (e608370)
  • store: harden attachment HMAC against forgery and ambiguity (F-ST-1, F-ST-2, F-ST-3) (b79eb82)
  • store: harden run-persistence layer (perms, traversal, exclusive create, torn-tail) (a79ffa7)
  • store: LoadRun heal-on-read race + OpenRunFile symlink-TOCTOU hardening (c7d1f19)
  • store: preserve best-effort seq seed on partial scan failure (69adb57)
  • store: re-sanitise attachment filename on OpenAttachment (0ec8394)
  • store: return error from GenerateRunID instead of panicking (46cbcfb)
  • store: roll back short writes + tolerate fsync failure on events.jsonl (dc61e73)
  • store: tolerate torn lines in user_messages.jsonl (77695a7)
  • studio/board: single-click opens issue modal + clickable label chips on cards (41b3002)
  • studio/dispatcher: keep right-most columns reachable on narrow viewports (5bce27b)
  • studio/files: direct user to Uncommitted tab when branch empty + worktree live (64d3950)
  • studio/home: mark just-opened examples clean so navigation away doesn't warn (e2bfda9)
  • studio/run-view: centre on running node when layout settles (e3bbe18)
  • studio/run-view: relax the 'stalled Ns' badge thresholds (20/60 → 120/300) (e948b1a), references #5
  • studio/runs: collapse run-id duplication in /runs table (adf3e0f)
  • studio/runs: conventional-commit default + auto-refresh on already-finalized (98a2e27)
  • studio/runs: cost/tokens + ticket chip + bot identity in run header (3f7977d), references #1 #N
  • studio/runs: cost/tokens + ticket chip + bot identity in run header (2d01752), references #1 #N
  • studio/runs: don't mount RunListView when a run tab is active (f7b4bbd)
  • studio/runs: drop redundant Runs title in contextual header (601deb2)
  • studio/runs: eagerly hydrate event log so cost + metrics show (6a093b9)
  • studio/runs: show workflow_name when run.name === run.id (9f7cf179) (2fc3aeb)
  • studio/sidebar: close from sidebar list reroutes the URL (c062936)
  • studio/tabs: break infinite-loop on deep-link mount (57be092)
  • studio/whats-next,ui: clear 'Sending…/Submitting…' feedback on human-turn submit (f857fd3)
  • studio/whats-next: 3 UX bugs surfaced by Playwright audit (cc77351)
  • studio/whats-next: add break-words on chat card text so long paths/URLs don't overflow (d0d77de)
  • studio/whats-next: allow operator to start a new session from any state (f65deca)
  • studio/whats-next: apply iteration fallback to node_finished too — fixes stuck "running" banner + duplicate cards across revise loops (8bf277c)
  • studio/whats-next: bottom Resume footer + force-resume (dfec6eb)
  • studio/whats-next: drop misleading state hint from plan-handed-off (3671e1f)
  • studio/whats-next: emit follow-up cards from node_finished payload, not snapshot (97bd80a)
  • studio/whats-next: prefer live run over remembered terminal session (13578eb)
  • studio/whats-next: resolve titles from in-flight ExtensionMessage (aaa225c)
  • studio/whats-next: show issue titles on answered checkbox turns (fe7b470)
  • studio/whats-next: StrictMode breaks auto-discovery (idle leak) (785debb), references #1 #2 #1
  • studio/whats-next: submitHumanAnswer must pass force: true (f7c3141)
  • studio/whats-next: track node iteration across events so revise-loop human turns get their own bubble (2dda8d7)
  • studio/whats-next: unstick form submit + prefer ResumeFooter on terminal runs (2ac3bbe), references #1
  • studio: a11y on auth/settings/teams forms (clusters E/F/G/D) (9c16a3d)
  • studio: add Retry action to the event-history load-failure toast (de3c64c)
  • studio: admin + marketplace primitives, status Badges, a11y (2fb931c)
  • studio: adopt ui/Select primitive in shared FormField selects (47073c0)
  • studio: ApiKeys + dispatcher SettingsDrawer adopt form primitives (253d47d)
  • studio: auth pages adopt Button primitive + shadow token (a7e2f7b)
  • studio: board + marketplace modals/filters a11y (clusters C/F/I/D) (ed3a98b)
  • studio: board moves cards columns live on dispatch/completion (e5758ce)
  • studio: Board selection toolbar strip was nearly invisible (double-alpha) (4db2eb3)
  • studio: break WizardForm ↔ ui/index circular dep (ad1d5a5)
  • studio: byte-accurate log resume cursor — stop duplicating tails in the Logs tab (6d7017b)
  • studio: cancel pending attach + surface auto-validation errors (81ade15)
  • studio: canvas menus + panel editors a11y (clusters F/D/I/J/K) (d389723)
  • studio: checkbox multi-select over an agent's json-string output (6e5c2aa)
  • studio: clearer Files scope tabs — accent-fill active pill, "All changes" default (4350403)
  • studio: cloud run-console WebSocket — allow same-origin upgrades (c212c2c)
  • studio: cloud-only Admin/orgs — friendly notice + hide link in local mode (fc2e47b)
  • studio: CommandPalette a11y — dialog/combobox/listbox + focus trap & restore (39430ff)
  • studio: discoverable "Integrations" nav entry + deep-linkable team tabs (530e743)
  • studio: dispatcher inherits the same default bot paths as the API (c95abf9)
  • studio: drop the contradictory "0 issues created" in the What's Next handoff (1d8f761)
  • studio: editor title falls back to "Editor" when no tab is open (763232e)
  • studio: enable Run for examples loaded from the empty-canvas panel (b8b2fa9)
  • studio: eradicate phantom Tailwind tokens + extend regression guard (628fbbb)
  • studio: graceful OAuth→PAT fallback when a forge has no OAuth app (f7c34c3)
  • studio: keep inspector tab row reachable + label the "##" comments tab (dff3399)
  • studio: keep the run files/diff panel responsive on huge changesets (8b8b4ae)
  • studio: launch first-class bots from Home without a save (5b48904)
  • studio: let operators merge dispatcher/bot runs that landed merge_status=skipped (bd92080)
  • studio: let the browser offer to save the login password (b1be8cc)
  • studio: make run-canvas node selection visible on every status (04a3888)
  • studio: move formSpec useMemo before early return in HumanInteractionPanel (1577786), references #310
  • studio: primitive self-consistency — scrim token, themed Select chevron, Lucide Toast (3c0313c)
  • studio: re-enforce follow-tail on run open, preserve on tab-click (6afe0aa)
  • studio: render the next human gate in-place after resume (f5ef6f1)
  • studio: repair pill Tabs side-nav (active≠hover, vertical layout) (df9a9e8)
  • studio: repair team/settings 2-column layout (grid-cols comma → underscore) (36f1972)
  • studio: replace raw Tailwind palette with semantic tokens + guard (faba144)
  • studio: restore soft-bg tints broken by ${token}NN on var() colors (14c2b30)
  • studio: run console + shared overlays a11y (clusters F/G/C/I/D) (a5699e0)
  • studio: run console canvas follows light/dark theme (3123b34)
  • studio: RunView retry refetches in place without full reload (9a13dc6)
  • studio: scope run/editor tabs to the active project (7dc8fe3)
  • studio: SearchOverlay/Diagnostics/Library adopt Input + IconButton (718ca78)
  • studio: share extractErrorMessage + clear armed WS reconnect timer (5b3521a)
  • studio: show the persona/technical name in the editor tab + title, not "main.bot" (bfc9940)
  • studio: stop the dispatcher dashboard spamming WS 503s while idle (f558692)
  • studio: stream live WS events for dispatcher-spawned runs (014baea)
  • studio: team/settings side-nav → Tabs, integrations actions → Button (c129467)
  • studio: the Home quick-open panel is "Bots", not stale "examples/" (4f54f8b)
  • studio: tokenise bot persona palette for light-mode legibility (7499721)
  • studio: use "iterion studio" as the app title constant (0ca92d6)
  • studio: use the tab label when an editor tab has no file param (aba6264)
  • studio: wrap run logs at word boundaries, not mid-token (0342db8)
  • studio: WS refcount leak, stale watchlist pollers, download revoke, cdp pending/blob (b0c2220)
  • surface three swallowed errors that hide real failures (4e90c28)
  • taskfile/editor: use cp -R dist/. <dest> for mvdan/sh portability (2e89281)
  • taskfile: always rebuild cli:build:linux:* (no sources/generates cache) (89b3421)
  • taskfile: don't nest sh -c under watchexec's default shell (09eda9c)
  • taskfile: editor:build:fast must run once (e13e698)
  • taskfile: serialise CLI build after wails -clean in linux deb tasks (1b9dad6)
  • taskfile: studio:dev builds + runs a static iterion (no more sudo cp for delegated subprocesses) (c7794e7)
  • tests: pin git LC_ALL=C and skip computer-use tests when X11 is up (9c76477)
  • tolerate unavailable studio storage (7429d79)
  • tool-logs: drop duplicate console line for claude_code tool calls (40e7a1e)
  • ts-review: batch of TS code-review fixes across SDK + studio (156524a)
  • use safe studio storage helpers (75361b3)
  • vendor,ci: track WebView2 installer + bump GitHub Actions to latest majors (a9293fd)
  • vendor/claw-code-go: preserve tool_use args across response.completed reconciliation (c410b2a)
  • vendor/claw: bump to 795bbb4 to pick up bash.go windows build-tag split (8f06b2a)
  • vendor/claw: kill bash descendants on timeout to unblock cmd.Wait (b175bf8)
  • version: release-it must use token-bureau token, not GITHUB_TOKEN (528248c)
  • webhooks: harden GitLab forge-host derivation + escape discussion id (cb549d8)
  • whats-next/emit_action: surface selected_titles in user prompt so the filter actually runs (9a00174)
  • whats-next/skills: repo-survey § 7b — findings inbox handoff (63c3355)
  • whats-next: bring back detail field on ask_continue, render flat (544cacf)
  • whats-next: dispatch_more + empty detail = list, not silent bulk (fa3e811)
  • whats-next: dispatch_more with empty detail = dispatch all assignees (df9e933)
  • whats-next: drop redundant free_text from ask_continue/triage_board (7d4ee90)
  • whats-next: findings inbox bypassed by Constraints' no-mkdir rule (817be4f)
  • whats-next: prevent propose_roadmap context-window overflow on large repos (9b24819)
  • whole_improve_loop: commit the converged work (close the no-commit gap) (a564a5e), references #7
  • whole_improve_loop: commit_changes aborts when state file is gitignored (200d4d5), closes #12
  • whole_improve_loop: derive review_loop bound from chunk count (#12) (5660037)
  • whole_improve_loop: don't commit the bot's own state file (5d9cd15)
  • whole-improve-loop: forbid destructive git ops in the verify-build skill (487b0c1)
  • whole-improve-loop: forbid work-in-progress placeholder in the fixer; require self-verify (3be59a7)
  • whole-improve-loop: stop the fixer burning steps on a doomed verify (placeholder cause) (2f987b3)
  • wip (682b78b)
  • wip (9a806c2)
  • wip (513b9a3)
  • wip (347f6dd)
  • wip (72a326d)
  • wip (61bb93c)
  • workflow: add SKIPPED status (human-only) and fix parity calculation (ccda72f)
  • workflow: commit_namer uses git diff for unique messages (74a0171)
  • workflow: incremental checklist-based parity scanner (4d2ef14)
  • workflow: require judges to use ABSOLUTE paths from input.iterion_repo_path / input.claw_repo_path (1bb69e7)
  • workflow: require judges to USE tools before claiming filesystem state (db8026c)
  • workflow: skip fix_<family> when reviewer rejects with no concrete blockers (6cf6284)
  • workflow: tool commands use {{input.X}} not {{vars.X}} (substituter mismatch) (af5ca23)
  • workflow: use external script for parity_scan tool node (013ae20)
  • workflow: use vars.X_repo_path (judges have no input.X_repo_path field) (d3962dd)

Performance Improvements

  • code_review: short-circuit empty review diff (skip reviewers + emit) (a547a06)
  • conductor: v2 follow-ups — adapter batching, native cache, ws keepalive (c6a9fb9)
  • doc-align: skip LLM commit-prep when the review changed nothing (3144af3)
  • editor: avoid O(N^2) string growth in blobToBase64 (e9a91c9)
  • examples/secured-renovacy: determinize prepare_commit (agent → js tool) (eefa29c)
  • model: per-key sync.Once on Registry.Resolve (af5380f)
  • runview: raise MaxEventsPerPage 5000 → 25000 (ee71fe3)
  • sandbox: bind the host Go build + module caches so worktrees build warm (61f199b)
  • server/ws: batch replay events into one envelope per page (1c67325)
  • server/ws: enable per-message deflate on the editor WebSocket (28af7b8)
  • studio: memoize EventRow + LogLineRow + LogBlockRow (ad3724a)
  • taskfile: drop wails -clean and parallelise linux deb sub-builds (48520d7)

Reverts

  • Revert "fix(store): bound ResolveStoreDir walk-up to the git repo root" (9c2490a)
  • claude_code: drop ITERION_CLAUDE_CODE_MODEL Go-level override (7a01b02)