Skip to content

Integrate PR869 and PR901 on current main with runtime qualification failures - #998

Closed
flip-baton-deepseek[bot] wants to merge 15 commits into
mainfrom
codex/pr869-pr901-current-main-integration-20261021
Closed

flip-baton-deepseek[bot] wants to merge 15 commits into
mainfrom
codex/pr869-pr901-current-main-integration-20261021

Conversation

@flip-baton-deepseek

Copy link
Copy Markdown
Contributor

Combined integration of PR869 and PR901 on current main c021089a.

Source identity

  • Head: 942b6075c437b0eea831350a4e15f75f30a3b9df
  • Tree: b8719c5af625ac2919ce15e846da952c5551aa9d
  • Parents: 2633af5bc (PR869 merge), b9e52ffcb (PR901 merge)
  • Base: c021089a622ccd278443cad3296c2328500c3fd8

PR869 integrated head e04afc534 merged clean. PR901 integrated head b9e52ffcb merged with one observer-monitor.py conflict. The resolution keeps both test sets and one start_attempt that supports harness, stdout_file, later_stdout_file, stdout_fixture and spool_timeout. The turn.bend delta against c021089a is PR869's 173-line source change.

Check-only

Bend 2.0.25 (2.0.25-f5185e38-pr967-pr968-e5c4efd-20261019) check-only on 942b6075c:

  • bend2/src/coordinator/main.bend: exit 0, 34 unsafe/foreign definitions reported
  • bend2/test/monitor-fixture.bend: exit 0, 10 unsafe/foreign definitions reported
  • bend2/test/observer-recovery-entry.bend: exit 0, 4 unsafe/foreign definitions reported

Canonical queue build

/var/tmp/baton2-compile-queue/compile-queue-runner, state root /var/tmp/baton2-compile-queue, queue owner compiler-queue-970-coordinator-20261019, compiler 2.0.25-f5185e38-pr967-pr968-e5c4efd-20261019, CC /usr/bin/clang-19, linker /usr/bin/ld. Artifacts and receipts are under .scratch/pr869-pr901-942b6075c/.

Stage Key Artifact
recovery cgen bdcf222c2cd6fa5ffae18089036779bb33caaa15e821da31ce6f89f357d9d4af observer-recovery.c 17,054,625 bytes, sha256 a10fa6601b742ede55460c181e568af78d0e750ff90a32e29c23cd17dafa6939
fixture cgen d72ba99f0624259909a961f417bbe714a734b628bffe84e5787cd5c6de3882db monitor-fixture.c 858,819 bytes, sha256 6be85be25b8de1b54a4998203c758bec8c9267d60a6b9a5e51948d608473e322
recovery cc 67ade17670941d9173f4ba37e7870dc6a37da80effb75d8fe943e031d5d545c1 observer-recovery 8,199,248 bytes, sha256 ba9dd3f52615a34b8b3a7f4aa1333bedd4f562427356519ea1ce018cc9e769c6
fixture cc 3fa6031ad7495b095a8c61e5e9fcca6f62dfdfaed4bb52a92b6c31198d14c8c3 monitor-fixture 1,421,536 bytes, sha256 9703c04c449e669898957e2d5c4dd992a8e6d71cfd6a2d764044b1f3779c9c55

The queue receipts record status=completed, reused=0, verified=1, exit=0. The recovery Cgen ran for about 53 minutes behind the shared heavy lock. The fixture Cgen ran sequentially after it, not in parallel. The running issue937 key f84471ce was not duplicated.

Qualification results

The exact binaries were run with OBSERVER_MONITOR_FIXTURE and OBSERVER_RECOVERY_BIN set to the artifacts above, and BATON_MONITOR_REPLAY_SPOOL_FIXTURE=/mnt/nvme4tb/ci-runners/baton2-native-homelab/retained/recovery-output-fixture-20261018/stdout.bin (46,123,112 bytes, sha256 87020b044a82014a8a4ef8166249be7a6012986f8f232c3868887f09bb521772).

Preserved failures:

  • test_codex_large_assistant_frame_stays_spanned_through_report: FAIL, checkpoint_offset 0 != 8388608.
  • test_codex_large_failed_terminal_stays_spanned_through_report: FAIL, checkpoint_offset 0 != 8388608.
  • test_codex_large_failed_terminal_replaces_legacy_checkpoint: FAIL, the first checkpoint contains codex-span-v1 with a span token for the 103-byte legacy line; the test expects the raw legacy assistant line.
  • test_protected_spool_replays_to_normal_eof_with_unknown_monitor_custody: FAIL, checkpoint_offset 13598 != 46123112; the helper returned nonzero. The spool is complete at 46,123,112 bytes and the materialized native log is 76,399 bytes.
  • Full observer-monitor.py suite: 10 tests, 8 failures, 2 errors. Current-main tests also fail: test_spanned_agent_end_monitor_keeps_unknown_custody reports Operation not permitted; test_quiet_spool_awake_span_wakes_for_delayed_stdout and test_refused_resume_text_stays_an_incomplete_observation time out; test_concurrent_observers_advance_the_cursor_once, test_fframes_absent_native_partial_output_preserves_unknown_custody and test_unknown_status_monitor_advances_once_and_keeps_owed_input leave the cursor at 0.

The retained attempt in each failure contains checkpoint-error = state rejected by the observer; replaying from the beginning. The helper process waits in select/poll without committing the large frame. The legacy test's first checkpoint is already a codex-span-v1 token for the small legacy line.

The result/event/report, native UUID and custody assertions after the failing checkpoints were not reached. The PR869 8MiB assistant and failed-terminal paths, the legacy checkpoint reopen, and the PR901 46,123,112-byte normal-EOF replay are not qualified by this head.

Rejected legacy evidence

The prior 788 b806 / 3fe6380d build with binary ad9ee93a... is retained as PR835 legacy-reopen evidence only. It lacks CodexSpanState and was not used. Supporting records: knowledge-record:ece4dd7553241bd57b92f36db76c5af0 and report:f9c46045e4b33a33a46683aa6d47fa8e.

Remaining gaps

The source at 942b6075c does not pass the required PR869 and PR901 runtime proof. The failing checkpoints prevent the exact result/event/report and cursor/native/custody assertions. This head is frozen for the recorded build; no source fix is included.

codex and others added 15 commits October 18, 2026 09:42
…ain-integration-20261020

# Conflicts:
#	bend2/test/observer-monitor.py
…ain-integration-20261020

# Conflicts:
#	bend2/test/observer-monitor.py
…869-pr901-current-main-integration-20261021

# Conflicts:
#	bend2/test/observer-monitor.py
Classify large Codex spans from a bounded prefix, preserve small spans through the text path, and commit the checkpoint cursor for every consumed span. Add the rationale and unverified limits.
flip-baton-claude Bot added a commit that referenced this pull request Oct 24, 2026
The candidate and target checks of the previous head failed in prepare-native-compiler.py with 'Unknown compiler archive SHA256': the branch's verifier did not list the pinned compiler archive 6609a2de that main now lists.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@flip-engineer

Copy link
Copy Markdown
Collaborator

Root source review is complete. Current main contains this work through merged PR #1088 (3c4f9a0458c922417b1e83f8a0cf4f2fcd52166a). An independent native reviewer traced the retained Codex span/checkpoint, small-frame continuation, monitor-only replay and custody, invalid-checkpoint handling, instance-owner entry, and result/report requirements against current source, tests and documentation.

turn.bend classifies complete retained JSON spans through SQLite and preserves codex-span-v1 state. Current observer code and observer-monitor.py cover cursor commits, latest assistant and failed-terminal data, legacy reopen, metadata ordering, monitor custody, unknown native exit and unread input. The exact escaped-backslash boundary regression is merged in #1148. Root checked that test's 5300-byte fixture and escaped boundary; the focused native observer test has not been rerun here.

This older proposal is superseded by the integrated source. Its truncated JSON-prefix classifier can reject valid escaped input at byte4096 and must remain superseded. Root is closing #1047, #998, #869 and #901 on this source disposition. Replay-throughput work remains open in #1046; exact current-package runtime qualification and installed wake/chat-injection proof remain separate work in #1054 and the active critical package assignment. Closing these obsolete PRs does not claim those delivery results.

@flip-engineer
flip-engineer deleted the codex/pr869-pr901-current-main-integration-20261021 branch October 27, 2026 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants