Fix build blockers and rewrite README with authorized-use warning.

Restore server/agent compile fixes, wire remote actions end-to-end, harden run.bat, and document AetherForge with a severity-ranked audit in PROBLEMS.md.
This commit is contained in:
drjones
2026-05-28 07:36:59 -07:00
parent 830c755235
commit a9aeaefb1b
12 changed files with 615 additions and 186 deletions

View File

@@ -13,6 +13,7 @@ interface UseWebSocketReturn {
poolStatus: PoolStatus[];
aiActivity: AIActivityEntry[];
agentLogs: Record<string, string>;
latestMessage: WSMessage | null;
}
export function useWebSocket(): UseWebSocketReturn {
@@ -26,6 +27,7 @@ export function useWebSocket(): UseWebSocketReturn {
const [poolStatus, setPoolStatus] = useState<PoolStatus[]>([]);
const [aiActivity, setAiActivity] = useState<AIActivityEntry[]>([]);
const [agentLogs, setAgentLogs] = useState<Record<string, string>>({});
const [latestMessage, setLatestMessage] = useState<WSMessage | null>(null);
const connect = useCallback(() => {
if (unmounted.current) return;
@@ -53,6 +55,7 @@ export function useWebSocket(): UseWebSocketReturn {
ws.onmessage = (event) => {
try {
const msg: WSMessage = JSON.parse(event.data);
setLatestMessage(msg);
switch (msg.type) {
case 'init': {
@@ -133,6 +136,16 @@ export function useWebSocket(): UseWebSocketReturn {
});
break;
}
case 'command_result': {
const { agent_id } = msg.payload as { agent_id?: string };
if (agent_id && msg.payload && typeof msg.payload === 'object') {
const p = msg.payload as { action?: string; message?: string; success?: boolean };
if (p.action === 'get_log' && p.success && p.message) {
setAgentLogs((prev) => ({ ...prev, [agent_id]: p.message! }));
}
}
break;
}
case 'agent_log': {
const { agent_id, content } = msg.payload as { agent_id: string; content: string };
if (agent_id) {
@@ -163,5 +176,5 @@ export function useWebSocket(): UseWebSocketReturn {
};
}, [connect]);
return { isConnected, agents, recentShares, fleetAlerts, poolStatus, aiActivity, agentLogs };
return { isConnected, agents, recentShares, fleetAlerts, poolStatus, aiActivity, agentLogs, latestMessage };
}