fix: reduce code queue commander CLI noise

This commit is contained in:
Codex
2026-05-24 05:12:46 +00:00
parent a6a57a8276
commit 97d0f262b2
6 changed files with 217 additions and 51 deletions
@@ -95,6 +95,7 @@ export function runCodeQueueUnreadTriageContract(): JsonRecord {
const triage = asRecord(asRecord(summary).unreadTriage);
const counts = asRecord(triage.counts);
const newest = asRecord(triage.newest);
const newestItems = asArray(newest.items).map(asRecord);
const commands = asRecord(triage.commands);
assertCondition(asRecord(summary).ok === true, "default unread triage should succeed", asRecord(summary));
@@ -105,11 +106,23 @@ export function runCodeQueueUnreadTriageContract(): JsonRecord {
assertCondition(itemCount(asRecord(counts.byStatus), "succeeded") === 2, "status counts should include terminal statuses", counts);
assertCondition(itemCount(asRecord(counts.byQueue), "review") === 2, "queue counts should include queues", counts);
assertCondition(newest.returned === 2 && newest.hasMore === true, "newest items should obey --limit and expose pagination", newest);
assertCondition(newestItems.every((item) => item.commands === undefined && typeof item.nextStep === "string"), "default unread rows must stay compact without repeated per-task command blocks", { newestItems });
assertCondition(typeof commands.perTaskRead === "string" && String(commands.perTaskRead).includes("codex read <taskId>"), "triage should preserve per-task read drill-down", commands);
assertCondition(typeof commands.full === "string" && String(commands.full).includes("codex unread") && String(commands.full).includes("--full"), "triage should expose one full-view expansion command", commands);
assertCondition(!summaryBody.includes("RAW_PROMPT_SHOULD_NOT_LEAK"), "triage output must not dump raw prompt text", { summaryBody });
assertCondition(!requests.some((request) => request.path.includes("/summary")), "triage must not fetch per-task summaries by default", { requests });
assertCondition(!requests.some((request) => request.method === "POST"), "default triage must not mutate", { requests });
const full = codexUnreadTriageForTest(["--view", "full", "--limit", "2"], fetcher);
const fullBody = JSON.stringify(full);
const fullTriage = asRecord(asRecord(full).unreadTriage);
const fullNewest = asRecord(fullTriage.newest);
const fullItems = asArray(fullNewest.items).map(asRecord);
const fullItemCommands = fullItems.map((item) => asRecord(item.commands));
assertCondition(asRecord(fullTriage.filters).view === "full", "codex unread --view full should disclose full view", fullTriage);
assertCondition(fullItems.length === 2 && fullItemCommands.every((item) => typeof item.detail === "string" && typeof item.read === "string"), "explicit full unread view should expand per-task commands", { fullItems });
assertCondition(summaryBody.length < fullBody.length, "default unread summary should stay smaller than explicit full view", { summaryChars: summaryBody.length, fullChars: fullBody.length });
const guardStart = requests.length;
const guarded = codexUnreadTriageForTest(["mark-read", "--repo", "pikasTech/unidesk", "--issue", "20", "--limit", "2"], fetcher);
const guardedTriage = asRecord(asRecord(guarded).unreadTriage);
@@ -134,10 +147,14 @@ export function runCodeQueueUnreadTriageContract(): JsonRecord {
"default unread triage is read-only",
"repo/issue/status/queue counts are present",
"newest items are bounded",
"default rows avoid repeated per-task command blocks",
"--view full expands per-task commands",
"raw prompt text is omitted",
"batch mark-read requires --confirm",
"confirmed batch read respects filters and limit",
],
summaryChars: summaryBody.length,
fullChars: fullBody.length,
};
}