fix: fold the six review items #193–#209 left on the floor - #211
Conversation
- iOS Grounding footer: "sends your conversation to the internet" — weight downloads reach the internet too, so "the only thing" overclaimed (#193 r2). - feedback_to_fixtures.py closes the JSONL it reads (#207 code-quality bot). - fallbackPrompt filters the trace ONCE; observations and the page-read flag derive from the same survivors (#209 r2, duplicated predicate). - FetchPageTool.frame caps the title/description header to a third of the observation budget so page text always gets a share (#209 r2, red-first). - OpenLinkTool.briefFetchTimeout shared with the MCP open_link surface (#207 r4). - WebURLPolicy DNS-resolution SSRF gap filed as #210 (#208 r4). swift test (7 suites, 89 tests) green; pytest 5/5; Mac + iOS app targets build. Signed: Kev + claude-fable-5.1, 2026-09-05, Confidence 0.9 — every item read off the PR thread and re-checked against master before touching it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bzs575bYuoYBbhH3q9M647 # ── MurphySig template (uncomment lines below to sign this commit) ────── # Significant change detected. If this commit encodes a decision worth # remembering — architecture, tradeoff, non-obvious fix — sign it. # Spec: https://murphysig.dev/spec # # MurphySig: # Signed: Kev + claude-fable-5-1, 2026-09-05 # Format: MurphySig v0.1 # Context: <why this exists — the thought, not the diff> # Confidence: <0.0-1.0> — <what's uncertain> # Open: <unresolved questions> # ────────────────────────────────────────────────────────────────────────
✅ Deploy Preview for m1k3 canceled.
|
ReviewWent through all six items against the diff ( 1. iOS Grounding footer ( 2. 3. 4.
5. 6. #210 filed for the Provenance — all touched files carry pre-existing Tests — Nothing blocking. Nice, tight cleanup PR — the tuple-based |
What
A sweep of the review comments on #193–#209: six flagged items were never folded. This lands them in one PR.
feedback_to_fixtures.pyread the JSONL with a bareopen().read(); now a context manager.fallbackPromptfiltered the trace twice with an identical predicate (observations+pageRead). Onesurvivorscollection now feeds both, so they cannot desync.<meta description>could consume the whole observation cap and leave zero page text.FetchPageTool.framecaps the header to a third of the budget. Red-first testheaderLeavesRoomForText.URLSessionHTTPFetcher(timeout: 8)was hardcoded in bothOpenLinkToolandMCPHostController. SharedOpenLinkTool.briefFetchTimeout.WebURLPolicyDNS-resolution SSRF gap had no tracking issue. Filed #210.Carried knowingly (cosmetic, not in this PR):
bumpToGeneratingIfStreamingreadsmessages.last; #205's unconditionaloutputVolume = 0, the.reinstallcomment,isUsable(MicTapFormat), the doubled//in ChatScreen; #203's 60 s window; #206's duplicated rationale; #193's "(TLS)" header drift;BrowserContext.render'slinesname.Verify
swift test --filter 'FetchPageToolTests|OpenLinkToolTests|AgentRAGResponderTests|MemoryGroundingTests|FetchPageRoutingTests|OpenLinkRoutingTools|PageBriefTests'→ 89 tests / 8 suites green (the new cap test was red first).pytest tools/eval/test_feedback_to_fixtures.py→ 5 passed.🤖 Generated with Claude Code
https://claude.ai/code/session_01Bzs575bYuoYBbhH3q9M647