Fleet changelogs · dev.ecs0.net
rdmsm4x-changelog-20260901-2357-roodb-replicantdb-generalized-no-customer-or-industry

rdmsm4x — rooDB and replicantDB generalized: no customers, no vendors, no industry compiled in

2026-09-01 23:33–23:57 EDT · rdmsm4x · Claude Code (session tyrell-c5)

Rich, in sequence: "remove 'The Walt Disney Company (Disney+ Core)' from rooDB" → "RooDB should have no hardcoded customer info" → "the domains are also specific to networking, RooDB needs to work generally for all people" → "please generalize replicantDB and rooDB, you can actually do the same for rdDB" → "I'd rather it discover generally and get narrower in time."

Result

Repo Commit Tests before → after
~/dev/apps/rooDB 963707f 172 → 172, 0 failures (identical count — nothing silently dropped)
~/dev/apps/replicantDB 190f895 1102 → 1105, 0 failures
~/dev/apps/rdDB — MOVED.md husk, no Package.swift; inherits this when re-seeded from rooDB

Tickets: SEC-20260901-06 resolved with evidence; SEC-20260901-04 (Disney only) resolved as superseded; a FEAT opened for the "narrow over time" half.

What was compiled in, and where it went

rooDB before: five named enterprise customers and ~30 Arista/Cisco/Juniper/Palo Alto rules seeded into every fresh database; the same customers hardcoded in the classifier; a real customer as the LLM prompt's worked example; library filter chips, the customer corpus view, and the CLI's default argument all naming real clients. replicantDB was customer-clean but still a networking product by default (four net_* seeds pinning L1, EVPN examples in the prompt, a TAC heuristic on the words "case"/"sr").

After, both: the shipped seed is structural only (languages, cloud tooling, invoices/quotes/contracts, tax/medical/identity). Entity, vendor and solution labels come from a runtime vocabulary file that ships empty. Unmatched files fall to neutral defaults instead of an Apple/Swift or networking taxonomy. The LLM must take L2/L4 from the document's own text and never invent one. The networking taxonomy is moved, not deleted: docs/rules.example.json and docs/vocabulary.example.json in each repo, loadable by copying to ~/Library/Application Support/<app>/.

Two substring bugs fixed on the way, both of which mislabel a general user's files: *tac* on a filename matched contacts.csv; hasWord("case") labelled anything with "case" as a TAC case.

Verified on the artifact, with a positive control

grep for every real name across Sources/ + Tests/ in both repos returns only the brand-boundary assertion (which names them in order to assert their absence) and one explanatory comment. The same pattern against docs/vocabulary.example.json returns 2 — the search can match.

Not done, deliberately

Undo

git -C ~/dev/apps/rooDB revert 963707f · git -C ~/dev/apps/replicantDB revert 190f895.

No secrets recorded. No system settings, installed software, or fleet configuration changed.