refactor(cli): the search path is a parameter below the composition root - #215
Draft
ecalifornica wants to merge 1 commit into
Draft
refactor(cli): the search path is a parameter below the composition root#215ecalifornica wants to merge 1 commit into
ecalifornica wants to merge 1 commit into
Conversation
|
🔍 Preview deployed: https://b5f59c96.toolpath.pages.dev |
ecalifornica
force-pushed
the
robert/config-search-path
branch
from
August 14, 2026 19:49
0797151 to
9bdc3f2
Compare
config::search_path reads $PATH in the config module, next to the other environment reads. It returns the directories of $PATH in order, and an empty list when $PATH is unset. cmd_resume takes the value as a parameter: run computes it and passes it to run_with_strategy, which threads it to the harness probe, the harness picker, the projection, and the invocation builder. cmd_export takes it in cursor_open_hints, threaded from the export command entry and from the resume projection. fuzzy.rs keeps its own probe. The design decision about that probe goes to review. Tests pass a directory of fake binaries instead of mutating $PATH. The $PATH guards in the unit tests and in the integration support module are deleted.
ecalifornica
force-pushed
the
robert/config-search-path
branch
from
August 18, 2026 20:10
9bdc3f2 to
5d151af
Compare
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.
Part of #187. path-cli only. No library changes. No user-visible changes.
What
config::search_path()reads$PATHin the config module, next to the other environment reads. It returns the directories in order, and an empty list when$PATHis unset.cmd_resumetakes the value as a parameter.runcomputes it once.run_with_strategythreads it to the harness probe, the harness picker, the projection, and the invocation builder. Thepath_overridetest seam is deleted; tests pass the real parameter.cmd_exporttakes it incursor_open_hints. That function prints the "open the workspace in Cursor.app" hint after a cursor export or resume, and probes for acursorbinary to pick the hint text.$PATH. The$PATHguards (ScopedPathin the integration support module,ScopedPathForResumein the unit tests) are deleted.Question for review
fuzzy.rskeeps its own$PATHprobe (which("fzf"), the picker-backend check). Where should its value live?Config: free to thread (every caller already holds&Config). But$PATHis the OS binary search list, not a toolpath setting;execvpconsults the live environment, not the snapshot; and the figment layer is UTF-8 strings while$PATHis anOsStringlist.SearchPathparameter: keepsConfiga settings snapshot, costs a parameter through ~12 picker call sites.Until decided, the probe stays put. The lint PR in this stack marks it
#[expect(clippy::disallowed_methods)]. A follow-up PR implements the decision and removes the exception.