Repository navigation
Delete the net and spin applets, proctest, and the launch_authority metal row - #889
Conversation
|
Design acceptance, by the orchestrator. The owner asked for |
|
The owner's ruling, which amends this acceptance (recorded by the orchestrator):
So |
…etal row The owner asked for `net` and `proctest` to go, and for any test program that earns nothing to go with them; his ruling on #889 adds the `launch_authority` metal row, as an integration test that touches too much. - toybox's `net` applet (`system/toybox/src/net.rs`, its `mod`, its `commands!` arm and `bin/net`): nothing ran or named it, and it could only print `net: connection failed`, its row holding no `netstack`. `issues/toybox-net-cannot-reach-netstack.md` goes with it: its exit is "or is removed". - toybox's `spin` applet (`system/toybox/src/spin.rs`, its `mod`, its arm and `bin/spin`): an infinite loop nothing ran. - `tests/guest/proctest/`, its workspace member, its lock entry, its `proctest = {}` row and the three `starts` that listed it in `images/system.toml`: nothing ran `/system/bin/proctest` but itself and the `launch_authority` row's unlisted arm. With `spin` gone this meets the exit of `issues/the-shipped-image-carries-two-test-programs.md`, which goes too. - The `launch_authority` metal row: its guest binary, its `RUST_SKIP` entry, its judge, its job in `PROCTREECASE`, and the rows of `tests/images/proctreecase.toml` it alone used: test-runner's `swap` and `update` starts, toybox's `starts = ["swap"]`, and the `swap`, `update` and `proctest` rows. Its property, that a launch starts only what the caller's row lists and `swap` and `update` only in a login session, is the supervisor's `toyos_manifest::launch::may_start`, which `lib/manifest/src/launch.rs`'s host tests hold refusal by refusal: `NotListed` for an unlisted row from either session and either kind of caller, and for a row that lists nothing. `toyos_manifest::launch::refused`'s doc no longer names a metal judge that reads its line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
…s red at host load 47 The launch_authority row's last arm asserted that a child spawned directly holds no launcher; nothing else asserts it at any tier, so its deletion leaves it to an issue the orchestrator owns. The whole guest suite on this branch's c24bee1 went red on consent_prompt alone, 62 of 63, at host load 34.22 38.33 47.31 on 14 cores: at `skip` a click on the open launcher's row launched nothing and the job ran out its 600 s ceiling. The branch changes nothing that test boots or runs but a doc comment, so it is a defect of main's tree, recorded with the host's load as root CLAUDE.md asks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
023d5ad to
b36458c
Compare
|
Review of #889 at Weighed:
Checked: citations. Checked: what the
BLOCKERNone. NOTE
LAND AFTER NAMED CHANGES |
…the svc mutation `toyos_manifest::launch::refused` had two callers, the supervisor's `say!` and the launch_authority metal judge, which read the line whole. With the judge deleted it had one, so its format string moves into that `say!` and the function goes. The line the supervisor writes is the same bytes. The launch_authority row's last arm held two decisions. The supervisor's, a row's launcher endowed under `launcher` and never in `svc`, is namespace selection, which stage 2 of the supervisor track already owes a host test and a mutation; that stage's exit now names the mutation, and the issue the branch opened keeps std's direct spawn alone, so one record owes each test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
…wt/toyos-pge No conflict. Of the files both sides changed, only tests/toyos.rs: main drops proctest and the launch_authority row; this branch adds three RUST_SKIP entries, three metal rows and PGE in the control_regs judge, each in a hunk main does not touch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
…rocode Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
Deletes toybox's
netandspinapplets, theproctestprogram and thelaunch_authoritymetal row. Nothing runs the three programs, and the owner ruled the row an integration test of a kind ToyOS does not keep.toyos_manifest::launch::refused, left with one caller, moves into it. Two issues close, because these deletions meet their exits. What the row alone held is recorded: the supervisor's half in stage 2 of the supervisor track, and std's half in a new issue. A second new issue records a red the guest suite turned up.The owner asked for
netandproctestto go, and for any other test program that earns nothing to go with them. The design round's survey found nothing else that meets that bar:design/survey.sh, with its output atecd6d1cc5indesign/survey.log. The orchestrator accepted the design on this pull request. The owner then amended it, in his words as the orchestrator recorded them:The orchestrator's reading of that ruling:
launch_authority's metal row is deleted, not moved to another program. Its property is held by a host unit test of the supervisor's decision, and one is added only if none exists. No T14 boot is owed. A wider sweep of tests like it is a separate change.What changed, per decision
toybox's
netapplet goes. This removessystem/toybox/src/net.rs, itsmod, itscommands!arm and"bin/net"inimages/system.toml. Nothing ran or named it. Its row holds nonetstack, so it could only printnet: connection failed.issues/toybox-net-cannot-reach-netstack.mdgoes with it, since its exit is "or is removed".hoststays for name lookups.toybox's
spinapplet goes. This removessystem/toybox/src/spin.rs, itsmod, its arm and"bin/spin". It is an infinite loop that nothing ran. Thespinincounters_metalandtests/toyos.rsis that row's phase name, not this applet.proctestgoes. This removestests/guest/proctest/, its workspace member, its lock entry,proctest = {}, and thestartsentries that listed it on sshserver's, shell's and toybox's rows. Nothing ran/system/bin/proctestexcept itself and the unlisted arm of thelaunch_authorityrow. Together with 2, this meets the exit ofissues/the-shipped-image-carries-two-test-programs.md: the shipped image names neither program. That issue goes too.The
launch_authoritymetal row goes, by the owner's ruling. This removes:RUST_SKIPentry, its judge, and its job inPROCTREECASE;tests/images/proctreecase.tomlthat only it used. Those are test-runner'sswapandupdatestarts, toybox'sstarts = ["swap"], and theswap,updateandproctestrows. No other job on that image names them (process_tree,launch_toctou,port_badge,fs_shareandapp_viewwere read forswap,update,statsandproctest).Its launch refusals are the supervisor's
toyos_manifest::launch::may_start. The supervisor calls it for every launch and logs itsRefusal(system/supervisor/src/main.rs). Existing host tests inlib/manifest/src/launch.rshold both refusals, so no test is added:NotListed, for an unlisted row from either session and either kind of caller, and for a row that lists nothing. This is rows 2, 3, 14 and 15 ofa_caller_starts_what_its_row_lists_and_swap_and_update_only_in_a_login_session, plusnothing_listed_is_nothing_started_and_apps_names_no_row.OutsideLogin, forswapandupdate.The mutations below red each one. Two things the row also held are now held by no test:
may_startto a launch. The supervisor has no host tests.issues/the-supervisor-is-host-tested-and-owns-the-stop.mdstage 2 owes "launch resolution and every launcher refusal" as host-tested decisions, each with a mutation.launcherlabel or in thesvcit inherits. Two decisions make that true, and each has one record:launcherand never insvc(launcher_namespace). That is namespace selection, which stage 2 ofissues/the-supervisor-is-host-tested-and-owns-the-stop.mdalready owes as a host test with a mutation. Its exit now names that mutation: the launcher endowed as an entry ofsvc.sdk/std/sys/process.rs). This is recorded inissues/nothing-holds-that-a-child-spawned-directly-holds-no-launcher.md, owned by the orchestrator. Its exit is a test on the cheapest tier that reaches it, and a mutation in which the spawn endows the child its caller's launcher.toyos_manifest::launch::refusedmoves into its one caller. It had two callers: the supervisor'ssay!on a refused launch, and the row's metal judge, which read the line whole. Now that the judge is gone, the function's format string becomes thatsay!'s arguments (system/supervisor/src/main.rs), and the function is deleted. The line is the same bytes. Nothing else calls it:issues/finds nolaunch::refusedorauthority::refused.toyos-manifestat all.issues/consent-prompts-click-on-an-open-launchers-row-made-no-launch.mdis new. The guest suite went red onconsent_promptalone at host load 47 (see Gates). Atc24bee1db, where the suite ran, the only change this branch made to anything that test boots or runs was the doc commentrefusedhad then. RootCLAUDE.mdasks that a red seen under load be recorded as a defect with the host's load. It differs from both recordedconsent_promptfailures: here the click on an open launcher's row launched nothing.Mentions left in
issues/. These are not edited, per rootCLAUDE.md's Prose rule:apps-that-build-or-run-on-toyos-alone.mdkeeps itsproctestrow.build/userlandhost.rs'sowedreads only from a manifest to its issue, so the stale row reds nothing.--ci hostbelow is green.the-tree-says-who-uses-each-thing.mdkeeps itsproctestin the tree sketch.the-host-cannot-reach-the-t14-while-it-runs-toyos.mdkeeps itslaunch_authoritysentence.consent-prompts-click-on-an-open-launchers-row-made-no-launch.md, filed by this branch, still namesrefused's doc comment. That is whatc24bee1db, the tree it records, changed.The one existing issue edited is
the-supervisor-is-host-tested-and-owns-the-stop.md, in stage 2's exit.reviewer.md's Guest tests rule names a stage of a track as where a cut row's unheld behaviour is recorded.Kept.
screenandlocaleare tools for the person at the machine: one sets the resolution, the other picks the layout.usbdis the userland xHCI driver under construction. Themask_windowsrow reads its windows acrossidle_span.Gates
The logs are on
ToyOSOrg/evidencepr-889. This head's logs are atc1001fe1, with the exits inexits.txt. The scripts and patches they ran are at45412587andc7a625dd. Each exit below is the command's own.cargo run -- --ci host68c50f52aci-host.logcargo run -- --build-only(x86-64)68c50f52abuild-x86_64.logcargo run -- --build-only --arch aarch6468c50f52abuild-aarch64.logcargo test, the whole guest suitec24bee1dbconsent_promptred at its 600 s ceilingguest.loggit grepof every deleted name and path, bare and qualified, outsideissues/68c50f52agrep.log,grep.shgit grepoflaunch::refusedandauthority::refusedoutsideissues/68c50f52agrep-refused.log,grep-refused.shgrep -rIlof the deleted names over~/.cargo/git/checkouts, the primary'srust/libraryand the fork clones05dff83e8forks.loggrep -rIloftoyos_manifest,toyos-manifestandlaunch::refusedover the same three43a843c81forks.log,forks.shmay_startstops refusingNotListed68c50f52acargo test -p toyos-manifestexit 101: the two tests abovemutate-notlisted.log, patchmay_startstops refusingOutsideLogin68c50f52amutate-outsidelogin.log, patchEach mutation script checks the patch, applies it, builds (exit 0), runs, reverses the patch and asserts the tree is clean.
The guest suite was not re-run at
68c50f52a.c24bee1db..68c50f52abrings in three things:main's #888 and #890, which change only.claude/agents/; theissues/files; and item 5. Item 5 is the only change a guest boots. It changes how the supervisor's refused-launch line is formatted, and the line's bytes stay the same. No test reads that line:git grep -n "may not start" -- tests/exits 1.The guest suite's red.
consent_promptbootstests/images/consentcase.toml, which runs no toybox,proctest,swaporupdate. Its host driver intests/toyos.rsis unchanged, so atc24bee1dbthis branch differed frommainthere only in the doc commentrefusedhad then. Atskipthe host saw the launcher open and clicked its row. Nothing launched, and the job ran out its 600 s ceiling. Load average a minute after the suite ended was 34.22, 38.33 and 47.31 on 14 cores (load-after-guest.txt). It was not re-run. It is recorded in item 6's issue.The checks root
CLAUDE.mdasks of a change to production codeissues/. The host suites and both images ran at this head with the deletions in, and the guest suite ran atc24bee1db. The whole change reverted ismain, which is what this branch's tests already ran against apart from these deletions.toyos-manifest, which none does.launch_authoritymetal row is cut by the owner's ruling, which Integration between modules is tested only for the kernel, and an integration test outside it is cut #890 has since written intoreviewer.md's Tests. The tests named in item 4 hold its launch refusals on the host tier. What the row alone held is recorded in two places: stage 2's exit for the supervisor's half, and the std issue for std's half. No guest test is added or changed.git diff --shortstat origin/main...68c50f52agives 19 files, 74 insertions and 413 deletions:system/,lib/,images/,Cargo.tomlandCargo.lock, −76 net;tests/, −287 net;Unsure
may_start, and the child arm (item 4). The review weighed these againstreviewer.mdbefore Integration between modules is tested only for the kernel, and an integration test outside it is cut #890 and found no blocker. Whether that weighing holds under Integration between modules is tested only for the kernel, and an integration test outside it is cut #890 is the orchestrator's call.🤖 Generated with Claude Code
https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy