fix(agent): collapse doubled slashes in cwd before project mapping
All checks were successful
CI / verification (pull_request) Successful in 26s
All checks were successful
CI / verification (pull_request) Successful in 26s
Resolves #49 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
c8f92ab25f
commit
d7f209f0ca
2 changed files with 7 additions and 1 deletions
|
|
@ -171,6 +171,9 @@ describe("mapProject", () => {
|
||||||
expect(
|
expect(
|
||||||
mapProject(`${HOME}/claude-code/vps-health-api/.claude/worktrees/agent-x`, HOME),
|
mapProject(`${HOME}/claude-code/vps-health-api/.claude/worktrees/agent-x`, HOME),
|
||||||
).toBe("vps-health-api");
|
).toBe("vps-health-api");
|
||||||
|
// A doubled slash never yields an empty project name.
|
||||||
|
expect(mapProject(`${HOME}/claude-code//simpl-liste/app`, HOME)).toBe("simpl-liste");
|
||||||
|
expect(mapProject(`${HOME}//claude-code`, HOME)).toBe("(monorepo)");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("rule 1: .spikes and .archive keep their second segment", () => {
|
it("rule 1: .spikes and .archive keep their second segment", () => {
|
||||||
|
|
|
||||||
|
|
@ -89,8 +89,11 @@ function escapeRe(s) {
|
||||||
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Collapses repeated slashes and drops trailing ones, so "<home>/claude-code//x"
|
||||||
|
// cannot yield an empty project name.
|
||||||
function stripTrailingSlashes(p) {
|
function stripTrailingSlashes(p) {
|
||||||
return p.length > 1 ? p.replace(/\/+$/, "") : p;
|
const collapsed = p.replace(/\/{2,}/g, "/");
|
||||||
|
return collapsed.length > 1 ? collapsed.replace(/\/+$/, "") : collapsed;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Project name from a transcript line's `cwd`, rules applied in order:
|
// Project name from a transcript line's `cwd`, rules applied in order:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue