frontend-patterns/research/evolution/cycles/2026-09-27-zulip-navigation.md
tegwick f3ac569d8e Preregister pinned Zulip navigation source contrast
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9
2026-09-27 00:50:02 +02:00

4 KiB

LEARN-0014 — Independent navigation/search ownership in Zulip

Status: preregistered before source investigation. 2026-09-27 Europe/Berlin. Codex author-model review; stream B; new group B-independent-navigation-source-v1. Static evidence tier, not comparable to authored runtime cycles. Affected candidates: CAND-0009 URL-addressable State, CAND-0010 Progressive Enhancement and, only if a located contrasting mechanism warrants it, CAND-0016 Focus Return.

Bounded question and prior

Where does an independently developed frontend accept, supersede or report asynchronous navigation/search results, and how does that relate to selection and focus ownership? Prior authored htmx work motivated guarding obsolete content/URL/title/feedback effects separately from focus movement. A navigation generation is one implementation, not a required universal mechanism. Zulip may use list identity, query identity, cancellation, cache reuse, conditional rendering or different task semantics instead. Look for counterexamples and limits rather than force every mechanism into our terminology.

Pin Zulip repository revision 5b06fa3d34f28fa01f459fbf3ba053e3c0858e9c, already identified in the earlier recovery-source manifest. Reuse that reproducible revision deliberately; no claim that it is latest. Previously reviewed compose/draft/send code is not evidence for this question. Record raw-file SHA256, immutable URLs and line ranges for new reads. Independent implementation provenance does not imply independent review of our analysis.

Method and acceptance criteria

Read at most twelve substantive frontend source/test files at this revision, starting with navigation/hash, search/narrowing and asynchronous message-loading paths. Tree/API metadata and path discovery are not source claims. Follow callers/callees only far enough to locate ownership decisions; mark incomplete paths unknown. If twelve files are insufficient, close with scoped evidence/gaps rather than silently widen the study.

For each finding separate observed code, interpretation and untested behavior. Locate:

  1. Route/query selection and reconstruction entry points.
  2. Captured request identity and response applicability, including obsolete success.
  3. Error/feedback applicability, if visible in the bounded slice.
  4. Selection/focus/scroll continuation and how it differs from modal focus return.
  5. At least one limiting or contrasting case (for example useful off-screen results, effects outside the guarded scope, or different ownership timing).

Produce a traceable claim table and a source manifest with function/line locators. Do not infer a whole-app guarantee from one predicate or count different files as independent applications. Full-contract recurrence remains unassessed without review. Source tests, if inspected, are documentary code evidence unless actually run. No application build, browser execution, vendor modifications, external messages, credentials or model inference planned. Any future live inference uses llm-connect.

Outcomes, effort and stop

Disposition may be corroboration, revision or inconclusive; one bounded question counts once. A useful contrast can narrow the proposed rule rather than promote a candidate. Do not label an application progressive enhancement merely because it navigates via URLs. A fragment/hash route can have a client reconstruction contract without a no-script one. Keep that distinction explicit if encountered.

Budget: 40 active agent-research minutes plus 10 check-execution minutes before scope review. Monotonic single-agent elapsed session minus timed verification subprocesses; source retrieval/reading is active research overhead. No overlapping work. Record gaps and unknown token/cost telemetry; exclude final receipt refresh/commit/snapshot/sync administration. Commit this plan before reading new source paths. Append ledger, update scoped profiles/report, snapshot after candidate changes are committed, and sync WP-0003 T01/WP-0006 T03. No automatic reopening of the paused local fixture, M1/M2 closure, human validation or learning-rate trend claim.