# Changelog The SDK version tracks the platform release that shipped the matching wire surface; see the platform repo's `CHANGELOG.md` for the authoritative per-release detail. ## Unreleased - Regenerated stubs: `FlowSummary.sample` (wire field 6) — true when a saved flow still carries the bundled-sample header. Old hubs without the field decode to false, so clients can mark and group examples honestly. - `declareService()` — persist a host service into the operator config via the new DeclareService RPC (returns restartRequired). - Regenerated stubs: `StoreEntry.maintainers` (maintainer display strings from the store index). - Regenerated stubs for the trust/exposure proto additions: `StoreEntry.installVerification` (pinned-key / trusted-publishers / unverified / blocked / federated), `StoreSource.keyPinned`, `ListStoresResponse.requireSignatures` / `trustedPublisherCount`, `DeclaredService.exposure` (loopback/private/public/unknown). - New `listStoresFull()` returning the full response incl. the policy snapshot; `listStores()` unchanged. - `InvocationList.detachedEnabled`: whether the operator enabled detached invocations — monitor UIs can distinguish "feature off" from "on, but no runs yet". Regenerated stubs. - `planSetup()`: guided-setup plan preview over the hub connection (the new `PlanSetup` HubAdmin RPC) — returns the assembled plan (scenario, steps, config keys) without spawning the `chain` CLI. Regenerated stubs. - `AuthStatusResponse.reloadRequired`: true when the hub's on-disk auth config (or the env vars it references) no longer matches the validator it enforces — a `ReloadAuth` is pending. `anonymousAllowed` now reflects the LIVE enforcement state. Regenerated stubs; hand-written dartdoc destaled from the pre-rename `~/.fai` paths and `.fai` bundle extension. - Detached-runs monitor: `listInvocations()` returns every tracked detached invocation (newest-first) with id, phase, current step, timestamps, error, flow name and project — backs Studio's detached-runs list. Regenerated stubs. - Projects on the wire (Studio multi-project stage ①): `listProjects()` returns the shared hub's registry (`general` first; sealed areas never appear — they are their own hub instance); `eventLog`, `streamEvents` and `listApprovals` take an optional `project:` filter; `LoggedEvent`, `PendingApprovalEntry` and `FlowSummary` carry `project`. Regenerated stubs from the platform's `hub.proto`. ## 0.18.x (current) - Full Hub + HubAdmin coverage: `submit` (incl. `detach:`), `submitStreaming`, `runSavedFlow` (text/bytes/json inputs), detached invocation status/result/cancel, saved flows, store + module management, audit (`eventLog`, `streamEvents`, `verifyEventChain`), approvals, federation admin (`listSatellites`, `issueBootstrapToken`, `revokeSatellite`), MCP/n8n endpoint management, System-AI administration. - Bearer-token auth via `HubClient(authToken:)`. - Native gRPC + gRPC-Web transports (conditional import). - Generated bindings for the renamed `chain.v1` wire package. ## Earlier - 0.x line grew alongside the platform (package started as a scaffold named `fai_client_sdk`, renamed to `chain_client_sdk` in the product rename, 2026-06).