Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9
64 lines
4.4 KiB
Markdown
64 lines
4.4 KiB
Markdown
# LEARN-0013 — Completion ownership under competing navigation
|
||
|
||
Status: preregistered before implementation/execution. 2026-09-27 Europe/Berlin.
|
||
Codex author-model review; stream F, new comparison group F-navigation-ownership-v1.
|
||
The multi-request question differs from the single-response focus protocol; do not
|
||
pool rates. CAND-0009 URL-addressable State, CAND-0010 Progressive Enhancement,
|
||
CAND-0016 Focus Return. No new candidate presumed.
|
||
|
||
## Question and prior
|
||
|
||
Can the previous managed focus policy let old history/navigation completions replace
|
||
newer selection, steal focus or report obsolete results? Prior single-request evidence
|
||
supports continuation but leaves competing completions untested. Proposed guard:
|
||
assign an owner/generation to navigation, reject stale completions before effects,
|
||
and track focus ownership independently so an otherwise valid response need not
|
||
move focus. Test outcome, not a blanket recommendation to cancel HTTP requests.
|
||
|
||
Compare the unchanged prior focus-policy.js with an authored guarded policy on one
|
||
new controlled fixture. Use stable content target and persistent navigation controls
|
||
so requests from different elements can compete. Hold responses at server barriers,
|
||
then release in declared order. Browser history uses real Back with htmx snapshot
|
||
eviction. Keep default transport alive to distinguish ignored completion from abort.
|
||
If htmx prevents a race itself, record that rather than force a failure. A guarded
|
||
miss/error or URL/content mismatch is failure, not permission to revise expectations.
|
||
|
||
## Registered matrix
|
||
|
||
Two policies × two browsers (Chromium/Firefox), six cases = 24 rows. Baseline rows
|
||
record the same obligation booleans as guarded rows; distinguish successful recording
|
||
from meeting the obligations. Guarded rows assert all registered obligations. One
|
||
trial each; preserve failures and any correction. No arbitrary sleeps. Tab/Enter
|
||
activate links; browser Back uses history API through Playwright.
|
||
|
||
| ID | Ordered scenario | Obligation after completion |
|
||
| --- | --- | --- |
|
||
| O01 | Back misses history cache; user moves to surviving search; release history | Restore selected article/URL/title but preserve search focus and typed text |
|
||
| O02 | Back miss held; newer article navigation completes; release old history | Keep newer article/URL/title/status/focus; old history completion has no UI effect |
|
||
| O03 | Older article request held; newer article completes; release older success | Keep newer article/URL/title/status; no late focus theft |
|
||
| O04 | Older request held and will fail; newer article completes; release old 503 | Preserve newer result and feedback; no obsolete error replaces completion |
|
||
| O05 | Older request held; newer request fails; then release older success | Do not resurrect older intent; retain last committed view with newest failure feedback |
|
||
| O06 | Older article held; Back restores cached view; release old success | History is newer intent too: keep restored view/URL/title/status/focus |
|
||
|
||
O05 starts from an already committed alpha view; O06 first visits beta to establish
|
||
history. Distinguish committed route from pending browser-history URL. Capture
|
||
intermediate and final state, actual requests and completion traces. Prefer public
|
||
hooks; any history-XHR callback wrapping is explicitly pinned/experimental, not a
|
||
portable production fix. No writes, server rollback, AT speech, production recurrence,
|
||
nonzero swap delays, view transitions, redirect/error taxonomy or universal race proof.
|
||
|
||
## Learning and stopping
|
||
|
||
45 active research minutes and 10 execution minutes before scope review. Monotonic
|
||
single-agent elapsed session minus experiment/check subprocess durations; checkpoint
|
||
inspection belongs to execution, no double count. Orientation and final administration
|
||
outside window; tokens/cost unknown. Commit this plan before implementation/execution.
|
||
Append one ledger outcome; retain all results and source hashes. If scope/criteria
|
||
must change, preserve and disclose the original plan rather than rewriting it.
|
||
|
||
After this comparison, pause the navigation-fixture thread. Write a short synthesis:
|
||
what changed versus prior claims, what remains unverified, and the next independent
|
||
or broader evidence question. Hand residuals to WP-0003 T01/T02 and measurement work
|
||
to WP-0006 T03. Do not automatically start another fixture hardening cycle. One cycle
|
||
per distinct group cannot demonstrate diminishing returns. Live inference, if needed,
|
||
uses llm-connect; none is planned here.
|