···44 * stalls — the result never comes back. This test pins that behavior
55 * down so the fix is verifiable.
66 *
77- * Uses the hello-world tile because its `hello` command is the
77+ * Uses the hello-world tile because its `hello world` command is the
88 * simplest programmatic command in the codebase: a single tile entry
99- * (resident `home`) that registers `hello` via
99+ * (resident `home`) that registers `hello world` via
1010 * `api.commands.register(...)` with an async execute that returns a
1111 * plain object.
1212 */
···2626 // Wait for hello-world's command registration to actually reach the
2727 // main-process pubsub bus. `waitForExtensionsReady` gates on feature
2828 // *load* but not on the `cmd:register`/`cmd:register-batch` round-
2929- // trip that announces `hello` to the cmd panel. Firing before that
3030- // round-trip means zero subscribers exist for `cmd:execute:hello`.
2929+ // trip that announces `hello world` to the cmd panel. Firing before that
3030+ // round-trip means zero subscribers exist for `cmd:execute:hello world`.
3131 //
3232 // Approach: poll `api.features.list('builtin')` for hello-world
3333 // presence, THEN do a single pubsub query-round-trip to confirm the
···5151 const unsubscribe = api.subscribe('cmd:query-commands-response', (msg: unknown) => {
5252 unsubscribe?.();
5353 const cmds = (msg as { commands?: Array<{ name: string }> })?.commands || [];
5454- resolve(cmds.some(c => c.name === 'hello'));
5454+ resolve(cmds.some(c => c.name === 'hello world'));
5555 });
5656 api.publish('cmd:query-commands', {});
5757 setTimeout(() => { unsubscribe?.(); resolve(false); }, 200);
···9191 }, { cmdName: name, timeout: timeoutMs });
9292}
93939494-test('cmd:execute:hello returns a result on repeat invocations', async () => {
9494+test('cmd:execute:hello world returns a result on repeat invocations', async () => {
9595 // First invocation — expected to succeed per manual repro.
9696- const first = await invoke(sharedBg, 'hello', 10000);
9696+ const first = await invoke(sharedBg, 'hello world', 10000);
9797 expect(first, 'first invocation result').toBeDefined();
98989999 // Second invocation — user-reported stall happens here.
100100- const second = await invoke(sharedBg, 'hello', 10000);
100100+ const second = await invoke(sharedBg, 'hello world', 10000);
101101 expect(second, 'second invocation result (user-reported stall)').toBeDefined();
102102103103 // Third invocation — sanity check that it's not just a "works once" fluke.
104104- const third = await invoke(sharedBg, 'hello', 10000);
104104+ const third = await invoke(sharedBg, 'hello world', 10000);
105105 expect(third, 'third invocation result').toBeDefined();
106106});