epic: workspace, toolchain and CI gate #1

Closed
opened 2026-09-15 12:34:39 +00:00 by grenade · 2 comments
Owner

Goal

A repository where every commit is gated the same way on every machine: the cargo workspace in the house shape (~/git/architecture/generic.md §1), a Tauri 2 shell with a strict IPC boundary, a Vite + React webview, and a Gitea Actions workflow that runs format, lint-as-error, tests and the webview build on the rust-gtk3 runner.

Why first

Everything else lands as a child of some epic through this gate. Type drift between Rust and TypeScript, an accidental allow-all capability, or a clippy warning that becomes a habit are all cheapest to prevent on day one.

Operator-owned decisions

  • Webview framework: React (house convention) rather than Svelte (monsoon). Decided: React.
  • Isolation pattern on from the start, even though it costs a second HTML entry. Decided: yes.

Definition of done

A push to main runs the workflow green on the self-hosted runner; a deliberate clippy warning, a hand-edited generated type, or a capability file granting a plugin permission without a description each turn it red. cargo tauri dev opens a window on Fedora that shows the workspace version obtained through a Tauri command.

## Goal A repository where every commit is gated the same way on every machine: the cargo workspace in the house shape (`~/git/architecture/generic.md` §1), a Tauri 2 shell with a strict IPC boundary, a Vite + React webview, and a Gitea Actions workflow that runs format, lint-as-error, tests and the webview build on the `rust-gtk3` runner. ## Why first Everything else lands as a child of some epic through this gate. Type drift between Rust and TypeScript, an accidental `allow-all` capability, or a clippy warning that becomes a habit are all cheapest to prevent on day one. ## Operator-owned decisions - Webview framework: React (house convention) rather than Svelte (monsoon). **Decided: React.** - Isolation pattern on from the start, even though it costs a second HTML entry. **Decided: yes.** ## Definition of done A push to `main` runs the workflow green on the self-hosted runner; a deliberate clippy warning, a hand-edited generated type, or a capability file granting a plugin permission without a description each turn it red. `cargo tauri dev` opens a window on Fedora that shows the workspace version obtained through a Tauri command.
grenade added the epic label 2026-09-15 12:38:40 +00:00
Author
Owner

Children, in dependency order: #11 (isolation and capabilities), #12 (CI green on rust-gtk3), #13 (typed command client). The scaffold commit on main is the starting point for all three.

Children, in dependency order: #11 (isolation and capabilities), #12 (CI green on rust-gtk3), #13 (typed command client). The scaffold commit on `main` is the starting point for all three.
Author
Owner

Done. #11, #12 and #13 are closed by commits on main; the definition of done holds: every push runs the gate on rust-gtk3 (first green run 4 min 24 s), a hand-edited generated type went red on PR #64's drift step, a clippy warning fails under -D warnings, the isolation pattern is on with a commented TOML capability file whose test refuses an undescribed permission, and cargo tauri dev shows a version that crossed the boundary as a typed struct. Not done and deliberately deferred: sccache, until wall clock costs a session.

Done. #11, #12 and #13 are closed by commits on `main`; the definition of done holds: every push runs the gate on `rust-gtk3` (first green run 4 min 24 s), a hand-edited generated type went red on PR #64's drift step, a clippy warning fails under `-D warnings`, the isolation pattern is on with a commented TOML capability file whose test refuses an undescribed permission, and `cargo tauri dev` shows a version that crossed the boundary as a typed struct. Not done and deliberately deferred: sccache, until wall clock costs a session.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: blackbeard/wallet#1