mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-21 17:38:10 +00:00
根因:residentInboundChannel 在 create 时把 child/<id> 登记进共享登记表 (Plugin=resident, Owner=父),但 teardownResident 只把划入的 inputch (如 timer)归还为未分配,从未注销这条入站登记。于是每次 create/destroy 都在登记表里留下一条脏记录,且随次数单调累积。 实测(HomeAgent 侧,HΔ-Kernel v1.3.10): 后 仍列出 child/<id>,归属 main;HomeAgent 没有任何 工具能单独注销 inputch,只能重启 homed 清掉。 修法:teardownResident 里用纯函数 inboundChannelName 算出名字并 Unregister。 不能复用 residentInboundChannel——它有重新登记的副作用。 该路径同时覆盖 destroy / reclaim / StopResidents(父退出)。 测试:TestResident_LifecycleAndNoOrphans 增加两条断言——销毁后与父退出后 child/<id> 都必须从登记表消失。