# Changelog All notable changes to `chain_studio` recorded here. Pubspec version + `kStudioVersion` in `lib/main.dart` stay in lockstep. ## Unreleased ### Added - **Live audit feed.** The Audit page subscribes to `streamEvents` and refreshes instantly on each new event (debounced); the 2 s poll stays as the safety net and re-subscribes after a clean stream close. - **Channel switcher in the sidebar.** The active-channel pill (and the collapsed chip) is now click-to-switch: a menu of every channel with its running state + a check on the active one; switching writes `~/.chain/current-channel`, restarts that channel's daemon, and Studio repoints to it. - **Module-store manager is prominent + bilingual.** The store page gains a labelled "Add store" button (was a bare icon) opening a fully localized dialog: configured stores, a curated **Suggested stores** shelf with one-click add/remove (probed for reachability — shows "not available yet" until a store's index is published), and an optional per-store **pinned public key** field. - **Approval payload clarity.** The approval card always shows the payload section: a present payload scrolls inside a height-capped copyable box; an absent one explains that the flow's approval step chooses what to surface via its `show:` field. ### Fixed - **Errors are copyable everywhere.** System-AI test-connection, the Settings dialog, and the Audit status bar rendered failures as non-copyable text; all now route through `ChainErrorBox` / `SelectableText`. - **Filter dialog crash** on the store page — a `Spacer` inside `AlertDialog.actions` (an `OverflowBar`, not a Flex) threw; the buttons now sit in a `Row`. - **Welcome docs grid** tidied into equal-height paired rows. - **Approval card** leads with the human prompt; the `flow › step` id is demoted to a metadata line. - **Pulsing sidebar connection dot** restored when connected. ## 0.70.0 — 2026-06-13 ### Added - **Federation panel.** A new "Föderation" destination shows the satellites connected to this hub (name, region, version, wire version, advertised capabilities) and adds them in one step: press **Add satellite**, name it, and the hub issues a single-use bootstrap token bundled with its CA as a ready-to-paste satellite config — the bundled CA makes the satellite's first connect tamper-proof. Localized (EN + DE) with an in-app help doc. Backed by new `HubClient.listSatellites` / `issueBootstrapToken` in the Dart SDK. ## 0.68.0 — 2026-06-09 ### Added - **Inline approval driver**. `StudioFlowRunDriver` implements the three new methods the editor 0.21.0 introduced (`pendingApprovalIdForStep`, `approveApproval`, `rejectApproval`) — all delegate to the existing `HubService` approvals RPCs. End result: the Run tab now hosts a complete Approve / Reject form inline, removing the tab-switch detour to the standalone Approvals page. ## 0.67.0 — 2026-06-09 ### Added - **Inline help icons** in the Approvals, Audit, and Doctor app-bars open the matching bundled doc in the existing bottom-sheet reader via the new public helper `showFaiDoc(BuildContext, slug)` exported from `welcome.dart`. - **New `assets/docs/approvals.md`** (+ `_de.md`) explains the approval concept end-to-end with a YAML example. - **friendlyError hub-pattern matching**. Six hub-specific failure shapes (approval rejected / timed out, output too large, host service not declared, missing value reference, MCP unreachable) get specific localised headlines + hints before falling through to the gRPC-code default. Five new test cases pin the matchers. ### Changed - **Settings dialog sidebar fully localised** (Allgemein / Darstellung / System-KI / Integrationen / Sicherheit / Wartung). Per-panel titles + descriptions also. - **Daemon action labels localised**: `enable autostart`, `disable autostart`, restart / start / stop / status + the OK / Failed result line. ## 0.66.0 — 2026-06-08 ### Added - **Add-module-source dialog** for private modules that aren't in the public store. Asks for URL or local `.fai` bundle path; carries an explainer block + `chain install --link` example. - **Store catalogue** passed to the flow editor so the analyzer can decide between Install (in store) and Add source (not in store). ## 0.65.x - Editor 0.18.0 pickup; analyzer-error block on Run; diagnostic strip persistence across tabs. ## 0.64.0 — 2026-06-08 ### Added - **Flow editor quick-fix install handler**. `_onInstallCapability` wires the editor's "Install " button to `HubService.installModule` and refreshes the capability list on success. ## 0.63.0 — 2026-06-04 ### Changed - **Settings dialog refactored** from one 800-line vertical scroll into a macOS-style sidebar with six categories. ## 0.62.x — 2026-06-03 ### Added - **`FaiLog` + central error helpers** (`showFaiErrorSnack`, `showFaiErrorDialog`). - **Inline `FaiLogViewer`** modal for tail-viewing log files. - **Today CTAs** in the Store carousel actually re-run search after a `filterCategory` / `runQuery` story. ## 0.61.x and earlier See git log.