Build ErsatzTV Image / Docs update reminder (pull_request) Successful in 5s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (pull_request) Successful in 5m15s
Build ErsatzTV Image / Build & test (.NET) (pull_request) Successful in 6m19s
Build ErsatzTV Image / Build & push image (amd64) (pull_request) Has been skipped
The prior fix set setItemsLoading/setItemsLoaded at the top of loadItems, but the activeId effect calls loadItems synchronously → react-hooks/set-state-in-effect lint error (Main Lint SPA, the real CI failure). Move the not-loaded/loading gating into reloadAfterConflict (an event handler, lint-clean), which is exactly the 412 conflict- reload path Codex's Medium-3 targeted; canEdit stays false through that reload window. Behavior unchanged; the normal switch/initial-load paths (guarded separately by the #242 dirty-guard) are left untouched. Local: lint clean, vitest 667, check:api no drift, full dotnet solution test green.