From 884803cdf50e43d0abcdf0a910c2cd49915e4655 Mon Sep 17 00:00:00 2001 From: tegwick Date: Sun, 27 Sep 2026 23:17:14 +0200 Subject: [PATCH] Preregister LEARN-0017: Zulip target-lookup/anchor continuation guard question Bounded follow-up to ZN07 (ZulipNavigationSourceStudy.md), same static pinned-revision protocol as LEARN-0014. No inspection performed yet. Co-Authored-By: Claude Sonnet 5 Assistant: claude-code Assistant-Model: sonnet Assistant-Process: 290719@bnt-lap001 Assistant-Session: 55cbe504-1bfe-4932-b761-29016523c87b --- .../cycles/2026-09-27-zulip-target-lookup.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 research/evolution/cycles/2026-09-27-zulip-target-lookup.md diff --git a/research/evolution/cycles/2026-09-27-zulip-target-lookup.md b/research/evolution/cycles/2026-09-27-zulip-target-lookup.md new file mode 100644 index 0000000..5857474 --- /dev/null +++ b/research/evolution/cycles/2026-09-27-zulip-target-lookup.md @@ -0,0 +1,46 @@ +# LEARN-0017 — Target-message lookup and anchor-navigation continuation ownership + +Status: preregistered before inspection. Codex author-model review. 2026-09-27 +Europe/Berlin. Stream B, comparison group B-independent-navigation-source-v1 +(second cycle in this group; shares LEARN-0014's static-source-only protocol, +evidence tier and effort accounting). + +- Date and owner: 2026-09-27, Codex. +- Stream: B. Comparison group: B-independent-navigation-source-v1 (LEARN-0014's + static, read-only, pinned-revision source-inspection protocol). +- Question and affected CAND identities: does independently developed Zulip code + guard the target-message lookup (`channel.get` to `/json/messages/:id` inside + `message_view.show`) and the anchor-navigation fetch continuation + (`navigate_to_anchor_message` / `message_fetch.load_messages_around_anchor`) + against a stale navigation that occurred while the request was in flight, the + way `message_view.ts`'s main narrow-fetch continuation does (ZN02)? Affects + CAND-0009 (URL-addressable State) and CAND-0010 (Progressive Enhancement). +- Previous belief: ZN07 (ZulipNavigationSourceStudy.md) located both callbacks + and noted they have "no visible captured-current-list guard like ZN02," but + did not trace their actual callers or check test coverage. +- Observation that would contradict the belief: either callback checking list/ + narrow identity before acting, or an existing upstream test exercising a + stale-navigation race for either path. +- Evidence/contexts to inspect: `web/src/message_view.ts` (target lookup ~L640-700, + `navigate_to_anchor_message` ~L998-1074), `web/src/message_fetch.ts` + (`load_messages_around_anchor`, `process_result`, `get_messages_success`, + `load_messages` error-path guard), `web/tests/message_fetch.test.cjs`, + `web/tests/message_view.test.cjs`. Same pinned revision as LEARN-0014/0016 + (`5b06fa3d34f28fa01f459fbf3ba053e3c0858e9c`), reused deliberately. Out of + scope: deferred editing focus, search callback wiring, any application/test + execution, any defect or reproduction claim. +- Effort budget and recording method: single-agent session, static reading only; + active research minutes recorded by wall-clock start/end, no execution + subprocess beyond repository checks (`make evolution-check evolution-test + schema-test`). +- Review provenance and acceptance criteria: author-model (Codex), no + independent human review. Accept whatever the located code and tests show; + a missing guard is evidence of an unverified path, not a proven defect. + +## Outcome (complete after execution) + +Pending. + +Append an entry to research/evolution/ledger.json with `recording: prospective` and +`protocol_ref` pointing here. Update profiles, run evolution checks, then snapshot at +the agreed review boundary. No automatic maturity promotion.