Skip to content

Add RubyMine editor option#248

Merged
sbertix merged 2 commits intosupabitapp:mainfrom
CiTroNaK:feat/add-support-for-rubymine
Apr 15, 2026
Merged

Add RubyMine editor option#248
sbertix merged 2 commits intosupabitapp:mainfrom
CiTroNaK:feat/add-support-for-rubymine

Conversation

@CiTroNaK
Copy link
Copy Markdown
Contributor

Summary

  • add RubyMine to OpenWorktreeAction so it appears in the default editor selection when installed
  • wire RubyMine through the existing SSOT fields (title, settingsID, bundleIdentifier, editorPriority)
  • include RubyMine in the JetBrains open flow so worktrees open by launching the app with the directory path argument
  • extend OpenWorktreeActionTests to cover menu presence, bundle identifier, and editor-priority membership for RubyMine

Validation

  • Sorry, I was unable to build the app due to an issue with building the Ghostty XCFramework on my machine.

Validation is currently blocked locally because Supacode requires .build/ghostty/GhosttyKit.xcframework, and scripts/build-ghostty.sh fails to produce it with the repo-pinned Zig 0.15.2 due to Darwin
linker errors (__availability_version_check, _abort, _bzero, etc.), so xcodebuild cancels before tests run.

Copy link
Copy Markdown
Collaborator

@sbertix sbertix left a comment

Choose a reason for hiding this comment

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

Thank you 💪

@sbertix sbertix merged commit a763ac1 into supabitapp:main Apr 15, 2026
2 checks passed
@CiTroNaK CiTroNaK deleted the feat/add-support-for-rubymine branch April 16, 2026 06:49
Whoaa512 added a commit to Whoaa512/supacode that referenced this pull request Apr 16, 2026
* fix/unfocused-split-opacity: (24 commits)
  add xcbeautify to mise.toml so local builds work without separate install
  install dev build as supacode-dev.app to coexist with homebrew install
  ignore legacy Ghostty build outputs
  work around Xcode 26.4 local builds
  Respect unfocused-split-opacity from Ghostty config
  Add multiple user-defined scripts per repository (supabitapp#246)
  Respect ghostty split-preserve-zoom config when cycling splits (supabitapp#241)
  Improve open worktree UX and rename openFinder to openWorktree (supabitapp#247)
  Add RubyMine editor support (supabitapp#248)
  fix(ci): skip tuist auth on fork pull requests
  stuff
  Align trailing comma tooling
  cache
  Split dependency inspection CI
  Switch Tuist CI auth to OIDC
  simplify build output formatting
  simplify app tuist dependencies
  simplify tuist package linkage
  restore required tuist package overrides
  remove package framework search paths
  ...

# Conflicts:
#	supacode/Features/Repositories/Views/WorktreeRow.swift
#	supacode/Features/Repositories/Views/WorktreeRowsView.swift
sbertix added a commit that referenced this pull request Apr 20, 2026
* Resolve PR repo via `gh repo view` so fork clones target upstream (#255)

`GitClient.remoteInfo` preferred the `origin` remote, so in fork
workflows Supacode queried the fork instead of the upstream repo
that actually hosts the PR. The worktree badge/CI ring never lit up
and `Merge PR` / `Close PR` / `Mark ready for review` from the command
palette ran `gh pr …` against the fork, where the PR does not exist.

- `GithubCLIClient.resolveRemoteInfo` shells `gh repo view --json
  owner,name,url` in `repoRoot` and reuses `gh`'s own default-repo
  resolution. The reducer prefers this result and only falls back to
  `gitClient.remoteInfo` when `gh` is unavailable.
- `mergePullRequest` / `closePullRequest` / `markPullRequestReady`
  now take the resolved `GithubRemoteInfo` and pass `--repo
  HOST/OWNER/REPO`, so mutations run against the repository the
  refresh pipeline just queried.
- CI/workflow calls (`gh run list`, rerun failed jobs, view run
  logs) still target `repoRoot` — workflow runs live on the remote
  that received the push, which in fork workflows is the fork.

* Include merged PRs from deleted forks in branch resolution

`pullRequestsByBranch` excluded every node with `headRepository:
null`, which GitHub returns when the PR's source fork has been
deleted — a routine outcome after a fork PR is merged and the
author removes their fork. The local branch still matches the
PR's `headRefName`, so Supacode should surface it.

Tier the candidates instead of the previous two-bucket split:

1. upstream PRs (head repo == queried repo),
2. fork PRs with an intact `headRepository` and
   `baseRefName != branch` (guards against "user:main → main"),
3. deleted-fork PRs (`headRepository == nil`, same
   `baseRefName` guard) — only consulted when tiers 1 and 2 are
   empty so we never prefer a stub over a PR with verifiable
   provenance.

The existing `skipsNilHeadRepositoryInForkFallback` still passes
because the intact-fork node lands in tier 2 and wins. New
`includesMergedPRWithDeletedForkHead` covers the regression this
uncovered (observed on PR #248 in `supabitapp/supacode`).
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.

3 participants