summaryrefslogtreecommitdiff
path: root/makima/frontend/src
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-02-04 01:59:40 +0000
committersoryu <soryu@soryu.co>2026-02-04 01:59:40 +0000
commit612cecc5bd5dbfc73d4a3a9d38626378eaf39041 (patch)
treee23a4772b5299082a99c5ec449cbe222dc038e98 /makima/frontend/src
parent40f4c4ebbb41a46d83fa67fa43e6ec683ab7fdb2 (diff)
downloadsoryu-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/src')
-rw-r--r--makima/frontend/src/components/chains/ChainEditor.tsx32
-rw-r--r--makima/frontend/src/lib/api.ts27
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",