Skip to content

Commit 5d79ce8

Browse files
committed
docs(quota): describe canonical selection admission and refusal
Signed-off-by: song <liusongstep@gmail.com>
1 parent 13b9c89 commit 5d79ce8

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

‎docs/quota-allocation.md‎

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -642,6 +642,50 @@ empty results; missing/stale display and provider failure never authorize a
642642
Markdown fallback. The guard does not append a second Markdown candidate list.
643643
Historical receipt-bound recovery remains separate from new work admission.
644644

645+
The final current-selection admission and recovery predicate has one TypeScript
646+
owner. CLI preflight and interaction construction use that projection; the Effect
647+
interpreter, new TurnEnvelope construction and scoped-override projection also
648+
reject an unadmitted deferred/rejected packet that still carries execution,
649+
spend, safe-bypass or executable settlement fields. A missing typed recovery action
650+
fails explicitly. The recovery command itself remains valid: these checks do not
651+
classify command prose or remove the same-Turn re-entry route.
652+
653+
Admission reads the canonical agent channel: pending delivery requires both
654+
`must_attempt=true` and `delivery_allowed=true`; pending workspace repair requires
655+
its explicit repair route and `delivery_allowed=false`. Missing delivery permission
656+
is unknown, not a grant. Compatibility `execution_obligation` annotations cannot
657+
independently grant or veto final admission. Its producer rejects non-boolean
658+
permission values before constructing the canonical channel; null/missing values
659+
do not grant permission. This tightens malformed/contradictory selected-Todo inputs
660+
without changing valid receipt-bound or current-work behavior.
661+
662+
Receipt-bound work stays with its reconciliation owner. Existing admitted current
663+
work and explicitly qualified workspace repair retain their exceptions; an
664+
unrelated pending selection cannot borrow those facts. These are consistency and
665+
preflight projections over the current guard, not lease, Goal-identity or provider
666+
authorization. Calls without a qualification keep their existing path. Python
667+
retains command/structural adaptation and shares one recovery decision across the
668+
two interaction channels; it does not keep a parallel admission predicate.
669+
670+
准入读取正式 agent channel:待选交付要求 `must_attempt=true` 且
671+
`delivery_allowed=true`;待选工作区修复要求明确的修复路径及
672+
`delivery_allowed=false`。缺失交付权限表示未知,不能当作授权。兼容字段
673+
`execution_obligation` 不能独立授予或否决最终准入;构造正式通道前会拒绝
674+
非布尔权限值,null/缺失值不授予权限。这会收紧非法或矛盾的选择输入,合法的
675+
回执绑定和当前工作路径保持不变。
676+
677+
最终的当前工作准入和选择恢复判定统一由 TypeScript 持有,CLI preflight 与交互
678+
构造复用该投影。Effect 解释器、新 TurnEnvelope 构造和 scoped-override 投影也
679+
拒绝未获准的 deferred/rejected packet 中残留的执行、扣费、safe-bypass 或可执行
680+
结算字段;缺失类型化 recovery action 会明确失败。恢复命令本身仍有效,这些检查
681+
不按命令文案分类,也不删除同 Turn 的重新准入路径。
682+
683+
已绑定回执的工作仍由回执协调 owner 处理;既有已获准工作和明确允许的工作区
684+
修复保留各自例外,不相关的待选择工作不能借用这些事实。此处只做当前 guard 的
685+
一致性和 preflight 投影,不验证租约、Goal 身份或 provider 权限。没有 qualification
686+
的调用保留原路径。Python 保留命令与结构适配,两条交互 channel 复用一次恢复
687+
判定,不再维护平行的准入规则。
688+
645689
Hosts supplying their own `--turn-instance-id` use this same selection contract,
646690
including `generic_cli`, `outer_controller`, and native CLI profiles. An explicit
647691
`--todo-id` is qualified before receipt binding; it must not leave the response

0 commit comments

Comments
 (0)