修 class-1 平台 sub-agent context 注入 hook 不触发时的 fallback(Windows + Claude Code、Documentation Index
Fetch the complete documentation index at: https://docs.trytrellis.app/llms.txt
Use this file to discover all available pages before exploring further.
--continue resume、fork 发行版等场景);task.py start 拿不到 session identity 时不再硬退出。无新增 migration。
Bug Fixes
Class-1 sub-agent:marker-based context loading fallback
class-1 平台(claude / cursor / opencode / kiro / codebuddy / droid)通过PreToolUse hook 给 sub-agent 注入 prd.md + implement.jsonl / check.jsonl 内容。这条 hook 在 Windows 上至 v2.1.119 仍 silent skip(上游 anthropics/claude-code#53254);之前各平台 sub-agent 定义文件没有 fallback,假设 hook 一定触发——结果 sub-agent 收不到 spec 上下文。
加 marker + 条件 fallback 的双通道:
| 层 | 文件 | 改动 |
|---|---|---|
| Hook(仅成功路径) | packages/cli/src/templates/shared-hooks/inject-subagent-context.py | build_implement_prompt / build_check_prompt / build_finish_prompt 输出顶部加 <!-- trellis-hook-injected --> sentinel |
| Sub-agent 定义文件 | claude/agents/、cursor/agents/、codebuddy/agents/、opencode/agents/、droid/droids/、kiro/agents/(trellis-implement + trellis-check) | 顶部加 Trellis Context Loading Protocol 节:看到 marker → hook 注入成功,直接干活;没看到 → 从 dispatch prompt 第一行 Active task: <path> 拿 task 路径,自己 Read prd.md + 对应 jsonl |
| Workflow | packages/cli/src/templates/trellis/workflow.md | dispatch 协议范围从仅 class-2 扩到所有平台(trellis-research 除外) |
buildPullBasedPrelude。trellis-research 不加 marker,research 跟 active task 解耦。
task.py start:非阻塞 degraded mode
task.py start 之前 resolve_context_key() 返回 None 时直接 return 1(即没有 SessionStart hook 注入 TRELLIS_CONTEXT_ID 的场景)。错误信息怪 AI session,但真正原因在上游:Windows + Claude Code 在 v2.1.111 之前不会 source CLAUDE_ENV_FILE,PowerShell tool / --continue resume 路径至今仍 skip。
改成黄色 degraded-mode 警告 + 仍翻 task.json.status: planning → in_progress + return 0,让 AI 基于对话上下文继续。resolve_context_key() 真值的成功路径完全不变。