Mark Phase 3 (Spark Control) done; trim spec to live command contract
Shipped in Spark Control v0.21.0: status badge + Update/Restart/Stop-Start/Logs
tile. All three exit criteria confirmed. matrix-bridge needed no code change.
- AGENTS.md: Current state + ROADMAP Phase 3 -> DONE; Deploy switched scp -> git
pull (Update button); D10 stamped; new Infra fact for the Spark->Gitea path and
the load-bearing IdentitiesOnly ssh-config pin the Update button depends on.
- spark-control-integration.md: trimmed from dev spec to live contract (dropped
sudo -iu fallback and dev-side scaffolding; folded in direct-as-modelo, the
Gitea key gotcha, restart cadence, and the LAN-only HTTP API).
- README: dropped stale "pre-Phase 0" status; Setup reframed for a fresh install.
Deferred follow-up: badge reflects container liveness only, not Matrix
connectivity; HEALTHCHECK + {{.State.Health.Status}} is the matrix-bridge-side fix.
This commit is contained in:
@@ -9,8 +9,9 @@ Runs as a small **matrix-nio** bot in a Docker container on a DGX Spark; a zsh w
|
||||
Mac (`scripts/launch-claude.sh`) is the only piece that knows the Mac's environment. Routing
|
||||
is deterministic in v1 — the room you message in decides the repo (an explicit config map).
|
||||
|
||||
> Status: **scaffolded, pre–Phase 0.** No bot code yet. See `AGENTS.md` → `## Current state`
|
||||
> for the active milestone and `ROADMAP.md` for the phase plan.
|
||||
> Status: **live on the Spark — Phases 0–3 + headless "ask" mode shipped.** The bot runs in
|
||||
> 11 project rooms + an all-projects room, and is managed from the Spark Control dashboard. See
|
||||
> `AGENTS.md` → `## Current state` for details and `ROADMAP.md` for the phase plan.
|
||||
|
||||
## How it works (v1)
|
||||
|
||||
@@ -24,8 +25,8 @@ Matrix message in a project room
|
||||
|
||||
## Setup
|
||||
|
||||
_TODO — filled in as Phase 0 is proven:_ Matrix onboarding (Element + the existing Synapse
|
||||
homeserver, a bot user), the Mac wrapper, passwordless SSH from the Spark to the Mac, and the
|
||||
first room→repo mapping. Copy `config.example.toml` to `config.toml` (gitignored) and fill in
|
||||
real room IDs and repo paths. The original scoping docs (SPEC / DECISIONS / KICKOFF) hold the
|
||||
full background.
|
||||
The bot is live; this is the shape of a fresh install: Matrix onboarding (Element + the existing
|
||||
Synapse homeserver, a bot user), the Mac wrapper, passwordless SSH from the Spark to the Mac, and
|
||||
the room→repo mapping. Copy `config.example.toml` to `config.toml` (gitignored) and fill in real
|
||||
room IDs and repo paths. Deploy and day-2 ops (status / update / restart) run from the Spark
|
||||
Control dashboard — see `docs/spark-control-integration.md` for the command contract.
|
||||
|
||||
Reference in New Issue
Block a user