Skip to content

[Fix] Recursive list_files omits nested files in temp workspaces#91

Merged
edelauna merged 10 commits into
mainfrom
chore-unskip-e2e-readonly-tools
May 16, 2026
Merged

[Fix] Recursive list_files omits nested files in temp workspaces#91
edelauna merged 10 commits into
mainfrom
chore-unskip-e2e-readonly-tools

Conversation

@roomote
Copy link
Copy Markdown
Contributor

@roomote roomote Bot commented May 13, 2026

Opened on behalf of Elliott de Launay. View the task or mention @roomote for follow-up asks.

What problem this solves

Fixes an issue where users running recursive list_files in temp-backed workspaces could get only directory entries and miss nested files. It also keeps the newly unskipped read-only VS Code e2e coverage and the focused unit regression aligned with real prompts, real tool-output validation, and cross-platform CI behavior so that regression stays covered on both Unix and Windows runners.

Why this change was made

The stricter replay validation exposed that recursive list_files was invoking ripgrep on an absolute /tmp/... path, so the existing ignore glob filtered out real file results. This change runs ripgrep from the target directory, adds a focused regression test for that ancestor-path case, updates the read-only replay fixtures and tests to use natural-language prompts plus representative list_files and search_files output checks, and aligns the new unit assertions with the implementation's resolved paths on Windows.

User impact

Recursive list_files now returns nested files correctly in temp-backed workspaces instead of stopping at directories, and the read-only VS Code e2e plus unit coverage now keeps that behavior and the related search_files workflows covered in replay, real-endpoint runs, and Windows CI.

Related PRs

@roomote roomote Bot added the roomote:auto-resolve-conflicts Allow Roomote to auto-resolve merge conflicts for this PR label May 13, 2026
@roomote
Copy link
Copy Markdown
Contributor Author

roomote Bot commented May 13, 2026

1 issue outstanding. Action required. See task

  • apps/vscode-e2e/src/fixtures/list-files.ts: every replay fixture now uses representative list_files result validation before completing, including the non-recursive smoke case.
  • apps/vscode-e2e/src/fixtures/search-files.ts: every replay fixture now uses representative search_files result validation before completing, including the no-match case.
  • apps/vscode-e2e/src/suite/tools/list-files.test.ts: the symlink smoke assertion now requires both an original entry and a symlink entry, so it still proves that symlink visibility regressed if the tool stops surfacing symlink paths.
  • apps/vscode-e2e/src/fixtures/list-files.ts: the recursive replay fixture now requires a nested file path in its predicate, so mock mode no longer passes when recursive list_files output drops files below nested/.
  • apps/vscode-e2e/src/suite/tools/list-files.test.ts: the recursive and workspace-root cases now use explicit live prompts, so real-endpoint runs still exercise the intended list_files workflow.
  • apps/vscode-e2e/src/suite/tools/search-files.test.ts: the unskipped smoke cases now use explicit live prompts, so real-endpoint runs still prove the intended search_files behavior.
  • apps/vscode-e2e/src/fixtures/list-files.ts: the recursive replay completion now says nested/deep/, so the strengthened recursive assertion in src/suite/tools/list-files.test.ts matches again.
  • CI: check-translations passed on the latest rerun.
  • CI: Analyze (javascript-typescript) passed on the latest rerun.
  • CI: e2e-mock passed on the latest rerun.
  • CI: knip passed on the latest rerun.
  • CI: compile passed on the latest rerun.
  • CI: platform-unit-test (ubuntu-latest) passed on the latest rerun.
  • src/services/glob/__tests__/list-files.spec.ts: the recursive nested-file expectation now matches the service's resolved absolute path on Windows too by asserting against path.resolve(testDir, "nested", "deep", "deep-nested-file.ts").
  • CI: platform-unit-test (windows-latest) is still running on the latest rerun after the nested-file path assertion fix.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 13, 2026

Codecov Report

❌ Patch coverage is 87.50000% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/services/glob/list-files.ts 87.50% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

Comment thread apps/vscode-e2e/src/fixtures/list-files.ts
Comment thread apps/vscode-e2e/src/fixtures/search-files.ts
@edelauna edelauna force-pushed the chore-unkip-e2e-tests branch from f4eef5e to 9f39044 Compare May 14, 2026 23:16
@roomote
Copy link
Copy Markdown
Contributor Author

roomote Bot commented May 14, 2026

I see some merge conflicts here. Working on them now...

@edelauna edelauna force-pushed the chore-unkip-e2e-tests branch from 9f39044 to 61e6fe5 Compare May 14, 2026 23:47
@roomote
Copy link
Copy Markdown
Contributor Author

roomote Bot commented May 15, 2026

I see some merge conflicts here. Working on them now...

@edelauna edelauna force-pushed the chore-unkip-e2e-tests branch from 61e6fe5 to 653e227 Compare May 16, 2026 03:25
@roomote
Copy link
Copy Markdown
Contributor Author

roomote Bot commented May 16, 2026

I see some merge conflicts here. Working on them now...

Base automatically changed from chore-unkip-e2e-tests to main May 16, 2026 03:32
@roomote
Copy link
Copy Markdown
Contributor Author

roomote Bot commented May 16, 2026

Fixed the remaining Windows CI follow-up in 893d29b81. The last failing assertion in src/services/glob/__tests__/list-files.spec.ts now compares the returned nested file against path.resolve(testDir, "nested", "deep", "deep-nested-file.ts"), so the recursive /tmp regression test matches the absolute paths the service returns on both Windows and Unix runners. See task

Validation: pnpm --dir src test services/glob/__tests__/list-files.spec.ts, pnpm --dir apps/web-roo-code test, and curl -I http://127.0.0.1:3000. Browser proof was not applicable because this round only adjusted cross-platform unit-test expectations.

Comment thread apps/vscode-e2e/src/suite/tools/list-files.test.ts Outdated
@edelauna edelauna force-pushed the chore-unskip-e2e-readonly-tools branch from 8cc02ae to eb95c4e Compare May 16, 2026 12:25
Comment thread apps/vscode-e2e/src/fixtures/list-files.ts
Comment thread apps/vscode-e2e/src/fixtures/search-files.ts
Comment thread apps/vscode-e2e/src/suite/tools/list-files.test.ts Outdated
@edelauna edelauna marked this pull request as ready for review May 16, 2026 13:56
@edelauna edelauna force-pushed the chore-unskip-e2e-readonly-tools branch from 49dd725 to 0f30e86 Compare May 16, 2026 16:41
Comment thread apps/vscode-e2e/src/fixtures/list-files.ts Outdated
Comment thread apps/vscode-e2e/src/suite/tools/list-files.test.ts Outdated
Comment thread apps/vscode-e2e/src/suite/tools/search-files.test.ts Outdated
@roomote roomote Bot changed the title [Chore] Unskip VS Code e2e replay for read-only tools [Fix] Recursive list_files omits nested files in temp workspaces May 16, 2026
Comment thread apps/vscode-e2e/src/suite/tools/list-files.test.ts
@edelauna edelauna force-pushed the chore-unskip-e2e-readonly-tools branch from 17bce1c to 26ff2c0 Compare May 16, 2026 17:51
Copy link
Copy Markdown
Contributor

@edelauna edelauna left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only spec files updated to increase coverage

@edelauna edelauna merged commit 4a8e5f2 into main May 16, 2026
9 checks passed
@edelauna edelauna deleted the chore-unskip-e2e-readonly-tools branch May 16, 2026 23:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

roomote:auto-resolve-conflicts Allow Roomote to auto-resolve merge conflicts for this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants