Skip to content

Epic: contract-complete control plane for CLI, web, desktop, and mobile #515

Description

@Kh1ng

Difficulty: hard
Risk: medium
Task class: product architecture

Problem

GAH's Rust CLI is the authoritative product, but apps/server exposes only a hand-maintained subset of commands and packages/contracts does not prove parity. The React web app and Tauri desktop wrapper therefore cannot configure or operate everything available through the CLI, and native/mobile clients have no stable complete API to consume.

Goal

Make every CLI capability discoverable through a typed, versioned control-plane contract, then consume one generated/shared client across web, desktop, installable mobile web, and native mobile shells.

Invariants

  • Rust CLI/backend semantics remain authoritative.
  • Remote clients never gain a policy bypass unavailable to the CLI.
  • Read and mutation APIs are separated; mutations are authenticated, authorized, idempotent where needed, and audited.
  • Secrets are write-only/redacted and never returned by APIs.
  • GitHub and GitLab profiles behave uniformly.
  • Web, desktop, and mobile share contracts, client code, and core UI rather than implementing separate products.
  • This parent is planning-only; only bounded children are dispatched.

Completion Criteria

  • CI maintains a command-to-API/client parity matrix and fails when a CLI capability lacks a declared remote disposition.
  • Shared clients can observe, configure, dispatch, review, recover, approve, update, and administer every supported CLI operation.
  • Web and desktop pass equivalent end-to-end suites.
  • Mobile has an installable remote-control surface; Android/iOS packaging has reproducible CI even when this Linux host cannot build iOS locally.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High: blocks unattended operation or wastes budgetarea:controllerDeterministic controller, actions, looparea:dashboardapps/web, apps/server, desktop, TUIepicMulti-ticket parentexec:owner-decisionOwner must decide direction firstrisk:mediumTouches shared state or policysafetyGuards autonomous merge/execution safety

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions