row 272: scope unavailable-session waits to the chat area

This commit is contained in:
jason.woltje committed 2026-10-23 08:53:07 -05:00
1 parent 0ea3db297b
commit d339892301
3 files changed
+50 -2

No files matched your search

+31
View File
@@ -309,3 +309,34 @@ This follow-up commit/push is authorized before the round 3 gate by sage-3435.
No local tests, repo Node, mutants or queue writes ran. Gate remains RED until
Sage reruns; plugins harness compactions is a separately owned dependency, and
Mos declined an EXCEPT edit. Scrooge reviews this A/B delta; Sage posts round 3.
## Round 4 — scoped browser heading waits (mos-1460/1461)
Round 3 gate on 72690cae7: bus 891/0, CLI 941/0, business 231/0; plugins
had only the allowed exact base red, checked by Mos; webui 390/2. Both reds
were newly added chat-browser missing-session waits at lines 361 and 437.
Whole-file rerun reproduced 17/2. No round 3 green acceptance claim.
Diagnosis authorized by sage-3450/3453 and mos-1460: unchanged whole-file run
17/2, 28.223 s; scratch-only CDP probes showed the route reaching chat.js:176,
catalog rows A/B without M, and catch receiving session-not-found with status
404. DOM had first h1 "Control board" (shell), then .chat-area h1 "Thread
unavailable". Product refusal and painting worked. Evidence retained under
/mnt/storage/scratch/tmp/hueyP1enyB/ (baseline.tap, probe.tap, probe-catch.tap,
proposed.diff); scratch probe source removed, tracked tree remained clean.
mos-1461 / sage-3458 authorizes exactly two selector changes: document-wide
h1 becomes .chat-area h1 in those waits. Expected text, timeout and every
other line of chat-browser.test.mjs remain byte-identical to 72690cae7.
This scopes the same assertion to its component; it does not weaken the
composer/write/draft/recovery checks. No production code changes in round 4.
manifest.r4.txt retains the same 17 paths; SHA256 a47ed1a23fb98c1ffe6cbcc4e7130e5c515387a2c5dc41e5ae1cbf04640d8c1b.
Only chat-browser.test.mjs hash differs from r3. New local follow-up commit
is authorized before execution; push and single-file run await Sage CLEAR
while Gizmoduck owns the slot. Required pass: whole chat-browser.test.mjs,
19/19 and skipped 0, timeout -k 10 300, TMPDIR from
mktemp -d /mnt/storage/scratch/tmp/hueyXXXXXX. No round 4 run yet.
After green, claimant moves row to in-review; Sage posts request and
Scrooge reviews the exact two-line delta. Full five-suite gate remains Sage's.
@@ -0,0 +1,17 @@
c21f1bd9af6841126baf19f5c9926ca23ba8e56b9af342373d8e4fefcee63632 packages/bus/src/broker.mjs
3957243d59e50eaa2326b88b9205ed8e8b5d33bde2ce1ef62e68f20e56283568 packages/bus/tests/user-principal.test.mjs
0a920131a981c2a1c9b73428a998966f446babae4dfe7d10eebdd6455571c0c9 packages/cli/README.md
96c4f93628964b6ea10fb87d5cf936f9ecf2e7286aa20c0914ae8b0fb32c47e7 packages/cli/src/cli.mjs
1a30048032f5bb64419ae9716a1692978bc1a137220a094d1900298aca6ba1d7 packages/cli/src/session.mjs
58888b7731f8009d4c3f8be2caf4445f13dd8f534e1633f6e2720b259fcc3f92 packages/cli/src/thread.mjs
a32bfeecd8589d41b298317954fae172dc936ee0559ec37990e84ed03bd38b07 packages/cli/tests/session-cli.test.mjs
5e7e1ec169392ee3065f8f47d19732ebbe8bdd90f9193581425b956e66da6b73 packages/plugins/channel/cli/index.mjs
aa086c365c4a6b0eaf84359a20ef2b30e723013ada6573fb0133163d5bf98a74 packages/plugins/channel/webui/index.mjs
143bf601badf5cc2b25cb24368ace2ec34840abec858d272af239d6a4ddcdecb packages/plugins/tests/channel.test.mjs
6e743878e507be20d87ae10afdb01c105f6f4fab76d02410e065f3f20d18e597 packages/webui/src/chat-http.mjs
7a5a18a9879fe7132f20a651c6927b007475571bd8fc45314eda9d6809288cea packages/webui/src/chat.mjs
88dd353f5df0603ed1fd43dd543ef7b45af93fee72b6bb6a03a26c068202fbd3 packages/webui/src/public/chat.css
68696f41a7335db23c0786537de76ff1202142518647d3d7b89b6b6503baf4f1 packages/webui/src/public/chat.js
12250a4f052489602182a49779fa67b49c7eed9d2f4c3ed7077306b2c360a344 packages/webui/tests/chat-browser.test.mjs
23de8678566f24a6c8bf0ca75b4550969015b06253586070e229f4eaf0bba2b4 packages/webui/tests/chat-sessions-access.test.mjs
773538c0c6a26ab525aa30e588249ba4b4ee981129533db0348f2107da5dd1df packages/webui/tests/chat.test.mjs
+2 -2
View File
@@ -358,7 +358,7 @@ test('264e chooser: two sessions keep drafts, cursors, deep links and counts ind
assert.deepEqual(await b.evaluate('window.__writes[0].body'), {body:'first session draft',session:A});
assert.equal(await b.evaluate('document.querySelector("#chat-clear").disabled'), true);
await b.evaluate(`location.hash='#/chat/threads/${A}/sessions/${M}',true`);
await wait('document.querySelector("h1")?.textContent === "Thread unavailable"');
await wait('document.querySelector(".chat-area h1")?.textContent === "Thread unavailable"');
assert.equal(await b.evaluate('!!document.querySelector("#chat-send-form")'), false);
assert.equal(await b.evaluate('window.__writes.length'), 1);
});
@@ -434,7 +434,7 @@ test('272 B1: a bad-session deep link preserves the draft and lost clear operati
const op=await b.evaluate('window.__writes[0].body.op');
assert.equal(await b.evaluate('document.querySelector("#chat-operation").value'),op);
await b.evaluate(`location.hash='#/chat/threads/${A}/sessions/${M}',true`);
await wait('document.querySelector("h1")?.textContent === "Thread unavailable"');
await wait('document.querySelector(".chat-area h1")?.textContent === "Thread unavailable"');
assert.equal(await b.evaluate('!!document.querySelector("#chat-send-form")'),false);
await b.evaluate(`location.hash='#/chat/threads/${A}/sessions/${A}',true`);
await wait(`document.querySelector('.chat-conversation')?.dataset.session==='${A}'`);