mirror of
https://github.com/garrytan/gbrain.git
synced 2026-07-30 19:49:14 +00:00
fix(minions): stamp 10-min default timeout on facts-absorb jobs (#3207)
facts-absorb performs one LLM extraction call per page — the same shape as chronicle_extract — but was missing from HANDLER_DEFAULT_TIMEOUT_MS, so it inherited the tight null-default wall-clock budget and was dead-lettered mid-generation on slow chat providers. Nothing was inserted; the page's facts were silently lost. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
6920744dd8
commit
3afcf3d93f
@@ -43,6 +43,11 @@ export const HANDLER_DEFAULT_TIMEOUT_MS: Readonly<Record<string, number>> = {
|
||||
// few writes. Generous 10-min budget (vs the tight null-default) covers a
|
||||
// slow gateway without the 30-min loop budget.
|
||||
chronicle_extract: TEN_MIN_MS,
|
||||
// #3207 — same shape as chronicle_extract: one page = one LLM extraction
|
||||
// call + a few writes. Was missing from this map, so it inherited the tight
|
||||
// null-default and got dead-lettered mid-generation on slow chat providers
|
||||
// (facts silently lost) — exactly the failure this file exists to prevent.
|
||||
'facts-absorb': TEN_MIN_MS,
|
||||
// Per-page contextual reindex jobs process chunks sequentially with one
|
||||
// rate-leased LLM synopsis call per chunk; large transcript pages need more
|
||||
// than the standard 30-min long-job budget.
|
||||
|
||||
@@ -354,6 +354,15 @@ describe('MinionQueue: #1737 per-handler default timeout', () => {
|
||||
expect(sub.timeout_ms).toBe(30 * 60 * 1000);
|
||||
});
|
||||
|
||||
// #3207 — facts-absorb is one LLM extraction call per page (same shape as
|
||||
// chronicle_extract) but was missing from HANDLER_DEFAULT_TIMEOUT_MS, so it
|
||||
// inherited the tight null-default wall-clock and was dead-lettered
|
||||
// mid-generation on slow chat providers (facts silently lost).
|
||||
test('facts-absorb gets the 10-min LLM-extraction default (#3207)', async () => {
|
||||
const job = await queue.add('facts-absorb', { slug: 'people/alice-example' });
|
||||
expect(job.timeout_ms).toBe(10 * 60 * 1000);
|
||||
});
|
||||
|
||||
test('contextual per-chunk reindex gets the 60-min default', async () => {
|
||||
const job = await queue.add('contextual_reindex_per_chunk', { page_slug: 'large-transcript' }, undefined, {
|
||||
allowProtectedSubmit: true,
|
||||
|
||||
Reference in New Issue
Block a user