Master's Zstandard physical encoding (#416) and this branch's packed chunk
rows compose as orthogonal layers: packChunks shapes the logical storage
records, compression shapes the physical bytes. The backend keeps both
config keys; eventLines(events, packChunks) replaces master's singular
eventLine helper and feeds encodeMaterialization/encodeEventBatch so packed
rows flow through either encoding. Demo apps carry both passthroughs. The
packed-row layout tests pin compression: 'none' (they assert textual line
tags) and read through rawLogPath; zstd spec fixtures inline
JSON.stringify for verbatim lines.
Conflicts: the two generated catalog docs (regenerated over merged sources)
and the jsonl backend README storage-layout bullets — master's required
delegationDepth header field weaves with this branch's storage-record/packed
row wording.
Conflict: master's docs-site rework (#e7b101a43) deleted the generated
website/zh-CN/api pages this branch had re-anchored after the last merge —
accept the deletions; the site now builds its API reference at build time.
Identity validation must reject a header id that cannot derive a path, and only ENOENT may mean that storage is absent. Other root or per-path failures must remain visible instead of becoming an empty list or false miss.
Exercise those branches with narrow storage-mechanics cases, preserving per-file 100% coverage without restoring the flat-layout or multi-writer tests removed from the replacement design.
A configured root that already exists as a file or unreadable directory cannot host cwd buckets, but the backend previously mounted and deferred that deterministic configuration error until a later list or write.
Probe the resolved root while the plugin loads, surface every error except ENOENT, and keep an absent root valid for lazy first materialization. Document the timing contract, regenerate the config catalog, and pin the non-directory case at the load boundary.
JSONL discovered a log by the requested session id but later routed repair and append from the parsed header. A log selected for session A could therefore declare session B and redirect mutation to B.
Validate the requested id and exact header-derived cwd-bucket path before returning a stored prefix, reject duplicate ids across buckets, and repeat the id/cwd guards in the coordinator before repair or state publication. Collapse the redundant loadLive hook into loadStored while retaining the existing bucket layout and one-live-writer topology, avoiding flat-layout churn and a locator generic that SQLite and test backends do not need.