@@ -8,7 +8,7 @@ session-only multi-page switching are implemented on this branch. The
88live-DOM review has been summarized in
99` general-page-reader-quality-findings-2026-07-03-live-dom.md ` . Merge-readiness evidence is indexed in
1010` general-page-reader-merge-readiness.md ` .
11- Last updated: 2026-07-14
11+ Last updated: 2026-07-16
1212
1313## Decision
1414
@@ -714,21 +714,37 @@ next candidate gate closed; no fresh holdout should be created yet.
714714
715715### Phase 4: Session-only Claim Investigation
716716
717- - Status: implementation and fail-closed contract completed on the feature
718- branch, but candidates v1 and v2 did not clear their private holdout gates and
719- the v3 development probe did not clear the coverage/runtime-stability boundary.
717+ - Status: the session-only prepared-action vertical slice and its fail-closed
718+ contract are implemented on the feature branch. Candidates v1 and v2 did not
719+ clear their private holdout gates and the v3 development probe did not clear
720+ the coverage/runtime-stability boundary, so this remains unreleased.
720721- A grounded ` claims.q ` is preferred; a bounded natural-question fallback from
721722 ` claim.c + claim.need ` is used only when the model question is missing or
722723 locally rejected. URLs, domains, search-engine instructions, vague references,
723724 and likely compound claims fail closed instead of bypassing the guard.
724- - ` 查核選項 ` only expands a bounded, session-only intent in the current Page or
725- Focus scope. It does not start the future Truly Agent, open a tab, send
726- another model request, persist history, or assign a verdict.
727- - The intent is compiled into two distinct external payloads: concise claim and
728- source keywords for standard Google Search, and a natural-language evidence
729- request for Google AI Mode. Copy and original-source actions remain explicit.
730- Page navigation, reread, a new analysis key, and a new Focus target clear
731- stale task state.
725+ - When a completed Page or Focus reading contains a candidate claim, the
726+ service worker schedules one lower-priority ` derived ` adapter request. The
727+ claim stays visible with a compact preparing status, then changes directly to
728+ the prepared question and actions. Abstention, malformed output, a stale
729+ analysis key, or an unavailable side panel quietly falls back to the original
730+ claim. This preparation is ephemeral and never creates durable history.
731+ - Model work shares one resource-aware scheduler: explicit user work is
732+ ` user_blocking ` , current reading is ` foreground ` , prepared actions are
733+ ` derived ` , and speculative work is ` prefetch ` . Each model resource executes
734+ one request at a time; deduplication, supersession, and a bounded foreground
735+ burst keep Page preparation from starving Feed work without increasing the
736+ number of model calls.
737+ - A prepared intent exposes three explicit actions: standard Google Search,
738+ Google AI Mode, and copy. Standard Search receives concise claim/source
739+ keywords only. AI Mode receives a natural-language evidence request and may
740+ receive the current HTTP(S) URL as metadata; the URL is never treated as
741+ evidence or copied into model output. The former original-source action is
742+ intentionally absent because it duplicated the page the user is already on.
743+ - The adapter requires an exact ` sourceQuote ` grounding span, preserves source
744+ language for the atomic claim/question, tolerates harmless schema-version and
745+ optional-attribution drift, and applies the existing deterministic eligibility
746+ guard after model output. Page navigation, reread, a new analysis key, and a
747+ new Focus target clear stale task state; Page and Focus keep separate slots.
732748- The future Truly Agent uses a separate non-runtime semantic Case draft. The
733749 model selects document families, source roles, authority hints, and numbered
734750 question coverage; local code owns IDs, question linkage, verification
@@ -738,14 +754,23 @@ next candidate gate closed; no fresh holdout should be created yet.
738754
739755### Phase 5: Runtime and UX Gate
740756
741- - Status: implementation verification completed; product-quality holdout gates
742- failed for candidates v1 and v2, while v3 remains a development-only probe,
743- so the investigation action remains unreleased.
744- - Focused unit coverage validates query sanitization, deterministic fallback,
745- fail-closed eligibility, Page/Focus state isolation, and the two-step UI.
746- - The CDP UI audit validates that preparing a task opens no browser target and
747- captures the expanded card at 430px alongside Page, Focus, screenshot
748- recovery, loading, and ready states.
757+ - Status: implementation and live UX verification completed; product-quality
758+ holdout gates failed for candidates v1 and v2, while v3 remains a
759+ development-only probe, so the investigation action remains unreleased.
760+ - Focused unit coverage validates scheduler priority/fairness, adapter parsing
761+ and grounding, query sanitization, deterministic fallback, fail-closed
762+ eligibility, Page/Focus race isolation, and the automatic
763+ preparing-to-ready/fallback transitions. The 180 ms height/fade transition is
764+ skipped for reduced motion and never delays the underlying session update.
765+ - A 2026-07-16 no-focus CDP check used dev build
766+ ` 1784200373031-0ae1017-dirty ` on a real Financial Times page. It observed an
767+ automatic ` preparing -> ready ` transition with no manual click, no redundant
768+ label, and Google Search / Gemini / Copy actions at 430 px. A separate live
769+ run exercised ` preparing -> fallback ` , confirming that unavailable model
770+ output clears the loading state and restores the original claim.
771+ - Review screenshots remain local-only:
772+ ` /private/tmp/truly-auto-investigation-preparing-430-2026-07-16.png ` and
773+ ` /private/tmp/truly-auto-investigation-ready-430-2026-07-16.png ` .
749774- Real-content paired audit artifacts remain private under ` tmp/ ` ; only
750775 anonymized aggregate findings may be copied into tracked documentation.
751776
0 commit comments