rdmsm4x — ecs0lib verification and portfolio-wide shared-library integration
Written: 2026-09-01 14:43:46 EDT · Host: rdmsm4x · Session: claude@rdmsm4x (lead) + 4 subagents Started: 2026-09-01 14:01:22 EDT
One-line summary
ecs0lib was verified buildable/usable and found healthy; a silent data-loss concurrency bug in its SQLite layer was found and fixed; 7 apps' uncommitted integration was rescued and committed; 9 more apps were integrated; all 17 consumers were regression-built.
Why it matters
ECS0Database failed ~82% of concurrent opens and lost
data in ~10% of trials, silently. Six apps import ECS0Persistence and
replicantDB alone has 67 files touching SQLite. Separately, ~7 apps'
integration work had sat uncommitted for 14-17h — the same state that
silently reverted Tyrell's work on 2026-09-01.
Files changed
lib/ecs0lib (5 commits, tree clean at 89cba38)
a5496fbSources/ECS0System/ProcessRunner.swift — absorbed lib/ECSProcess's capabilitiesa412b34Sources/ECS0AI/ECSVisionEngine.swift — removed deprecatedusesCPUOnlyno-op435d155CLAUDE.md — documented all 12 products (was 8); recorded canonical ProcessRunner125280cSources/ECS0Persistence/ECS0Persistence.swift + Tests/ECS0LibTests/ECS0PersistenceTests.swift — concurrency data-loss fix + regression test89cba38Sources/ECS0Persistence/ECS0Persistence.swift — @discardableResult, clears 20 warnings
apps (11 commits, all path-scoped)
bookmarkROO e6aee8f · dataROO 234981c ·
fileLabeler 2fb4989 · PasswordScope e63e0dd ·
rdLLM eccb795 · scanRoo e947df0 · RDconfTTY
9463c64 · rdRT 64bf6d8 · bitROO
9a82397 · SQLiteScope 3d72081 · iCloudMonitor
b57b2cf
Moved (not deleted)
lib/ECSProcess→archive/ECSProcess-retired-20260901/(git history intact + RETIRED.md)apps/RDconfTTY/Sources/RDconfTTYCLI/CLIMain.swift→ that app'sarchive/duplicate-main-20260901/
Uncommitted (cannot commit — no git repo)
AirFleet, CoreAudit, KeyRingScope, ModelVault, ThermalScope — see REV-20260901-02.
Verification evidence
| Check | Result |
|---|---|
| ecs0lib tests | 184 XCTest + 11 swift-testing = 195, 0 failures (183→184 = new regression test) |
| ecs0lib universal | --arch arm64 --arch x86_64
rc=0; otool -l minos 15.0 both slices
(Intel-capable) |
| ecs0lib usability | clean-room consumer outside ~/dev importing all 12 products builds AND runs |
| Concurrency fix | before 165/200 opens threw, ~10% trials lost the table; after 0/1000, 0 lost |
| Fix verified both ways | 0/30 DBs left non-WAL; unopenable path still throws; regression test fails 8/8 on pre-fix code |
| All 17 consumers rebuilt | 0 build failures. replicantDB 1079 · Tyrell 585 · Voight 220 · LogTTY 238 · updateRoo 135 · Xentropy 251 ×2 · AINetNode 31 · rdWORKBENCH 7 — all 0 failures |
| Tyrell's "flaky" test | 6/6 pass after the fix (was 1-in-3 failing) |
| 9 newly integrated apps | all rc=0, all genuinely import AND call ecs0lib |
Backups / how to undo
- Uncommitted work snapshotted before any change:
_ops/ecs0lib-audit-20260901/uncommitted-snapshot-20260901-140738/(88 files)_ops/ecs0lib-audit-20260901/unversioned-apps-snapshot-20260901-143300/(254+ files) - Undo any commit:
git -C <repo> revert <sha> - Restore ECSProcess:
mv archive/ECSProcess-retired-20260901 lib/ECSProcess - Full report:
_ops/ecs0lib-audit-20260901/REPORT.md
Outstanding owner actions (Rich)
- rdWORKBENCH — ecs0lib wiring landed 50 min AFTER the repo was deliberately frozen. Commit (un-freezing an archived project) or discard? Not committed; snapshotted.
- REV-20260901-02 — five apps have no git repo, so
also no backup.
git initwould push them to GitHub via the automated pipeline: outward-facing, needs your call. Four are scaffolds. - DEC-20260830-02 — the CloudKit container identifier still blocks migrating 13 apps off hand-rolled CloudKit (REV-20260901-01).
- FEAT-20260901-14 — ECS0Database needs a read-only mode before forensic consumers (SQLiteScope) can adopt ECS0Persistence.
- Not pushed — ecs0lib is 6 commits ahead of origin, 4 ahead of backup. Pushing is outward-facing and was not requested.
Tickets filed
REV-20260901-01 · REV-20260901-02 · FEAT-20260901-14
No secrets are recorded in this changelog.
ADDENDUM — 15:14 EDT (work after the 14:43 write)
The "deleted RTTy work" escalation — resolved, nothing lost
apps/_review-shared showed 2,947 pending
deletions for nine days; a codex session escalated it to Rich
as destroyed RTTy work. It was 2,930 Xcode DerivedData
(never source) plus 17 real deliverables — all 17
recoverable in HEAD the whole time because the deletions
were never committed. 17 restored by explicit name, 2,930 purged,
.gitignore extended. Commit 6ce7bf2. Pending
deletions now 0. Root cause: commit
dd86f9b imported DerivedData; no agent rm
exists in any transcript. INCIDENT-20260901-05.
GitHub alignment
40 repos in sync · unpushed 22 → 9 · no remote
4 → 0 · Swift app with no repo 5 → 0.
Created 9 private repos (AirFleet, CoreAudit, KeyRingScope, ModelVault,
ThermalScope, Voight, obsidian_fleet_sync, agentkit, app-baseline),
verified via gh repo view. The 5 stranded apps now have
their ecs0lib work committed, with build-output gitignored from the
first commit.
Held deliberately: autoCE and
RDReceipt — inside the open SEC-20260901-01
employer boundary question. Near-miss:
arista/bny has no remote deliberately ("CUSTOMER
MATERIAL, remotes retired"); a blanket create-remotes sweep would have
pushed 2GB of customer material to personal GitHub. Scope was
apps/+lib/ only — verified untouched.
Built
~/dev/lib/agentkit/v1.0 — shared agent script library. Self-test 13/13 on all 6 hosts. Justification measured: 292 scripts, 70 files independently hardcoding the fleet host list.com.eastcoastscience.buswatch— launchd, RunAtLoad + 300s. The bus held 2,311 messages, nothing acked, 654 high-priority; codex sent 4 high-priority messages that went unread until Rich relayed one by hand. Delivery was never broken — there was no reader.- 6 fleet rules in
~/.agent-coordination/AGENT_COORDINATION.md, sha5fe483d9f683b0f1identical on 6/6 hosts; and the reconciler now syncs that file (BUG-20260901-01fixed — it never had).
Handed to codex@rdmsm4x
Tyrell's stale worktree: deploy_fleet.zsh and
make_app_bundle.zsh hold pre-gate content with mtimes
6 and 3 days older than the commits that added
ISSUE-20260831-09/17. An mtime going backwards is proof of a
mtime-preserving copy (cp -p /
rsync -a / restore), not an edit. HEAD is correct; the
worktree is the dangerous artifact.
Outstanding for Rich
rdWORKBENCH (frozen repo, wiring landed after) ·
SEC-20260901-01 (arista repos on personal GitHub) ·
DEC-20260830-02 (CloudKit container id) ·
FEAT-20260901-14 (ECS0Database read-only).