fabro/lib
Scott Werner 13f3ff867b Simplify on-demand run projection loading
Drop the unreachable active-run mismatch guard that was copied into
load_run_projection: the active-runs map is only ever inserted under the
handle's own run ID, so the check could never fire. Remove it from the two
pre-existing sites too and delete matches_run.

Trim install_in_memory_state to take only the committed projection, since
the event envelope duplicated last_seq and the inner scope only existed to
release the lock before the now-removed shared cache update. Add a From
impl so RunDatabase::build no longer hand-builds EventProjectionCache, and
rename projected_state_locked to match its projection_snapshot sibling.

In fabro-server, have reject_if_archived and ensure_run_exists read the
run summary row instead of replaying the full event history for inactive
runs; the summary is written in the same transaction as the event.

Fold the repeated store-reopen fixtures in fabro-store and fabro-server
tests into helpers, and fix a stale comment about the deleted shared
projection cache.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 11:43:17 -04:00
..
apps Simplify on-demand run projection loading 2026-09-02 11:43:17 -04:00
components Simplify on-demand run projection loading 2026-09-02 11:43:17 -04:00
foundation Move run queries and pull request recovery to SQLite 2026-09-01 14:06:06 -04:00
packages/fabro-api-client Merge pull request #825 from swerner/codex/automation-workflow-sources 2026-09-01 12:22:20 -04:00