fix: v2.7.5 — the chat shows each AskUserQuestion with the user's answer
- Chat: an AskUserQuestion is its own card (AskCard in MessageList.tsx), not part of the collapsed work line — each question with the option picked or the text typed, "declined" when refused. The transcript route passes the answers from Claude Code's toolUseResult (askAnswers, beside diff). - Chat: the activity panel keeps the user's open/close per session for the tab, and opens by default only once the session has an output. - Workspace home: the sent prompt's draft is dropped even though opening the session unmounts the home. - Terminal: Ctrl+V with text on the clipboard pastes the text; only an empty clipboard still sends ^V. - AGENTS.md / CLAUDE.md: run only the tests a change touches while iterating, the full suite once before committing.
This commit is contained in:
@@ -18,7 +18,7 @@ const fs = require("node:fs");
|
||||
const TEST_DB = path.join(os.tmpdir(), `transcript-sender-${Date.now()}-${process.pid}.db`);
|
||||
process.env.DASHBOARD_DB_PATH = TEST_DB;
|
||||
|
||||
const { classifyTranscriptSender, patchCounts } = require("../routes/sessions");
|
||||
const { classifyTranscriptSender, patchCounts, askAnswers } = require("../routes/sessions");
|
||||
const { db } = require("../db");
|
||||
|
||||
after(() => {
|
||||
@@ -168,3 +168,22 @@ describe("patchCounts — the +/- lines of a Write/Edit result", () => {
|
||||
assert.equal(patchCounts(undefined), null);
|
||||
});
|
||||
});
|
||||
|
||||
describe("askAnswers — what the user picked or typed for an AskUserQuestion", () => {
|
||||
it("returns each question's answer", () => {
|
||||
const r = {
|
||||
questions: [{ question: "Commit?", options: [{ label: "Yes" }, { label: "No" }] }],
|
||||
answers: { "Commit?": "Yes", "Notes?": "typed text" },
|
||||
annotations: {},
|
||||
};
|
||||
assert.deepEqual(askAnswers(r), { "Commit?": "Yes", "Notes?": "typed text" });
|
||||
});
|
||||
|
||||
it("drops a non-string answer and answers null for a result that is no question", () => {
|
||||
assert.deepEqual(askAnswers({ answers: { a: "x", b: 3 } }), { a: "x" });
|
||||
assert.equal(askAnswers({ answers: {} }), null);
|
||||
assert.equal(askAnswers({ answers: ["x"] }), null);
|
||||
assert.equal(askAnswers({ stdout: "ok" }), null);
|
||||
assert.equal(askAnswers("text"), null);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user