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 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: sonnet Assistant-Process: 290719@bnt-lap001 Assistant-Session: 55cbe504-1bfe-4932-b761-29016523c87b
This commit is contained in:
parent
7295172f1e
commit
884803cdf5
1 changed files with 46 additions and 0 deletions
46
research/evolution/cycles/2026-09-27-zulip-target-lookup.md
Normal file
46
research/evolution/cycles/2026-09-27-zulip-target-lookup.md
Normal file
|
|
@ -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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue