feat: make trace evidence full stage

This commit is contained in:
lda
2026-07-10 08:28:47 +07:00 Verified
parent 5dd3aca11b
commit dd0e626722
3 changed files with 42 additions and 2 deletions
@@ -244,6 +244,24 @@ describe("GuidedProductMoment", () => {
expect(screen.getByText("ISSUE-001")).toBeInTheDocument(); expect(screen.getByText("ISSUE-001")).toBeInTheDocument();
}); });
it("trace makes trace frames primary with compact output support", () => {
const tracedDemo = demoWithAppliedCount(5);
render(
<GuidedProductMoment
beat={findBeat("resume-output-evidence", "trace")!}
demo={tracedDemo}
contract={contract}
operation={null}
openEvidence={vi.fn()}
/>,
);
expect(screen.getByRole("region", { name: /workflow trace proof/i })).toBeInTheDocument();
expect(screen.getByRole("region", { name: /workflow output summary/i })).toHaveAttribute("data-output-priority", "summary");
expect(screen.queryByText("No trace frames captured.")).not.toBeInTheDocument();
});
it("trace beat shows trace frames instead of the empty fallback after trace is primed", () => { it("trace beat shows trace frames instead of the empty fallback after trace is primed", () => {
const tracedDemo = demoWithAppliedCount(5); const tracedDemo = demoWithAppliedCount(5);
@@ -132,7 +132,7 @@ type RunTraceFactsProps = {
}; };
export const RunTraceFacts = ({ facts }: RunTraceFactsProps) => ( export const RunTraceFacts = ({ facts }: RunTraceFactsProps) => (
<div className="run-facts-card run-trace-facts"> <div className="run-facts-card run-trace-facts" role="region" aria-label="workflow trace proof">
<h3>Trace frames</h3> <h3>Trace frames</h3>
{facts.trace.frames.length === 0 ? ( {facts.trace.frames.length === 0 ? (
<p>No trace frames captured.</p> <p>No trace frames captured.</p>
@@ -1349,11 +1349,33 @@
.guided-product-moment__trace-grid { .guided-product-moment__trace-grid {
display: grid; display: grid;
grid-template-columns: minmax(0, 1fr) minmax(17rem, 0.45fr); grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.32fr);
gap: 0.85rem; gap: 0.85rem;
min-height: 0; min-height: 0;
} }
.run-trace-facts {
display: grid;
grid-template-rows: auto minmax(0, 1fr);
min-height: 0;
}
.run-trace-facts .run-facts-scroll-region--trace {
min-height: 0;
max-height: none;
}
.run-trace-frame {
display: grid;
grid-template-columns: minmax(8rem, 0.35fr) auto auto minmax(0, 1fr);
gap: 0.5rem 0.75rem;
align-items: start;
}
.run-trace-frame .run-facts-dl {
grid-column: 4;
}
@container presentation-canvas (max-width: 1050px) { @container presentation-canvas (max-width: 1050px) {
.guided-product-moment__approval-grid, .guided-product-moment__approval-grid,
.guided-product-moment__resume-grid, .guided-product-moment__resume-grid,