Skip to content

v3.12.4 - The Bridge Learns to Mirror Lightly

Choose a tag to compare

@RMANOV RMANOV released this 27 Jun 10:12
· 157 commits to main since this release

The bridge now exports a slimmed-down companion mirror so the Kanban PWA can render without choking on giant notes, while the transport copy stays complete and lossless.

Highlights

  • New render-only kanban_payload.json artifact. The Kanban PWA had been loading the full shared.json (~18 MB, with single task notes up to ~540 KB), which hung the browser render. Exports now also emit a separate, lighter mirror sized for the UI.
  • Description truncation tuned for rendering. In the payload mirror, non-active notes (done/archived/someday) collapse broadly, active notes over 20 KB truncate, and small active notes pass through full. Each truncated copy carries _mirror_preview, _full_len, and _full_hash (sha256) so consumers can detect and recover the elided body.
  • Generated on both export paths. The artifact is produced in both bridge_sync_worker and bridge_server.bridge_push before git staging, keeping the two sync routes in lockstep.
  • Transport stays full and authoritative. shared.json, index.json, and tasks/*.json keep complete bodies, so a fresh pull/restore recovers full descriptions. The new file is wired into surface_contract as pull=False (never an import source) with merge=union + self-heal, so a corrupt union-merged copy is rebuilt from the DB on the next export, and write failures are non-fatal to push.
  • Regression coverage. Adds tests/test_kanban_payload.py and expands tests/test_bridge_server.py to lock in the truncation rules and contract behavior.

Notes

  • This change covers the export/artifact-generation side only. The Kanban PWA consumer repoint (actually reading kanban_payload.json) is deferred to a later release because pwa/app.js is read-write and a naive preview-read could write truncated bodies back to the transport shared.json.
  • Version bump only in __init__.py / pyproject.toml; no migration required.