Skip to content

flake: J2 journey reads an invalid live journal record under Node #1089

Closed

Description

@taras

Failure

packages/cli/tests/repl-agent-journey.test.ts: J2 “complete, streaming and queued are one frame, and filtering changes only Sessions” fails while inspecting an actively changing entry journal.

First Node failure, run2373 shard12/16, signed commit 1e2edbfd992d051cc212df74408d8015b77a449b, Node22.23.4/Linux:

MalformedDurableEventError: expected a JSON record at $
parseRecord → parseDurableEvent → journal (repl-agent-journey.test.ts:1712)
→ awaitedFact (repl-agent-journey.test.ts:1113)

The complete first job output is retained before any repair or CI rerun. This job's other J2/TL10 controls pass.

Unchanged-head evidence

One focused invocation of the existing J2 test at the same unchanged commit passes under Node22.23.2/macOS, exit0,1,984ms:

node_modules/.bin/tsx --tsconfig tsconfig.node.json --test --test-concurrency=1 --test-name-pattern 'J2: complete, streaming and queued' packages/cli/tests/repl-agent-journey.test.ts

The command joins and the checkout remains clean. This is a different selection/platform/patch runtime, not an identical CI command passing unchanged. A green rerun alone does not resolve this report.

Investigation boundary

journal() reads entryHistory, splits all nonempty lines and immediately parses them. awaitedFact retries a false observation but propagates parsing failures. The test releases streaming work immediately before reading the live journal. A partially appended final record is plausible; the actual offending raw line was not captured, so that cause remains provisional.

The correction must preserve the three retained agent_prompt assertion and rejection of malformed complete records. Prefer supported read/settlement APIs; do not blanket-catch parse errors, increase deadlines, exclude the runtime/test or alter unrelated production behavior.

The #1081 workflow's three source corrections are exhausted; an explicit additional bounded repair is requested separately. No repair or CI retry has been dispatched. Keep open until a demonstrated cause and regression evidence are landed.

Retained evidence

Root /private/tmp/xmd-standard-acp-1081-20261102-1:

  • ci-final-failure-1/job-125907781794.log and first-fetch.json
  • journal-flake-check-1/test.log, test-result.json, and source/environment receipts
  • submit-journal-flake-check-1/result.json: actual joined ACP execution
  • ci-final-failure-1/repair-request.md

Tracking marker: 1081-j2-live-journal-parse.

Activity

  1. added
    flakeIntermittent or timing-sensitive failure that can pass without a code change
    on Nov 3, 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