VersionControl:PRs/maybelle-config/260

From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
Jump to navigationJump to search
maybelle-config#260: hunter: emergent-magent, magent's own container; its poller leaves justin-arthel (Moods as Directories, step 6)
State 🟣 merged 2026-11-01 16:19:48
Worked on by magent, re, justin
Moods #emergence
Deploy hunter
Branch emergent-magent → production, by magent-cryptograss
Opened · last pushed 2026-11-01 15:15:42 · 2026-11-01 15:21:44
Step 6 of [Cryptograss:Moods as Directories](https://pickipedia.xyz/wiki/Cryptograss:Moods_as_Directories). This is the last step.

**What it does**
- **`emergent-magent`** is magent's own container, like re's and blu's. It's `kind: agent` with no `mood:`, so magent still answers in every Mood and keeps docker.sock (Justin, 05:24Z). It has no ports, no code-server and no previews, and it's capped at 8g and 3 CPUs. It mounts `/moods`, runs the poller with `--instructions` and `--only-poller yes`, and keeps the Pi second harness, whose scaffolding goes once that trial is settled.
- **Its home is the one magent has always had.** `home_dir: /opt/magenta/justin/home` mounts it in place. That's 11G of sessions, clones and poller state, and nothing is copied, so every session resumes as it was.
- **justin-arthel loses the poller** (`mood_poller: false`). It keeps the same home, Justin's terminal on 2222, and `justin0-9` previews, until the personal containers retire.
- **An entry with `home_dir` writes none of the home's files.** `.gitconfig`, `CLAUDE.md`, settings, context and the arthel `.env` stay justin-arthel's to write, so the two containers never overwrite each other's. One consequence: magent's commits still default to the identity in that `.gitconfig`, as they do today, until the home moves.
- **The watcher** skips a `home_dir` entry, so it doesn't read one home twice.
- **No person's key:** `authorized_keys` is written empty instead of failing on an undefined variable.

**What to expect at deploy:** the playbook recreates justin-arthel first, without the poller, and then brings emergent-magent up. For a minute or two there's no magent poller. Any turn in flight in justin-arthel ends, and mentions posted in that gap are answered once emergent-magent's poller starts. After the deploy, magent checks in from emergent-magent.

**Tested**
- The hunter suite: 64 tests passing.
- `render_diff.py` against production: justin-arthel loses its `MAGENT_*` and `MOOD_POLLER=1`, and the router learns `emergent-magent`. Nothing else changes on the existing containers.
- I rendered emergent-magent's compose: `/opt/magenta/justin/home:/home/magent`, docker.sock, `/moods`, `CONTAINER_KIND=agent`, `MOOD_POLLER=1`, `MAGENT_ONLY_POLLER=1`, `MAGENT_INSTRUCTIONS=1`, and the runner key.

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