cli(feat): add workspace-aware profile routing#32
Merged
Conversation
Summary: - define workspace binding, resolution, guard, and run commands - document private persistence, safety, diagnostics, and test coverage Rationale: - prevent accidental profile use without inspecting credentials - keep routing local, deterministic, and dependency-free Tests: - git diff --cached --check
Summary: - break workspace bindings into test-first implementation slices - define interfaces, verification, documentation, and publication steps Rationale: - make the approved design executable without unresolved decisions Tests: - git diff --cached --check
Summary: - add atomic private workspace binding persistence - resolve nearest canonical workspace ancestors - expose bind, unbind, list, status, and guard commands Rationale: - make profile routing explicit without modifying repositories - keep binding metadata credential-free and inspectable Tests: - bash test/codex-profile-test.sh
Summary: - route bound workspaces to Codex CLI or the signed ChatGPT app - guard explicit profile mismatches in warn, strict, and off modes - preserve upstream CLI argument forwarding and eval-safe stdout Rationale: - prevent accidental cross-profile work while preserving explicit control Tests: - bash test/codex-profile-test.sh
Summary: - remove profile bindings without touching project directories - report workspace health in human and JSON doctor output - fail profile removal before destructive work when registry state is corrupt Rationale: - prevent stale routing and keep local binding state repairable Tests: - bash test/codex-profile-test.sh
Summary: - expose workspace and run commands in help and shell completions - document routing, guards, persistence, cleanup, and safety - record the feature under the unreleased changelog Rationale: - keep human, shell, and AI-readable command references synchronized Tests: - bash test/codex-profile-test.sh - node test/geo-site-test.mjs
Summary: - distinguish invalid workspace paths from valid unbound directories - keep explicit Desktop launch compatibility when no binding applies - create workspace config directories under a private umask - add regression coverage and refresh AUR integrity metadata Rationale: - conditional Bash calls suppressed a nested exit and could emit successful status JSON after reporting a missing directory - explicit profile launches must remain compatible with optional paths while workspace-aware commands fail cleanly on invalid paths Tests: - bash test/package-metadata-test.sh - bash test/codex-profile-test.sh - make lint - git diff --check
Summary: - reject malformed workspace config roots and report them through doctor - require the separator before upstream run options that start with a dash - complete Zsh JSON option suggestions for workspace inspection - add regression tests, usage guidance, and refreshed package integrity data Rationale: - invalid local state must not appear healthy or silently act empty - a fixed wrapper option boundary keeps run --app unambiguous while preserving arbitrary upstream arguments after the documented separator - all supported shells should expose the same workspace command surface Tests: - bash test/package-metadata-test.sh - node test/geo-site-test.mjs - bash test/codex-profile-test.sh - make lint - bin/codex-profile completions zsh | zsh -n - git diff --check
Summary: - retain workspace routing under the Unreleased changelog section - keep release metadata at the currently published 0.7.0 version - refresh the AUR CLI integrity hash for the final script - restore ShellCheck annotations for child-shell test literals Rationale: - feature review must not claim an unpublished 0.8.0 release - preserve synchronized packaging and lint contracts after the rebase Tests: - make test - make lint - bin/codex-profile completions zsh | zsh -n - git diff --check
cfb0fcc to
c5607c0
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.
Summary
runandrun --appfor automatic Codex CLI and signed ChatGPT Desktop routing.cli,env/use, andappselections.doctor.Safety and compatibility
--instance,--rebuild, andapp-instancespellings remain supported.init --share-withlinked-profile behavior and completions remain intact.Review revisions
main, including the merged guide and linked-profile PRs.Unreleased, and the premature 0.8.0 release/version/date changes were removed.Validation
make testmake lintbin/codex-profile completions zsh | zsh -ngit diff --check