v3.12.5 - The Bridge Recognizes Its Own Handwriting
A small but important follow-up to v3.12.4: the bridge now recognizes the kanban_payload.json it generates as its own artifact, so the sync gate stops mistaking it for a user edit and freezing the mirror. Ships with one documentation-honesty pass.
Highlights
- Bridge sync no longer blocks on
kanban_payload.json. v3.12.4 wired the render-onlykanban_payload.jsonartifact intosurface_contractand the merge driver, but misseddb_utils.is_generated_bridge_path()and thegenerated_pathsrestore list. Because the export regenerates the file every run and leaves it uncommitted, the pre-sync readiness check (_path_allowed_dirty) treated it as a user-managed edit and failed closed with "commit or stash bridge repo edits before sync: kanban_payload.json" — silently freezing the mirror and any downstream restore that depends on it. - The file is now treated as a regenerable generated artifact: allowed-dirty through the readiness gate and restorable from DB state alongside
shared.json/index.json. This restores the v3.12.4 "sync stays ON" guarantee. - Regression test added (
test_kanban_payload_is_recognized_as_generated_bridge_path). - README honesty pass (docs-only). Dropped the unsourced "proven 2000+ tasks across 3 machines" bridge claim in favor of stating conflict/recovery discipline without an absolute data-loss guarantee; renamed the "Premium / enterprise boundary" section to "Optional private-runtime boundary" and removed anti-fork / moat / airlock marketing framing while keeping the factual contract description.
Notes
- Version bumped to
3.12.5(__init__.py,pyproject.toml). No schema or API changes; the bridge fix and docs edit require no migration.