fix: reject empty configured session ids

This commit is contained in:
Tianyi Cui
2026-07-14 23:36:04 +08:00
parent 10fd0b4504
commit 9745a0d43a
2 changed files with 10 additions and 1 deletions

View File

@@ -377,7 +377,7 @@ export class AgentLoop extends Service implements AgentFactory {
static Config = z.object({
agents: z.array(z.object({
id: z.string().required(),
sessionId: z.string(),
sessionId: z.string().min(1),
model: z.string(),
cwd: z.string(),
resumeSessionId: z.string(),

View File

@@ -35,6 +35,15 @@ async function makeCoreContext(): Promise<Context> {
}
describe('config-driven session id', () => {
it('rejects an empty exact id before publishing an agent', async () => {
const ctx = await makeCoreContext()
await expect(ctx.plugin(AgentLoop, {
agents: [{ id: 'main', sessionId: SessionId(''), model: 'mock' }],
})).rejects.toThrow('expected string length >= 1')
expect(ctx.agents.get(SessionId(''))).toBeUndefined()
await ctx.fiber.dispose()
})
it('accepts one exact fresh id and rejects it alongside a resume id', async () => {
const exact = await makeCoreContext()
await exact.plugin(AgentLoop, {