Design issue — agree the shape before building.
Problem
Someone with a laptop and a desktop gets two disjoint pictures, and a team lead gets none.
Why it matters
The ledger is the one artifact that is safe to move between machines, because it is path-free by construction: src/repo.rs reduces a working directory to an owner/name slug during the scan and discards the path, branch and session id. That property is what makes this possible without compromising anything.
What to do
Acceptance
Two machines' ledgers merge into one dashboard with per-machine attribution, and the merge is idempotent.
Design issue — agree the shape before building.
Problem
Someone with a laptop and a desktop gets two disjoint pictures, and a team lead gets none.
Why it matters
The ledger is the one artifact that is safe to move between machines, because it is path-free by construction:
src/repo.rsreduces a working directory to anowner/nameslug during the scan and discards the path, branch and session id. That property is what makes this possible without compromising anything.What to do
usage-ledger.json, plus a machine label on day rows.(requestId, message.id)key.LEDGER_VERSIONis at 4 and older ledgers are discarded, so there is a precedent for the schema change.Acceptance
Two machines' ledgers merge into one dashboard with per-machine attribution, and the merge is idempotent.