Files
DeepSeek-Reasonix/internal/usagecatalog
SivanCola cf1733d035 fix(catalogs): rebuild projections atomically
Problem:
Catalog reindex commands only reconciled the existing database, metadata-only history edits could miss reconciliation, and concurrent rebuilds could race during replacement.

Root cause:
History, usage, and task entry points had no validated replacement pipeline; the history root signature ignored sidecar metadata; and projection rebuilds had no cross-process lifecycle lock.

Fix:
Build each derived catalog in a validated sibling database before atomic replacement, fence process-global managers during rebuild, retain task notifications across the fence, include metadata in history signatures, and serialize rebuilds with an advisory lock.

Verification:
- go test -count=1 ./...
- cd desktop && go test -count=1 ./...
- go test -race for boot and all affected catalog packages
- cd desktop && go test -race -count=1 ./...
- go vet for root and desktop modules
- make lint plus CI build-tag lint matrix
- CGO_ENABLED=0 builds for darwin, linux, and windows targets
2026-08-11 16:40:32 +08:00
..