- Removed broken LaunchSwarmDialog (formula-based) from TopBar/LeftPanel - All Rocket buttons (TopBar, LeftPanel, DAG nodes, social cards) now open AssignmentPanel (archetype-based) which actually works - Every Rocket clears taskId first so assignMode && !taskId condition passes - Conversation button priority: taskId always shows conversation, not assign panel - Added TelemetryStrip: minimized right sidebar with status dots when non-telemetry panel (conversation/assignment) is active - Live feed has minimize button → restores last taskId or assignMode - DAG nodes: Signal icon → restores telemetry feed - Social button on DAG nodes: single router.push to avoid race (setView + setTaskId) - Fixed social card message button: opens right panel with drawer:closed (no popup) Co-Authored-By: Oz <oz-agent@warp.dev>
37 lines
897 B
TypeScript
37 lines
897 B
TypeScript
import { NextResponse } from 'next/server';
|
|
|
|
import { runBdCommand } from '../../../../lib/bridge';
|
|
|
|
export const dynamic = 'force-dynamic';
|
|
|
|
export async function GET(request: Request): Promise<Response> {
|
|
const { searchParams } = new URL(request.url);
|
|
const projectRoot = searchParams.get('projectRoot') ?? process.cwd();
|
|
|
|
const result = await runBdCommand({
|
|
projectRoot,
|
|
args: ['--version'],
|
|
timeoutMs: 8_000,
|
|
});
|
|
|
|
if (!result.success) {
|
|
const status = result.classification === 'not_found' ? 503 : 500;
|
|
return NextResponse.json(
|
|
{
|
|
ok: false,
|
|
error: {
|
|
classification: result.classification ?? 'unknown',
|
|
message: result.error ?? result.stderr ?? 'bd health check failed',
|
|
},
|
|
},
|
|
{ status },
|
|
);
|
|
}
|
|
|
|
return NextResponse.json({
|
|
ok: true,
|
|
data: {
|
|
version: result.stdout,
|
|
},
|
|
});
|
|
}
|