chain-studio/lib/data
flemming-it b7468dc7ec
Some checks failed
Security / Security check (push) Failing after 1s
feat: sealed-area connection switch + identity bar (multi-project stage 3)
The workspace switcher now lists the operator's sealed areas (read from
~/.chain/sealed/ manifests, the same source the CLI uses) below the
shared projects, each with a lock icon and a running/stopped status.
Selecting one is a real connection switch: Studio reconnects its hub
client to the area's own port with a full state reload — one window,
one truth. A stopped area is started first (chain project start) with a
visible notice; a failure surfaces as a copyable error and rolls back to
the shared hub.

While in a sealed area an identity bar under the AppBar is painted in
the area's accent colour and names it, with a one-click Leave back to
the shared hub. The area colour is marking, not theming — Studio's blue
stays the app accent. Selecting a shared project from inside an area
switches the connection back first. The sealed connection is never
persisted across restarts.

New: SealedAreaService (manifest + PID discovery), Workspace sealed
switch logic, ChainSealedIdentityBar, SystemActions.chainProjectStart.
l10n DE+EN. flutter analyze clean; 33 tests green (switcher lists sealed
with lock+status, pill shows active area, identity bar renders in the
area colour). Runtime plumbing (discovery, start, endpoint, reach)
verified headlessly against real sealed instances under a redirected
HOME; the identity-bar screenshot is deferred (display click-automation
failed after sleep on the shared desktop — an environment issue, not a
code gap; the visible components are widget-tested).

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
2026-07-12 17:31:39 +02:00
..
chain_log.dart fix(approvals,l10n,theme): usertest findings — localized prompts, no-data confirm, .chain log path, honest wording, AA contrast 2026-07-11 02:38:24 +02:00
error_presentation.dart refactor: FaiError -> ChainError (SDK stub rename lockstep) 2026-07-11 23:14:33 +02:00
flow_output.dart refactor: rename app fai_studio -> chain_studio 2026-06-16 17:48:11 +02:00
flow_run_driver.dart feat: workspace switcher, per-project filters and run stamping (stage 1) 2026-07-12 13:49:51 +02:00
format.dart feat(studio): typed flow outputs + on-disk docs + UX polish 2026-05-25 11:17:58 +02:00
friendly_error.dart fix(studio): show real download error, not 'hub not reachable' 2026-06-22 00:50:21 +02:00
hub.dart feat: detached-runs monitor page (T3 parity) 2026-07-12 14:43:37 +02:00
hub_auth_token.dart fix(studio): chain config dir + spawn path + doc URLs 2026-06-16 09:38:30 +02:00
registry_token.dart refactor: rename internal Fai* design system + fai_ helpers to chain 2026-06-16 17:53:17 +02:00
sealed_areas.dart feat: sealed-area connection switch + identity bar (multi-project stage 3) 2026-07-12 17:31:39 +02:00
system_actions.dart feat: sealed-area connection switch + identity bar (multi-project stage 3) 2026-07-12 17:31:39 +02:00
theme_plugin.dart refactor: rename internal Fai* design system + fai_ helpers to chain 2026-06-16 17:53:17 +02:00
today_story_loader.dart fix(studio): chain config dir + spawn path + doc URLs 2026-06-16 09:38:30 +02:00
workspace.dart feat: sealed-area connection switch + identity bar (multi-project stage 3) 2026-07-12 17:31:39 +02:00