fix(queue): harden TUI dequeue display trim and override submit guard (#1183)

This commit is contained in:
Charles Packer
2026-02-26 18:12:54 -08:00
committed by GitHub
parent 1ca8cf9433
commit 70fac1d1f3
2 changed files with 45 additions and 3 deletions

View File

@@ -37,6 +37,40 @@ describe("queue ordering wiring", () => {
expect(segment).toContain("queuedOverlayAction,");
});
test("queue display trim uses displayable-item count, not mergedCount", () => {
const source = readAppSource();
const start = source.indexOf("onDequeued: (batch) => {");
const end = source.indexOf("onBlocked: (reason, queueLen) =>");
expect(start).toBeGreaterThan(-1);
expect(end).toBeGreaterThan(start);
const segment = source.slice(start, end);
expect(segment).toContain("const displayConsumedCount =");
expect(segment).toContain('item.kind === "message"');
expect(segment).toContain('item.kind === "task_notification"');
expect(segment).toContain("prev.slice(displayConsumedCount)");
});
test("onSubmit allows override-only queued submissions", () => {
const source = readAppSource();
const start = source.indexOf("const onSubmit = useCallback(");
const end = source.indexOf(
"// Process queued overlay actions when streaming ends",
);
expect(start).toBeGreaterThan(-1);
expect(end).toBeGreaterThan(start);
const segment = source.slice(start, end);
expect(segment).toContain(
"if (!msg && !hasOverrideContent) return { submitted: false };",
);
expect(segment).toContain(
"if (profileConfirmPending && !msg && !hasOverrideContent)",
);
});
test("queued overlay effect only runs when idle and clears action before processing", () => {
const source = readAppSource();
const start = source.indexOf(