feat: rebuild Process Studio into multi-phase Process Creation Wizard\n\n- Replace toy Studio.tsx with proper Wizard.tsx canvas\n- Build 6-step flow: Intake -> Analyze -> Generate -> Validate -> Draft saved -> Publish\n- Implement incremental EA2 writes via wizardApi.ts (flow, batch apply)\n- Use localStorage for draft recovery across reloads\n- Apply industrial-blueprint UI styling matching core doctrine\n- Add Vitest tests for Wizard components and API wrappers

This commit is contained in:
2026-06-14 03:47:26 +04:00
parent b2c1e57c86
commit 4bc7ae228a
27 changed files with 2274 additions and 275 deletions
+3 -3
View File
@@ -2,7 +2,7 @@
import { useEffect, useMemo } from "react";
import { Command } from "cmdk";
import { useApp, scenarioById } from "../state/store";
import { Play, Branch, Bot, Check, Home, History as HistoryIcon, Layers, Search, Refresh, Cog, User } from "./icons";
import { Play, Branch, Bot, Check, Home, HistoryIcon, Layers, Search, Refresh, Cog, User } from "./icons";
export default function CommandBar() {
const open = useApp((s) => s.cmdOpen);
@@ -80,7 +80,7 @@ export default function CommandBar() {
<HistoryIcon size={13} /> Run History
</Command.Item>
<Command.Item onSelect={() => { setScene("studio"); close(); }}>
<Branch size={13} /> Process Studio
<Branch size={13} /> Process Wizard
<span className="cmd-hint">design & publish a new process</span>
</Command.Item>
<Command.Item onSelect={() => { setScene("settings"); close(); }}>
@@ -120,7 +120,7 @@ export default function CommandBar() {
onSelect={async () => {
close();
if (mode !== "live") { pushToast("warn", "Switch to LIVE mode to start a real instance."); return; }
await startInstance(sc.defKey, `MC demo · ${new Date().toLocaleString()}`);
await startInstance(sc.defKey, `Started via Mission Control · ${new Date().toLocaleString()}`);
}}
>
<Play size={13} /> Start new instance of "{sc.defName}"