fix(tasks): claim the teardown report before the producer cancel runs

A throwing producer cancel jumped to the force-fail branch before
`reported` was set, so `settle()` announced an unreported completion and
the default wakeup delivery started a model turn on an owner the host
was already destroying — the exact failure mode marking the record
reported exists to prevent.

Teardown claims the report before calling the producer, because that
decision does not depend on whether the producer's cancel succeeds.

Also reject a `maxConsecutiveWakes` that cannot bound anything: the
field exists to cap a runaway chain, and `Infinity` removed the cap
while a fraction never named a turn.

Correct the module JSDoc and the background-task runtime note, both of
which still promised that notices never wake an idle agent.
This commit is contained in:
Yichen Jiang
2026-08-11 20:29:08 +08:00
parent 4675914d74
commit 75b26988dc
12 changed files with 81 additions and 19 deletions
+2 -2
View File
@@ -2,5 +2,5 @@
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write docs/config-catalog.md
config-catalog.md: ef9d8288822eee6428a74c3ec30569fcd4eed553
config-catalog.zh.md: fece46a8a97308c6cfb465fa6aa1c0156f46c7a4
config-catalog.md: 6f1f675634034285c8bdf4366f118786a1131d0d
config-catalog.zh.md: d6c960377e266b5d9715fe53f12e47cacf1fc9cb
+1 -1
View File
@@ -2410,7 +2410,7 @@ export interface Config {
export type CompletionDelivery = 'quiet' | 'wakeup'
```
Source: [`packages/tasks/tool-tasks/src/index.ts:31`](../packages/tasks/tool-tasks/src/index.ts)
Source: [`packages/tasks/tool-tasks/src/index.ts:32`](../packages/tasks/tool-tasks/src/index.ts)
## `@deepseek-ai/dsh-tool-todo`
+1 -1
View File
@@ -2411,7 +2411,7 @@ export interface Config {
export type CompletionDelivery = 'quiet' | 'wakeup'
```
来源:[`packages/tasks/tool-tasks/src/index.ts:31`](../packages/tasks/tool-tasks/src/index.ts)
来源:[`packages/tasks/tool-tasks/src/index.ts:32`](../packages/tasks/tool-tasks/src/index.ts)
## `@deepseek-ai/dsh-tool-todo`