Skip to content

docs(adr): Studio desktop console — swappable skin over an MCP core - #5

Draft
brettchien wants to merge 3 commits into
mainfrom
docs/desktop-console
Draft

docs(adr): Studio desktop console — swappable skin over an MCP core#5
brettchien wants to merge 3 commits into
mainfrom
docs/desktop-console

Conversation

@brettchien

@brettchien brettchien commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

ADR-3. GUI architecture from the thread with Brett.

Scope now: macOS + Windows desktop. iOS kept as a future option, not a driver.

Core decision: skin ↔ core boundary = the existing oab-mcp MCP surface. Desktop runs the core locally over stdio (creds via the standard AWS chain) — streamable-HTTP is deferred until browser/iOS land.

Choices (decided in-thread):

  • Interim skin = Tauri web front-end covering macOS + Windows from one build; Rust backend = thin bridge; doubles as a browser console later.
  • macOS native later = SwiftUI; Windows-native open (may stay on the web skin).
  • iOS later = thin client to a remote core over MCP-over-HTTP (device holds no creds).
  • Contract = MCP protocol, not Rust FFI (kept as a later native optimization).
  • Live updates = polling first; streaming later.

Open questions (§6): per-caller authz, deferred iOS/browser + remote-core hosting, Windows-native decision, streaming.

Draft — for review/wording pass before Accepted.

Proposes the GUI architecture: skin<->core boundary is the existing oab-mcp
surface (stdio local + streamable-HTTP remote), a Tauri web skin as the
throwaway interim front-end (Rust backend = thin bridge), SwiftUI native
skins later on macOS/iOS, and polling-first live updates. Builds on ADR-1/2.
Desktop (macOS/Windows) runs the core locally over stdio, so streamable-HTTP
and remote-core hosting are deferred to when browser/iOS land. Tauri covers
both desktop platforms now; macOS goes SwiftUI later, Windows-native open.
…ide creds

- 'from one build' → one codebase built per-platform (Tauri can't cross-compile)
- scope the 'credentials stay server-side' driver to the remote/mobile path;
  the desktop-now path resolves AWS creds on-device (§3.2)
- normalize MCP-over-HTTP → streamable-HTTP

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