{{ message }}
Repository navigation
Commit 20142e5
fix(think): arm declared scheduled tasks on the root agent only (#2056)
* fix(think): arm declared scheduled tasks on the root agent only
Declared scheduled tasks were armed on every instance of a Think class,
including sub-agents. `getScheduledTasks()` is normally a static
declaration, so it returns the same tasks on every instance and an agent
with N live sub-agents armed N+1 copies of one schedule, running each
occurrence N+1 times.
Add `getScheduledTasksScope()`, defaulting to "root". Sub-agents only arm
when a class opts into "all". Unarmed sub-agents reconcile against an
empty task set so the existing prune pass cancels their schedules and
clears their rows, and `_runDeclaredScheduledTask` carries the same guard
so a dispatch racing the prune cannot re-arm the occurrence being retired.
Fixes #1877
* chore: format
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(think): warn about disarmed facet tasks only after the prune succeeds; align sub-agent doc example
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: Antoni T <atokarski@cloudflare.com>
Co-authored-by: Sunil Pai <18808+threepointone@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>1 parent 040db5c commit 20142e5
8 files changed
Lines changed: 412 additions & 3 deletions
File tree
- .changeset
- docs/think
- packages/think
- src
- tests
- agents
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
400 | 400 | | |
401 | 401 | | |
402 | 402 | | |
| 403 | + | |
403 | 404 | | |
404 | 405 | | |
405 | 406 | | |
| |||
817 | 818 | | |
818 | 819 | | |
819 | 820 | | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
820 | 842 | | |
821 | 843 | | |
822 | 844 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
215 | 215 | | |
216 | 216 | | |
217 | 217 | | |
218 | | - | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
219 | 223 | | |
220 | 224 | | |
221 | 225 | | |
| |||
228 | 232 | | |
229 | 233 | | |
230 | 234 | | |
231 | | - | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
232 | 247 | | |
233 | 248 | | |
234 | 249 | | |
235 | 250 | | |
236 | 251 | | |
237 | 252 | | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
238 | 273 | | |
239 | 274 | | |
240 | 275 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
364 | 364 | | |
365 | 365 | | |
366 | 366 | | |
| 367 | + | |
367 | 368 | | |
368 | 369 | | |
369 | 370 | | |
| |||
546 | 547 | | |
547 | 548 | | |
548 | 549 | | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
549 | 558 | | |
550 | 559 | | |
551 | 560 | | |
| |||

0 commit comments