Repository navigation
fix(home): expand native Windows home-relative paths - #1199
Merged
jeff-r2026 merged 1 commit intoOct 17, 2026
Merged
Conversation
|
No findings in the specified diff. The Windows-only The PR description satisfies the required testing record with representative built, real-CLI baseline/patched runs. It explicitly reports the failed Linux E2E fixture setup and deferred coverage rather than claiming all-green CI. |
jeff-r2026
approved these changes
Oct 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
On Windows,
path.join('~/.teamai/team-repo', 'manifest', 'roles.yaml')produces a path starting with~\.expandHomeonly recognized~/and bare~, soloadRolesManifestreported an existing manifest as missing. Absolute paths worked. A native~\.teamai\team-repoinrepo.localPathalso madeteamai roles listfail to findteamai.yaml.Recognize
~\on Windows in the shared helper. Keep backslashes literal on POSIX, and retain the existing handling of~/, bare~, absolute paths and~username. Add Windows/POSIX regression coverage and document the supported repository path forms in both guide languages.This is scoped to home-relative path handling: the current CLI already expands forward-slash
~/config paths before reading manifests, so thoseroles listcalls were already working.Type of Change
Test Plan
Windows x64, Node v24.19.0; upstream baseline
fe3b906.npm run buildnpm run typechecknpm run lintroles.test.tshome-relative manifest case now passes.npx vitest run src/__tests__/home-normalize.test.ts src/__tests__/home.test.ts src/__tests__/user-home-resolution.test.ts src/__tests__/roles.test.ts src/__tests__/projects.test.ts src/__tests__/roles-cmd.test.ts --maxWorkers=2— 114 passed, 4 failed, 2 skipped. The same run on unmodifiedfe3b906had 109 passed, 5 failed, 2 skipped. The four remaining failures match upstream: two symlinkEPERMcases, a hard-coded/error-path assertion, and achmod(0o000)unreadability assumption on Windows. They are not weakened or changed by this PR.Real CLI after building both versions, with an isolated HOME and a local fixture containing
frontendinmanifest/roles.yaml:repo.localPathteamai roles listteamai roles list~/.teamai/team-repofrontend, exit 0frontend, exit 0~\.teamai\team-repoTeam config (teamai.yaml) not found, exit 1frontend, exit 0frontend, exit 0frontend, exit 0All six CLI runs left the config bytes unchanged. No model or remote provider calls were needed. Other providers/agents and the Linux/macOS runtime matrix are left to CI.
CI result (
0a3b2fc)All six Ubuntu/macOS × Node 20/22/24 lint/typecheck/unit-with-coverage jobs passed, as did Prepare build, Build and Code erosion metrics. The credentialed remote-provider job was skipped for this fork PR.
The fork-safe E2E job failed while setting up
workspace-children-913.test.ts, before that suite's CLI assertions:git clone -q --bare <seed-other> <other.git>reportedfatal: failed to copy file .../other.git/objects/...: No such file or directory. The run recorded 1256 passed / 54 skipped tests, with one failed suite and 152 passed files. The fixture file is unchanged by this PR, and the new runtime branch is Windows-only whereas this job runs on Linux. The setup failure's root cause is still unconfirmed; this is not an all-green CI result.A failed-job rerun was requested once, but GitHub refused it with
Must have admin rights to Repository. A maintainer is needed to rerun that job. The original failure is retained; no timeout or assertion was changed.Related Issues
Reproduced directly against upstream
main; no matching open fix was found.