rdmsm4x-changelog-20260927-0214-xattr-consolidation-prd-builds-1-7-fleet-wide
rdmsm4x - build - xattr consolidation PRD, builds 1-7 fleet-wide, own index, MCP, daemon canary, TM inventory - claude - EPIC-20260927-01 - xattr - 2026-09-27 02:14 EDT
[2026-09-27 02:14 EDT · rdmsm4x · claude@rdmsm4x/xattr01 · EPIC-20260927-01] Work ran from 00:13 to 02:14 EDT.
Summary
xattr is now the one product absorbing replicantDB, rooDB, rdDB and dataMOB, per Rich's mandate at 00:06.
- Plan and data: a published consolidation PRD, and xattr's own index imported from ReplicantDB and kept current by a crawler.
- Surfaces: a read-only MCP server registered
fleet-wide, and a background pass (
xattrd) live as a canary on rdmsm4x. - Backups: Time Machine backup inventory.
- Shipping: seven signed and notarized builds; the final one is being installed on all six Macs.
Scope
Hosts: all six (app installs). Repos: apps/xattr, the
new lib/XattrKit, fleet/maintenance (MCP
reconcile v1.10), and pointer files in apps/dataMOB and
apps/rdDB. rooDB was moved to
~/dev/archive/apps-rooDB-superseded-20260927.
What changed
- PRD:
apps/xattr/docs/prd/2026-09-27-xattr-consolidation-prd.md.- The capability map: keep, merge or drop for each capability of the five source apps.
- Decisions X-D1..X-D8. The CLI is
xattrctl, so it never shadows/usr/bin/xattr. - The ReplicantDB migration, M0 to M4.
- §11a folds in ADDENDUM-9 and the requirements delta.
- Builds 1–7 (0.2.0 → 0.7.1). Every one is Developer
ID signed, hardened, notarized and stapled, universal2 with minos 26.0,
with the designated requirement identical across builds.
- Build 7 notarization id: d31e2405.
- Builds 1, 2, 4, 5 and 6 were installed on all six hosts. The Intel hosts run macOS 26.7.1.
- Engine: the XattrIndex target:
- a read-only legacy ReplicantDB source;
- xattr's own store (schema v1, with the RFC-07 findings tables);
- a resumable importer;
- a crawler that does no writes for unchanged files, uses indexed path ranges, and pages hash candidates;
- index scope per DEC-20260927-03 (
~/devonly;~/Library, Mail, Messages and arista never); prune;- backup discovery and diff, with
--withinand--files.
- CLI:
status,find,dupes,import,scan,index,prune,mcp,daemon,backups,backup-diff,undoandjournal. Every mutation is a dry run unless--apply, and each one is journaled and undoable. - MCP:
xattr-mcpis read-only. It carries ReplicantDB tool aliases, and credential-kind paths never reach agents. It is registered for claude, codex, grok and agy on all six hosts viafleet_mcp_reconcile.zshv1.10 (maintenance 8a65d1b). - App:
- an HIG shell: Search, Duplicates, File Inspector, Status;
- Settings: General (background indexing toggle), Appearance (ECSColorProfiles), Permissions (live Full Disk Access state), Advanced;
- ⌘± zoom, ⌘F, ⌘R;
- Liquid Glass, with a Reduce Transparency fallback;
- a confirm and undo step before stripping quarantine.
lib/XattrKit0.1.0: one UI-free kit, plus thecom.eastcoastscience.xattr.v1#Srecord codec. 36 tests; remotes fleet and GitHub.- Data on rdmsm4x:
~/Library/Application Support/xattr/xattr.sqlite: 2,086,336 rows imported (an exact match), then pruned to~/devunder the DEC. The crawler has since added the rest of~/dev.- ReplicantDB's database was only ever read.
Verification
- Tests: 3 → 54 on xattr, and 36 on the lib.
- G0 harness: the stub scores 0/13 and the oracle 13/13. The real engine scores 0/13, because the G5 parser isn't built yet.
- Background pass:
~/dev, 1.89M files, in 142 s at a 119 MB peak. - MCP parity: every ReplicantDB top-20 hit is in xattr's top-200 (3/3 queries).
- Real Time Machine diff: the app-baseline folder in the 2026-09-26 22:31 snapshot has 217 identical files, 9 older versions and 0 unique.
- Per-host rollout tables:
apps/xattr/SESSION-STATE.md.
Found and handed off
- ReplicantDB (fixed by its lead, rdbhang1):
- its tests wrote the production daemon-health file (ISSUE-20260927-01);
- no new rows had been indexed since 09-01, because of an FTS trigger bug (fixed in Build 46);
- Build 45 locked out readers, and its MCP reported that as an empty index (ISSUE-20260927-04/-05).
- A false dev.ecs0.net showcase page was routed via grok.
Undo
- Background pass:
xattrctl daemon disable. - App: the previous build is at
~/Library/Application Support/xattr/rollback/xattr.appon each host. - MCP registration:
git revert 8a65d1bin fleet/maintenance, then re-run the reconcile. - rooDB:
mv ~/dev/archive/apps-rooDB-superseded-20260927 ~/dev/apps/rooDB.
Owner actions (Rich)
- Delete the retired indexes after ReplicantDB retires? This is irreversible.
- The DEC-20260927-03 amendment: cloud stores as metadata-only roots?
- May the
arista_expenses*.ziparchives be indexed?
No secrets appear in this record.