explain refinements: no opt-out row, one committed field (owner 2026-09-27)
Two follow-up rulings on the explain tool:
1. No 'I don't know' row — not needed in free recall. If he doesn't
know, he says so in his own words; his text is the only answer
channel. Dock: text mode is rowless again (the composer IS the
surface); doctrine and the shared prompt chunk updated; the format
branch and card revert to quiz-only dontKnow.
2. explanation + correctAnswer collapse into ONE field — the separate
explanation was quiz remnant (MC needs the why outside its options;
a free-text commitment carries its own reasoning). Schema is now
{question, correctAnswer, details?}; the reveal shows the single
committed answer; no explanation snapshots anywhere on the explain
path.
1047/1047 tests, typecheck/lint/build green.
This commit is contained in:
@@ -467,18 +467,18 @@ describe("AnsweredCard: the explain variant", () => {
|
||||
question: "Explain why the null result matters.",
|
||||
mode: "text",
|
||||
options: [],
|
||||
committedAnswer: "It ruled out the luminiferous aether.",
|
||||
explanation: "A stationary aether predicts a fringe shift; none was seen.",
|
||||
committedAnswer: "It ruled out the luminiferous aether — a stationary aether predicts a fringe shift, and none was seen.",
|
||||
createdAt: new Date().toISOString(),
|
||||
});
|
||||
|
||||
it("reveals the committed answer + explanation with NO verdict chips", () => {
|
||||
it("reveals the single committed answer (reasoning inside it) with NO verdict chips", () => {
|
||||
const html = renderToStaticMarkup(<AnsweredCard answer={buildAnswer(explainQD(), { text: "Something about relativity?" })} />);
|
||||
assert.match(html, /Explain/, "labeled as the explain kind");
|
||||
assert.match(html, /The answer:/);
|
||||
assert.match(html, /luminiferous aether/);
|
||||
assert.match(html, /Why:/);
|
||||
assert.ok(!html.includes("incorrect") && !html.includes("correct</") , "no client grading");
|
||||
assert.match(html, /fringe shift/);
|
||||
assert.ok(!html.includes("Why:"), "no separate explanation field — one committed answer (owner 2026-09-27)");
|
||||
assert.ok(!html.includes("incorrect") && !html.includes("correct</"), "no client grading");
|
||||
assert.ok(!html.includes('data-mark="x"') && !html.includes('data-mark="check"'));
|
||||
});
|
||||
|
||||
@@ -487,9 +487,4 @@ describe("AnsweredCard: the explain variant", () => {
|
||||
assert.match(html, /Something about relativity\?/);
|
||||
});
|
||||
|
||||
it("dontKnow renders as the gap, not a wrong answer", () => {
|
||||
const html = renderToStaticMarkup(<AnsweredCard answer={buildAnswer(explainQD(), { dontKnow: true })} />);
|
||||
assert.match(html, /I don't know/);
|
||||
assert.ok(!html.includes("The learner answered:"));
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user