Skip to content

Add ug cursor app to open the Cursor desktop app - #1163

Open
nachill-databricks wants to merge 4 commits into
databricks:mainfrom
nachill-databricks:achille/cursor-app
Open

nachill-databricks wants to merge 4 commits into
databricks:mainfrom
nachill-databricks:achille/cursor-app

Conversation

@nachill-databricks

@nachill-databricks nachill-databricks commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Problem

There is no ug entry point for the Cursor desktop app, which reads the same ~/.cursor/mcp.json that ug mcp add writes.

Change

ug cursor app [args] opens the Cursor desktop app. It uses the cursor shell command when on PATH, falls back to open -a Cursor.app on macOS, and prints an install hint when the app is not found. README updated.

Testing

  • Unit tests added in tests/test_agent_cursor.py and tests/test_cli.py. uv run pytest -q tests/test_agent_cursor.py tests/test_cli.py: 589 passed.
  • uvx --from rust-just just lint: passes (ruff check, ruff format --check, ty check).
  • 8 tests in tests/test_agents_init.py and tests/test_e2e_user_agent.py fail on main too, independent of this change.

Not yet verified

  • Launching the app on macOS.

Before / after

ug cursor --help, before (main):
before
After (this branch): the help points to ug cursor app:
after

This pull request and its description were written by Isaac.

`ug cursor app [args]` opens the Cursor desktop app, which reads the same
~/.cursor/mcp.json that `ug mcp add` writes. It uses the `cursor` shell
command when on PATH, falls back to `open -a Cursor.app` on macOS, and
prints an install hint when the app is not found.

Co-authored-by: Isaac <no-reply@databricks.com>
@nachill-databricks
nachill-databricks marked this pull request as ready for review October 16, 2026 18:00
Co-authored-by: Isaac <no-reply@databricks.com>
@nachill-databricks

Copy link
Copy Markdown
Contributor Author

/ug-review

Comment thread src/ucode/agents/cursor.py Outdated
if sys.platform == "darwin":
for bundle in CURSOR_MACOS_APP_PATHS:
if bundle.exists():
return ["open", "-a", str(bundle), *tool_args]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

bug · medium
ug cursor app forwards arbitrary user args here. What happens with ug cursor app --new-window? With no --args separator, open parses the flag itself, so it errors or does the wrong thing on macOS. The same args work on Linux and Windows. Can we pass flags after --args, or just use cursor from PATH when there are flags?

Comment on lines +150 to +151
def test_uses_cursor_command_on_path(self, monkeypatch):
monkeypatch.setattr(cursor.shutil, "which", lambda name: "/usr/bin/cursor")

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

test · medium
This test fails on a mac with /Applications/Cursor.app installed, because the macOS branch returns open -a ... first. Can we patch sys.platform (or CURSOR_MACOS_APP_PATHS) like the other tests do?

Suggestion:

Suggested change
def test_uses_cursor_command_on_path(self, monkeypatch):
monkeypatch.setattr(cursor.shutil, "which", lambda name: "/usr/bin/cursor")
def test_uses_cursor_command_on_path(self, monkeypatch):
monkeypatch.setattr(cursor.sys, "platform", "linux")
monkeypatch.setattr(cursor.shutil, "which", lambda name: "/usr/bin/cursor")

assert kwargs["stderr"] is subprocess.DEVNULL
for key, value in cursor._DETACHED_POPEN_OPTIONS.items():
assert kwargs[key] == value
proc.wait.assert_not_called()

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

test · low
Are the exec_or_spawn patch and proc.wait check necessary? launch_app never calls either, so they don't test anything. Can we drop them?

@github-actions

Copy link
Copy Markdown

Polly AI Review

Blocking issues

  • src/ucode/agents/cursor.py:133: can we forward Cursor flags correctly? On macOS, ug cursor app --new-window . runs open -a … --new-window .; open rejects it and stderr is discarded.
    • This occurs whenever a listed app bundle exists, even with cursor on PATH. The command reports “Opening the Cursor app” but does not open it.
    • Prefer the Cursor CLI for its arguments, or translate arguments correctly for the macOS fallback. Add a flag-forwarding regression case beside TestLaunchApp::test_macos_prefers_open_app_bundle_over_cursor_command.

Security vulnerabilities

None identified in the changed code. Launch commands use argument lists, without shell interpolation.

Non-blocking notes

  • src/ucode/agents/cursor.py:130: can the description and lookup order agree? The description promises PATH first; the code and test intentionally prefer the macOS bundle.
  • tests/test_agent_cursor.py:150: can test_uses_cursor_command_on_path pin the platform or bundle list? It fails on macOS machines with Cursor installed.
  • tests/test_agent_cursor.py:202: can test_launch_app_starts_detached_without_waiting assert platform requirements directly? Comparing against _DETACHED_POPEN_OPTIONS also passes if it is empty or wrong.

Approach

PATH-first discovery, followed by the macOS fallback, matches the stated goal and avoids bypassing Cursor’s argument parser when its CLI is installed. The fallback still needs correct argument forwarding.

Summary

Diff size (computed): 5 files; +149 / -1 lines (150 changed text lines); 0 binary files.

Category Files Added Deleted Share of changed text lines
Tests and test support 2 84 0 56.0%
Documentation 1 1 0 0.7%
Dependencies and lockfiles 0 0 0 0.0%
Implementation / other 2 64 1 43.3%

Shares use additions + deletions, including generated text and lockfiles. Binary files have no line count. Tests include fixtures/helpers under test paths and colocated test/spec files; categories are path-based, not coverage measurements.

Changes

Adds desktop-app discovery and detached launch helpers, CLI dispatch and help text, focused tests, and a README example. No dependencies or generated files change.

The implementation is proportional to the goal. The detached-process options duplicate those in skills_usage.py; sharing them is a possible small reduction, but does not justify a broader refactor.

Tests

Test-by-test assessment
Test / case Behavior protected Layer Needed? Action / rationale
tests/test_agent_cursor.py::TestLaunchApp::test_uses_cursor_command_on_path PATH discovery and argument preservation Unit keep Isolates CLI discovery; pin platform or bundle availability to remove host dependence.
tests/test_agent_cursor.py::TestLaunchApp::test_macos_prefers_open_app_bundle_over_cursor_command macOS bundle selection and search past a missing candidate Unit uncertain Priority conflicts with the description. Align with the intended order and extend coverage to Cursor flags.
tests/test_agent_cursor.py::TestLaunchApp::test_macos_without_bundle_uses_cursor_command PATH discovery when macOS bundle candidates are absent Unit keep Covers the platform-specific fallthrough, distinct from bundle selection.
tests/test_agent_cursor.py::TestLaunchApp::test_not_installed_returns_none Missing installation returns no launch command Unit keep Protects the discovery failure result on Linux.
tests/test_agent_cursor.py::TestLaunchApp::test_launch_app_starts_detached_without_waiting Argument preservation, disconnected standard streams, and non-waiting launch Unit keep Appropriate isolated test; assert required platform detach options independently of the implementation constant.
tests/test_cli.py::test_cursor_app_opens_desktop_app Desktop dispatch, argument slicing, and exclusion of agent launch CLI integration keep Protects the command-to-helper contract without launching a desktop process.
tests/test_cli.py::test_cursor_app_reports_when_not_installed Failure exit, missing-app message, and no launch CLI integration keep Covers the user-visible discovery failure path.

These are all added tests; no tests are removed and no reusable helpers are added. Existing agent-launch coverage remains relevant to preserving plain ug cursor.

The concrete missing coverage is macOS flag forwarding; a unit case is sufficient to catch the demonstrated argument-construction bug. No additional E2E test is needed for that assertion.

Tests were not executed during this review. The reported focused-suite and lint results, including the claimed baseline failures, are not independently verified.

For manual verification on macOS, run ug cursor app --new-window . with Cursor installed. Confirm a new Cursor window opens; repeat without the cursor shell command on PATH to exercise the fallback.

Scope

All changed files support the desktop-launch outcome. No clearly unrelated changes were found. The unresolved discovery-priority question concerns the intended behavior, not additional scope.


Automated review by Polly · workflow run

…t tests

Co-authored-by: Isaac <no-reply@databricks.com>
@nachill-databricks

Copy link
Copy Markdown
Contributor Author

/ug-review

Comment thread src/ucode/agents/cursor.py Outdated
for bundle in CURSOR_MACOS_APP_PATHS:
if bundle.exists():
if any(arg.startswith("-") for arg in tool_args):
return ["open", "-a", str(bundle), "--args", *tool_args]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

bug · high
what happens with ug cursor app --new-window .? args after --args aren't resolved against the cwd (the app starts in /), and they're ignored if Cursor is already open. can we resolve paths to absolute ones, or use the cursor cli when flags are passed?

Comment thread src/ucode/agents/cursor.py Outdated
argv,
stdin=subprocess.DEVNULL,
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

bug · medium
if open fails (e.g. a nonexistent path or a broken bundle), stderr goes to DEVNULL and the cli still prints success. can we keep stderr, or wait briefly on open and report a non-zero exit?

Comment thread src/ucode/cli.py Outdated
Comment on lines +3887 to +3888
print_success("Opening the Cursor app")
cursor.launch_app(argv)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

bug · low
what happens if popen raises OSError (e.g. broken cursor shim)? only RuntimeError is caught, so the user gets a traceback right after a success message. can we catch it and print_err?

Comment thread tests/test_agent_cursor.py Outdated
".",
]

def test_macos_paths_only_go_straight_to_open(self, tmp_path, monkeypatch):

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

test · low
are all these tests necessary? this checks the same paths-only branch as test_macos_prefers_open_app_bundle_over_cursor_command. can we fold it into that test?

@github-actions

Copy link
Copy Markdown

Polly AI Review

Blocking issues

None confirmed.

Security vulnerabilities

None identified. Launch arguments remain argument lists through the existing subprocess wrapper; the change introduces no configuration writes or explicit credential handling.

Non-blocking notes

  • src/ucode/agents/cursor.py:134 — is bundle-first discovery intentional? the description promises PATH first; can we align them and verify flag forwarding with Cursor already open?
  • src/ucode/cli.py:3888 — can we catch launch-time OSError and show actionable guidance? a PATH executable with a missing interpreter produces a traceback.
  • tests/test_agent_cursor.py:163 — can we consolidate test_macos_forwards_flags_after_args_separator into the mixed flags/value/path case, preserving separator and ordering assertions?
  • tests/test_agent_cursor.py:215 — can test_launch_app_starts_detached_without_waiting assert platform options independently and verify that wait() is never called?
  • tests/test_cli.py:3589 — can we extend test_cursor_app_opens_desktop_app with flags, values, and --? positional-only input leaves parser forwarding boundaries unprotected.
  • src/ucode/agents/cursor.py:149 — can we remove the repeated MCP-auth explanation? retain the reason for detaching: the Cursor command can remain attached while the app runs.

Approach

The resolver plus detached launcher is a reasonable fit. Reusing subprocess_cross_os.popen preserves the existing cross-platform boundary without introducing configuration work. A broader shared-helper refactor is unnecessary for this feature.

Summary

Diff size (computed): 5 files; +187 / -1 lines (188 changed text lines); 0 binary files.

Category Files Added Deleted Share of changed text lines
Tests and test support 2 116 0 61.7%
Documentation 1 1 0 0.5%
Dependencies and lockfiles 0 0 0 0.0%
Implementation / other 2 70 1 37.8%

Shares use additions + deletions, including generated text and lockfiles. Binary files have no line count. Tests include fixtures/helpers under test paths and colocated test/spec files; categories are path-based, not coverage measurements.

Changes

Adds desktop-app discovery, detached launching, CLI dispatch, a README example, and focused tests. No dependencies, lockfiles, or generated assets change.

The size is proportionate to the outcome. Concrete reductions are the overlapping separator test and repeated MCP-auth explanation; the platform-specific argument handling otherwise serves distinct behavior.

Tests

Test-by-test assessment

All changed tests are assessed below. No existing tests are modified or removed, and no shared fixtures or helpers are added.

Test / case Behavior protected Layer Needed? Action / rationale
tests/test_agent_cursor.py::TestLaunchApp::test_uses_cursor_command_on_path PATH executable resolution and argument forwarding Unit keep Directly protects the normal shell-command launch route.
tests/test_agent_cursor.py::TestLaunchApp::test_macos_prefers_open_app_bundle_over_cursor_command Bundle precedence when both launch routes exist Unit uncertain Encodes the opposite order from the description. Resolve the intended precedence before treating this expectation as the contract.
tests/test_agent_cursor.py::TestLaunchApp::test_macos_forwards_flags_after_args_separator Flags appear after the macOS --args separator Unit consolidate The mixed flags/value/path case covers the same branch with stronger ordering assertions.
tests/test_agent_cursor.py::TestLaunchApp::test_macos_flags_and_paths_keep_order_after_args_separator Flags, associated values, and paths retain their order Unit keep Distinct ordering protection prevents separating flags from their values.
tests/test_agent_cursor.py::TestLaunchApp::test_macos_paths_only_go_straight_to_open Multiple paths use the file-opening branch without --args Unit keep Protects a different branch from flag forwarding.
tests/test_agent_cursor.py::TestLaunchApp::test_macos_without_bundle_uses_cursor_command macOS installations remain launchable through PATH without a bundle Unit keep Protects shell-command-only discovery independently of the non-macOS case.
tests/test_agent_cursor.py::TestLaunchApp::test_not_installed_returns_none Discovery failure returns the missing-install sentinel Unit keep Tests discovery failure separately from CLI presentation.
tests/test_agent_cursor.py::TestLaunchApp::test_launch_app_starts_detached_without_waiting Arguments, disconnected streams, and detachment options reach the wrapper Unit keep Appropriate boundary, but comparison with the implementation’s own options dictionary and no explicit wait assertion weaken the stated protection.
tests/test_cli.py::test_cursor_app_opens_desktop_app app selects desktop dispatch, removes the selector, and avoids agent launch CLI component keep Correct layer for parser/dispatch behavior; argument-boundary extensions belong here rather than in E2E.
tests/test_cli.py::test_cursor_app_reports_when_not_installed Missing discovery produces exit 1 without spawning CLI component keep Complements discovery coverage by testing the user-facing failure branch.

Existing TestLaunch.test_execs_cursor_agent_without_token_wiring and test_cursor_launch_uses_unity_gateway_branding cover the unchanged agent route. Existing subprocess-wrapper tests cover Windows command resolution and keyword forwarding.

Missing coverage includes launch-time OSError translation and the forwarding boundaries noted above. The subprocess mock establishes constructed arguments, not native macOS application behavior.

Tests and lint were not independently executed; the reported passing results remain author-provided evidence. Native macOS launch remains unverified. To verify manually, exercise ug cursor app . and flag-bearing arguments with Cursor both closed and already running, then repeat with the PATH command unavailable to exercise bundle discovery.

Scope

All five changed files support opening the Cursor desktop app. No unrelated changes were found. The unresolved launch-precedence question concerns the implementation’s contract, not an independent outcome.


Automated review by Polly · workflow run

…ilures

Co-authored-by: Isaac <no-reply@databricks.com>
@nachill-databricks

Copy link
Copy Markdown
Contributor Author

/ug-review

resolved.append(arg)
continue
bare = _LINE_COL_SUFFIX.sub("", arg)
if arg in (".", "..") or Path(arg).exists() or Path(bare).exists():

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

maintainability · low
is the (".", "..") check needed? Path(".").exists() and Path("..").exists() are always true, so that branch never adds anything.

args = _absolutize_paths(tool_args)
if has_flags:
return ["open", "-a", str(bundle), "--args", *args]
return ["open", "-a", str(bundle), *args]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

bug · medium
what happens with ug cursor app new.py on macOS? open -a exits non-zero when a file doesn't exist, but cursor new.py creates it. Can we prefer the cursor CLI whenever it's on PATH and use open only as a fallback?

argv,
stdin=subprocess.DEVNULL,
stdout=subprocess.DEVNULL,
stderr=subprocess.PIPE if is_open else subprocess.DEVNULL,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

bug · medium
what happens if cursor exits right away with an error (bad flag, broken install)? stderr goes to DEVNULL and the cli still prints "Opened the Cursor app". can we briefly poll for an early non-zero exit like we do for open?

Comment thread src/ucode/cli.py
from ucode.agents import cursor

try:
if ctx.args and ctx.args[0] == "app":

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

other · low
ug cursor app ... used to pass app to cursor-agent as its prompt. Now it opens the desktop app instead, which breaks that call. Could we use a separate cursor-app command or a flag, so that existing forwarded args keep working?

@github-actions

Copy link
Copy Markdown

Polly AI Review

Blocking issues

  • src/ucode/agents/cursor.py:159: can we always prefer cursor from PATH? Without flags, macOS selects a bundle instead, violating the stated CLI-first contract and potentially opening a different installation.

    Return the discovered CLI before checking bundles; reserve open -a for the missing-CLI fallback. Update TestLaunchApp.test_macos_prefers_open_app_bundle_over_cursor_command to assert that precedence.

Security vulnerabilities

None identified in the reviewed diff. Launches use argument lists without shell interpolation; the change adds no credential handling or configuration writes.

Non-blocking notes

  • tests/test_agent_cursor.py:266: can we move the no-wait assertions into test_launch_app_starts_detached_without_waiting and remove the duplicate setup?
  • tests/test_cli.py:3589: can we extend test_cursor_app_opens_desktop_app with --new-window and a spaced path? It currently checks only "." forwarding.
  • src/ucode/agents/cursor.py:166: can we warn that fallback flags may be ignored when Cursor is already running? The docstring acknowledges this, but users only see a success message.
  • src/ucode/agents/cursor.py:146: can we shorten the launch docstrings to the non-obvious constraints: path handling, running-app limitations, and detachment?

Approach

The dispatch branch preserves ordinary Cursor Agent forwarding without introducing a subcommand group that could intercept agent arguments. Prefer the CLI unconditionally when available; this also removes the unnecessary flags/no-flags distinction from CLI selection.

Summary

Diff size (computed): 5 files; +297 / -2 lines (299 changed text lines); 0 binary files.

Category Files Added Deleted Share of changed text lines
Tests and test support 2 181 0 60.5%
Documentation 1 1 0 0.3%
Dependencies and lockfiles 0 0 0 0.0%
Implementation / other 2 115 2 39.1%

Shares use additions + deletions, including generated text and lockfiles. Binary files have no line count. Tests include fixtures/helpers under test paths and colocated test/spec files; categories are path-based, not coverage measurements.

Changes

Adds desktop discovery and detached launch, CLI dispatch and installation guidance, a README entry, and focused tests. There are no dependency or generated-file changes.

The implementation is proportional to the outcome. Concrete reductions are simplifying macOS selection to CLI-first fallback and consolidating duplicated detached-launch setup.

Tests

Test-by-test assessment

Existing Cursor Agent forwarding, CLI branding, and MCP-preservation tests were inspected. They cover unchanged behavior; duplicating MCP persistence coverage is unnecessary. Unit tests suit platform selection and subprocess behavior; CLI component tests cover parsing, dispatch, and error presentation.

Test / case Behavior protected Layer Needed? Action / rationale
tests/test_agent_cursor.py::TestLaunchApp::test_uses_cursor_command_on_path PATH discovery and unchanged arguments Unit keep Protects the primary non-macOS launch selection with an exact argv assertion.
tests/test_agent_cursor.py::TestLaunchApp::test_macos_prefers_open_app_bundle_over_cursor_command Selection when both CLI and bundle exist Unit consolidate Reverse the expected precedence to match the contract; parameterize with the flags case below. Preserve missing-bundle search coverage in the fallback scenario.
tests/test_agent_cursor.py::TestLaunchApp::test_flags_prefer_cursor_cli_even_on_macos CLI receives flags and paths unchanged Unit consolidate Combine with the preceding selection test while retaining both flagged and unflagged inputs.
tests/test_agent_cursor.py::TestLaunchApp::test_macos_flags_without_cli_use_args_with_absolute_paths Missing-CLI fallback uses --args and resolves relative paths, including file:line Unit keep Protects a distinct fallback branch; exact argv assertions do not establish native delivery to an already-running app.
tests/test_agent_cursor.py::TestLaunchApp::test_macos_paths_only_are_made_absolute Existing relative paths become absolute; other arguments remain unchanged Unit keep Covers fallback path transformation. Include missing-first-bundle discovery here after correcting CLI precedence.
tests/test_agent_cursor.py::TestLaunchApp::test_macos_without_bundle_uses_cursor_command CLI remains usable without a known bundle Unit consolidate After CLI-first selection, fold this installation combination into the macOS CLI-selection matrix.
tests/test_agent_cursor.py::TestLaunchApp::test_not_installed_returns_none Missing CLI produces the discovery sentinel Unit keep Distinct negative discovery boundary, separate from user-facing error rendering.
tests/test_agent_cursor.py::TestLaunchApp::test_launch_app_starts_detached_without_waiting Spawn arguments, redirected streams, and detached options Unit keep Appropriate process-boundary mock; absorb the explicit no-wait assertions from the duplicate test.
tests/test_agent_cursor.py::TestLaunchApp::test_launch_app_open_nonzero_exit_raises_with_stderr Nonzero open status includes stderr in the exception Unit keep Protects a material failure path independently of CLI exception rendering.
tests/test_agent_cursor.py::TestLaunchApp::test_launch_app_open_success_and_timeout_do_not_raise — success and timeout subcases Successful open and bounded waiting return without error Unit keep Both outcomes exercise the brief-wait policy; neither proves desktop startup.
tests/test_agent_cursor.py::TestLaunchApp::test_launch_app_cursor_cli_is_not_waited_on Neither communicate nor wait is called for cursor Unit consolidate Move both negative assertions into test_launch_app_starts_detached_without_waiting; remove duplicate spawn setup.
tests/test_agent_cursor.py::TestLaunchApp::test_launch_app_propagates_oserror Spawn failure reaches the caller Unit keep Separately protects the launcher’s exception contract with one patched process boundary.
tests/test_cli.py::test_cursor_app_opens_desktop_app Strips app, forwards arguments, launches desktop rather than Agent CLI component keep Add a flag and spaced-path input to verify parser forwarding across this boundary.
tests/test_cli.py::test_cursor_app_reports_when_not_installed Missing installation exits unsuccessfully without launching CLI component keep Protects the user-facing discovery failure and installation guidance.
tests/test_cli.py::test_cursor_app_launch_failure_reports_error_without_success — RuntimeError and OSError parameters Launch failures produce diagnostics without success output or traceback CLI component keep Both exception types are material; shared assertions and parameterization avoid duplicated setup.
tests/test_agent_cursor.py — added imports, TestLaunchApp container, and local boom helper Supports process mocking and explicit spawn-failure injection Test support keep Lightweight local setup; no new shared fixture framework or dependency is needed.

The concrete missing assertion is flag/path forwarding through the CLI parser. Native macOS behavior remains unverified, particularly fallback arguments when the app is already running.

The PR reports 589 focused tests and lint passing; those results and the reported baseline failures were not independently reproduced. No tests or native application launches were executed during this review.

For manual verification, run ug cursor app --new-window "<directory with spaces>" with Cursor closed and already running. On macOS, also check CLI-first selection with cursor on PATH and bundle fallback without it.

Scope

All five changed files support opening and discovering the Cursor desktop app. No clearly unrelated changes were found. The widened CLI exception handler also affects ordinary ug cursor launch failures, but remains directly connected to the new launch-error handling.

The frozen snapshot’s checksum was verified, and both trusted policy files were read in full. Surrounding context came from the supplied trusted default-branch checkout rather than the exact PR base; findings on changed behavior are grounded in the frozen diff.


Automated review by Polly · workflow run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant