Skip to content

feat(desktop): Runtime identity/context panel (ADR #19) - #24

Closed
brettchien wants to merge 1 commit into
mainfrom
feat/desktop-identity-panel
Closed

feat(desktop): Runtime identity/context panel (ADR #19)#24
brettchien wants to merge 1 commit into
mainfrom
feat/desktop-identity-panel

Conversation

@brettchien

Copy link
Copy Markdown
Contributor

Drafted by Orca (ecs-claude) — flagging authorship (shared GitHub identity).

The desktop panel the ADR #19 read model was built for — surfaces "who am I managing this cluster as, against what account?" in the Studio skin. Follows the merged CP/MCP slices (#20/#21/#23).

What:

  • src-tauri — a runtime_context bridge command (mirrors deploy_list) that calls the bundled oab-mcp sidecar's runtime_context tool.
  • consoleRuntimeContext view-model + a Source method (Tauri bridge + Mock fixture); a pure identityHtml renderer showing principal / account / region / source / binding, a role-vs-static-user kind badge, and an IdentityMismatch highlight (red left-border + ⚠ … expected <arn>) when the resolved principal fails the binding's expected_principal. Fetched once on boot (identity changes rarely; each call is a live STS lookup server-side); the browser build renders from a fixture.

Effect: today's deploy_list incident would render as a red panel — user/brett.chien (kind user) in 916371022086, identity mismatch — expected …:role/openab-orca-task-role.

Verification (local, since desktop CI runs tsc && vite build but not vitest):

  • tsc --noEmit clean · vitest 14/14 (6 new identity tests) · vite build OK.
  • The Rust bridge is a small mirror of deploy_list; desktop.yml compile-linux compiles it.

Screenshots to follow once a desktop build is bundled. Relates to #19.

🤖 Generated with Claude Code

Surfaces "who am I managing this cluster as, against what account" in the Studio
desktop skin — the visible panel the ADR's read model was built for.

- src-tauri: `runtime_context` bridge command (mirrors deploy_list) → oab-mcp's
  runtime_context tool.
- console: `RuntimeContext` view-model + Source method (Tauri + Mock); a pure
  `identityHtml` renderer showing principal / account / region / source / binding,
  with a role-vs-static-user kind badge and an IdentityMismatch highlight when
  the resolved principal fails the binding's expected_principal. Fetched once on
  boot; browser build uses a fixture. 6 new render tests.

Verified locally: tsc --noEmit clean, vitest 14/14, vite build OK. The Rust
bridge compiles via desktop.yml (compile-linux).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@brettchien
brettchien marked this pull request as ready for review August 13, 2026 14:39
@brettchien brettchien closed this Aug 13, 2026
@brettchien
brettchien deleted the feat/desktop-identity-panel branch August 13, 2026 14:39
@brettchien

Copy link
Copy Markdown
Contributor Author

Merged to main as 82a9689 (squash, all 9 files). GitHub's API was returning 502s during the merge — the squash commit landed on main but the PR's merged flag didn't flip, and the head-branch deletion then marked this PR closed rather than merged. The change is fully on main; this is a metadata artifact of the outage, not an abandoned PR.

smallgun01 pushed a commit to smallgun01/studio that referenced this pull request Aug 13, 2026
…nabdev#24)

Surfaces "who am I managing this cluster as, against what account" in the Studio
desktop skin — the visible panel the ADR's read model was built for.

- src-tauri: `runtime_context` bridge command (mirrors deploy_list) → oab-mcp's
  runtime_context tool.
- console: `RuntimeContext` view-model + Source method (Tauri + Mock); a pure
  `identityHtml` renderer showing principal / account / region / source / binding,
  with a role-vs-static-user kind badge and an IdentityMismatch highlight when
  the resolved principal fails the binding's expected_principal. Fetched once on
  boot; browser build uses a fixture. 6 new render tests.

Verified locally: tsc --noEmit clean, vitest 14/14, vite build OK. The Rust
bridge compiles via desktop.yml (compile-linux).

Co-authored-by: Orca (ecs-claude) <orca@ecs.local>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant