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();
});
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", () => {
const tracedDemo = demoWithAppliedCount(5);
@@ -132,7 +132,7 @@ type 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>
{facts.trace.frames.length === 0 ? (
<p>No trace frames captured.</p>
@@ -1349,11 +1349,33 @@
.guided-product-moment__trace-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;
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) {
.guided-product-moment__approval-grid,
.guided-product-moment__resume-grid,