story-kit: start 65_story_standardised_script_test_entry_point_for_all_projects

This commit is contained in:
Dave
2026-02-23 12:59:55 +00:00
parent 216ca9ea2f
commit cbd0233e5e
8 changed files with 205 additions and 94 deletions

View File

@@ -26,7 +26,13 @@ export type WsResponse =
| { type: "update"; messages: Message[] }
| { type: "session_id"; session_id: string }
| { type: "error"; message: string }
| { type: "pipeline_state"; upcoming: PipelineStageItem[]; current: PipelineStageItem[]; qa: PipelineStageItem[]; merge: PipelineStageItem[] };
| {
type: "pipeline_state";
upcoming: PipelineStageItem[];
current: PipelineStageItem[];
qa: PipelineStageItem[];
merge: PipelineStageItem[];
};
export interface ProviderConfig {
provider: string;
@@ -280,7 +286,13 @@ export class ChatWebSocket {
if (data.type === "update") this.onUpdate?.(data.messages);
if (data.type === "session_id") this.onSessionId?.(data.session_id);
if (data.type === "error") this.onError?.(data.message);
if (data.type === "pipeline_state") this.onPipelineState?.({ upcoming: data.upcoming, current: data.current, qa: data.qa, merge: data.merge });
if (data.type === "pipeline_state")
this.onPipelineState?.({
upcoming: data.upcoming,
current: data.current,
qa: data.qa,
merge: data.merge,
});
} catch (err) {
this.onError?.(String(err));
}

View File

@@ -588,9 +588,7 @@ export function AgentPanel() {
fontSize: "0.8em",
padding: "0 4px",
transform:
expandedKey === key
? "rotate(90deg)"
: "rotate(0deg)",
expandedKey === key ? "rotate(90deg)" : "rotate(0deg)",
transition: "transform 0.15s",
}}
>
@@ -618,9 +616,7 @@ export function AgentPanel() {
{(a.status === "running" || a.status === "pending") && (
<button
type="button"
onClick={() =>
handleStop(key.split(":")[0], a.agentName)
}
onClick={() => handleStop(key.split(":")[0], a.agentName)}
style={{
padding: "4px 10px",
borderRadius: "999px",

View File

@@ -2,8 +2,8 @@ import * as React from "react";
import Markdown from "react-markdown";
import { Prism as SyntaxHighlighter } from "react-syntax-highlighter";
import { oneDark } from "react-syntax-highlighter/dist/esm/styles/prism";
import { api, ChatWebSocket } from "../api/client";
import type { PipelineState } from "../api/client";
import { api, ChatWebSocket } from "../api/client";
import type { Message, ProviderConfig, ToolCall } from "../types";
import { AgentPanel } from "./AgentPanel";
import { ChatHeader } from "./ChatHeader";
@@ -719,7 +719,6 @@ export function Chat({ projectPath, onCloseProject }: ChatProps) {
<StagePanel title="QA" items={pipeline.qa} />
<StagePanel title="Current" items={pipeline.current} />
<StagePanel title="Upcoming" items={pipeline.upcoming} />
</div>
</div>

View File

@@ -43,9 +43,7 @@ export function StagePanel({
</div>
{items.length === 0 ? (
<div style={{ fontSize: "0.85em", color: "#555" }}>
{emptyMessage}
</div>
<div style={{ fontSize: "0.85em", color: "#555" }}>{emptyMessage}</div>
) : (
<div
style={{