feat: make trace evidence full stage
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user