diff options
| author | soryu <soryu@soryu.co> | 2026-02-04 01:59:40 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-02-04 01:59:40 +0000 |
| commit | 612cecc5bd5dbfc73d4a3a9d38626378eaf39041 (patch) | |
| tree | e23a4772b5299082a99c5ec449cbe222dc038e98 /makima/frontend | |
| parent | 40f4c4ebbb41a46d83fa67fa43e6ec683ab7fdb2 (diff) | |
| download | soryu-612cecc5bd5dbfc73d4a3a9d38626378eaf39041.tar.gz soryu-612cecc5bd5dbfc73d4a3a9d38626378eaf39041.zip | |
Remove chain supervisor capability
Chains no longer spawn a supervisor task. Checkpoint contracts will be
automatically run as part of the DAG execution when dependencies complete.
- Remove supervisor task creation from start_chain handler
- Remove chain supervisor CLI commands
- Remove supervisor_task_id from StartChainResponse
- Remove withSupervisor option from frontend
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'makima/frontend')
| -rw-r--r-- | makima/frontend/src/components/chains/ChainEditor.tsx | 32 | ||||
| -rw-r--r-- | makima/frontend/src/lib/api.ts | 27 |
2 files changed, 12 insertions, 47 deletions
diff --git a/makima/frontend/src/components/chains/ChainEditor.tsx b/makima/frontend/src/components/chains/ChainEditor.tsx index 49e585c..d278607 100644 --- a/makima/frontend/src/components/chains/ChainEditor.tsx +++ b/makima/frontend/src/components/chains/ChainEditor.tsx @@ -54,7 +54,6 @@ export function ChainEditor({ const [isStarting, setIsStarting] = useState(false); const [isStopping, setIsStopping] = useState(false); const [error, setError] = useState<string | null>(null); - const [withSupervisor, setWithSupervisor] = useState(false); // Load definitions when chain changes useEffect(() => { @@ -174,14 +173,14 @@ export function ChainEditor({ setIsStarting(true); setError(null); try { - await startChain(chain.id, { withSupervisor }); + await startChain(chain.id); onRefresh(); } catch (err) { setError(err instanceof Error ? err.message : "Failed to start chain"); } finally { setIsStarting(false); } - }, [chain.id, onRefresh, withSupervisor]); + }, [chain.id, onRefresh]); const handleStopChain = useCallback(async () => { if (!confirm("Are you sure you want to stop this chain?")) return; @@ -261,26 +260,13 @@ export function ChainEditor({ </span> {/* Chain control buttons */} {chain.status === "pending" && definitions.length > 0 && ( - <> - <label className="flex items-center gap-1 font-mono text-[10px] text-[#9bc3ff] cursor-pointer"> - <input - type="checkbox" - checked={withSupervisor} - onChange={(e) => setWithSupervisor(e.target.checked)} - className="w-3 h-3 accent-[#75aafc]" - /> - <span title="Create a Claude supervisor task to monitor chain progress"> - Supervisor - </span> - </label> - <button - onClick={handleStartChain} - disabled={isStarting} - className="px-3 py-1 font-mono text-xs text-[#dbe7ff] bg-green-600 hover:bg-green-700 border border-green-500 transition-colors disabled:opacity-50" - > - {isStarting ? "Starting..." : "Start Chain"} - </button> - </> + <button + onClick={handleStartChain} + disabled={isStarting} + className="px-3 py-1 font-mono text-xs text-[#dbe7ff] bg-green-600 hover:bg-green-700 border border-green-500 transition-colors disabled:opacity-50" + > + {isStarting ? "Starting..." : "Start Chain"} + </button> )} {chain.status === "active" && ( <button diff --git a/makima/frontend/src/lib/api.ts b/makima/frontend/src/lib/api.ts index a08cba7..6a40aec 100644 --- a/makima/frontend/src/lib/api.ts +++ b/makima/frontend/src/lib/api.ts @@ -3323,7 +3323,6 @@ export interface UpdateContractDefinitionRequest { /** Response when starting a chain */ export interface StartChainResponse { chainId: string; - supervisorTaskId: string | null; contractsCreated: string[]; status: string; } @@ -3422,30 +3421,10 @@ export async function getChainDefinitionGraph( return res.json(); } -/** Options for starting a chain */ -export interface StartChainOptions { - /** Whether to create a supervisor task that monitors chain progress */ - withSupervisor?: boolean; - /** Repository URL for the supervisor task to work with */ - repositoryUrl?: string; -} - -/** Start a chain (creates root contracts and optionally spawns supervisor) */ -export async function startChain( - chainId: string, - options?: StartChainOptions -): Promise<StartChainResponse> { - const body = options - ? JSON.stringify({ - withSupervisor: options.withSupervisor ?? false, - repositoryUrl: options.repositoryUrl, - }) - : undefined; - +/** Start a chain (creates root contracts based on DAG) */ +export async function startChain(chainId: string): Promise<StartChainResponse> { const res = await authFetch(`${API_BASE}/api/v1/chains/${chainId}/start`, { method: "POST", - headers: body ? { "Content-Type": "application/json" } : undefined, - body, }); if (!res.ok) { const error = await res.json().catch(() => ({ message: res.statusText })); @@ -3454,7 +3433,7 @@ export async function startChain( return res.json(); } -/** Stop a chain (kills supervisor, marks as archived) */ +/** Stop a chain (marks as archived) */ export async function stopChain(chainId: string): Promise<{ stopped: boolean; status: string }> { const res = await authFetch(`${API_BASE}/api/v1/chains/${chainId}/stop`, { method: "POST", |
