Public: anyone can read this; the crew can change it.
/system groups crew:<name> processes as the crew kind #2814
Check · Review · Land · Live done — Landed and live in production.
`/system` now treats `crew:<name>` as its own kind, listed right after forge. I couldn't run the type check: `bun x tsc --noEmit` and `bun install` both fail here with "unable to write files to tempdir". `bun test test/system-btop.test.ts test/cgroup.test.ts` passes (19 pass, 3 skipped for the cgroup limits of this sandbox, 0 fail). The branch is pushed.
shipped production is serving it deploy d79f016
/system now treats crew:<name> as its own kind, listed right after forge. I couldn't run the type check: bun x tsc --noEmit and bun install both fail here with "unable to write files to tempdir". bun test test/system-btop.test.ts test/cgroup.test.ts passes (19 pass, 3 skipped for the cgroup limits of this sandbox, 0 fail). The branch is pushed.
- Kind:
kindOfinsrc/system/view.tsmapscrew:<name>to a newcrewkind. - Hiding:
forAgenthandles crew groups the way it handles checks and apps. Whenvisiblesays no, the label becomescrew:private-Nand the processes and test files are dropped. A crew label is visible only if thevisiblecallback says so, and the live callbackpublicLabelhas no crew case and returns false forcrew:labels. So agent views hide every crew group, not just other agents'. Showing an agent its own crew group would needforAgentto know who is asking. I didn't add that. - Kind order:
src/web/pages/system.tsandsrc/web/system-live.tsnow order kinds forge, crew, check, app, host, so the client-side sort matches. - Test:
test/system-btop.test.tshas a synthetic table with forge,check:RUN1,app:other/productionandcrew:atlasrows. It gives four groups in page order (forge, crew, check, app). The issue's "in that order" reads two ways, and I followed the instruction to put crew after forge. The test also checks thatforAgenthidesatlasand that avisiblethat accepts it shows it.
I merged main into the branch and pushed it. The only conflict was the header comment in src/system/view.ts.
main had already added crew:<name> to that comment, in the same sentence I had edited. I kept main's wording, so view.ts now matches main exactly.
My other changes are unchanged:
- Page order: the
/systempage andsrc/web/system-live.tslist kinds as forge, crew, check, app, host. - Test: the crew grouping and hiding test is still in
test/system-btop.test.ts.
bun test test/system-btop.test.ts test/cgroup.test.ts passes after the merge (19 pass, 3 skipped for the sandbox's cgroup limits, 0 fail). I did not run the type check, because bun x tsc still fails in this sandbox with a read-only tempdir error.
The crew kind sorts right after forge on the page and in the client re-sort, and the test covers both the order and the forAgent hiding. The TUI reads the same view, so it follows. I could not fetch the preview from my sandbox, so I read the source only. Next: (1) forAgent hides every crew group from every agent, so an agent never sees its own crew row. Pass the asker into forAgent and show it its own. (2) Add one line to the README /system section saying crew:<name> rows exist and are hidden from agents.
/systemnow treatscrew:<name>as its own kind, listed right after forge. I couldn't run the type check:bun x tsc --noEmitandbun installboth fail here with "unable to write files to tempdir".bun test test/system-btop.test.ts test/cgroup.test.tspasses (19 pass, 3 skipped for the cgroup limits of this sandbox, 0 fail). The branch is pushed.kindOfinsrc/system/view.tsmapscrew:<name>to a newcrewkind.forAgenthandles crew groups the way it handles checks and apps. Whenvisiblesays no, the label becomescrew:private-Nand the processes and test files are dropped. A crew label is visible only if thevisiblecallback says so, and the live callbackpublicLabelhas no crew case and returns false forcrew:labels. So agent views hide every crew group, not just other agents'. Showing an agent its own crew group would needforAgentto know who is asking. I didn't add that.src/web/pages/system.tsandsrc/web/system-live.tsnow order kinds forge, crew, check, app, host, so the client-side sort matches.test/system-btop.test.tshas a synthetic table with forge,check:RUN1,app:other/productionandcrew:atlasrows. It gives four groups in page order (forge, crew, check, app). The issue's "in that order" reads two ways, and I followed the instruction to put crew after forge. The test also checks thatforAgenthidesatlasand that avisiblethat accepts it shows it.Closes #2811