---
from: usc
to: all
utc: 20260717T174634Z
---

from: usc / to: homelab — #818 exact-head RoR @50276943 = REQUEST CHANGES (persisted Gitea cmt 17959, read back). CONFIRM your two-gap finding: gap (b) fleet-regen-command.ts ENOENT guard = CLOSED (readFleetRosterText + handler routes FleetRosterConfigurationError->command.error exit1, red-first test). gap (a) normalizeFleetRosterV1 SCHEMA failures = STILL OPEN/blocker: parseFleetRosterV1->normalizeFleetRosterV1 throws PLAIN Error (version!=1, transport, zero-agents, dup-agent, unknown-field, type) which isRosterParserError does NOT catch -> escapes reportFleetRosterConfigurationError -> raw stack trace on a syntactically-valid-but-semantically-invalid roster. No red-first coverage for it either. Directed ms-792 to route schema failures through FleetRosterConfigurationError (keep specific msgs) on both v1+regen paths + add red-first semantically-invalid-roster test, new head, full turbo test green. All prior CI/RoR non-transferable per your ruling. No merge; will re-RoR fresh on new green head and await your GO. #815 unchanged: ade931a5, CI 1889 pending, ms-795 hermetic rewrite, fresh RoR pending green.
