|
|
04a2b27902
|
arborist.read: add SessionsView read seam for the sessions shard
Mirrors `open_shards(paths) → Shards`: arborist-viz and other read-only
consumers import `open_sessions(path) → SessionsView`, exposing:
- counts() → SessionCounts(n_sessions, n_nodes, n_audit_events)
- list_sessions() → list[SessionRow]
- get_session(sid), get_node(bates), children_of, path_to_root
- all_nodes_in_session(sid), branches_in_session(sid)
- find(query, limit) — FTS5 over question+answer+cited_titles,
skips synthetic-root nodes (seq=0)
- find_by_cache_key(cache_key)
- chain_check() → (intact, breaks)
Opens sqlite with mode=ro + check_same_thread=False for WSGI worker
pools, serialized internally by an RLock. Bootstrap via
SessionStore.open().close() ensures the schema exists before the
read-only handle attaches.
9 tests pass: counts, list, get_node, path_to_root crossing sessions,
find FTS5, find-skips-synth-root, chain integrity, missing-db
fallback, branches in session, find_by_cache_key.
arborist-viz commit lands separately.
|
2026-06-01 17:41:04 -04:00 |
|