@adlc/context-handoff

中文文档
1.12.0发布于 2026/10/10MITES Module构建来源已验证近 30 天下载 8564

上下文-rot接发——绝对波段信号,会话-地平线拒绝(D1-D3),操作员CLI用于写出/取回/通过/修理/解锁(F3连续性).

中文使用文档
文档目录3 节
  1. 续设
  2. 监督
  3. 拒绝存储期望

@adlc/context-handoff (英语)

ADLC阶段:P4连续性(F3) 绝对上下文带,会话-直线 变异拒绝 (D1-D3) 和操作员 CLI 书写/恢复/通过/修理/解锁/继续。 装订设计 : docs/specs/context-rot-handoff.md。 。 。 .

1.1.1.1 以来的状况 (单位:千美元)966号: 默认情况下, 不评估会话- terminal 拒绝( D1- D3) 。 Claude 代码和 Codex 插件没有钩入; pi 和 OpenCode 只能用 ADLC_CONTEXT_ROT_HANDOFF_ENABLED=1。波段阈值仍然被 build-gate,则 adlc handoff CLI不受影响.

adlc handoff write --session <id> [--ticket <id>] [--write] [--json]
adlc handoff resume --session <consumer> --deny-session <denier> [--write]
adlc handoff bypass --session <id> [--unbound-reason <text>] [--write]
adlc handoff repair --session <id> --ticket <id> --content-hash <h> [--write]
adlc handoff unlock --session <id> --pid <n> --started-at <iso> --host <h> --nonce <n> [--write]
adlc handoff continue --deny-session <denier> [--session <new>] [--capture-from <transcript>] [--write]
adlc handoff supervise [--dir .adlc] -- <command> [args...]

变异 --write 需求 ADLC_MANIFEST_KEY (从来没有沉默的成功).

--dir 命名分类账目录及其最后路径段 .adlc数字 : 文物和明显证据共享这棵树,任何其他名称都被拒绝 而不是把它们分开. repair 约束已经存在且 仍然开放——它从未产生过. unlock 只能回收这个的锁 主机,所以来自另一个机器的死相 PID 无法驱赶一个活的会话 . A 类 bypass 在stdout上给予的补助金范围为调用适配器的引用 持久证明是 context-handoff-bypass 明显条目 空 --unbound-reason 被拒绝,而不是贬低为受约束的赠款.

write, (中文(简体) ), resume,以及 repair 全部读取 - 修改 - 写入一个否定标记, 所以每个 举行这次会议 .adlc/handoffs/<id>.lock (O EXCL,退出时发布)和 当此主机的活会话持有时, 退出 2 . write 重置标记 写到最后.. ensureDenyMarker 是天能的,所以没有这个 刷新了的散列物会在以后的每一次恢复时会楔出——并拒绝拆卸或取消 求你使一个否认者复活。 当显示附件失败时, 运行文件 变异被卷回 所以没有束缚存活 没有证明.

续设

continue 是从拒绝交割处获得的许可: 否认会话, 将最终会话绑定在捕捉器上, 并消耗否认的会话 继任者。 否认者从不否认 一个新的会议。 它的构成捕捉 写 —— 恢复在单跑下 denier的锁,记录 context-handoff-continue,然后卷回所有文件 当证据附件失败时触动.

俘虏尸体的住址 .adlc/handoffs/content/<session_id>.md 已经 仅由主机优先代码编写; isProtectedHandoffPath 拒绝代理 写到 .adlc/handoffs/content/**,以及 continue 加入变异 子命令代理的外壳不得在否定下运行 . content_hash 为sha256 横过被划入的捕捉体( LF 线末端, 没有后行的白空间), 因此从磁盘中重新找到它 抓取一个编辑过的、有效的签名 无法.

与2号出口相抵而无所消耗:一个无所容留的否认者 repair (第一) 被毁灭的否认、失踪或腐败 --capture-from 来源, 一个已经持有恢复自动的后继代号,一个不能安全的代号 引用在即时, 或有效票 不同意拒绝的约束. 后继 id 来源于 --session 或被命令所铸造 代理输入 .

A 类 --capture-from 记录比 HANDOFF_MAX_AGE_HOURS 贡献否 模型叙事:简介仍为"活船",其中有遗漏. 年龄是 从记录本上读取最新时间戳, 倒回文件 mtime 只有在没有输入时.

约束是强制性的,而不是咨询性的. 抓获后的记录携带 content_kind: 'capture' 在最后和否定标记上。 每一次执行 适配器在每次变异检查时从磁盘上重新切出捕捉到的sha256,所以 编辑、超大小或删除的抓取否认 capture_tamper:<session> 理由——包括已经穷尽否认的继任者的理由。 这很平淡 sha256,所以一个没有钥匙的钩子 执行精确的 钥匙的CLI做什么。 记录 写在本字段存在之前,保留其以前的语义不受影响: 大麻是永远无法重新找到的, 所以没有什么可检查的. repair 清除 content_kind 当它重置一席之地的时候,那是一条经文记载的出路 捕获.

读取回取. 使用 readVerifiedCapture(root, sessionId, expectedHash)。 。 。 . 它只当磁盘上的字节仍然散到值时返回正文 否认记录,恢复原貌; 丢失、超大和更改所有 没有尸体就关门了 督导员和会话启动员必须离开 而不是读文件 授权, 绝不能让文件仍然匹配 .

A 类 无键 注射器(一个拉带钩子,它擦去它面前的显式钥匙) 从此函数中获取内容绑定, 仅此而已: 无法验证恢复- 自动的 HMAC, 所以它必须浮出一个捕捉器作为咨询 上下文并说,永远不要证明阅读会话是授权的 继续。 授权是在有钥匙的情况下决定的——主管,以及 变异的门,在每一个变异上都重新分出同样的花序.

import { readVerifiedCapture } from '@adlc/context-handoff/lib/capture.mjs';

const got = readVerifiedCapture(root, denySessionId, denyRecord.content_hash);
if (!got.ok) return; // absent, oversize, or edited — inject nothing

抓取内容已编辑 . 全权证书被剥去,作为组织工作的一部分 简言之,并不是一个召唤者记得的一步——俘虏是持续的 贴入继任者的提示 在一个路径上。 形状反映了发现 分类账(packages/core/lib/ledger.mjs)),拒绝做出结论 包含一个; test/capture-redact.test.mjs 双人双人双. 删除的跨度会留下一个明确的 [adlc: redacted <kind>] 所以读者知道. 纯hex跑步可以任意延长 萨瓦256 content_hash 后继者证实反对。 最好成绩,不是证据 秘密自由的爱.

一个接班人的身份,一个授权. 恢复自动创建于 O_EXCL因此,两个不同的续作否认 命名同一个继任者 无法相信他们授权了它—— 否认的锁不能序列化 因为他们有不同的锁。 失败者通过2号出口和 赢家的赠款没有受到影响.

退后从不征服陌生人. 每一回都是比对和取出 此运行所写的字节 : 从此之后, 另一个作者所拍摄的文物被留下 在错误中单独命名,因为触发回滚的失败是 经常是那个作家.

捕捉内容有栅栏. 随身携带的每件东西都是可以攻击的 — 一个分支名称, 文件名 git status,一个门票标题,前一个 会话本身的单词——所以每一节都用 <<<UNTRUSTED-CAPTURE-DATA 编号 : END-UNTRUSTED>>> 标记,这些划界者从内容中剥去 栅栏不能从里面关闭. bootstrap_prompt 重复, 在和 在身体之后,栅栏内容是记录数据而不是指示.

监督

supervise 是零触摸路径:它包起一个绑带命令,当它 会话点击一次交接 拒绝它完成整个回收 操作员会 以其他方式进行.

ADLC_MANIFEST_KEY=$KEY adlc handoff supervise -- claude --model opus

它将第一课的ID, 民意测验该课的否定标记(~2 s; fs.watch 不可信),等待笔录停止生长(稳定5分;或 因此,交割摘要被完整地抓取,运行 handoff continue --write,终止被替换的孩子(SIGTERM,然后 SIGKILLL 10 s)后,并用接班人ID和 靴子夹快。 后继身份来自 continue从来没有从包装.

钥匙留给主管. ADLC_MANIFEST_KEY 需要在前面 并且只达到连续的一步; superviseChildEnv 剥去它,连同 ADLC_ADMIN_KEY ——从每个被骗的孩子.

合同项目24. 每个产卵也都会下降 CLAUDECODE, (中文(简体) ), CLAUDE_CODE_CHILD_SESSION, (中文(简体) ), CLAUDE_CODE_SESSION_ID 财务报告和审定财务报表 CLAUDE_CODE_ENTRYPOINTA级 claude 继承它们的过程将自己视为 一个被窝住的小孩 默默地停止了笔录的写作 没有错误,没有警告, 只是一个没有线索的续作 每个产卵都施用洗涤剂,不是 一次开始.

把会话交出来. 一个无所不包的否认, 一个腐败的记录,一个 无法信任的有效载荷,或不再与其匹配的捕获 content_hash 全部停止循环 出口2,一个警告,和 可复制 handoff continue 单行 孩子们在逃 没有任何东西被消耗——降解是操作者的决定,而杀戮 他们的届会首先会夺走他们的生命.

失败的操纵者就是失败的主管. 包裹是脚本 等待,所以它从来没有报告它自己成功 的会话失败: 第3出道 当受监管的命令退出非零或被杀死时,当它能够退出时,退出4 完全没有开始。 带子本身的密码 载在消息和 JSON 有效载荷而不是通过, 因为1和2已经意味着什么 关于监管本身。 一个干净的出入口和一个操作员的Ctrl-C都是0.

报告一个崩溃的中间体, 没有失败 . 写其 否认,然后自行死亡——非零,或主管从未发出的信号 - 仍不交接:否认者已经说过正在更换,而且 主管不管怎样都会在普通的路径上终止,所以失败运行会 失败了所有成功的交接。 它被命名在 Stderr 上,并携带在 JSON 作为 abnormalExits因为坠毁的会话所写的交接稿 与被问及的情况不同.

缺少记录不是继续失败. 叙述是可选的 ——确定性简报仍然带有票,证据和状态——如此 在笔录出现之前死亡的会话在无记录的情况下继续进行 比退化。 都大声报道了,因为缺少记录 24号设备是外部环境的故障.

在注射点重新验证俘获. 已经变了的门 在每个评价上重新划出散列,但可以保护突变 触摸工具前, 由模型读取即时, 所以主管呼叫 readVerifiedCapture 在接班人诞生之前.

import { WARN_PCT, HANDOFF_PCT, HARD_PCT } from '@adlc/context-handoff/lib/thresholds.mjs';
import { evaluateBands } from '@adlc/context-handoff/lib/bands.mjs';
import { evaluateMutationGate } from '@adlc/context-handoff/lib/mutation-gate.mjs';
node --test packages/context-handoff/test/*.test.mjs

拒绝存储期望

loadDenyRecords 处理缺失 denies/ 仅在 .adlc/.deny-store 存在( JSON) {schema,sessions} 撰写人: ensureDenyMarker 在经过验证的标记后;会话[]使选择性的标记删除失败关闭). 哨兵是一个兄弟 handoffs/ 因此删除 handoffs/ 一个人 无法明确预期; 完整的按密度分类账仍然被推迟. 单凭车票店的存在不会被否认。 遗产 .adlc/handoffs/.deny-store 按预期处理,并自愈于新的 路径. evaluateMarkerOnReentry 已经 没有 使用全局监视器 每届会议 marker_vanished - 呼叫线 denyEverWritten。非约束运算符绕行可能清除 D0:deny_store_unavailable 财务报告和审定财务报表 D3:invalid_record。 。 。 .

咨询nagSuppression)当剩余至硬度低于 MIN_REMAINING_TO_HARD (接近硬度/交接区) 所以否认/交接拥有 信号; 绝不影响突变否认.

版本与发布记录

@adlc/context-handoff 共发布 6 个版本,首次发布于 2026/08/08;过去 12 个月发布了 6 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.12.0latest2026/10/1027 天前
1.11.12026/09/091 个月前
1.11.02026/08/252 个月前
1.10.02026/08/112 个月前
1.9.02026/08/092 个月前
1.8.02026/08/082 个月前

关于 @adlc/context-handoff 的常见问题

@adlc/context-handoff 是什么?

上下文-rot接发——绝对波段信号,会话-地平线拒绝(D1-D3),操作员CLI用于写出/取回/通过/修理/解锁(F3连续性).

如何安装 @adlc/context-handoff?

在项目目录运行 npm install @adlc/context-handoff,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 handoff,可以用 npx handoff 直接运行。

@adlc/context-handoff 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/adlc__context-handoff 是否存在。

@adlc/context-handoff 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@adlc/context-handoff 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@adlc/context-handoff 可以商用吗?

@adlc/context-handoff 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@adlc/context-handoff 的下载量有多少?

根据 npm 官方下载统计,@adlc/context-handoff 在 2026/10/05 – 2026/11/03 这 30 天内被下载 8,564 次,日均约 285 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@adlc/context-handoff 还在维护吗?

最新版本 1.12.0 发布于 2026/10/10(27 天前);至今共发布 6 个版本,其中过去 12 个月发布了 6 个;首次发布于 2026/08/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。