deepseek-harness/docs
Tianyi Cui 706691a7df workflow: re-check cancellation after the slot acquire
Codex convergence round 1 on the review-response commits: agent()'s
post-acquire window was real and unguarded. `await acquireSlot()` yields
at least one microtask tick even when a slot is free (and a queued
waiter resumes a tick after its release), so a cancel() landing in that
tick let the continuation start a child carrying an ALREADY-aborted
signal — the in-code comment claimed the window could not exist. A
provider that subscribes only to future abort events (the test stub;
the seam does not promise pre-aborted-signal handling) would never
settle such a child, leaking it until the dispose grace abandoned the
run, and a backend that misses the pre-aborted signal would burn a full
model turn after the user cancelled.

agent() now re-checks isCancelled() immediately after the acquire
(inside the slot-owning try, so the finally still releases), making
every post-cancel path reject before subagents.start. New deterministic
regression: cancel() in the same synchronous frame as start() lands in
the free-slot await tick — the run settles cancelled with ZERO children
started (previously: one leaked child and a grace-delayed settle). The
raced-release test's comment now states what it actually pins (the
queued-waiter rejection path). Also aligns the RFC's auto-concurrency
formula with the code (min(16, max(1, availableParallelism() - 2))).
2026-07-06 01:39:01 +08:00
..
cookbook Merge branch 'simpl-a2-vocab' into simpl-a3-knobs 2026-07-04 21:20:55 +08:00
cordis-catalog docs: regenerate the services catalog for the seam-contract JSDoc 2026-07-06 00:54:21 +08:00
core-data-structures workflow: simplify to the trust premise; settle result on cancellation 2026-07-06 00:48:49 +08:00
i18n docs: equal-authority pairing with sidecar consistency records 2026-07-03 07:41:24 -07:00
persistence-catalog Split the cordis catalog into separate events and services documents 2026-07-05 00:45:06 +08:00
postmortem fix(docs): address Codex review round 3 — last three moved-policy citations 2026-07-04 16:02:39 +08:00
rfc workflow: re-check cancellation after the slot acquire 2026-07-06 01:39:01 +08:00
tool-catalog workflow: dynamic workflows — script-driven multi-agent orchestration 2026-07-05 13:29:35 +08:00
AGENTS.md Split the cordis catalog into separate events and services documents 2026-07-05 00:45:06 +08:00
architecture.md workflow: dynamic workflows — script-driven multi-agent orchestration 2026-07-05 13:29:35 +08:00
defensive-patterns.md docs(AGENTS): rewrite the root standing orders to the 1,500-word budget 2026-07-04 14:22:47 +08:00
development.i18n.yaml Split the cordis catalog into separate events and services documents 2026-07-05 00:45:06 +08:00
development.md Split the cordis catalog into separate events and services documents 2026-07-05 00:45:06 +08:00
development.zh.md Split the cordis catalog into separate events and services documents 2026-07-05 00:45:06 +08:00
module-graph.md workflow: dynamic workflows — script-driven multi-agent orchestration 2026-07-05 13:29:35 +08:00
testing.md fix(docs): address ds-review-bot — the e2e tier is not DeepSeek-only 2026-07-04 16:43:23 +08:00