From f3697c1447480eedbbadd467ea3704f8d8aa62bd Mon Sep 17 00:00:00 2001 From: tegwick Date: Sun, 27 Sep 2026 00:04:17 +0200 Subject: [PATCH] Preregister first measured navigation research cycle Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9 --- .../evolution/cycles/2026-09-27-navigation.md | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 research/evolution/cycles/2026-09-27-navigation.md diff --git a/research/evolution/cycles/2026-09-27-navigation.md b/research/evolution/cycles/2026-09-27-navigation.md new file mode 100644 index 0000000..cf55739 --- /dev/null +++ b/research/evolution/cycles/2026-09-27-navigation.md @@ -0,0 +1,77 @@ +# LEARN-0011 — Navigation representations across entry and history + +Status: preregistered before implementation/execution; owner/reviewer Codex (author-model). +Local date 2026-09-27 (Europe/Berlin); UTC dates may still be 2026-09-26. +Stream B; CAND-0009 URL-addressable State and CAND-0010 Progressive Enhancement. + +## Question and prior belief + +Can one public read-only route preserve selection and complete-document availability +across direct entry, absent/failed enhancement, history restoration and HTTP caching? +Prior: a native href/GET contract plus representation-aware routing/cache selection +should satisfy this narrow obligation. Merely pushing a URL, emitting HTML or adding +Vary without checking actual cache behavior is insufficient. History snapshots may +restore older bytes; no freshness or offline availability promise follows. + +Expected decision: corroborate these existing obligations with a pinned runtime, or +revise their scope if the failure cases expose an unrecorded obligation. A pass count +alone is not a revision. One question yields one ledger outcome, not one per test. +Disconfirmation: a correctly keyed full/fragment response is mixed; a valid native +contract needs client script; or the tested history recovery cannot resolve selection +under the declared setup. Unexpected results remain in the receipts. + +## Registered comparison contract: B-navigation-mechanism-v1 + +One bounded route/representation question per cycle; real pinned library in authored +local HTTP fixture; Chromium and Firefox; positive paths plus negative controls; +author-model review, no production recurrence or human validation inferred. Use this +group only for comparable question size/evidence tier and the same accounting below. +No model inference is needed. Any later inference must use llm-connect. + +Pin htmx 2.0.11 and Playwright 1.63.0 with lockfile. Use native anchors and a GET filter, +optional boosted links with explicit history configuration. Keep application server +policy separate from vendor behavior. Document exact headers, browser versions, +file hashes and request traces. Real browser HTTP cache, no request interception. + +## Checks fixed before execution + +Run each browser condition once, isolated contexts; retain failures, do not retry to +hide them. Wait on events/DOM/network state rather than arbitrary settling sleeps. + +| ID | Condition / expected observation | +| --- | --- | +| N01 | Direct filtered entry with JavaScript disabled, native link and GET form: full shell, matching selection/URL | +| N02 | Enhanced link pushes selection; reload and fresh direct entry produce full shell | +| N03 | Back/forward with history snapshot available: selection restored; distinguish network from snapshot | +| N04 | Evict htmx history storage before back: history-miss request restores selection from full document | +| N05 | Enhanced request returns 503: committed old URL/content remain; explicit native recovery can navigate | +| N06 | htmx script returns 503: native link and GET form still work | +| N07 | Cache fragment first, then full document for same URL: correct Vary preserves both representations | +| N08 | Cache full document first, then fragment for same URL: reverse ordering preserves both | +| N09 | Omit Vary negative control: browser may reuse a fragment as a document; record actual behavior, do not presume immunity if not reproduced | +| N10 | Validator checks: matching ETag yields 304; other representation ETag yields 200 and correct body; history-restore selector returns full document | + +N09 is diagnostic, not a success guarantee: a non-reproduction narrows this browser +observation and leaves the contract concern open. N10 may use explicit HTTP requests +for conditional semantics; distinguish these from automatic browser revalidation. +No real intermediary/CDN, production application, offline guarantee, writes, general +accessibility or latency claim. Missing parameter/deleted-resource checks, keyboard, +focus and announcements remain separate obligations unless explicitly added later. + +## Effort accounting and budget + +Budget: 45 active research minutes, plus at most 10 execution minutes before a scope +review. Single-agent continuous session. A monotonic clock starts after orientation, +before this registration. Active research is elapsed session time minus measured +blocking experiment/verification subprocess intervals; includes implementation, +reading, analysis and recording. No concurrent work; no overlapping double count. +Package setup is research overhead. Pause logging if interrupted. Timer cutoff is the +completed analysis/verification boundary; final commit/snapshot/sync administration +is excluded and reported as unmeasured overhead. Receipt-backed tokens/cost unknown; +no estimate from this chat. Save the timing receipt and state clock precision/limits. + +Commit this preregistration before implementation or browser execution. If a harness +error needs correction, retain the first result and explain the change. Record the +outcome in a separate review and append-only ledger; this plan stays as registered. +Remaining work belongs to WP-0003 T01/T02 and WP-0006 T03. One cycle cannot establish +any learning-rate trend or diminishing returns.