fabro/lib/apps
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
..
fabro-cli Merge pull request #810 from fabro-sh/mcp-config-name 2026-08-26 09:22:49 -04:00
fabro-mcp-server Refactor MCP config argument handling 2026-08-26 09:01:37 -04:00
fabro-server Simplify on-demand run projection loading 2026-09-02 11:43:17 -04:00
fabro-spa refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00