deer-flow/contracts/thread_origin_contract.json
Totoro 593ba49458
feat(subagents): continue requested batch work and schedule explicit prerequisites (#7839)
* feat(subagents): continue native batches and honor item dependencies

* docs: link native batch follow-up changelog entries

* test(migrations): pin isolated history-seed upgrade to 0050

* fix(subagents): preserve follow-up scope, blockers and fair scheduling

* test(memory): freeze capacity evaluation time

* fix(subagents): guard follow-up admission and retain run controls

* fix(subagents): enforce runs:cancel on tool cancellation of follow-up batches

* style(tests): format test_batch_followup_host with ruff

* fix(subagents): drop the admission checkpoint check and keep SDK cancel compatible

The checkpoint check inside run admission waited on the checkpoint saver's
lock while holding the SQLite write lock, which could make another chat's
checkpoint write fail. Remove it; dispatch still checks the conversation
before admission.

A follow-up waiting for an unanswered question now keeps its claim until the
lease expires instead of rereading the conversation every poll. Cancel passes
the caller's run authority only to submitters that take it, so existing SDK
submitters keep the two-argument call. Document that retrying a prerequisite
by hand does not requeue its blocked items, and list 0052 as the migration head.

---------

Co-authored-by: Totoro-qaq <279883115+Totoro-qaq@users.noreply.github.com>
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2026-11-05 15:10:21 +08:00

14 lines
752 B
JSON

{
"version": 1,
"description": "Cross-language contract fixture for the server-owned run and thread origin. The Gateway stamps metadata[key] = {\"kind\": <one of kinds>, \"provider\"?: ..., \"namespace\"?: ...} on runs started by a server-side launcher, and on the thread when it creates one (backend/packages/harness/deerflow/runtime/run_origin.py); runs.origin_kind holds the kind. The frontend reads the same key to pick a thread's origin marker. Not to be confused with scheduled_origin_key in scheduled_goal_notes_contract.json, which marks the scheduled prompt message inside a run.",
"key": "deerflow_origin",
"kinds": [
"extension",
"github",
"im_channel",
"mcp_notification",
"schedule",
"subagent_batch"
]
}