Skip to content

fix(assistant): stabilize nightly source and input interactions - #288

Merged
chaxus merged 4 commits into
mainfrom
codex/nightly-interaction-stability
Oct 20, 2026
Merged

chaxus merged 4 commits into
mainfrom
codex/nightly-interaction-stability

Conversation

@chaxus

@chaxus chaxus commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

Merge Verdict

[APPROVE] — Address the three retry-only failures from PR #287's nightly run with one narrow source-ownership fix and deterministic browser regressions.

7 files · +256 / -23. Independent review found no actionable issues.

Summary

  • Keep references attached during asynchronous history startup associated with the selected conversation. Previously, clearing history's source maps left the selected pointer detached; reselecting the same conversation discarded files attached while restoration was pending.
  • Establish historical reading through native Home navigation and the visible processed-scroll signal before testing composer resize and navigation. A delayed native-scroll regression covers WebKit's event ordering without changing production following behavior.
  • Focus and verify the SDK's real keyboard input before seeding save scenarios. Firefox defers the focus redirect after canvas activation; a controlled deferred-focus regression verifies that trusted text reaches the document before the original conversion-overlap checks.

Risk Analysis

Area Risk Verification
Reference ownership Low Clear invalidates existing captured references; new attachments survive same-ID reselect; switching conversations remains isolated.
Composer setup Low Production chat code is unchanged. Existing offset, draft, selection and workspace-navigation assertions remain active in all four formats.
Save setup Low Vendor code is unchanged. Exact in-memory and disk text, held recovery conversion, history, dirty state and reload assertions remain active.

Design Decisions

  • Preserve the cleared selected source map instead of adding a second owner or changing conversation/storage contracts.
  • Synchronize the tests with the browser/editor boundary that actually completes the operation. Do not increase assertion deadlines, test timeouts, retries or error allowlists.
  • Keep the weekly real-document corpus separate from this focused browser validation; run the complete nightly WebKit/Firefox matrix and slow-network budgets with skip_corpus=true.

Code Concerns

No outstanding actionable findings after independent review and caller tracing through history controls, conversation selection and captured-reference consumers.

Verification

Check Result
Lint / TypeScript Passed
Full formatting / evaluation archive Passed; 1511 immutable artifacts verified
Full unit coverage 6801 passed across 252 files; statements 87.79%, branches 83.94%, functions 88.77%, lines 90.25%; all thresholds passed
Source regressions 20 unit tests; 4 gated Firefox/WebKit runs; 8 Chromium source/artifact cases passed
Composer matrix 24 runs across all four formats, WebKit/Firefox and three repetitions passed; controlled fault passed twice per engine; final four-format Chromium run passed
Save regressions All 12 Firefox save cases passed; final focus/overlap pair and Chromium overlap passed
Independent review Approved; caller tracing and diff checks passed
PR CI Passed: default E2E 346, Docker 350, Pages semantics 346, exclusive timing cases 2; no test failures or retries
Real Cloudflare preview 41 passed; deployed build identity matches 3849357c51aa553cd25cea56965ec8f041da97a4
Complete nightly browser matrix and budgets Passed: 664 ordinary browser cases and 4 exclusive serial cases; 62 expected skips; zero failed or flaky tests and zero retries. UI crawl 3 passed; throttled-network case 1 passed

All focused browser runs used zero retries.

All 19 PR checks are successful for 3849357c51aa553cd25cea56965ec8f041da97a4. All three originally flaky scenarios passed on their first CI execution, including the retained fault-injection regressions. All eight nightly browser report artifacts were retained. The weekly real-document corpus was intentionally omitted with skip_corpus=true.

Preview: this commit's deployment.

Reverse validation

  • Old reference implementation: both new unit cases fail with [] instead of ['New notes']; the browser's controlled startup restoration removes the attached notes.txt row.
  • Remove only the processed-scroll visibility gate: the delayed native-scroll case fails twice in WebKit with historical offset 1449 instead of 0 after resize.
  • Remove only explicit SDK input focus: Firefox's controlled deferred-focus case fails the unchanged exact-content poll with "" instead of "Recovery version".

The implementation notes and boundaries are recorded in docs/explorations/2026-10-20-nightly-interaction-stability.md.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying document with  Cloudflare Pages  Cloudflare Pages

Latest commit: 3849357
Status: ✅  Deploy successful!
Preview URL: https://c6bbb972.document-7hm.pages.dev
Branch Preview URL: https://codex-nightly-interaction-st.document-7hm.pages.dev

View logs

@chaxus
chaxus merged commit 7bf478b into main Oct 20, 2026
32 checks passed
@chaxus
chaxus deleted the codex/nightly-interaction-stability branch October 20, 2026 01:50
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.

1 participant