Skip to content

feat(desktop): Tauri shell + deploy_list bridge (ADR-3 slice-2) - #8

Merged
brettchien merged 3 commits into
mainfrom
feat/console-slice2
Aug 9, 2026
Merged

feat(desktop): Tauri shell + deploy_list bridge (ADR-3 slice-2)#8
brettchien merged 3 commits into
mainfrom
feat/console-slice2

Conversation

@brettchien

Copy link
Copy Markdown
Contributor

Console slice-2: the Tauri desktop shell (macOS/Windows) over the studio-cp core. Stacked on #2 (needs studio-cp) + builds on the slice-1 web skin (#6).

What it adds

  • src-tauri/ — Tauri v2 app (scaffolded via the official CLI, so the boilerplate is correct), customized with an async deploy_list command that bridges to studio-cp::observe_services/observe_deployment and returns the console's Deployment[] shape. withGlobalTauri on, so the slice-1 TauriSource (window.__TAURI__.core.invoke) drives it with zero UI changeMockSource → real core.
  • src-tauri is its own [workspace] so the aws-heavy desktop build stays out of the root cargo build --workspace / CI.
  • .github/workflows/desktop.ymlstage 1: Linux compile-validation of the Tauri app. macOS/Windows bundling + the ADR-4 updater/release pipeline are deliberate follow-ons once compile is green.

Verification reality: the authoring box can't build this (aws-sdk-ec2 > RAM, headless, wrong OS). Locally verified only: tauri configs valid, deploy_list registered, console still typechecks. The Rust bridge is CI-gated — desktop.yml is its first real compile.

Deferred (need decisions): macOS/Windows bundle matrix; private-only distribution mechanism (S3 vs private repo, ADR-4 §6); OS code-signing.

Draft.

…ice-1)

A framework-light TypeScript web console: renders the deployment roster with
each instance's canonical 6-state and ready/desired/current, refreshed by
polling a Source. MockSource (fixtures) drives the standalone/browser build;
TauriSource (desktop, slice-2) bridges to studio-cp via the Tauri global.

Verified locally: tsc --noEmit clean, 8 vitest tests (rosterHtml), vite build
produces a standalone dist/index.html. No core needed to run with mocks.
Scaffolds the desktop console (macOS/Windows) via the Tauri CLI (correct v2
boilerplate), then customizes:
- src-tauri/src/lib.rs: async `deploy_list` command bridging to
  studio-cp::observe_services/observe_deployment, returning the console's
  Deployment[] wire shape.
- Cargo.toml: studio-cp + aws-config deps; own [workspace] so the aws-heavy
  desktop build stays out of the root workspace/CI.
- tauri.conf.json: withGlobalTauri (console's TauriSource uses the global
  bridge), identifier dev.openab.studio, empty beforeBuildCommand (CI builds
  the web skin explicitly).
- CI: desktop.yml — Linux compile-validation of the Tauri app first; the
  macOS/Windows bundle matrix + updater/release (ADR-4) are follow-ons.

Compile-blind + headless locally; desktop CI is the gate.
Adds a bundle-macos job on GitHub's free macOS runner (public repo): builds
the web skin, installs the Tauri CLI, tauri build → uploads the .dmg/.app as
an artifact. Unsigned for now (Gatekeeper bypass on first open); universal +
signing + updater are ADR-4 follow-ons.
@brettchien
brettchien changed the base branch from feat/agent-lifecycle-core to main August 9, 2026 15:29
@brettchien
brettchien force-pushed the feat/console-slice2 branch from 2170373 to 8714618 Compare August 9, 2026 15:29
@brettchien
brettchien marked this pull request as ready for review August 9, 2026 15:29
@brettchien
brettchien merged commit 7ef134a into main Aug 9, 2026
3 checks passed
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