Fleet changelogs · dev.ecs0.net
rdmsm4x-changelog-20260826-1910-replicantdb-releases-and-handoffs

rdmsm4x — replicantDB v1.1.0–v1.3.0, then durability + cross-project handoffs

2026-08-26 19:10:51 EDT · rdmsm4x · project ~/dev/apps/replicantDB Session span: 2026-08-26 morning → 2026-08-26 19:10:51 EDT. Written so this work survives the loss of the thread.

What shipped

Three tagged releases, each built universal2 (x86_64 arm64), signed TeamIdentifier=ZU2882L4HT, and deployed to 5 of 6 fleet hosts — where "deployed" means the CLI was executed on each host and self-reported its version, including on Intel.

Tag Codename What it added
v1.1.0 Custody Override export/import archive — closes gate G6, the last one. Restore matches by path, then by content hash, so a human correction survives a rename. Plus scripts/squash_index.zsh (export first, refuse while the WAL is held, move-not-delete, checksum, README with restore and undo) and single-source versioning.
v1.2.0 Reconcile Index liveness (missing_since, lstat(2) only, marks and never deletes), honest pass accounting, the generated self-contained HTML/JSON dashboard, macOS App Intents.
v1.3.0 Evidence Purpose IS-vs-ABOUT signal tiering plus a corpus repair path; photo EXIF + perceptual-hash near-duplicates.

Then, unversioned but shipped: MCP protocol conformance (281c6e3) — the server had never been loadable by any client.

323 tests, 0 failures, 0 warnings (up from 163 at seed). Tree clean. Nothing pushed to any remote — D-26 is Rich's call alone, and the history still carries employer client names.

The three defects that only running it could find

  1. 58.6% of the index was dead rows — 35,769 of 61,037 pointed at deleted files. The hashing pass dropped unreachable files with a bare continue while printing success and exiting 0, so every figure the product reported was inflated ~1.4×.
  2. The classifier confused what a file IS with what it is ABOUT — OTPAuthParserTests.swift filed as a credential, scanROO/PRD.md as a receipt. Not the old substring bug; these match on clean word boundaries. Fixed by signal tiering, verified file-by-file: credential −86%, contract −91%, receipt −90%.
  3. Near-duplicate grouping produced one "group" of 2,873 unrelated images — three compounding causes (single-linkage chaining, 274 images hashing to exactly 0, 301 identical favicons). Largest group after the fix: 10.

And the finding that retroactively justified gate G6: Rich's single human correction is on a file that has already been deleted. It is preserved in the v1.1.0 override archive, and --purge refuses to drop it.

Stated boundaries — what is NOT proven

Delegation

Five codex exec --model gpt-5.6-sol jobs in file-disjoint git worktrees. Anthropic weekly hit 90% (hold) around midday; OpenAI sat at 12%, so the volume went there.

Every codex job reported 22–23 test failures that did not exist — Vision/OCR sandbox artifacts; the same suites ran 0 failures on the host. Reviewing the merged diffs rather than the summaries also caught two real defects the agents did not mention: an id lookup done by a 50-capped filename search where an exact path lookup belonged, and results that could return deleted files.

rdmpw3265m — diagnosed, and the real defect found

Unreachable on every path: LAN 192.168.1.53 (no ping, ARP incomplete from four independent hosts), secondary 10.0.4.26, both Tailscale nodes (offline; tailscale ping timed out via relay nyc), SSH Host is down. Below layer 3 — powered off or asleep with Wake-for-network off.

The fixable defect: a Wake-on-LAN packet needs the target's MAC and has no broadcast form, and no MAC was recorded anywhere in the fleet inventory — so a sleeping host could only be recovered by walking to it. MACs for the five reachable hosts are now in ~/.agent-coordination/fleet-macs.json (mode 600), deliberately outside ~/dev/data/ because that feeds fleet_status.zsh → the dashboard published to dev.dataroo.net. The one still missing is rdmpw3265m's own, which needs the host up.

Cross-project context dispatched (ledger: replicantDB/HANDOFFS.md)

Ten findings, each filed into the target's own auto-ingested channel — direct ISSUES.md for "broken now", ~/dev/todo/items/ + scan_todo.zsh for "work to do".

The one worth naming: a pure-SwiftPM product ships App Intents that Siri, Shortcuts and Spotlight cannot see. Metadata.appintents is emitted by appintentsmetadataprocessor, which Xcode runs as a build phase and swift build never does. The code compiles, tests pass, and the whole Apple Intelligence surface is silently absent. Verified by reading built bundles:

App Metadata.appintents
replicantDB present (wired today)
RTTy — the family's own reference implementation ABSENT
bookmarkROO ABSENT
iCloudMonitor ABSENT
logTTY (Xcode-built) present, for free

Filed in each project's ISSUES.md (created for two that had none) and as a rule in ~/dev/apps/CLAUDE.md §2, which every app session auto-discovers by walking up.

Also dispatched: the fleet wake problem; "a delegated agent's test verdict is a claim, not a result" (cross-llm-bus.md §9); three shell traps that fail silently (terminal-shell-env), one of which bit during this very handoff pass; and a stale dashboard — products.json was still publishing 163 tests and zero purposes, now refreshed from live read-only measurements and regenerated (p/replicantdb.html carries 323/323, no 163/163).

Waiting on Rich

Full Disk Access click (unblocks ~/Library indexing) · CloudKit container choice, team-permanent (docs/CLOUDKIT-PLAN.md §7) · D-26 git-history decision before anything is pushed · daemon registration (D-4).

Next

v1.4 — give reference documentation its own structural type, so .md files outside a source repo stop landing in credential/receipt. Explicitly not by making the archetype tier stricter: a genuine .md note in ~/Documents must still be able to be correspondence.