Skip to content

Decide fsd/blockd/soundd's names, and leave-the-machine-clean rule - #578

Merged
Japabu merged 4 commits into
mainfrom
wt/toyos-names
Sep 28, 2026
Merged

Japabu merged 4 commits into
mainfrom
wt/toyos-names

Conversation

@Japabu

@Japabu Japabu commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

The owner's decision: to the names fileserver, diskserver and soundserver for fsd, blockd and soundd, and to writing down the leave-the-machine-clean rule.

What changed

  1. issues/isolation/the-supervisor-is-host-tested-and-owns-the-stop.md: moved fsd -> fileserver, blockd -> diskserver, soundd -> soundserver from "open with the owner" into the decided rename table, alongside init -> supervisor, netd -> netstack, logd -> logkeeper, sshd -> sshserver. files (the file manager) is unaffected and unchanged.

  2. CLAUDE.md: added one Build & test bullet beside "Agents never run QEMU":

    Leave the machine as you found it. The development machine is shared: every agent stops what it started, removes the worktrees and scratch build output it no longer needs, and never leaves an emulator, a build or a watcher running.

    and deleted the clause ", and an agent reports only once nothing it started is still running" from the "Agents never run QEMU" bullet, which the new bullet subsumes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01W6rME2DoqwjcYFStYHHY4j

…e rule

fsd becomes fileserver, blockd becomes diskserver, soundd becomes
soundserver; files stays the file manager's. Record the decision in the
supervisor track alongside the already-decided names (init -> supervisor,
netd -> netstack, logd -> logkeeper, sshd -> sshserver), moving all three out
of "open with the owner". The rename stage's search exit already covers all
seven old names, so it needs no change.

Also add a Workflow bullet next to "Agents never run QEMU": every agent
leaves the shared machine as it found it, stopping what it started and
removing the worktrees and scratch output it no longer needs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6rME2DoqwjcYFStYHHY4j
@Japabu
Japabu marked this pull request as ready for review September 28, 2026 14:42
@Japabu

Japabu commented Sep 28, 2026

Copy link
Copy Markdown
Collaborator Author

Review of #578 at 4e03eb14 (base fb34346e; origin/main ec06384e touches neither file, per an empty git diff --stat fb34346e origin/main -- CLAUDE.md issues/isolation/).

Gate: CI ci / host is SUCCESS on run 36438023949, headSha 4e03eb14. The other host run, 36438000770, was SKIPPED at the same head. The PR is not a draft. Net size is 2 files changed, 4 insertions(+), 4 deletions(-), all prose, with no production code and no tests. The change adds no test, and none is owed.

Name measurements, as case-insensitive substring hits over origin/main from git grep -i -o:

  • fileserver, diskserver and soundserver have 0 hits each.
  • netstack and logkeeper have 1 hit each, both in the track.
  • sshserver has 4 hits. 3 are outside issues/, and all 3 are SshServer in userland/sshd/src/main.rs:170,172,755, which is the same program's type.
  • supervisor has 25 hits in 15 files. 17 are outside the track and 13 are outside issues/.
  • For comparison, disks has 174 hits in 36 files and mixer has 93 hits in 44 files.

None of the new names contains an old name's search substring (netd, logd, soundd, blockd, fsd, sshd, init). So the unchanged exit in track lines 36–49 still covers all seven, and a completed rename cannot trip it.

BLOCKER
(none)

NOTE

  • issues/isolation/the-supervisor-is-host-tested-and-owns-the-stop.md:27: supervisor was decided earlier and is not in this diff. It is the one decided name the tree already uses for something else.
    • 5 hits are the x86 privilege level: kernel/src/arch/x86_64/cpu.rs:181, tests/common/faults.rs:591 and tests/toyos.rs:16457,17157,17779. SMAP and SMEP vocabulary cannot be renamed, so every search for the program will hit them.
    • 4 hits name blockd's test harness role: tests/blockdcase/system.toml:2, tests/common/blockd.rs:5, tests/toyos-rust-tests/src/bin/blockd_io.rs:580 and tests/toyos.rs:162.
    • Stage 1's brief has to rename the test role or accept the collision. The owner should see this measurement before stage 1 is briefed.
  • CLAUDE.md:75: "Both produce large output" refers to cargo run/cargo test on line 72. The antecedent is now three bullets up, with two unrelated rules in between. The new bullet sits where the owner asked, so this is recorded and not sent back.

REMOVE

  • CLAUDE.md:73: ", and an agent reports only once nothing it started is still running". Line 74's "every agent stops what it started … never leaves an emulator, a build or a watcher running" subsumes it. This deletion offsets the growth; the owner's sentence stays untouched.
  • PR body: "1 and 2: yes". It quotes a question that the main record does not contain.
  • PR body: "added one Workflow-list bullet". This is false, because the bullet is in Build & test.
  • PR body: "Word count: 2582 before, 2623 after. Nothing else in CLAUDE.md changed."
  • PR body: the whole "Note: on the current main … I anchored the new bullet …" paragraph, which is agent narration.
  • PR body: the "Test plan" section. cargo test --lib measures nothing that a prose change touches, and its count will go stale.

LAND AFTER NAMED CHANGES

…llet subsumes

The "Leave the machine as you found it" bullet already covers "an agent
reports only once nothing it started is still running"; the QEMU bullet
no longer needs to say it too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6rME2DoqwjcYFStYHHY4j
@Japabu

Japabu commented Sep 28, 2026

Copy link
Copy Markdown
Collaborator Author

Review, round 2, at efefec7

Gate. CI ci / host is SUCCESS on run 36441195357 (headSha efefec73, event pull_request), and it is the only check in the rollup. The diff is 2 files changed, 5 insertions(+), 5 deletions(-), all prose, with no production code and no tests. No test is owed.

Round 1 REMOVE items

  • CLAUDE.md:73 clause ", and an agent reports only once nothing it started is still running": CLOSED. It is absent at HEAD (git grep -F 'reports only once nothing' HEAD finds nothing) and present once on origin/main.
  • PR body "1 and 2: yes": CLOSED. It is gone.
  • PR body "added one Workflow-list bullet": OPEN. The text is unchanged, and the bullet is still under ## Build & test.
  • PR body word count line: CLOSED. It is gone.
  • PR body "Note: on the current main …" narration: CLOSED. It is gone.
  • PR body "Test plan": CLOSED. It is gone.

Scope.

  • CLAUDE.md is exactly the owner's rule and the deletion. grep -F finds the owner's sentence verbatim once. The only other hunk removes the clause. Nothing else in CLAUDE.md changed.
  • The names are recorded where the isolation track needs them: issues/isolation/the-supervisor-is-host-tested-and-owns-the-stop.md:30-32 in the stage-1 table, with the open-question line deleted. git grep -i 'fileserver|diskserver|soundserver' HEAD hits only those three rows.
  • None of the new names contains a search substring from the exit (lines 40-49).

Collision with #582 (head 97e8fb3c).

BLOCKER
(none)

NOTE

  • PR body, item 2: the body becomes main's merge record, and it lists only the added bullet. The clause deletion appears in no non-merge commit; it happens only inside merge efefec73 (git diff efefec73^2 efefec73 -- CLAUDE.md). As a result, first-parent main records it nowhere unless item 2 names it.
  • CLAUDE.md:76: the "Both produce large output" bullet is now two bullets away from the line it refers to (:72). Moving the new bullet below it, byte-unchanged, fixes the reference at zero line cost. This is carried from round 1.

REMOVE

  • PR body: "Workflow-list". It is false, because the bullet is in Build & test. This is still open from round 1.
  • PR body: "The rename stage's search exit already lists all six non-init old names … so it needed no edit to stay consistent with all seven." This explains an edit that was not made. It is review reasoning, not main's record.
  • PR body: "No code is renamed here; the rename itself is stage 1 of the track, its own later PR." The track already says this, and "later PR" is a prediction that will rot.

LAND AFTER NAMED CHANGES

Japabu and others added 2 commits September 28, 2026 20:27
"Both produce large output" refers to `cargo run` and `cargo test` two
bullets up; the leave-the-machine-clean bullet had landed between them.
Move it back to directly after "Both", unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6rME2DoqwjcYFStYHHY4j
@Japabu
Japabu added this pull request to the merge queue Sep 28, 2026
Merged via the queue into main with commit e3a1cdc Sep 28, 2026
1 check passed
@Japabu
Japabu deleted the wt/toyos-names branch September 28, 2026 19:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant