Skip to main content
beta.13 的补丁跟进。SessionStart hook 新增一次性 <first-reply-notice> 块,会话首条可见回复显式确认 Trellis 上下文已注入。READY 状态的 Next-Action 文案更新成”下一步去 dispatch trellis-implement,不要在主会话里动代码”,这样能避免 agent-capable 的平台的主 agent 绕过 sub-agent 自己改代码。Claude Code 的 statusline 在 Windows 上修了 UTF-8 编码初始化崩溃的问题。

Enhancements

首条回复一次性确认 SessionStart 注入

用户无明确感知 Trellis 的 SessionStart hook 是否成功注入,现在 SessionStart hook 会在 additionalContext 开头追加:
应用范围:
  • packages/cli/src/templates/shared-hooks/session-start.py
  • packages/cli/src/templates/codex/hooks/session-start.py
  • packages/cli/src/templates/opencode/plugins/session-start.js
copilot/hooks/session-start.py 保留 JSON 协议形状但不注入该提示,因为 GitHub Copilot 当前会忽略 sessionStart 输出(见下方 Docs)。

READY 状态的 Next-Action 文案重写

旧文案:
在 agent-capable 平台上,这个 prompt 可能会导致 agent 主进程自己手动写代码,绕过 sub agent 的工作流程。 新文案:
<ready> 收尾指令也由 “若有活动任务,询问是否继续” 改为 “若 task 为 READY,直接执行其 Next required action,不要再问是否继续” 统一落地:

Bug Fixes

Claude Code statusline:Windows UTF-8 编码初始化不再崩溃

Claude Code 的 statusline(.claude/hooks/statusline.py,由 shared-hooks/statusline.py 下发)在 Windows 上需要把 stdout/stderr 切到 UTF-8,否则中间点 · 等字符会被 GBK 编码折损。原先的实现:
在部分 Windows Python 环境下,sys.stdout / sys.stderr 是不支持 detach() 的类型化包装(typed stream),这段编码初始化代码直接抛异常,导致整个 statusline 进程崩溃,Claude Code 顶部信息条空白。新实现改用 Python 3.7+ 标准的 io.TextIOBase.reconfigure() API,不可用时静默跳过:
errors="replace" 保证个别异常字符不至于阻断渲染。

Codex / Copilot SessionStart 复用项目自带的编码初始化

两个 hook 在输出 JSON 之前先跑一遍 configure_project_encoding(project_dir):把 .trellis/scripts/ 塞进 sys.path,项目里有 common.configure_encoding() 就调一下,没有就跳过:
用于避免在未预先包装 stdout 的 Windows Codex/Copilot 运行中出现乱码。

Docs

Copilot sessionStart hook 当前仅作诊断用

copilot/hooks/session-start.py 的模块 docstring 和 systemMessage 已明确说明:GitHub Copilot 现行 SessionStart 行为会忽略 hook stdout。脚本仍输出完整 Trellis payload(为与其他宿主对齐,也为 Copilot 将来支持留位),但旧的成功消息 Trellis context injected (<n> chars) 在该宿主上会误导用户。现在改为 Trellis SessionStart diagnostics emitted (<n> chars); Copilot currently ignores sessionStart hook output. Copilot 用户应依赖 UserPromptSubmit 面包屑(会被 Copilot 采纳)与 hook 日志来确认 Trellis 是否生效,而非 SessionStart 输出。

Upgrade

已有项目:
本版无迁移步骤。已有 task、jsonl 文件与 .current-task 均保持原样。下次会话启动时会看到一句中文确认 SessionStart 已注入;处于 READY 状态的 task 将直接推动 trellis-implement,不再问”是否继续”。Windows 上 Claude Code 的 statusline 不再因 UTF-8 编码初始化失败而崩溃。 全新安装: