Merge branch 'main' into P11c

This commit is contained in:
swaits committed 2026-10-30 03:10:24 -06:00
commit fa7c2805a6
3 files changed
+33 -3

No files matched your search

+5 -1
View File
@@ -917,7 +917,11 @@ fn the_host_stages_a_daily_update_and_the_next_start_applies_it() {
wait_for(10, || sha256(&home.program()) == sha256(&next)), wait_for(10, || sha256(&home.program()) == sha256(&next)),
"the staged update wasn't applied" "the staged update wasn't applied"
); );
assert!(wait_for(10, || !home.updates().join("staged").exists())); // Whether `staged/` is gone is not asserted: the test's "newer"
// program is this binary with bytes appended, so its compiled version
// never catches up with the feed's, and the new host's next look (the
// knob makes it soon) may stage 9.0.0 again. The kept copy below and
// the program in place are what the apply means.
assert!( assert!(
home.updates() home.updates()
.join("previous") .join("previous")
+9 -2
View File
@@ -189,7 +189,11 @@ fn the_root_is_found_without_the_environment() {
fn setup_makes_a_private_root_and_its_folders() { fn setup_makes_a_private_root_and_its_folders() {
let home = tmp("setup"); let home = tmp("setup");
let (root, report) = Root::setup(home.path(), None, None).unwrap(); let (root, report) = Root::setup(home.path(), None, None).unwrap();
assert_eq!(root.path(), default_root(home.path())); // The root as the system spells it (macOS: /tmp is /private/tmp).
assert_eq!(
root.path(),
default_root(&std::fs::canonicalize(home.path()).unwrap())
);
assert!(report.created && !report.tightened && !report.recorded); assert!(report.created && !report.tightened && !report.recorded);
assert_eq!(mode(root.path()), 0o700); assert_eq!(mode(root.path()), 0o700);
for sub in ["books", "run", "legacy"] { for sub in ["books", "run", "legacy"] {
@@ -225,7 +229,10 @@ fn setup_records_a_root_chosen_elsewhere_and_forgets_it_when_back_to_default() {
let fresh = tmp("setup-xdg"); let fresh = tmp("setup-xdg");
let xdg = fresh.path().join("xdg"); let xdg = fresh.path().join("xdg");
let (root, report) = Root::setup(fresh.path(), None, Some(&xdg)).unwrap(); let (root, report) = Root::setup(fresh.path(), None, Some(&xdg)).unwrap();
assert_eq!(root.path(), xdg.join("wanderbooks")); assert_eq!(
root.path(),
std::fs::canonicalize(&xdg).unwrap().join("wanderbooks")
);
assert!(report.recorded); assert!(report.recorded);
assert_eq!( assert_eq!(
Root::find_in(fresh.path(), None).unwrap().path(), Root::find_in(fresh.path(), None).unwrap().path(),
+19
View File
@@ -19,6 +19,25 @@ owner's), **P12** (max testing, after P11c), and P10's re-audit itself
and red until they land. Every push is watched; a docs-only push is and red until they land. Every push is watched; a docs-only push is
never made alone (it cancels the running gate). never made alone (it cancels the running gate).
**2026-10-30, early.** The Linux gate on `main` is green again
(`659a4266`, `cc6bb25d`) after a day of fixes the waves' merges owed:
P8's gate on the spec script's package export, P8's event
`period.attested` no longer an "unknown" example, the eval's close
step, P5's demo-books test out of the server-only build, the update
tests' races with the host's staging (and their messages: programs
compared by hash, never by bytes, which had cost GitHub a whole step
log). macOS, in its own workflow now so its log is readable at once,
went from "the server didn't say ready" to one store test: the harness
spelled Linux's data folder and joined words without quoting (a macOS
root has a space), BSD `script` and bash 3.2 differ, `/tmp` is
`/private/tmp`, and a deep root's sockets needed a short private link
under `/tmp` (a product fix, `root.rs::short_link_for`); setup now
reads the default root canonically (a product fix too). P11c's branch
compiles and runs the suite on Windows; its Linux gate is green; the
Windows job's remaining failures were tests of other units spelled for
Unix (the backup remote check, a books home's listing), fixed on
`main`. The two-user HTTP door on Windows is its last unverified piece.
**Who builds.** The owner chose (the question tool) that this planning **Who builds.** The owner chose (the question tool) that this planning
session is the EM and launches Sonnet subagents in parallel worktrees, session is the EM and launches Sonnet subagents in parallel worktrees,