Skip to content

flake: malformed-B cleanup witness races the child's feedback prompt count #1042

Closed

Description

@taras

During #1005 development, the new malformed-response-result cleanup witness passed and then failed without a source change between those runs.

Local command, run twice:

timeout 90 deno test --allow-all --frozen packages/cli/tests/repl-headless-clients.test.ts

Runtime: Deno 2.9.7 / V8 15.0.245.2-rusty / TypeScript 6.0.3, macOS aarch64; Node v26.5.1 for ACP subprocesses. These were local runs, so there is no Actions run URL.

  • 2026-10-31 23:45:51–23:46:36 UTC: actual test exit 0; 1 test, 14 steps passed.
  • 23:46:40–23:47:25 UTC: actual test exit 1; malformed-B-result step failed at expect(held.host.fake.prompts).toHaveLength(1), receiving two prompts. The other 13 steps passed.
  • The first prompt is the original request. The additional observed prompt contains the accepted answer, consistent with the child's ordinary feedback continuation. This observation alone does not establish a resend or a production defect.

Candidate provenance: clean base fa3b389d7a05bb4aab1f860127a200c4d61ac29b plus uncommitted test changes; these runs are not claimed against the clean base. The identical client-test file has SHA-256 01feab902d7b17fd1a1d21998d4fe290839923cbaf207dea8bb84e3a2295ce80. Successful native edit replay reconstructed that candidate and matched the subsequent working file after its recorded edits; there was no intervening source edit between pass and failure.

The first complete test outputs and native command/edit chronology are retained in the integration evidence. A later candidate permits one or two prompts, but that change still needs review: distinguish the legitimate feedback prompt from resubmission, preserve the original malformed-result cause and prove joined cleanup and child continuity. A green rerun alone does not close this issue. Close only after the cause and regression evidence are recorded in the delivered correction.

Activity

  1. added
    flakeIntermittent or timing-sensitive failure that can pass without a code change
    on Oct 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    flakeIntermittent or timing-sensitive failure that can pass without a code change

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions