FN-5851: fix goal tool store resolution

Resolve goal tool lookups to the canonical project store from Fusion worktree directories.

- recognize both legacy .worktrees and .fusion/worktrees paths when resolving the project root for pi extensions
- add CLI coverage proving fn_goal_list and fn_goal_show return dashboard-created goals from a Fusion worktree cwd
- extend core worktree-resolution tests and keep the branch conflict recovery test worktree path isolated in tmpdir
- add a patch changeset for the published CLI fix

Files changed:
 .changeset/fn-5851-goal-store-resolution.md        |   5 +
 packages/cli/src/__tests__/goal-store-resolution.test.ts    | 104 +++++++++++++++++++++
 packages/core/src/__tests__/pi-extensions.test.ts  |  14 ++-
 packages/core/src/pi-extensions.ts                 |  12 ++-
 packages/engine/src/__tests__/branch-conflicts-recovery.test.ts    |   2 +-
 5 files changed, 130 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-5851

Fusion-Task-Lineage: ec4c8239-b953-4df7-9f72-02e17e4b0851
This commit is contained in:
gsxdsm
2026-06-01 23:39:20 -07:00
parent c60dae1cb9
commit 7d1708f023
5 changed files with 130 additions and 7 deletions

View File

@@ -232,7 +232,7 @@ describe("branch contamination recovery classification", () => {
it("reanchors without checkout -B when detached worktree is already at base on bound branch", async () => {
const { repoDir, baseSha } = await setupRepo();
const secondaryWorktree = path.join(repoDir, "../feature-secondary");
const secondaryWorktree = path.join(tmpdir(), `${path.basename(repoDir)}-feature-secondary`);
await run(`git worktree add --detach ${JSON.stringify(secondaryWorktree)} ${baseSha}`, repoDir);
dirs.push(secondaryWorktree);