Harden Scattermind summary handoff provenance

This commit is contained in:
OpenClaw Bot
2026-05-27 15:23:34 +02:00
parent e22cb30061
commit 470965b8b7
3 changed files with 53 additions and 10 deletions
+33
View File
@@ -649,6 +649,39 @@ try {
assert.equal(softLabelLens.handoff.readiness.status, 'ready');
assert.deepEqual(softLabelLens.handoff.warnings, []);
const summaryOnlyConceptMapResponse = await fetch(`${base}/api/rank-feedback`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
reference_code: 'SM-SUMMARY-ONLY',
working_name: 'Tired maker continuation pass',
opening_reflection: 'A tired maker needs one defended first-week build order after Scattermind clarified the idea.',
context: 'Solo builder. Manual proof first. Avoid accounts and saved workspaces before the build order lands.',
mode: 'mvp',
lenses: {
risk: 'Avoid accounts and saved workspaces before the first copyable result works.',
channel: 'First week: Manual source-traced preview - turn the Concept Map into one defended next move. Evidence next: Copyable handoff comprehension check - ask three tired users what they would do next. Hold for later: Visual polish after comprehension proof. Set aside: Saved account workspace with dashboard and billing.',
},
}),
});
assert.equal(summaryOnlyConceptMapResponse.status, 200);
const summaryOnlyConceptMap = await summaryOnlyConceptMapResponse.json();
assert.equal(summaryOnlyConceptMap.input.idea, 'A tired maker needs one defended first-week build order after Scattermind clarified the idea.');
assert.equal(summaryOnlyConceptMap.input.provenance.artifactId, 'SM-SUMMARY-ONLY');
assert.equal(summaryOnlyConceptMap.input.provenance.snapshotTitle, 'Tired maker continuation pass');
assert.match(summaryOnlyConceptMap.input.provenance.sourceSummary, /first-week build order/);
assert.equal(summaryOnlyConceptMap.input.provenance.originalPrompt, '');
assert.equal(summaryOnlyConceptMap.ranked[0].lane.id, 'do');
assert.match(summaryOnlyConceptMap.ranked[0].provenance.sourceQuote, /First week: Manual source-traced preview/);
assert.equal(summaryOnlyConceptMap.ranked.find(item => item.id === 'build-order-2').lane.id, 'test');
assert.equal(summaryOnlyConceptMap.handoff.source.hasOriginalPrompt, false);
assert.equal(summaryOnlyConceptMap.handoff.source.hasSourceSummary, true);
assert.equal(summaryOnlyConceptMap.handoff.readiness.status, 'ready');
assert.equal(summaryOnlyConceptMap.handoff.readiness.sourceComplete, true);
assert.deepEqual(summaryOnlyConceptMap.handoff.warnings, []);
assert.match(summaryOnlyConceptMap.handoff.copyableText, /Source summary: A tired maker needs one defended first-week build order/);
assert.match(summaryOnlyConceptMap.brief.source.sourceSummaryExcerpt, /first-week build order/);
const softLabelObjectResponse = await fetch(`${base}/api/rank-feedback`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },