Conversation
Add deterministic push ordering, document version, pull outcome, and completion controls to the fake LSP fixture so the follow-up production fix can prove each guard against real wire ordering. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
ci-classifier: infra-kill (no failing assertion; [mem-watch] KILLED WITH HEADROOM — no failing assertion, and no sample fell below 4124 MB of 15990 MB, so the box was not short of memory at any sample point (2000ms sampling: a shorter spike, or a pressure-based kill by systemd-oomd, would not show up here). Read the kernel kill evidence step for the signal's sender. exitCode=137 totalMb=15990 lowWaterAvailableMb=4124 lowWaterAt=15:43:39 childPid=2437; heaviest files by peak RSS: tests/config/bounded-container-guard.test.ts (9238 MB), tests/config/vi-mock-export-sweep.test.ts (5642 MB), tests/index-integration.test.ts (1538 MB); kernel evidence: dmesg and cgroup both show no OOM/kill records; auto-rerun triggered) |
|
A required check is failing on the current head:
|
Latest Plegma fixer handoff
Handoff bodyOperating rule: Keep fake-LSP ordering controls deterministic and exercise them through the real fixture wire. Kept: This round does not change production LSP behavior, session lifecycle code, or SummaryAdd explicit fake-LSP controls for push ordering, diagnostic version, pull outcomes, and pull completion. The controls support #2824 follow-up tests without changing production LSP code. Tests
Red-first and mutation evidence: the exact head's isolated session-start test passed, so the reported Unit failure did not reproduce locally. The new fixture-control cases time out before receiving the initialize response in this sandbox. No guard mutation was claimed because this round did not add a production guard. Blast radiusThe change is limited to the fake-LSP fixture and its real-process test coverage. It affects only tests that opt into the new Class sweepThe fixture population was searched for existing pull handlers and completion controls. The new controls are centralized in the fixture's ObservabilityNo new production failure path; no record added. The fixture emits the requested wire frames and the tests observe those frames directly. Test assessmentThe edited fixture test adds real child-process coverage rather than a mock. Its waits use Round 1
Verification
Proposed commit message |
Latest Plegma review handoffWorker: sub-mu14hblz-18 Review verdict: merge after verificationExact head reviewed: No proven source correctness finding is present in the three-file diff. The FindingsCRITICALNone. HIGHNone. MEDIUMNone proven. The eight new cases in LOWNone. NITPICKNone. Acceptance reviewThe diff adds the claimed controls at module scope in
The tests spawn through The existing Verification
Blast radiusProduction runtime code is untouched. The behavioral surface is the shared Class sweep verdictCleared: real fixture spawn path, framed wire parsing, ordering controls, Not cleared: exact-head CI and an outside-sandbox reproduction of the new ObservabilityThe new completion notification is a bounded test-only wire event and carries Could not verify
Named outputStrong: The new tests form a useful fixture-wire fidelity layer, but they Previous-round dispositionNo previous review findings were supplied.
Next ownerThe fixer or orchestrator should run the exact head outside the sandbox, |
apmantza
left a comment
There was a problem hiding this comment.
Detailed review handoff: #2974 (comment)
Verdict: merge after outside-sandbox verification
Next owner: orchestrator: run exact-head fixture tests and CI outside sandbox
This is a maintainer-posted COMMENTED review, not an approval.
apmantza
left a comment
There was a problem hiding this comment.
Review handoff — exact head 3139edad85fdf117024263046b42d05b4cead8e3
Verdict: merge as-is, subject to the blocked exact-head CI and external Vitest rerun. No CRITICAL, HIGH, MEDIUM, or LOW finding was reproduced.
Evidence: the real persistent-wire probe passed ordering, version, pull outcomes, completion, clean stderr, and child exit. Build, lint, format, changelog, lockfile, and fixture governance checks pass. The eight new Vitest wire tests time out only when this runner closes child stdin early; the same fixture passes through a persistent pipe. Hosted CI and full preflight remain unverified.
Next owner: orchestrator. Rerun the serialized lsp-spawn-heavy fixture suite in a process-capable environment and verify exact-head CI. Do not infer green from the local timeout or absent hosted checks.
|



Summary
Refs #2824. This fixture-only PR adds deterministic JSON-RPC controls for the
later LSP fix PR: push-before-response, push-after-response, explicit push
versions, four pull outcomes, and a completion notification. The completion
notification is awaited through the governed wait seam from the interleaving
kit. It does not change production LSP behavior or the deferred-timeout
telemetry test.
The fixture-first acceptance criteria are complete. This PR unblocks the
separate production fix PR and does not close #2824.
Type of change
Area
Checklist
Tests
The real fixture contract file tests/support/fake-lsp-server.test.ts covers:
The tests spawn the real fixture process and assert independently parsed
JSON-RPC frames. The existing fake-LSP consumer suite and flake-shape ratchet
also passed.
Mutation evidence, after a fresh build, is recorded in this transcript:
Test assessment
The touched fixture test file uniquely pins real-wire ordering, document
version, pull outcomes, completion signaling, and the existing process-cleanup
backstop. No removal candidate is present. The fixture implementation remains
the shared spawn seam for all consumers.
Blast radius
No production module changed. The fixture controls affect only tests that opt
into their environment variables; default fixture behavior is unchanged.
Class sweep
The fixture population was searched for pull handlers, push controls,
completion controls, raw delays, and governed waits across clients, tools, MCP,
scripts, the host adapter, and tests. The sweep found one fixture
implementation and its direct contract test; all other consumers retain
default behavior. The family stays distributed because the fixture owns
wire behavior while client tests own protocol assertions.
Observability
No new failure path; no record added.
Verification
Fresh hosted exact-head CI is required before merge. The prior Unit failure
was in an unrelated full-suite session-start test; the focused fixture tests
must still be confirmed on the exact head.