EconomicHook实现——char_count接线(issue #108 Q7) #157
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
#108 Q7(issue #108 grill,2026-08-18 拍板:保留 port,把两种触发时机都写进 ADR);ADR 更新见 PR #150
What to build
新增
EconomicHook(host 侧经济动作钩子,可选),ArisePorts.economic_hook: EconomicHook | None,支持两个互不排斥的触发源:命令前置钩子(如清除上下文扣星)与生成中窗口内的资源消耗(如 TTS
char_count,见 #152)。原文(
docs/adr/0013-crash-recovery-and-side-effect-contract.md「更新(2026-08-18,issue #108grill Q7)」节):
Acceptance criteria
EconomicHookProtocol 按上述原文实现,ArisePorts新增economic_hook: EconomicHook | None = None(同resourceport,靠存在与否当信号,不新开CapabilitySet布尔位)synthesize(#152)产出的char_count接线到economic_hook.chargecharge调用崩溃后不做任何回滚/补偿尝试,语义上等同层③"已发射动作不可逆"
economic_hook.charge;若尚无任何命令挂经济动作,本票只需保证 port 契约就位、不强求现在就有第一个命令消费方
economic_hook为None时,char_count产出但静默不消费(不报错,不阻塞 TTS 合成本身)Not in scope
charge调用Blocked by
synthesize产出char_count是本票的第一个真实触发源)——若 #152 未落地,本票可以先把 port 契约建好,但没有真实调用点可以接线验证