Brennan Benson
11310eef63
fix(mobile): keep quick-commands button steady while capabilities load ( #9979 )
...
* fix(mobile): keep quick-commands button steady while capabilities load
The tab-row quick-commands button only rendered once the capability probe
resolved true, so it popped in after the row was already visible (and
vanished during reconnect re-probes). Render it whenever support is not
confirmed absent and disable it until the probe settles — pre-quick-commands
hosts strip agentPrompt, so the action (not the button) must wait for
confirmation. Confirmed-unsupported hosts still hide it entirely.
* fix(mobile): explain unsupported quick commands on tap instead of hiding
Per feedback on the disabled/hidden states: the button now always renders
and stays tappable. Tapping against a desktop that confirmed no support
shows "Desktop update required for quick commands" (mirroring the browser
streaming copy); tapping while the capability probe is still resolving says
to try again in a moment. The sheet still opens only once support is
confirmed, since pre-quick-commands hosts strip agentPrompt.
* docs(pr): add QA screenshots for quick-commands button states
* test(mobile): lock quick-commands button stability
Add a focused source-contract test for the always-mounted tab action and confirmed-support sheet gate. Keep the non-obvious safety comment concise, and remove PR screenshots now hosted as GitHub user attachments.
* test(mobile): structurally guard quick-command action mount
2026-07-22 14:18:59 -07:00
..
2026-07-20 21:36:15 -07:00
2026-07-20 21:36:15 -07:00
2026-07-20 21:16:08 -07:00
2026-07-20 21:05:40 -07:00
2026-07-20 21:05:40 -07:00
2026-06-17 22:52:12 -07:00
2026-07-20 18:55:45 -07:00
2026-07-20 18:55:45 -07:00
2026-06-17 22:52:12 -07:00
2026-07-20 18:55:45 -07:00
2026-07-20 18:55:45 -07:00
2026-07-20 18:55:45 -07:00
2026-07-20 18:55:45 -07:00
2026-06-08 21:27:33 -07:00
2026-06-08 21:27:33 -07:00
2026-06-15 22:02:51 -07:00
2026-06-15 22:02:51 -07:00
2026-06-18 18:25:06 -07:00
2026-06-18 18:25:06 -07:00
2026-06-13 14:24:26 -07:00
2026-06-13 14:24:26 -07:00
2026-06-13 14:24:26 -07:00
2026-07-05 23:56:37 -07:00
2026-06-13 14:24:26 -07:00
2026-06-13 14:24:26 -07:00
2026-05-31 03:14:29 -07:00
2026-05-31 03:14:29 -07:00
2026-06-13 14:24:26 -07:00
2026-06-29 22:30:46 -07:00
2026-06-29 22:30:46 -07:00
2026-06-13 14:24:26 -07:00
2026-06-13 14:24:26 -07:00
2026-06-17 22:52:12 -07:00
2026-06-13 14:24:26 -07:00
2026-06-13 14:24:26 -07:00
2026-06-13 14:24:26 -07:00
2026-06-13 14:24:26 -07:00
2026-05-26 00:07:53 -07:00
2026-06-08 17:41:27 -07:00
2026-06-08 17:41:27 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-06-15 22:02:51 -07:00
2026-06-30 01:15:56 -07:00
2026-06-16 14:39:25 -07:00
2026-06-16 14:39:25 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-21 18:39:26 -07:00
2026-07-21 18:39:26 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-17 00:34:46 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-20 21:05:40 -07:00
2026-07-20 21:05:40 -07:00
2026-05-29 22:13:27 -04:00
2026-05-29 22:13:27 -04:00
2026-06-17 22:52:12 -07:00
2026-06-17 22:52:12 -07:00
2026-07-09 22:01:22 -07:00
2026-05-31 03:11:53 -07:00
2026-05-31 03:11:53 -07:00
2026-07-22 14:05:37 -07:00
2026-07-22 14:12:59 -07:00
2026-07-20 21:36:15 -07:00
2026-07-20 21:36:15 -07:00
2026-07-17 00:34:46 -07:00
2026-07-14 19:36:47 -07:00
2026-07-14 19:36:47 -07:00
2026-07-02 18:17:47 -07:00
2026-07-05 23:56:37 -07:00
2026-07-10 20:22:16 -07:00
2026-07-10 20:22:16 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-06-29 16:06:27 -07:00
2026-06-29 16:06:27 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-10 13:48:10 -07:00
2026-07-10 13:48:10 -07:00
2026-06-28 01:20:00 -07:00
2026-07-03 16:47:59 -07:00
2026-06-29 22:30:46 -07:00
2026-06-29 22:30:46 -07:00
2026-06-17 22:52:12 -07:00
2026-06-17 22:52:12 -07:00
2026-07-20 18:55:45 -07:00
2026-07-20 18:55:45 -07:00
2026-07-20 18:55:45 -07:00
2026-07-20 21:36:15 -07:00
2026-07-20 21:36:15 -07:00
2026-06-17 22:52:12 -07:00
2026-06-28 00:58:17 -07:00
2026-07-20 18:55:45 -07:00
2026-07-20 18:55:45 -07:00
2026-06-17 22:52:12 -07:00
2026-06-17 22:52:12 -07:00
2026-07-19 23:42:31 -07:00
2026-07-22 14:18:59 -07:00
2026-07-19 23:42:31 -07:00
2026-07-19 23:42:31 -07:00
2026-07-19 23:42:31 -07:00
2026-07-19 23:42:31 -07:00
2026-07-19 23:42:31 -07:00
2026-07-10 13:48:10 -07:00
2026-07-10 13:48:10 -07:00
2026-07-14 19:36:47 -07:00
2026-07-14 19:36:47 -07:00
2026-07-20 11:11:23 -07:00
2026-07-20 11:11:23 -07:00
2026-07-09 19:23:36 -07:00
2026-06-12 11:09:08 -07:00
2026-06-12 11:09:08 -07:00
2026-07-11 02:13:15 -07:00
2026-07-20 21:05:40 -07:00
2026-07-20 21:05:40 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-17 00:34:46 -07:00
2026-07-17 00:34:46 -07:00
2026-06-13 14:24:26 -07:00
2026-06-29 22:30:46 -07:00
2026-06-13 14:24:26 -07:00
2026-06-13 14:24:26 -07:00
2026-07-20 21:36:15 -07:00
2026-06-17 22:52:12 -07:00
2026-07-02 02:31:19 -07:00
2026-07-22 12:00:14 -07:00
2026-07-22 12:00:14 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-21 18:39:26 -07:00
2026-07-21 18:39:26 -07:00
2026-07-21 18:39:26 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-20 21:05:40 -07:00
2026-07-20 21:05:40 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-20 18:55:45 -07:00
2026-06-17 22:52:12 -07:00
2026-06-17 22:52:12 -07:00
2026-06-27 18:34:58 -07:00
2026-07-09 19:23:36 -07:00
2026-07-20 18:55:45 -07:00
2026-07-09 19:23:36 -07:00
2026-07-09 22:01:22 -07:00
2026-07-20 03:18:35 -07:00
2026-06-17 22:52:12 -07:00
2026-07-17 00:34:46 -07:00
2026-07-17 00:34:46 -07:00
2026-07-10 20:22:16 -07:00
2026-07-12 14:09:15 -07:00
2026-07-22 11:45:59 -07:00
2026-07-22 11:45:59 -07:00
2026-07-02 23:22:30 -07:00
2026-07-02 23:22:30 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-06-20 16:40:34 -07:00
2026-06-20 16:40:34 -07:00
2026-06-09 17:55:20 -07:00