Preregister competing navigation ownership comparison
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9
This commit is contained in:
parent
e80e5c31d4
commit
e484cae45f
1 changed files with 64 additions and 0 deletions
64
research/evolution/cycles/2026-09-27-navigation-ownership.md
Normal file
64
research/evolution/cycles/2026-09-27-navigation-ownership.md
Normal file
|
|
@ -0,0 +1,64 @@
|
||||||
|
# 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.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue