Candidate db463a7b…ab89 (5 files) on 277d1fa21. Adds the note-2 test for a thread
decision raised before row 121; mutants 6 of 6 killed after fixing the test to
supersede an open decision (first run left M6 alive, recorded). Owner's gate exit 0;
gate.sh now sets COMPOSE_PROJECT_NAME=dewey-r136 and removes its network at exit.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
149 lines
11 KiB
Plaintext
149 lines
11 KiB
Plaintext
✔ a first launch clones the root at its branch, with the root's path as origin (45.009817ms)
|
||
✔ the clone is not at its place until git clone has finished (29.716456ms)
|
||
✔ a later launch fast-forwards a clean clone after a commit to the root, then finds it current (63.620179ms)
|
||
✔ a clone ahead of the root keeps its commits and counts as current (44.880083ms)
|
||
▶ a dirty clone and one on another branch are fetched, and nothing but refs/remotes moves
|
||
✔ a modified file (51.476262ms)
|
||
✔ an untracked file (44.33368ms)
|
||
✔ a staged file (47.958331ms)
|
||
✔ another branch (44.446767ms)
|
||
✔ a detached HEAD (46.326676ms)
|
||
✔ a dirty clone and one on another branch are fetched, and nothing but refs/remotes moves (235.716834ms)
|
||
✔ a diverged clone gets the fetch into refs/remotes and is kept, not-fast-forward (45.592299ms)
|
||
▶ a clone kept before the branch check, or for a failed status, gets no fetch
|
||
✔ not-a-clone (24.125052ms)
|
||
✔ hooks-present (29.300224ms)
|
||
✔ submodule (35.340542ms)
|
||
✔ config-changed (31.963805ms)
|
||
✔ root-unreadable (33.182318ms)
|
||
✔ root-detached (41.437575ms)
|
||
✔ status-failed, on the root's branch and clean (45.868134ms)
|
||
✔ status-failed, dirty (54.506654ms)
|
||
✔ a clone kept before the branch check, or for a failed status, gets no fetch (297.262146ms)
|
||
✔ a dirty clone whose fetch fails is kept, fetch-failed, exactly as it was (53.792781ms)
|
||
✔ every git call the host makes, for a new clone and an existing one, carries maintenance.auto=false and gc.auto=0 (45.030432ms)
|
||
✔ a clone with loose objects enough for gc --auto gets no maintenance or gc from the fetch and the merge (72.726637ms)
|
||
▶ a clone with user.name or user.email in its config is kept, and git runs nothing in it
|
||
✔ user.name (26.960442ms)
|
||
✔ user.email (27.231721ms)
|
||
✔ a clone with user.name or user.email in its config is kept, and git runs nothing in it (54.668108ms)
|
||
✔ a commit git can't read after the fast-forward is null (49.457409ms)
|
||
✔ a new clone whose commit can't be read refuses the launch and leaves nothing behind (21.584827ms)
|
||
▶ a clone the session rigged is kept, and git runs nothing and writes nothing outside it
|
||
✔ core.fsmonitor (38.020431ms)
|
||
✔ core.hooksPath (40.153893ms)
|
||
✔ a hook file (33.256338ms)
|
||
✔ include.path (35.484372ms)
|
||
✔ includeIf (36.509869ms)
|
||
✔ a filter driver (34.020192ms)
|
||
✔ origin moved (38.840613ms)
|
||
✔ a second origin url (35.741222ms)
|
||
✔ the origin url twice, both the root (34.96566ms)
|
||
✔ an ext:: origin (33.735449ms)
|
||
✔ a branch tracking another remote (40.76915ms)
|
||
✔ a branch merging a tag (42.041267ms)
|
||
✔ a fetch line onto local branches (48.651464ms)
|
||
✔ no origin (76.043266ms)
|
||
✔ a config file over the size cap (42.587642ms)
|
||
✔ config a symlink to /dev/zero (38.74747ms)
|
||
✔ the clone a symlink to the bait (38.190036ms)
|
||
✔ the clone a file (41.668093ms)
|
||
✔ the clone a plain directory (48.761836ms)
|
||
✔ .git a gitdir: file (34.251287ms)
|
||
✔ .git a symlink (34.646642ms)
|
||
✔ .git/logs a symlink (33.626569ms)
|
||
✔ .git/refs/heads a symlink (35.433696ms)
|
||
✔ .git/objects a symlink (37.095626ms)
|
||
✔ a reflog hard-linked to a file outside (34.964654ms)
|
||
✔ HEAD a fifo (37.483926ms)
|
||
✔ a commondir file (36.894054ms)
|
||
✔ an alternates file (32.618715ms)
|
||
✔ a gitlink staged, no .gitmodules (42.80441ms)
|
||
✔ a gitlink and .gitmodules staged (49.777126ms)
|
||
✔ a gitlink to a repository with its own gitlink (54.960908ms)
|
||
✔ a gitlink and .gitmodules committed (49.740073ms)
|
||
✔ a gitlink and submodule.active in config (48.276985ms)
|
||
✔ a .git/modules with no gitlink (35.432407ms)
|
||
✔ a clone the session rigged is kept, and git runs nothing and writes nothing outside it (1381.257876ms)
|
||
▶ a root that can't be cloned refuses with the project id and leaves nothing behind
|
||
✔ missing (11.082085ms)
|
||
✔ not a repository (10.061443ms)
|
||
✔ a plain directory inside another repository (14.684274ms)
|
||
✔ unreadable (10.425093ms)
|
||
✔ on no branch (12.178628ms)
|
||
✔ missing an object (15.696562ms)
|
||
✔ a root that can't be cloned refuses with the project id and leaves nothing behind (74.968139ms)
|
||
✔ a clone whose root is on no branch, or gone, is kept and named (29.698ms)
|
||
✔ no credential or forge remote of the root reaches a clone (50.992158ms)
|
||
✔ every project in the business file gets its own clone at its own branch (34.196633ms)
|
||
✔ a clone past its time gets SIGTERM and refuses the launch, with nothing left in the workspace (513.971303ms)
|
||
✔ a clone that ignores SIGTERM gets SIGKILL once the grace period is over (1016.516641ms)
|
||
✔ a timeout signals git's process group, so a process git started dies with it (515.251978ms)
|
||
✔ once a signalled git has closed, its group gets SIGKILL, so a process that ignored SIGTERM dies too (515.294481ms)
|
||
✔ RUNNER_FILES is exactly what the runner and the harness sources it starts import (1.975492ms)
|
||
✔ sandboxProblem names a missing bwrap and a bwrap that fails (10.771461ms)
|
||
✔ every bind says why; the bundle and session file stay read-only over the run directory (1.851894ms)
|
||
✔ REQ-THREAD-2 a thread store binds its session directory and Claude transcripts, and nothing more (0.887959ms)
|
||
✔ the host's git socket is bound only when given, read-only and before the writable binds (0.738093ms)
|
||
✔ the git identity is the instance's, at <instance>@<business>.mosaic.invalid, and sandboxArgv refuses without it (1.183351ms)
|
||
✔ a confined session's shell reaches its own workspace and run directory and nothing of the founder's or another session's (1900.28397ms)
|
||
✔ a bind that exposes a stand-in, or a missing workspace bind, fails the matching check (2569.511109ms)
|
||
✔ a confined session that runs tester-cli.mjs is refused as tester, and the same shim outside the sandbox binds (277.888709ms)
|
||
✔ resolveSeat: by name under --repo resolves the repo layout (1.525268ms)
|
||
✔ resolveSeat: by path resolves the fleet layout (0.373214ms)
|
||
✔ resolveSeat: refusals for missing dir, missing launch.sh, non-executable launch.sh, invalid name, and unknown layout (0.829626ms)
|
||
✔ tmuxContext: outside tmux, default socket, custom socket, and exec failure (0.774589ms)
|
||
✔ makeRegistration produces a record that validates; each shape violation throws SeatError (0.93274ms)
|
||
✔ writeRegistration/readRegistration: round trip, permissions, absence, and malformed records (1.478001ms)
|
||
✔ updateTask: changes task, taskSetBy and updatedAt only, and refuses appropriately (1.267266ms)
|
||
✔ CLI launch: registers, execs the fake launch script, and passes args through (38.258384ms)
|
||
✔ CLI launch: --harness lands in the record (29.499496ms)
|
||
✔ CLI launch: the launch script's own exit code passes through (30.404649ms)
|
||
✔ CLI launch: relaunching a seat rewrites the one registration record (56.808462ms)
|
||
✔ CLI launch: omitting --task records an empty string, not null (27.447279ms)
|
||
✔ CLI seat task: updates only the task after a launch, and refuses on an unlaunched seat (86.785244ms)
|
||
✔ CLI refusals: no args, unknown flag, missing config, already-registered env, and exec failure (136.389707ms)
|
||
✔ samePath: equal paths, symlinked dirs, distinct dirs, and non-strings (0.421928ms)
|
||
✔ resolveSetBy: explicit --by wins over the environment; absent or empty environment gives unknown; invalid explicit or environment values refuse with exit 4 (0.564133ms)
|
||
✔ validateRegistration/readRegistration: taskSetBy is optional; a record without it (written before #1511) still loads unchanged; an invalid one is refused; the version does not change (0.696826ms)
|
||
✔ updateTask: records setBy, preserves startedAt and every unrelated field, upgrades an old record in place only when the task is set, and replaces a previous attribution (1.137681ms)
|
||
✔ CLI seat task: --by beats MOSAIC_AGENT_NAME, the environment beats nothing, empty environment is unknown, invalid --by or environment refuses with exit 4 and leaves the record byte for byte (273.384524ms)
|
||
✔ REQ-LIMIT-1: family substring matching is no longer exported (0.900578ms)
|
||
✔ sessionEnv passes only the allowlist, the repo's bin on PATH, and the run id (0.820899ms)
|
||
✔ sessionExit gives a runner's signal death back as the signal; a session credential is one whole set of nonempty variables (0.28878ms)
|
||
✔ newRun: short ids, 0700 directories, and a refusal when the socket path won't fit (1.815054ms)
|
||
✔ session file and launch log: 0600, the session file written once (1.234391ms)
|
||
✔ endReason maps the runner's exit codes; a signal is killed (0.14558ms)
|
||
✔ Registry mirrors to sessions.json; readSessions marks live entries; bad files refuse (1.514184ms)
|
||
✔ REQ-THREAD-1 Registry.running keys a thread run by business, instance and thread (0.700906ms)
|
||
✔ REQ-THREAD-2 REQ-LAUNCH-1 threadStore checks both segments before the join and refuses an unsafe directory (1.668078ms)
|
||
✔ stopSession refuses an unknown run, reports a stale one, and won't signal a pid that isn't a runner (1.481394ms)
|
||
✔ a session runs in its sandbox as pid 1 of its namespace, claims, answers, and stops on mosaic stop (314.123084ms)
|
||
✔ workRef and validBranch take only what a ref name can hold (1.2707ms)
|
||
✔ a push lands as the task's work ref, a fast-forward lands after it, and main is the root's (141.444888ms)
|
||
✔ a rewritten branch refuses non-fast-forward and the work ref stays (136.30732ms)
|
||
✔ a branch with no history in common with main refuses unrelated-history (76.288798ms)
|
||
✔ a bundle that needs commits the working repository lacks refuses missing-prerequisite (39.11253ms)
|
||
✔ main is fetched from the root again before each push, so a clone of a newer root pushes (150.20322ms)
|
||
✔ a root moved back after the clone leaves the push's base unknown: missing-prerequisite (94.31413ms)
|
||
✔ a commit with a broken object refuses invalid-bundle, and only because fsck is on (100.346429ms)
|
||
✔ only a v2 bundle with the named branch is read (68.501203ms)
|
||
✔ a branch named main, or named for another task, moves only this task's work ref (89.4858ms)
|
||
✔ a record that throws moves the work ref back, or removes a new one (158.208534ms)
|
||
✔ a work ref that can't go back refuses rollback-failed, naming the ref and the commit (399.932977ms)
|
||
✔ a root that can't be read refuses root-unreadable (36.225777ms)
|
||
✔ a git past its time gets SIGTERM, leaves no ref lock, and the next push lands (2222.202453ms)
|
||
✔ a git that ignores SIGTERM gets SIGKILL once the grace period is over (1031.155111ms)
|
||
✔ a working repository path that isn't a directory refuses (23.303106ms)
|
||
✔ review bundles a pushed commit as refs/mosaic/review, leaving out what the reviewer has (114.964862ms)
|
||
✔ review of a project with no working repository refuses unknown-commit (13.396757ms)
|
||
✔ the runner's git tools hold the host's limits and branch rule (1.140381ms)
|
||
ℹ tests 135
|
||
ℹ suites 0
|
||
ℹ pass 135
|
||
ℹ fail 0
|
||
ℹ cancelled 0
|
||
ℹ skipped 0
|
||
ℹ todo 0
|
||
ℹ duration_ms 5252.991864
|