Skip to content

v3.8.2

Choose a tag to compare

@chernistry chernistry released this 20 Jul 07:53
1356714

v3.8.2

Patch release: the local dashboard now authenticates its own browser, the startup banner is restored, --idle runs actually stay on the mock adapter, and a duplicated startup notice is quieted. All four were surfaced by an end-to-end run of the released 3.8.1 build.

Fixed

  • The local dashboard authenticates its own browser on loopback serve (#2739). On bernstein gui serve bound to loopback with dashboard auth configured but BERNSTEIN_AUTH_TOKEN unset, the UI shell loaded but every data panel returned 401: the panels poll the general API, which accepts only the process bearer, while a scoped dashboard token unlocks only the dashboard routes. The local serve path now mints an ephemeral operator bearer, exports it before the app is built so the general API accepts it, and seeds the same token into the opened browser, so the panels load with no operator steps. A non-loopback bind never auto-mints and still refuses without configured auth; an operator-supplied token is reused verbatim; the token rides only the browser URL fragment, never the console or access log.
  • The startup banner is restored on program load (#2740). Two coupled defects had removed the recognisable ASCII wordmark. First, the bare bernstein invocation suppressed its fallback box banner even when the splash was disabled, so with visual.splash: false or BERNSTEIN_NO_SPLASH=1 no banner showed at all; the fallback now prints whenever the splash renders nothing. Second, the block-art logo only rendered in colour-capable terminals on the bare invocation, so plain terminals and every bernstein run fell back to a one-liner; the compact splash now draws the block-art wordmark on any interactive terminal wide enough to hold it, and the bernstein run startup banner is routed through it. Non-interactive output (CI, pipes) keeps the terse form.
  • bernstein run --idle stays on the mock adapter (#2741). The orchestrator subprocess overrode the explicit adapter with the seed's cli field, and since cli defaults to auto, any workspace with a bernstein.yaml silently discarded the mock override that --idle sets. Idle runs then spawned real coding agents, which failed provider authentication, tripped the adapter health monitor, and left every task failed. An explicit --adapter or BERNSTEIN_ADAPTER choice now takes precedence over the seed cli, mirroring the existing model-resolution rule; the seed value is used only when no adapter was passed explicitly.
  • The internal-LLM preflight notice is emitted once and reworded (#2742). The hint was logged on every seed construction, and the seed is parsed twice during gui serve, so operators saw it twice per process. It is now emitted at most once per process, and the wording states the fact and both remedies without alarmist phrasing.