From 3d0dd98f39482111b7e2e32734d71bc806d826c8 Mon Sep 17 00:00:00 2001 From: clover caruso Date: Sat, 19 Sep 2026 19:41:26 -0700 Subject: [PATCH] fix: bring the soak harnesses up to coalesced saves and a loaded host The cache-kill oracle accepts a save that replaced the newest pending save under the same intent. The maintenance guardian runs only the library test it needs, so it exits when released instead of building every test binary, and native convergence gets ten minutes, which a few hundred background-synced edits need on a host that is also fuzzing. Assisted-by: claude-fable-5.1 --- tools/native_collaboration.py | 3 ++- tools/native_maintenance.py | 2 +- tools/offline_cache_crash.py | 4 +++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/native_collaboration.py b/tools/native_collaboration.py index 063727f37b744277cb9f4163e4ee89284c404852..e716c23436a708b6dd718b9f80da5a51941fca2d 100644 --- a/tools/native_collaboration.py +++ b/tools/native_collaboration.py @@ -219,7 +219,8 @@ def replay(output, server, stress_clients=0, stress_operations=30, sync_every=1, return observed def wait_text(client, expected): - deadline = time.monotonic() + 120 + # Background sync of a few hundred queued native edits takes minutes on a loaded host. + deadline = time.monotonic() + 600 while time.monotonic() < deadline: action(client, 'sync') observed = action(client, 'snapshot') diff --git a/tools/native_maintenance.py b/tools/native_maintenance.py index ac27df8db79f43b5025e08c0faa68375c802f2b2..a38781e76efadfc3b09f581eacfe9c6503b6344f 100644 --- a/tools/native_maintenance.py +++ b/tools/native_maintenance.py @@ -125,7 +125,7 @@ Sleep(1000) hold.mkdir() config = json.loads((output / 'linux.json').read_text()) with (hold / 'run.log').open('w') as guardian_log: - guardian = subprocess.Popen(['cargo', 'test', '-p', 'notebook', '--features', 'smb', 'live_reader_hold', '--', '--ignored', '--nocapture'], + guardian = subprocess.Popen(['cargo', 'test', '-p', 'notebook', '--features', 'smb', '--lib', 'live_reader_hold', '--', '--ignored', '--nocapture'], cwd=ROOT, stdout=guardian_log, stderr=subprocess.STDOUT, env={**os.environ, 'ONESTORE_SMB_LAB': f'127.0.0.1:{config["samba_port"]}', 'ONESTORE_SMB_PATH': 'm6-collaboration/synthetic.one', 'ONESTORE_SMB_HOLD': str(hold)}) diff --git a/tools/offline_cache_crash.py b/tools/offline_cache_crash.py index 8c6bb7ff83e06a02aa2a6a7564337df1b7d87519..8d752f4a6e6dda79ad32102531fd7d2d2150dca7 100644 --- a/tools/offline_cache_crash.py +++ b/tools/offline_cache_crash.py @@ -88,7 +88,9 @@ def run(binary, output): actual = json.loads(read.stdout) operations = actual["operations"] ids = actual["ids"] - assert operations in (retained, retained + [operation]), (retained, operation, actual) + # A save replaces the newest pending save of its page under the same intent. + coalesced = retained[:-1] + [operation] if ids == retained_ids else None + assert operations in (retained, retained + [operation], coalesced), (retained, operation, actual) assert ids[:len(retained_ids)] == retained_ids, (retained_ids, actual) if acknowledgement: assert operations[-1] == operation -- 2.54.0