🤖 fix: repair review paths for sub-projects - #3370
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
|
@codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
137fede to
03b3f61
Compare
|
@codex review I folded in the cleanup to make Review's canonical path contract project-relative instead of introducing sub-project-relative terminology. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 03b3f615a8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
03b3f61 to
73604b9
Compare
|
@codex review Addressed the path-candidate issue: project-relative paths remain canonical, ambiguous plain paths keep exact primary matching, and execution-root fallbacks are only used for fetching/fallback matching. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 73604b9afe
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
73604b9 to
e67b616
Compare
|
@codex review Addressed the dedupe ordering issue by separating exact assisted keys from execution-root fallback keys, so exact canonical updates win before fallback matching. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e67b6162ec
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
e67b616 to
3ffc7bd
Compare
|
@codex review Addressed the fallback dedupe miss by checking fallback mappings for incoming exact canonical keys before appending, with a regression test for the duplicate case. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3ffc7bda35
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
3ffc7bd to
873fdef
Compare
|
@codex review Updated dedupe semantics to keep incoming exact canonical paths distinct from ambiguous fallback pins, while still allowing incoming ambiguous paths to refine an existing exact fallback target. This preserves both files when root and scoped paths can coexist. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 873fdefa3f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Keep Review pins project-relative, use execution-root candidates for ambiguous tool input, and run repo-root review git commands at the checkout root. --- _Generated with `mux` • Model: `openai:gpt-5.5` • Thinking: `xhigh` • Cost: `$37.97`_ <!-- mux-attribution: model=openai:gpt-5.5 thinking=xhigh costs=37.97 -->
873fdef to
b4b081e
Compare
|
@codex review Addressed the order-dependent fallback dedupe issue: fallback matching is now limited to entries that existed before the current update, so root/scoped sibling pins added in one call can coexist regardless of order. |
|
Codex Review: Didn't find any major issues. Swish! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
…on sets, assisted matchers, workflow transitions) (coder#4483) ## Summary Removes four production exports that only tests called, from the test-audit follow-up campaign (WS2, crosscutting candidates coder#1–coder#4). Behavior-preserving: no production caller changes. ## Removed | Symbol | Why it was dead | Tests | | --- | --- | --- | | `isCopilotRoutableModel` (`copilot/modelRouting.ts`) | Always returned `true`; no caller since coder#3104 | 2 tests restating the constant deleted | | `gatherInstructionSets` (`instructionFiles.ts`) | No caller since coder#439; `systemMessage.ts` calls `readInstructionSet` directly | 4 tests deleted; `readInstructionSet` tests already cover null, local files, scope and `projectName` | | `findAssistedMatch`, `hunkMatchesAssisted` (`assistedReview.ts`) | Replaced by the `*Candidate*` versions in coder#3370; only tests called them | Range overlap, deletion fallback (old-side span), rename (`oldPath`), first-match index and no-match cases moved onto `findAssistedCandidateMatch`, the function `ReviewPanel` calls. `hunkMatchesAssistedCandidate` is now module-private | | `WorkflowRunStatusTransitionSchema` + its table (`orpc/schemas/workflow.ts`) | Never enforced; coder#4089 kept it only because a test imported it. Real enforcement lives in `WorkflowService`/`WorkflowRunStore` (tested in `WorkflowRunStore.test.ts`) and follows different rules | "rejects impossible status transitions" deleted | ## Validation - Mutation check: disabling the deletion fallback and the `oldPath` match in `hunkMatchesPathAndRange` fails the two moved tests. - `bun test src/common/utils/review/ src/common/utils/copilot/ src/node/utils/main/instructionFiles.test.ts src/common/orpc/schemas/workflow.test.ts src/node/services/tools/review_pane.test.ts` - `make static-check` on the stack top. Stack: 1/5 (coder#4483 → coder#4484 → coder#4485 → coder#4486 → coder#4487). --- _Generated with `xum` • Model: `anthropic:claude-opus-5-5` • Thinking: `high` • Cost: `$4.45`_ <!-- mux-attribution: model=anthropic:claude-opus-5-5 thinking=high costs=4.45 -->
Summary
Background
review_pane_updatewith paths likesrc/file.ts; those can be ambiguous between a project-relative path and a path relative to the current tool cwd.Implementation
executeBash({ cwdMode: "repo-root" })and git command mode now use the single-project checkout root while preserving default scoped execution cwd../and../tool paths resolve from the current tool cwd; root files likeREADME.mdand sibling paths likepackages/shared.tsare not blindly prefixed..//../should be used when cwd-relative resolution is required.Validation
bun test src/common/utils/review/assistedReview.test.ts src/node/services/tools/review_pane.test.ts src/browser/features/RightSidebar/CodeReview/ReviewPanel.assistedStats.test.ts src/node/services/workspaceService.test.ts -t "executeBash workspace path resolution|project-relative path normalization|applyReviewPaneUpdate|normalizeReviewPanelAssistedHunks|countUnreadAssistedHunks|buildReviewDiffPathFilter|buildReviewDiffPathFilterSpecs"make static-checkRisks
Generated with
mux• Model:openai:gpt-5.5• Thinking:xhigh• Cost:$37.97