story-kit: merge 287_story_rename_upcoming_pipeline_stage_to_backlog

This commit is contained in:
Dave
2026-03-18 14:31:12 +00:00
parent 967ebd7a84
commit df6f792214
26 changed files with 250 additions and 228 deletions

View File

@@ -262,7 +262,7 @@ describe("ChatWebSocket", () => {
// Server pushes pipeline_state on fresh connection
const freshState = {
upcoming: [{ story_id: "1_story_test", name: "Test", error: null }],
backlog: [{ story_id: "1_story_test", name: "Test", error: null }],
current: [],
qa: [],
merge: [],

View File

@@ -36,7 +36,7 @@ export interface PipelineStageItem {
}
export interface PipelineState {
upcoming: PipelineStageItem[];
backlog: PipelineStageItem[];
current: PipelineStageItem[];
qa: PipelineStageItem[];
merge: PipelineStageItem[];
@@ -50,7 +50,7 @@ export type WsResponse =
| { type: "error"; message: string }
| {
type: "pipeline_state";
upcoming: PipelineStageItem[];
backlog: PipelineStageItem[];
current: PipelineStageItem[];
qa: PipelineStageItem[];
merge: PipelineStageItem[];
@@ -398,7 +398,7 @@ export class ChatWebSocket {
if (data.type === "error") this.onError?.(data.message);
if (data.type === "pipeline_state")
this.onPipelineState?.({
upcoming: data.upcoming,
backlog: data.backlog,
current: data.current,
qa: data.qa,
merge: data.merge,

View File

@@ -165,7 +165,7 @@ export function Chat({ projectPath, onCloseProject }: ChatProps) {
const [apiKeyInput, setApiKeyInput] = useState("");
const [hasAnthropicKey, setHasAnthropicKey] = useState(false);
const [pipeline, setPipeline] = useState<PipelineState>({
upcoming: [],
backlog: [],
current: [],
qa: [],
merge: [],
@@ -1017,8 +1017,8 @@ export function Chat({ projectPath, onCloseProject }: ChatProps) {
onItemClick={(item) => setSelectedWorkItemId(item.story_id)}
/>
<StagePanel
title="Upcoming"
items={pipeline.upcoming}
title="Backlog"
items={pipeline.backlog}
onItemClick={(item) => setSelectedWorkItemId(item.story_id)}
/>
</>

View File

@@ -9,7 +9,7 @@ import { StagePanel } from "./StagePanel";
function makePipeline(overrides: Partial<PipelineState> = {}): PipelineState {
return {
upcoming: [],
backlog: [],
current: [],
qa: [],
merge: [],

View File

@@ -115,7 +115,7 @@ export function LozengeFlyProvider({
const assignedAgentNames = useMemo(() => {
const names = new Set<string>();
for (const item of [
...pipeline.upcoming,
...pipeline.backlog,
...pipeline.current,
...pipeline.qa,
...pipeline.merge,
@@ -165,13 +165,13 @@ export function LozengeFlyProvider({
const prev = prevPipelineRef.current;
const allPrev = [
...prev.upcoming,
...prev.backlog,
...prev.current,
...prev.qa,
...prev.merge,
];
const allCurr = [
...pipeline.upcoming,
...pipeline.backlog,
...pipeline.current,
...pipeline.qa,
...pipeline.merge,

View File

@@ -8,7 +8,7 @@ import { api } from "../api/client";
const { useEffect, useRef, useState } = React;
const STAGE_LABELS: Record<string, string> = {
upcoming: "Upcoming",
backlog: "Backlog",
current: "Current",
qa: "QA",
merge: "To Merge",