Merge origin/master into worktree/web-plugin-config

Master gave the agent-preset nav its own glyph; this branch's plugins glyph
sits beside it, and both keep their own icon. Master's stricter
no-base-to-string rule also reaches this branch's new provider test, whose
fetch-call assertion now names the types it reads instead of stringifying an
unknown body.
This commit is contained in:
Yichen Jiang
2026-08-11 11:38:46 +08:00
154 changed files with 2000 additions and 485 deletions

View File

@@ -225,11 +225,11 @@ describe('DeepSeekSearchProvider settings changes mid-search', () => {
commitSettings()
await search
const [endpoint, init] = fetchMock.mock.calls[0] as unknown as [string, RequestInit]
const [endpoint, init] = fetchMock.mock.calls[0] as unknown as [string, { headers: Record<string, string>; body: string }]
// The key resolved from `before` must never reach `after`'s origin.
expect(endpoint).toBe('https://before.test/v1/messages')
expect((init.headers as Record<string, string>)['x-api-key']).toBe('key-from-before')
expect(JSON.parse(String(init.body))).toMatchObject({ model: 'model-before' })
expect(init.headers['x-api-key']).toBe('key-from-before')
expect(JSON.parse(init.body)).toMatchObject({ model: 'model-before' })
})
})