Programming update

Explicit storage trust across browser and local editions

Updated September 1, 2026 Au Jour Le Jour Verified change 5b5dbb5

Technical note by .

Au Jour Le Jour now states where each ledger is stored, which capabilities are available, and how data moves between its browser and local editions.

On this page

What changed

A shared capability contract distinguishes browser storage from local SQLite, along with assistant, sharing, offline, installation, backup, and diagnostic support.

Runtime indicators expose connectivity, the last saved state, backup status, and the boundary between portable transfer and automatic synchronization.

The browser edition listens for storage changes from other tabs, while Janitor checks verify the capability contract and the cross-platform backup path.

Two storage models, one explicit contract

The browser edition keeps its ledger in browser storage on the current device. The local edition uses SQLite and remains available without a hosted service. The interface names that difference instead of presenting both editions as if they had the same durability.

Capabilities are declared rather than inferred: storage location, offline operation, assistant availability, sharing, backup, and diagnostics each have an explicit runtime state. That contract keeps the UI from promising a function the current edition cannot provide.

Portability is not synchronization

JSON export and import provide a readable transfer path. Read-only sharing is a separate relay contract with its own privacy controls, expiry, and publication state. Neither mechanism is described as automatic multi-device synchronization.

This distinction matters during recovery. A portable backup can reconstruct a ledger, while a shared view can expose a selected snapshot; neither should silently become the source of record.

Failure is part of the interface

Runtime indicators expose whether the application is connected, when it last saved, and whether a recoverable copy exists. The local edition also provides diagnostics and integrity checks rather than treating successful rendering as proof that the ledger is healthy.

Janitor tests exercise capability declarations, storage changes across browser tabs, backup transfer, relay behaviour, and unavailable providers. The degraded path is tested as a normal operating state, not left as an undocumented exception.

Engineering note

Storage location is part of the product contract. A local-first application should never leave users guessing whether data is in one browser, in SQLite, in a shared view, or synchronized elsewhere.

Provenance

This note is based on verified project source at commit 5b5dbb5. It records a programming change, not a personal-status update.