fix(server): resolve merge conflicts with feat/server-refactor

- event.ts: combine /event endpoint with cwdFilter support,
  remove unused /global/event endpoint
- sessionHandle.ts: keep INIT_TIMEOUT_MS, emitOpencodeEvent,
  emitBusyStatus, toPermissionKey and extractPatterns

Co-authored-by: CoStrict <zgsm@sangfor.com.cn>
This commit is contained in:
林凯90331 2026-05-11 13:05:40 +08:00
commit 1ef4182a9e
2 changed files with 12 additions and 27 deletions

View File

@ -4,33 +4,19 @@ import type { EventBus } from '../eventBus.js'
import { canonicalizePath } from '../../utils/sessionStoragePortable.js'
export function createEventRoutes(eventBus: EventBus): Hono {
return new Hono()
.get('/event', async c => {
const sessionIdFilter = c.req.query('session_id') ?? undefined
const headerDir = c.req.header('x-csc-directory')
const cwdFilter = headerDir ? await canonicalizePath(decodeURIComponent(headerDir)) : undefined
return streamSSE(c, async stream => {
const clientId = eventBus.addClient(stream, sessionIdFilter, cwdFilter)
stream.onAbort(() => {
eventBus.removeClient(clientId)
})
while (true) {
await stream.sleep(30000)
}
return new Hono().get('/event', async c => {
const sessionIdFilter = c.req.query('session_id') ?? undefined
const headerDir = c.req.header('x-csc-directory')
const cwdFilter = headerDir ? await canonicalizePath(decodeURIComponent(headerDir)) : undefined
return streamSSE(c, async stream => {
const clientId = eventBus.addClient(stream, sessionIdFilter, cwdFilter)
stream.onAbort(() => {
eventBus.removeClient(clientId)
})
})
.get('/global/event', async c => {
const sessionIdFilter = c.req.query('session_id') ?? undefined
return streamSSE(c, async stream => {
const clientId = eventBus.addClient(stream, sessionIdFilter)
stream.onAbort(() => {
eventBus.removeClient(clientId)
})
while (true) {
await stream.sleep(30000)
}
})
while (true) {
await stream.sleep(30000)
}
})
})
}

View File

@ -4,7 +4,6 @@ import { jsonParse, jsonStringify } from '../utils/slowOperations.js'
import { logError } from '../utils/log.js'
import type { EventBus } from './eventBus.js'
import type { SessionBusyStatus, SessionState } from './types.js'
// 子进程冷启动 + MCP 加载 + 鉴权可能远超 30senv 可调
const INIT_TIMEOUT_MS = (() => {
const raw = Number(process.env.CSC_SERVE_INIT_TIMEOUT_MS)