fix(api): keep legacy queue reads responsive during repair - #42
Conversation
There was a problem hiding this comment.
Deterministic Validator approval for exact head e0919a449909c70b32e0c926b76bf5f7998d1237.
Ticket: PLF-10675
Correlation ID: planfile-legacy-index-read-availability
Model: zai/glm-5.3
Reviewed diff chunks: 1
Advisory LLM verdict: APPROVE
Advisory summary: Reviewed all 1 diff chunk(s). Chunk extends the bounded stale-index snapshot fallback to legacy unbounded summary dashboard requests (/tickets?sprint=all) via a new allow_unbounded_summary flag, gated on allow_stale (browser) or allow_index_stale (legacy request). Full views and non-qualifying reads remain fail-closed; the 300s freshness bound is unchanged. A regression test asserts no durable YAML parse occurs and correct summary/stale headers are returned.
Advisory findings: none
The LLM output above is advisory and was not used as the approval trust root.
Merge will be attempted after this approval when explicitly authorized.
Decision record (recomputable)
DECISION D-675-8899
TICKET PLF-10675
HEAD_SHA e0919a449909c70b32e0c926b76bf5f7998d1237
CORRELATION_ID planfile-legacy-index-read-availability
ACTOR agent:ifuri-validator-agent[bot]
APPLIED_RULE P-CORE-015
INPUT author_login = "tom-sapletta-com"
INPUT observed_checks = ["notify=PASS","ci-loop=PASS"]
INPUT required_checks = ["ci-loop","notify"]
INPUT required_checks_source = "protected registry (env/request)"
INPUT reviewer_login = "ifuri-validator-agent[bot]"
INPUT superseded_checks = []
VERDICT APPROVE AUTHORITY DETERMINISTIC
REJECTED REQUEST_CHANGES BECAUSE NO_UNSAFE_CHANGE_REASON_FOUND
ADVISORY llm_verdict = "APPROVE" MODEL "zai/glm-5.3"
ASSERT VERDICT_AUTHORITY != "ADVISORY"
Ticket: PLF-10675
Correlation ID: planfile-legacy-index-read-availability
Outcome
Extends the recent atomic SQLite snapshot fallback to the legacy dashboard route
/tickets?sprint=all, which is normalized to a current-sprint summary. This prevents a durable YAML parse from holding the global response lock during index repair.Scope and safety
Verification
pytest -q: 397 passed, 6 skippedruff check planfile/api/server.py tests/test_sqlite_ticket_index.py