自动计划阶段钩子拒绝了几乎所有真实的 Claude 代码转录 (Claude-public-transcript.ts 所有权检查)。
作者: rikimasorati创建于 2026年9月25日更新于 2026年9月28日
`readOwnedClaudePublicTranscript` 需要项目 cwd 中一个没有父节点的用户根和严格的后向父节点链。真实的 Claude 代码记录同时破坏了以下两点: (1) 第一条记录通常是一个没有父节点的 SessionStart `hook_success` 附件; (2) 恢复或压缩的会话以一个 `compact_boundary` 开始,其 `logicalParentUuid` 指向复制到上下文中,而 walk 将其读取为一个循环; (3) 仪器在父节点之前刷新子节点(测量 3,886 个向前的 `parentUuid` 链,除了 hook 附件,其他地方超过 400 条记录)。测量结果: 未修补的读取器接受 1/400 个本地记录,因此 `phase-publication-hook` 拒绝了每个阶段条目,其中 '本地父节点证据尚未到达日志',而用户看到的唯一退出是一个新会话。建议的修复(在本地运行, gstack 套件 575/575): 保持严格的遍历,在到达文件的第一个节点时(任何方向;边界的前向逻辑父节点从其前驱继续;缺失的父节点只在第一条消息之前),回退到拒绝成员资格,公开拒绝原因代码,提高 MAX_BYTES(3/400 个记录超过 128 MiB),并轮询 min(45 秒, max(3 秒, 2 次第一次读取))。单独的(仪器,而不是 gstack): 阶段条目 tool_use 记录有时直到 PreToolUse 钩子返回后才出现在记录中(13/18 次尝试)。
内容来源: garrytan/gstack