#947

Scope iPhone polling to the selected chat and visible drawer

Draftberylliumsec-handlerwants to merge intofrom

The iPhone shell can poll project conversation lists while its drawer is closed: a saved desktop panel preference enables the list/activity timers, pending-title refreshes fetch the project list without a visibility guard, and stream status events fall back to project activity reads.

Use the rendered drawer's visibility for project list/activity/search reads. Follow pending naming with a visibility-aware read of only the selected chat, stopping when naming settles. Stream events refresh selected state and poke an existing visible-list poll. Mutation-driven list refreshes remain explicit.

Validation:

  • Independent read-only causal review confirmed all three paths before repair.
  • Production UI build and workflow-registry validation passed.
  • 16 focused Vitest checks passed: visiblePoll, chatSessionList, chatMobileDrawerRestore. Node 26 required NODE_OPTIONS=--no-experimental-webstorage for jsdom.
  • 16 real-Core production browser cases passed: existing sidebar ordering plus new phone polling journey in desktop Chromium 1440/1024 and emulated mobile Chromium/WebKit 320/390/430. Disposable paired Core at http://192.168.1.239:19489; candidate web-build.json matched. No provider/research work submitted.
  • New journey checks persisted desktop preference, closed/open drawer request scope, selected-chat polling, authoritative title rename and settled naming, hidden/resume, drawer closure, and inert stream status/error invalidation against real Core state. Only that stream transport is mocked.
  • Diff-bound test selection records exactly these cases. No full suites or backend/native product changes.

Not released: physical WKWebView background/resume and signed iPhone workflow acceptance remain outstanding. Keep unmerged until the required physical gates in ios/QUALITY.md are satisfied. Native main build 5 was separately built and signed through the enrolled research Mac, installed successfully on David’s iPhone 11, and launched. Device version readback confirms 0.1.0 (5), and a physical screenshot shows the existing paired chat and composer. This verifies the current native main build, not physical acceptance of this undeployed UI candidate.

Activity

1

This pull request is a draft

Merging is unavailable until it is marked ready for review.