From 66cc6f07aef7e287b8f58c36dc42af6625d68f39 Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 1 Nov 2026 12:12:15 +0000 Subject: [PATCH] Triage the 2026-11-01 bug bash: name sides, reject blank input, stop false-red explore jobs - Current Debate rows show the side (a side column leaves out its own), so a Pro and a Con case saved the same minute no longer read as one case listed twice. Load buttons name the kind and side as well as the motion. - Generate, Brainstorm and Attack treat a motion or argument of only spaces as blank instead of spending an AI request on it. - The Sparring progress bar's accessible name fills in the time instead of reading "{{time}} remaining". - The bug-bash Exploration step passes with a warning when e2e explore exits 1 with issues recorded, and fails on any other error, in place of continue-on-error, which marked every job red and also hid real harness failures. Co-Authored-By: Claude Opus 5.5 --- .../features/current-debate.md | 2 +- .../recipes/current-debate.spec.ts | 2 ++ .github/workflows/agentic-e2e.yml | 25 +++++++++++++------ docs/testing.md | 2 +- e2e/full-stack/current-debate.spec.ts | 2 ++ e2e/quality-backlog.spec.ts | 19 ++++++++++++++ packages/core/src/ai/schemas/attack.ts | 2 +- packages/core/src/ai/schemas/brainstorm.ts | 2 +- packages/core/src/ai/schemas/generate.ts | 2 +- .../features/sparring/SparringRound.tsx | 2 +- src/pages/CurrentDebatePage.tsx | 13 +++++++--- 11 files changed, 56 insertions(+), 17 deletions(-) diff --git a/.claude/skills/verify-debatelab/features/current-debate.md b/.claude/skills/verify-debatelab/features/current-debate.md index fa7e63d70..495af1908 100644 --- a/.claude/skills/verify-debatelab/features/current-debate.md +++ b/.claude/skills/verify-debatelab/features/current-debate.md @@ -30,7 +30,7 @@ Preconditions: - **Scope.** Add a source on `/app/library` with a unique marker (see [library-sources](./library-sources.md)); the test id `library-debate` names the motion. Run Brainstorm or Generate: the motion field already holds the debate's motion and no dialog opens. End state: the newest `providerCalls()` entry for the feature has this debate's marker in `system` and not another debate's. `sources.debate_id`, `cases.debate_id`, and `brainstorms.debate_id` point at the debate they were made in. - **Offer.** With no debate, fill a tool's motion and submit. The dialog `Start a debate with this motion?` contains the motion. Click its `Start debate`. End state: the result shows, the strip reads `Working in: `, and `debates` holds exactly that motion. - **Use once.** With a debate, submit a different motion. The dialog `This is a different motion` opens. `chooseForMotion(page, "once")`. End state: the provider call's `system` has no debate marker, and the header still names the old debate. -- **Dashboard.** `/app/debate`: `current-debate-motion` has the motion, `debate-side-pro` reads `In favor`, `debate-side-con` reads `Against`, and `debate-sources` and `debate-recent` list only this debate's work. +- **Dashboard.** `/app/debate`: `current-debate-motion` has the motion, `debate-side-pro` reads `In favor`, `debate-side-con` reads `Against`, and `debate-sources` and `debate-recent` list only this debate's work. Each row reads ` · ·