Intent record (maintainer, 2026-08-21). Several upcoming programs — the transform-vocabulary migration, the cruft audit, and any change to the wrap_kvs surface — all need the same substrate: a reliable, versioned answer to who uses dol, how, and at which commit.
What exists today
A local-only inventory (gitignored misc/data/, regenerable by script) already records an import-level census of all 85 direct dependents: file:line import records, per-dependent short commit / branch / dirty state, a symbol fan-out index (which dol names each package imports), a test-gate order, and a uniform test runner. A separate one-off side scan holds the only call-site kwarg data we have (12 wrap_kvs call sites across 5 repos). Numbers are from the 2026-08-03 scan — rescan before relying on them.
The ask: grow the snapshot into a ledger
- Pin manifest — full commit hashes (currently short); a per-dependent baseline test result (status, exact command, duration) captured at scan time alongside the dol commit; and a restore helper that puts the fleet back at the pinned state. Purpose: back-compat tooling can be exercised against a frozen fleet, and a red suite under a dol candidate can be distinguished from a pre-existing failure.
- Deeper granularity (AST, not regex) — subclass detection (who actually subclasses
Store/KvReader/KvPersister, vs merely importing them) and a call-site kwarg census (who passes key_of_id/obj_of_data/postget/preset/…). The current regex scan stops at import statements.
- Zero-usage report — computed from the ledger (public exports vs detected usages), as the authoritative input to the cruft audit. Two caveats the report must carry: several packages do
from dol import * (usage invisible to an import scan), and ~42 names are imported from dol submodules without being in __init__ — a compat surface any cleanup must respect.
- Successive scans — timestamp + schema version per scan; a ledger of scans over time, not a single overwritten snapshot.
Privacy discipline stays as-is: outputs live in gitignored local storage, no absolute paths.
What this unblocks
- The vocabulary-migration program (frozen-fleet back-compat testing, kwarg census to scope the break).
- The cruft audit (authoritative zero-usage list).
- The dependents test-gate for any
wrap_kvs-surface work (P2 of the flat-model roadmap, misc/docs/dol_roadmap.md).
Intent record (maintainer, 2026-08-21). Several upcoming programs — the transform-vocabulary migration, the cruft audit, and any change to the
wrap_kvssurface — all need the same substrate: a reliable, versioned answer to who uses dol, how, and at which commit.What exists today
A local-only inventory (gitignored
misc/data/, regenerable by script) already records an import-level census of all 85 direct dependents: file:line import records, per-dependent short commit / branch / dirty state, a symbol fan-out index (which dol names each package imports), a test-gate order, and a uniform test runner. A separate one-off side scan holds the only call-site kwarg data we have (12wrap_kvscall sites across 5 repos). Numbers are from the 2026-08-03 scan — rescan before relying on them.The ask: grow the snapshot into a ledger
Store/KvReader/KvPersister, vs merely importing them) and a call-site kwarg census (who passeskey_of_id/obj_of_data/postget/preset/…). The current regex scan stops at import statements.from dol import *(usage invisible to an import scan), and ~42 names are imported from dol submodules without being in__init__— a compat surface any cleanup must respect.Privacy discipline stays as-is: outputs live in gitignored local storage, no absolute paths.
What this unblocks
wrap_kvs-surface work (P2 of the flat-model roadmap,misc/docs/dol_roadmap.md).