fix(daemon): answer a named missing session on the session, not the device

TH
41m ago
+637-39

Summary

Closes #3674. Requests naming a missing daemon session receive SESSION_NOT_FOUND, reason: named_session_not_found, and dispatched: no before unconstrained device selection. Sessionless and intentionally targeted paths remain available. Apple appstate keeps the typed refusal because it cannot answer a target without a session; non-Apple identity selectors retain their runtime path.

Batch provenance follows typed caller fields. Held-session waits avoid the missing-session guard import.

Validation

Current head: 81b22ab3c3b301fb482eda3628686c7bb5567d2e.

  • CI is green on this head: 19 successful checks and one intentional skip, including Coverage and all four platform smoke lanes.
  • The required exact-head pnpm check:affected --run is running after its clean-tree/SHA precheck. No full-gate pass is claimed.
  • Historical regression pair: base e8f24cdba failed three assertions; earlier fixed head ac9fb48f0 passed all five. This is not current-head gate evidence.
  • This head restores Apple appstate's typed refusal and adds the record-start inventory-zero assertion. The new appstate no-resolution assertion is under review.
  • Fresh independent final-head review and the requested live two-simulator repro remain pending. Review replies and final validation will cite measured results.