Repository navigation
fix(lsp): retain admitted diagnostic snapshots for pull - #4524
ScriptedAlchemy wants to merge 19 commits into
Conversation
Transfer completed diagnostic work into bounded session-owned reports so push publication and repeated pulls share the same admitted evidence. Fence retained reports to document and scope identity, and retire exact operations on invalidation without claiming analyzer work has settled. Keep incomplete results truthful and retryable, and retry publication only for outbound backpressure rather than duplicate or oversized pushes. Fixes #4404
|
|
Independent review at exact head Two workspace residuals need coordination with this branch owner:
These are source-derived findings, not executed reproductions. Please carry the smallest workspace-lifetime correction here or coordinate an exact child branch. Preserve the existing operation table, compute settlement ownership and document retirement. The missing proof is deterministic real-adapter workspace close/reopen and pending root removal/shutdown, plus small-capacity repeated document supersession. No capacity or timeout increase is proposed. The ongoing compiler-admission/effective-config workers are separate and will not edit your operation-table/protocol paths. |
Fleet logs show five complete 48,000-function generations take 53–65 seconds each. The default medium deadline kills the final refresh near 300 seconds despite steady successful publication. Declare the measured aggregate workload through the existing Cargo-to-Bazel size metadata, preserving every refresh, memory bound, and assertion.
This PR targets master. Remaining merge order: #4524, #4489, #4485, #4527, #4528, #4530, #4531, #4529, #4534.
Use merge commits. After merging a parent, retarget its child to master before merging the child. Auto-merge is disabled.
Completed document diagnostics remain available for later push and pull reads. Each retained report revalidates document content, overlay lifetime, canonical code generation, and committed analyzer publication before reuse. Changed findings produce a new result ID even when document text and coverage are identical. Refreshing another document preserves the first document's valid report.
Asynchronous pull validations settle during background processing and release their operation permits even if the client never retries. Settlement retains one matching response without publishing diagnostics or requesting a workspace refresh. Publication retries preserve the admitted snapshot and exact operation identity.
Analyzer publication eligibility now lives beside synchronized document state in the existing client owner. Broker reads couple that committed evidence with the actual retained findings. Failed admission, cancellation, settings replacement, process retirement, and stale completion revoke eligibility. Successful roots can commit while another root fails. Dashboard coverage continues to describe the latest refresh scope. The application uses the canonical diagnostic projection for both rendered findings and identity.
Validation on the combined correction:
The prior CI head also failed the Codex native-cache relocation test. Its rejecting activation condition is under separate investigation; this diagnostic correction does not claim to resolve it. Fresh CI is pending.
Fixes #4404.