Sessions: account a restored Session to its Workspace
Ensure() only registered a Workspace when the Session was new, so Sessions restored from disk never entered the Workspace record and stayed invisible in the panel. Always create (idempotent) and attach an unaccounted Session; warn on attach failure. Tests gain a shared Workspace fixture.
This commit is contained in:
@@ -9,7 +9,7 @@ import type { UserMessage } from '@deepseek-ai/dsh-llm'
|
||||
import { SHELL_TOOL } from '../src/app/sessions.ts'
|
||||
import { renderPrompt } from '@deepseek-ai/dsh-system-prompt'
|
||||
import { Runtime } from '../src/app/runtime.ts'
|
||||
import { jobRegistry } from './fixtures/host.ts'
|
||||
import { jobRegistry, workspaceRegistry } from './fixtures/host.ts'
|
||||
import { evalsHealth } from '../src/app/views/overview.ts'
|
||||
import { mandateInstructions } from '../src/executor/dsh.ts'
|
||||
import { masterPrompt } from '../src/app/context.ts'
|
||||
@@ -204,7 +204,7 @@ beforeEach(async () => {
|
||||
inspect: vi.fn(async () => ({ events: [] })),
|
||||
}
|
||||
jobs = jobRegistry()
|
||||
services = { agents, llm: { resolveCallConfig: vi.fn(async value => value) }, sessionController: controller, sessionPersistence: { flush: vi.fn(async () => {}), open: vi.fn(async () => ({ read: async () => ({ events: [] }), [Symbol.asyncDispose]: async () => {} })) }, workspaceRegistry: { create: async (cwd: string) => ({ id: cwd }) }, permissionPresets: { set: () => {} }, subprocess, webServer: { host: '127.0.0.1', port: 3082, register: (route: { handler: HttpHandler }) => { http = route.handler; return () => {} } }, jobs: jobs.service }
|
||||
services = { agents, llm: { resolveCallConfig: vi.fn(async value => value) }, sessionController: controller, sessionPersistence: { flush: vi.fn(async () => {}), open: vi.fn(async () => ({ read: async () => ({ events: [] }), [Symbol.asyncDispose]: async () => {} })) }, workspaceRegistry: workspaceRegistry().service, permissionPresets: { set: () => {} }, subprocess, webServer: { host: '127.0.0.1', port: 3082, register: (route: { handler: HttpHandler }) => { http = route.handler; return () => {} } }, jobs: jobs.service }
|
||||
for (const [name, service] of Object.entries(services)) ctx.reflect.provide(name, service)
|
||||
for (const cli of [AGENT(), OTHER(), BOT()]) writeFileSync(cli, '#!/bin/sh\n', { mode: 0o755 })
|
||||
const store = new Store(join(directory, 'orchestrator.sqlite')); seed(store); store.close()
|
||||
|
||||
Reference in New Issue
Block a user