refactor: remove dead notification systems and legacy broadcasts

- Delete claude-hooks.ts store (processHook never called, always empty)
- Delete HookNotifications.vue and NotificationLog.vue (orphan components)
- Delete claude-status.ts route and broadcastClaudeStatus (no consumers)
- Delete agent-bar.md legacy doc
- Remove legacy WS 'claude-hook' broadcast (frontend ignores it)
- Move isAgentRunning tracking into broadcastClaudeHook
This commit is contained in:
2026-02-24 11:42:06 -06:00
parent c8b484b10e
commit 08e73a1eb6
7 changed files with 10 additions and 1362 deletions

View File

@@ -1,52 +0,0 @@
import { jsonResponse, errorResponse } from '../utils/cors'
import { PORT_TERMINAL } from '../config'
type ClaudeStatus =
| 'idle'
| 'thinking' // UserPromptSubmit / PostToolUse - Claude is thinking
| 'toolUse' // PreToolUse - Using a tool (generic)
| 'reading' // PreToolUse(Read/Glob/Grep) - Reading files
| 'writing' // PreToolUse(Edit/Write) - Writing files
| 'sessionStart' // SessionStart - Session just started
| 'sessionEnd' // SessionEnd - Session ended
| 'permissionRequest' // PermissionRequest - Waiting for user permission
| 'interrupted' // PostToolUseFailure with is_interrupt
| 'error' // PostToolUseFailure without is_interrupt
interface ClaudeStatusPayload {
status: ClaudeStatus
tool?: string
agent?: string
}
export async function handleClaudeStatus(req: Request): Promise<Response | null> {
if (req.method !== 'POST') return null
try {
const body = await req.json() as ClaudeStatusPayload
const validStatuses: ClaudeStatus[] = [
'idle', 'thinking', 'toolUse', 'reading', 'writing',
'sessionStart', 'sessionEnd', 'permissionRequest',
'interrupted', 'error'
]
if (!body.status || !validStatuses.includes(body.status)) {
return errorResponse(`Invalid status. Must be one of: ${validStatuses.join(', ')}`, 400)
}
// Forward to terminal server for WebSocket broadcast
try {
await fetch(`http://localhost:${PORT_TERMINAL}/claude-status`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(body)
})
} catch (e) {
console.error('[claude-status] Failed to forward to terminal server:', e)
}
return jsonResponse({ success: true, status: body.status })
} catch (e) {
return errorResponse('Invalid JSON body', 400)
}
}

View File

@@ -10,7 +10,6 @@ import { handleGiteaRepo, handleGiteaTree, handleGiteaFile } from './gitea'
import { handleTables, handleStats, handleTableSchema, handleTableData, handleQuery } from './database'
import { handleWhisperRoutes } from './whisper'
import { handleRecordingsRoutes } from './recordings'
import { handleClaudeStatus } from './claude-status'
import { handleClaudeHook } from './claude-hook'
import { handleSnapshots, handleSnapshotById } from './snapshots'
import { handleGitStatus, handleGitDiff, handleGitLog, handleGitLogCommit, handleGitCompare, handleGitBranches, handleGitCurrentBranch, handleGitTree, handleGitFile } from './git'
@@ -68,12 +67,6 @@ export async function handleRequest(req: Request): Promise<Response> {
if (res) return res
}
// Claude Code status (thinking/idle)
if (path === '/api/claude-status') {
const res = await handleClaudeStatus(req)
if (res) return res
}
// Claude Code hook (rich stdin data forwarding)
if (path === '/api/claude-hook') {
const res = await handleClaudeHook(req)