* Prefix a successful read-tool result with a compact worktree-mismatch * notice when the resolved index belongs to a different git working tree than * the caller's (issue #155). Without this, an agent in a nested worktree * silently trusts main-branch results. No-op on error results and wh
(result: ToolResult, projectPath?: string)
| 1243 | * warning — so it stays out of this path. |
| 1244 | */ |
| 1245 | private withWorktreeNotice(result: ToolResult, projectPath?: string): ToolResult { |
| 1246 | if (result.isError) return result; |
| 1247 | const mismatch = this.worktreeMismatchFor(projectPath); |
| 1248 | if (!mismatch) return result; |
| 1249 | |
| 1250 | const notice = worktreeMismatchNotice(mismatch); |
| 1251 | const [first, ...rest] = result.content; |
| 1252 | if (first && first.type === 'text') { |
| 1253 | return { ...result, content: [{ type: 'text', text: `${notice}\n\n${first.text}` }, ...rest] }; |
| 1254 | } |
| 1255 | return result; |
| 1256 | } |
| 1257 | |
| 1258 | /** |
| 1259 | * Annotate a successful read-tool result with per-file staleness — the |
no test coverage detected