VersionControl:PRs/maybelle-config/257: Difference between revisions

From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
Jump to navigationJump to search
DrivingThatTrain (talk | contribs)
cryptograss/maybelle-config#257, as GitHub has it
 
DrivingThatTrain (talk | contribs)
cryptograss/maybelle-config#257, as GitHub has it
 
(One intermediate revision by the same user not shown)
Line 5: Line 5:
|url=https://github.com/cryptograss/maybelle-config/pull/257
|url=https://github.com/cryptograss/maybelle-config/pull/257
|author=magent-cryptograss
|author=magent-cryptograss
|state=open
|state=merged
|base=production
|base=production
|branch=workbench
|branch=workbench
|opened=2026-11-01 10:19:43
|opened=2026-11-01 10:19:43
|pushed=2026-11-01 10:19:39
|pushed=2026-11-01 10:19:39
|merged=
|merged=2026-11-01 14:29:13
|closed=
|closed=
|worked_on_by=magent, re, justin
|worked_on_by=magent, re, justin
Line 16: Line 16:
|deploy=hunter, after #256
|deploy=hunter, after #256
}}
}}
<pre class="pr-body">Step 3 of [Cryptograss:Moods as Directories](https://pickipedia.xyz/wiki/Cryptograss:Moods_as_Directories). The model is on [Cryptograss:Mood Architecture](https://pickipedia.xyz/wiki/Cryptograss:Mood_Architecture).
**Stacked on #256.** This branch carries #256's commit too, so merge #256 first. After that, this diff shrinks to step 3 alone.
**What it adds**
- **`workbench`** (inventory): the people's box. It mounts `/moods`, like every agent's container, and has a terminal, code-server and previews. It's a Mood-kind entry (`mood: workbench`), so it gets no docker.sock and no Postgres password. It runs no poller. Its keys are justin's, skyler's, rj's and fibonacci's. Its own ssh port is 2240, opened by the firewall like other Mood entries, for scp, rsync and VS Code Remote. Its previews are on `workbench0-9.hunter` (14100–14109) until step 4 routes previews by Mood.
- **The router takes a Mood's slug:**
  - `ssh sshrouter@hunter chartifacts` opens a shell in workbench, in `/moods/chartifacts`.
  - `ssh sshrouter@hunter chartifacts tmux` opens a tmux session named for the Mood, started there and shared by whoever joins it.
  - `ssh sshrouter@hunter workbench` opens a shell in workbench's home.
  - Only a plain slug whose directory exists counts. Anything else is still a command in your own container, as it was before.
- **Everyone with a key is routed:** to their own container while they have one, and to workbench otherwise. Before this, only people with their own container were routed.
- **hunter's tests run in CI.** A new `hunter` job runs container_startup, agent homes, the unpushed-work backup and the router: 50 tests. Before this, nothing ran them unless someone typed pytest.
**Tested:** `test_route_ssh.py` (6 new tests) renders `route-ssh` from its template against the real inventory and runs it with a stand-in `docker`. It covers a slug, a slug with tmux, workbench by name, your own container, no container of your own, and junk or injection attempts (`../etc`, `chartifacts; rm -rf /`), which fall through to the old behaviour. All 50 hunter tests pass locally.
**Not in this step:**
- People still land in their own container by default. That changes in step 6, when the personal containers are retired.
- People in workbench commit as magent, like in the Mood containers today, unless they set their own identity in a repo.
Deploy: hunter, after #256
Worked on by: magent, re, Justin, in #emergence</pre>

Latest revision as of 17:06, 9 November 2026

maybelle-config#257: hunter: workbench, the people's box; the router takes a Mood's slug (Moods as Directories, step 3)
State 🟣 merged 2026-11-01 14:29:13
Worked on by magent, re, justin
Moods #emergence
Deploy hunter, after #256
Branch workbench → production, by magent-cryptograss
Opened · last pushed 2026-11-01 10:19:43 · 2026-11-01 10:19:39
Step 3 of [Cryptograss:Moods as Directories](https://pickipedia.xyz/wiki/Cryptograss:Moods_as_Directories). The model is on [Cryptograss:Mood Architecture](https://pickipedia.xyz/wiki/Cryptograss:Mood_Architecture).

**Stacked on #256.** This branch carries #256's commit too, so merge #256 first. After that, this diff shrinks to step 3 alone.

**What it adds**
- **`workbench`** (inventory): the people's box. It mounts `/moods`, like every agent's container, and has a terminal, code-server and previews. It's a Mood-kind entry (`mood: workbench`), so it gets no docker.sock and no Postgres password. It runs no poller. Its keys are justin's, skyler's, rj's and fibonacci's. Its own ssh port is 2240, opened by the firewall like other Mood entries, for scp, rsync and VS Code Remote. Its previews are on `workbench0-9.hunter` (14100–14109) until step 4 routes previews by Mood.
- **The router takes a Mood's slug:**
  - `ssh sshrouter@hunter chartifacts` opens a shell in workbench, in `/moods/chartifacts`.
  - `ssh sshrouter@hunter chartifacts tmux` opens a tmux session named for the Mood, started there and shared by whoever joins it.
  - `ssh sshrouter@hunter workbench` opens a shell in workbench's home.
  - Only a plain slug whose directory exists counts. Anything else is still a command in your own container, as it was before.
- **Everyone with a key is routed:** to their own container while they have one, and to workbench otherwise. Before this, only people with their own container were routed.
- **hunter's tests run in CI.** A new `hunter` job runs container_startup, agent homes, the unpushed-work backup and the router: 50 tests. Before this, nothing ran them unless someone typed pytest.

**Tested:** `test_route_ssh.py` (6 new tests) renders `route-ssh` from its template against the real inventory and runs it with a stand-in `docker`. It covers a slug, a slug with tmux, workbench by name, your own container, no container of your own, and junk or injection attempts (`../etc`, `chartifacts; rm -rf /`), which fall through to the old behaviour. All 50 hunter tests pass locally.

**Not in this step:**
- People still land in their own container by default. That changes in step 6, when the personal containers are retired.
- People in workbench commit as magent, like in the Mood containers today, unless they set their own identity in a repo.

Deploy: hunter, after #256
Worked on by: magent, re, Justin, in #emergence