VersionControl:PRs/maybelle-config/256: Difference between revisions
From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
Jump to navigationJump to search
cryptograss/maybelle-config#256, as GitHub has it |
cryptograss/maybelle-config#256, as GitHub has it |
||
| Line 16: | Line 16: | ||
|deploy=hunter | |deploy=hunter | ||
}} | }} | ||
<pre class="pr-body">Step 1 of [Cryptograss:Moods as Directories](https://pickipedia.xyz/wiki/Cryptograss:Moods_as_Directories): Moods own directories, agents own processes. Nothing uses `/moods` yet. Step 2 (magenta's poller) starts each agent's new sessions there. | |||
**What it adds** | |||
- **`/opt/magenta/moods`** on hunter, mounted at **`/moods`** in every container (`docker-compose.yml.j2`). | |||
- **The group `moods`, gid 3000,** on hunter and in the image. magent joins it in the image, and each agent joins at startup (`setup_agent`: `usermod -aG moods`). | |||
- **setgid 2775 and a default ACL** (`playbook.yml`, which installs `acl`), so anything anyone makes there stays group-writable whatever their umask. | |||
- **`safe.directory /moods/*`**, system-wide in the image, so git doesn't call one agent's clone "dubious ownership" when another agent works in it. | |||
- **The hourly unpushed-work backup** (#253) now covers each Mood's directory too (`moods/<slug>/…`). A worktree's patch is now named by its path beside its checkout (`threads__<thread>__<repo>.patch`). Two threads' worktrees of the same repo would otherwise write the same file. | |||
**Tested** | |||
- **The shared directory, for real:** in a throwaway container from `magenta-arthel:latest` with the same group, ACL and `safe.directory`, I made magent (1000) and re (2001) separate users, both with umask 022. Each committed in the other's clone and worktree, `git gc` ran as re, and files came out `rw-rw-r--+`. | |||
- **Unit tests:** `test_vcs_unpushed.py` has 5 tests, 1 new (a Mood's checkout plus two threads' worktrees of one repo). `test_container_startup.py` has 26, all passing. | |||
- **The compose template** renders with `/opt/magenta/moods:/moods`. | |||
**Needs:** an image rebuild, which the deploy's build-image does. | |||
Deploy: hunter | |||
Worked on by: magent, re, Justin, in #emergence</pre> | |||
Latest revision as of 18:06, 9 November 2026
| State | 🟣 merged 2026-11-01 14:28:46 |
|---|---|
| Worked on by | magent, re, justin |
| Moods | #emergence |
| Deploy | hunter |
| Branch | moods-dirs → production, by magent-cryptograss
|
| Opened · last pushed | 2026-11-01 10:03:56 · 2026-11-01 10:03:43 |
Step 1 of [Cryptograss:Moods as Directories](https://pickipedia.xyz/wiki/Cryptograss:Moods_as_Directories): Moods own directories, agents own processes. Nothing uses `/moods` yet. Step 2 (magenta's poller) starts each agent's new sessions there. **What it adds** - **`/opt/magenta/moods`** on hunter, mounted at **`/moods`** in every container (`docker-compose.yml.j2`). - **The group `moods`, gid 3000,** on hunter and in the image. magent joins it in the image, and each agent joins at startup (`setup_agent`: `usermod -aG moods`). - **setgid 2775 and a default ACL** (`playbook.yml`, which installs `acl`), so anything anyone makes there stays group-writable whatever their umask. - **`safe.directory /moods/*`**, system-wide in the image, so git doesn't call one agent's clone "dubious ownership" when another agent works in it. - **The hourly unpushed-work backup** (#253) now covers each Mood's directory too (`moods/<slug>/…`). A worktree's patch is now named by its path beside its checkout (`threads__<thread>__<repo>.patch`). Two threads' worktrees of the same repo would otherwise write the same file. **Tested** - **The shared directory, for real:** in a throwaway container from `magenta-arthel:latest` with the same group, ACL and `safe.directory`, I made magent (1000) and re (2001) separate users, both with umask 022. Each committed in the other's clone and worktree, `git gc` ran as re, and files came out `rw-rw-r--+`. - **Unit tests:** `test_vcs_unpushed.py` has 5 tests, 1 new (a Mood's checkout plus two threads' worktrees of one repo). `test_container_startup.py` has 26, all passing. - **The compose template** renders with `/opt/magenta/moods:/moods`. **Needs:** an image rebuild, which the deploy's build-image does. Deploy: hunter Worked on by: magent, re, Justin, in #emergence