Cryptograss:Moods as Directories: Difference between revisions
Automated edit (via update-page on MediaWiki MCP Server) |
Automated edit (via update-page on MediaWiki MCP Server) |
||
| Line 18: | Line 18: | ||
* {{Bot_proposes|'''Step 3''': [https://github.com/cryptograss/maybelle-config/pull/257 maybelle-config#257], opened at block ~26,319,300, stacked on #256. <code>workbench</code> is in the inventory, and the router takes a Mood's slug (<code>ssh sshrouter@hunter chartifacts</code>). hunter's own tests now run in CI (50 tests, green). '''Approved by re''' (10:21Z). | * {{Bot_proposes|'''Step 3''': [https://github.com/cryptograss/maybelle-config/pull/257 maybelle-config#257], opened at block ~26,319,300, stacked on #256. <code>workbench</code> is in the inventory, and the router takes a Mood's slug (<code>ssh sshrouter@hunter chartifacts</code>). hunter's own tests now run in CI (50 tests, green). '''Approved by re''' (10:21Z). | ||
* '''Step 4''': [https://github.com/cryptograss/maybelle-config/pull/258 maybelle-config#258], opened at block ~26,319,330, stacked on #257. Each Mood directory gets ten ports in workbench, from 15000 up, kept in its <code>.previews</code> file. <code><slug><N>.hunter</code> reaches them through Caddy, pointed at workbench's address on magenta-net, with no published ports. Certificates are issued on demand, only for listed hostnames, which keeps us under Let's Encrypt's 50 a week. Checked with hunter's own Caddy 2.6.2. Waiting on re's review. | * '''Step 4''': [https://github.com/cryptograss/maybelle-config/pull/258 maybelle-config#258], opened at block ~26,319,330, stacked on #257. Each Mood directory gets ten ports in workbench, from 15000 up, kept in its <code>.previews</code> file. <code><slug><N>.hunter</code> reaches them through Caddy, pointed at workbench's address on magenta-net, with no published ports. Certificates are issued on demand, only for listed hostnames, which keeps us under Let's Encrypt's 50 a week. Checked with hunter's own Caddy 2.6.2. Waiting on re's review. | ||
* '''Step 5''': [https://github.com/cryptograss/maybelle-config/pull/259 maybelle-config#259], opened at block ~26,319,400, stacked on #258. uploads-and-embeds and docs-tests-qa are retired. Their workspaces fold whole into <code>/moods/<slug></code>, with each worktree's paths rewritten to <code>/moods/<slug>/</code>. Tried on a copy of uploads-and-embeds' real workspace: all 21 worktrees resolve, none prunable, and every uncommitted edit came along. justin-arthel's poller becomes magent's only one (<code>--only-poller yes</code>), so a mention in those Moods starts over from the record. CI green. Waiting on re's review. For now, people start previews in workbench, and magent through docker.sock. re and blu get keys of their own when they need them. | * '''Step 5''': [https://github.com/cryptograss/maybelle-config/pull/259 maybelle-config#259], opened at block ~26,319,400, stacked on #258. uploads-and-embeds and docs-tests-qa are retired. Their workspaces fold whole into <code>/moods/<slug></code>, with each worktree's paths rewritten to <code>/moods/<slug>/</code>. Tried on a copy of uploads-and-embeds' real workspace: all 21 worktrees resolve, none prunable, and every uncommitted edit came along. justin-arthel's poller becomes magent's only one (<code>--only-poller yes</code>), so a mention in those Moods starts over from the record. CI green. '''Approved by re''' (10:34Z), as was step 4. | ||
* '''Step 6''' (emergent-magent): not started. It moves magent's own home (11G) and poller, so it waits until Justin is around for the deploy. | |||
* '''Step 7''': [https://github.com/cryptograss/magenta/pull/346 magenta#346], opened at block ~26,319,420. A thread's ⇢ move opens a box with the four checkboxes. One call (<code>move-thread</code>) does them in order, all or nothing: <code>/incorporate</code> in the Mood it leaves, <code>/compact</code>, the move (a ⇢ line in the thread and in both Moods), <code>/incorporate</code> in the Mood it joins, and a post telling the thread where it now lives and where its worktrees go. No session moves. The suite passes (1570 tests), and the whole flow was tried in a browser. Waiting on re's review. For now, a thread's worktrees are moved by an agent with git, as the post asks; the poller doesn't move them itself. For now, people start previews in workbench, and magent through docker.sock. re and blu get keys of their own when they need them. | |||
* '''Open, for later''': people in workbench act as <code>magent</code> (re, 10:21Z). Giving each person a unix user there of their own is a later step. Until then, announce-ssh says who came in.|by=Magent}} | * '''Open, for later''': people in workbench act as <code>magent</code> (re, 10:21Z). Giving each person a unix user there of their own is a later step. Until then, announce-ssh says who came in.|by=Magent}} | ||
Revision as of 10:54, 1 November 2026
Moods own directories; agents own processes. This page tracks the build of that plan, step by step. The model itself is on Cryptograss:Mood Architecture: where the two disagree, that page wins on the model and this one on the steps. Justin and magent settled the plan in emergence on 1 Nov 2026, between 09:34Z and 09:59Z (blocks ~26,319,050–26,319,160). It replaced the on-demand Mood containers (magenta#343, maybelle-config#255, both closed), which had become a Rube Goldberg machine: a second poller in every Mood's box, handing Moods back and forth with the first.[unverified]
magent builds it. re reviews each step and keeps the model page.[unverified]
Steps
Each step is its own PR. re reviews it before Justin is asked to merge.[unverified]
- The shared directory (maybelle-config):
/opt/magenta/moodson hunter, themoodsgroup (gid 3000) and its default ACL, mounted at/moodsin every container, withsafe.directoryfor git. The hourly unpushed-work backup covers it.[unverified] - Turns start in the Mood's directory (magenta, poller): a new session starts in
/moods/<slug>, made on demand. A thread's turns start in the Mood it came from. Look-only turns may read/moods. Sessions that already exist keep their directory until they rotate, so nothing moves under a turn.[unverified] workbench(maybelle-config): the people's box. It has ssh, code-server and the preview ports, and mounts/moods. It has no docker.sock and no poller. The router sends every key there and takes a Mood's slug as its argument.[unverified]- Preview hostnames (maybelle-config, magenta):
<slug><N>.hunter→workbench, from a small job that reads the Mood list and rewrites Caddy's map when it changes. How agents start a preview inworkbenchis settled in this step.[unverified] - Fold in the Mood containers (maybelle-config): uploads-and-embeds and docs-tests-qa become directories under
/moods, and their containers are retired.[unverified] - emergent-magent (maybelle-config): magent's home and poller move out of justin-arthel. magent keeps the full docker.sock (Justin, 1 Nov 05:24Z). Then the personal containers are retired. These are the steps already on Cryptograss:Moods/emergence/todo.[unverified]
- Moving a thread to another Mood (magenta): the branch is fetched clone-to-clone on hunter's disk (unsaved edits are committed as wip first), and the worktree is made under the new Mood. No session moves. Four checkboxes: incorporate into the Mood it leaves, incorporate into the Mood it joins, compact, and tell the thread where it now lives.[unverified]
Progress
- Step 1: maybelle-config#256, opened at block ~26,319,180. The mechanism was tried in a throwaway container: magent and re, as separate users with umask 022, each committed in the other's clone and worktree, and
git gcran clean. Approved by re (10:16Z). Not merged or deployed.[unverified] - Step 2: magenta#345, opened at block ~26,319,240. The whole suite passes (1571 tests). Approved by re (10:16Z). Not merged or deployed; it needs #256 deployed first. After both, a line on Cryptograss:Moods/Instructions tells agents where a Mood's and a thread's work lives.[unverified]
- Step 3: maybelle-config#257, opened at block ~26,319,300, stacked on #256.
workbenchis in the inventory, and the router takes a Mood's slug (ssh sshrouter@hunter chartifacts). hunter's own tests now run in CI (50 tests, green). Approved by re (10:21Z). - Step 4: maybelle-config#258, opened at block ~26,319,330, stacked on #257. Each Mood directory gets ten ports in workbench, from 15000 up, kept in its
.previewsfile.<slug><N>.hunterreaches them through Caddy, pointed at workbench's address on magenta-net, with no published ports. Certificates are issued on demand, only for listed hostnames, which keeps us under Let's Encrypt's 50 a week. Checked with hunter's own Caddy 2.6.2. Waiting on re's review. - Step 5: maybelle-config#259, opened at block ~26,319,400, stacked on #258. uploads-and-embeds and docs-tests-qa are retired. Their workspaces fold whole into
/moods/<slug>, with each worktree's paths rewritten to/moods/<slug>/. Tried on a copy of uploads-and-embeds' real workspace: all 21 worktrees resolve, none prunable, and every uncommitted edit came along. justin-arthel's poller becomes magent's only one (--only-poller yes), so a mention in those Moods starts over from the record. CI green. Approved by re (10:34Z), as was step 4. - Step 6 (emergent-magent): not started. It moves magent's own home (11G) and poller, so it waits until Justin is around for the deploy.
- Step 7: magenta#346, opened at block ~26,319,420. A thread's ⇢ move opens a box with the four checkboxes. One call (
move-thread) does them in order, all or nothing:/incorporatein the Mood it leaves,/compact, the move (a ⇢ line in the thread and in both Moods),/incorporatein the Mood it joins, and a post telling the thread where it now lives and where its worktrees go. No session moves. The suite passes (1570 tests), and the whole flow was tried in a browser. Waiting on re's review. For now, a thread's worktrees are moved by an agent with git, as the post asks; the poller doesn't move them itself. For now, people start previews in workbench, and magent through docker.sock. re and blu get keys of their own when they need them. - Open, for later: people in workbench act as
magent(re, 10:21Z). Giving each person a unix user there of their own is a later step. Until then, announce-ssh says who came in.[unverified]
Deploy: hunter, for each step (#256 first, then #345)[unverified]
Worked on by: magent, re, Justin, in emergence[unverified]