Releases: hewigovens/jayjay
Releases · hewigovens/jayjay
Release list
v0.3.4
New
- Describe button in the commit box — save the working copy’s description with
jj describewithout starting a new change.
Fixes
- The split dialog now shows the files being split immediately, below the message field so the focused field no longer jumps, and long file lists scroll instead of growing the dialog.
- Editing a commit from the context menu now loads its description into the commit box instead of keeping a stale draft — and a typed draft survives splitting files out of the working copy.
- Abandoning lines via Edit Diff on other revisions no longer leaves the graph showing stale rows until the next refresh.
Under the Hood
- Jujutsu library upgraded to 0.43.
- GitHub Actions are now pinned to commit SHAs.
v0.3.3
Fixes
- Renaming a file without changing its contents no longer shows a misleading all-green diff — it now reads “No content changes.”
Under the Hood
- Smaller download — the bundled Help screenshots now ship as optimized JPEGs.
v0.3.2
Keyboard Shortcuts
- A new keyboard-shortcut cheatsheet opens with ⌘/ (or Help › Keyboard Shortcuts) — a native, two-column reference of every shortcut, replacing the old web link.
Bookmarks
- The Bookmark Manager now shows each tracked bookmark’s state against its remote — in sync, ahead, behind, or diverged, with the commit counts.
- Deleted bookmarks are hidden by default and easier to clean up, and stale remote-only bookmarks are clearer to spot.
Compare & Operation Log
- Compare two divergent versions of the same change to see which is safer to abandon (right-click a divergent change › Compare Divergent Versions).
- The Operation Log window gained per-operation icons, a bolded change-id prefix, and sizing consistent with the rest of the app.
Status Bar
- The status bar now surfaces working-copy edit stats, the active bookmark’s sync state, a divergent-change count, and the last operation — each with a small icon.
Fixes
- “Pull Request” now opens the new-PR page even when the host lookup can’t complete (offline, or
gh/glabmissing) instead of failing right after a push.
v0.3.1
Command Palette
- Command palette polish (⇧⌘P) with fuzzy search, shortcut glyphs, and a searchable keybind cheatsheet that remembers its position between launches.
- Switch appearance straight from the palette with Theme: System, Theme: Light, and Theme: Dark.
Log & DAG
- Author avatars now resolve real images for GitHub bot accounts (for example dependabot[bot]) and for GitLab users, instead of falling back to a Gravatar identicon.
- A change’s age reads in whole minutes (“1 minute ago”) rather than ticking second by second.
Fixes
- Starting a new change no longer carries the previous change’s message into the commit box.
- The file-column row separator now aligns with the filename instead of the checkbox.
Security
- Hardened handling of untrusted repository content: repository-controlled filenames are passed to jj as literal
paths (never as options or fileset expressions), LFS diff-hiding follows real LFS registration rather than
.gitattributesalone, and oversized files no longer load fully into memory for preview.
v0.3.0
Requirements
- JayJay 0.3 requires macOS 26 or later. If you are on an earlier macOS version, consider updating to macOS 26 to get this and future releases.
Stacked Pull Requests
- Select a linear stack of changes and submit them as dependent pull requests — one per change, with dependent bases and editable titles — on GitHub and GitLab.
- On-device Apple Intelligence suggests kebab-case bookmark names from your change descriptions, with a progress indicator while they generate and a deterministic fallback when it is unavailable.
- The submit step verifies the forge CLI and rejects divergent or duplicate-bookmark stacks before moving or pushing anything, and Settings show GitHub (gh) and GitLab (glab) CLI status and version.
Log & DAG
- Change and commit IDs highlight their shortest unique prefix in bold with the remainder dimmed, so you can identify changes at a glance.
- DAG rows show author avatars from GitHub or Gravatar next to the author name.
- Drag a bookmark onto a change in the DAG to move it, with a “Move … here?” bubble and a highlighted drop target showing the destination before you release.
Diffs & Editing
- The file column has a new toggle to switch between a tree and a flat list of changed files.
- The commit box splits its message into Summary and Description fields, GitHub Desktop style, which combine into a single jj change description for clean PR titles and bodies.
- Annotate/blame shows syntax-highlighted file content, with color-coded change IDs grouping lines by the change that introduced them.
- Annotate and File History now use explicit Exit buttons.
Integrations
- GitLab merge requests are supported: open them directly from bookmarks on gitlab.com remotes, including nested group namespaces, with pipeline status shown in the merge request view. Set GITLAB_TOKEN for private projects and higher rate limits.
- Cursor joins VS Code, VSCodium, Zed, and Xcode as an external editor, opening with --classic so the editor layout appears instead of the Agent window.
v0.2.28
Stability
- JayJay now preserves the same command environment for background jj and Git operations, fixing push and remote workflows that depend on your shell PATH or SSH agent.
- Repository refresh, bookmark diff, conflict, and restore workflows handle more jj edge cases without dropping into raw command output.
Diffs & Review
- Diff Edit has a new bulk selection control for selecting or clearing every editable file in the view.
- Large diffs render faster and keep wrapping, placeholders, and file navigation more stable.
Updates
- The About settings now include anonymous usage stats as an opt-in update-check setting.
- Release tooling and CI checks were tightened so appcast, Homebrew, and packaged app validation stay in sync.
v0.2.27
Command Line
- The
jayjaylauncher now opens repositories in your already-running app, and opens a fresh window even when none is showing. - Homebrew installs now place
jayjayon your PATH automatically, kept in sync with the app.
Diffs & Conflicts
- Errors from jj commands — such as a failed conflict resolution — now read as a plain sentence instead of raw command output.
v0.2.26
Pull Requests
- Added Codeberg pull request support alongside GitHub, so you can open and track PRs from Codeberg-hosted repositories.
Large Repositories
- Opening a large repository (for example a multi-gigabyte Chromium checkout) no longer stalls on a working-copy snapshot — the graph appears immediately, while smaller repos still refresh eagerly on open.
- Git submodule status is now optional and off by default, avoiding slow submodule scans on huge repositories. Enable it in Settings when you need it.
Toolbar & Interface
- Added a spinning refresh indicator in the toolbar so it is clear when the repository is refreshing.
- The change header now reloads its insertion and deletion counts when the working copy is amended, instead of showing stale numbers.
- Fixed “Reveal in Finder” to fall back gracefully, and corrected the file-list header height.
v0.2.25
Onboarding
- Fixed an empty segmented tab bar that appeared at the top of the welcome screen on macOS 26. The onboarding flow now uses a clean page indicator with Back/Next navigation.
- Onboarding and welcome windows now size correctly, accounting for the title bar height instead of coming up slightly short.
Performance
- Abandoning working-copy lines now refreshes only the affected change and updates the working-copy row in place, instead of re-snapshotting and rebuilding the whole graph.
Core
- Updated the Jujutsu engine to jj-lib 0.42.0.
v0.2.24
Editors
- Added VSCodium to the built-in editor list, alongside Visual Studio Code, Zed, Xcode, and Vim.
Performance
- Fixed a multi-second freeze when opening a change with a very large diff (for example a Cargo.lock dependency bump). The diff gutter no longer repeats per-line work across the Rust bridge.
- The diff cache is now keyed by commit id and keeps recently viewed changes warm, so jumping back to a change is instant and never shows a stale diff after an amend, rebase, or whitespace-mode toggle.