Skip to content

Commit 68c2adf

Browse files
committed
chore(release): 0.2.0
Bump all workspace crate versions 0.1.8 -> 0.2.0 and write the v0.2.0 changelog entry covering the dedicated Settings window, clone-from-URL support, the Cream & Blue light theme, the command-palette redesign, graph header alignment, dialog overflow fixes, the per-worktree refresh cache, and the broader test push.
1 parent 843ba1a commit 68c2adf

11 files changed

Lines changed: 138 additions & 19 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 120 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,124 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.2.0] - 2026-05-12
11+
12+
This release moves the **Settings UI into its own OS window**, adds **clone-from-URL**
13+
support with a folder picker, ships a new **Cream & Blue** light theme, and delivers
14+
a wave of polish across the command palette, dialogs, and graph view. A new
15+
per-worktree refresh cache cuts background CPU during file-system churn.
16+
17+
### Added
18+
19+
- **Clone repositories from a URL.** The Repo Opener now has a **Clone** button
20+
that opens a dedicated dialog with URL and Path fields. The dialog includes a
21+
**Browse** button that opens an OS folder picker and auto-appends the repo
22+
name parsed from the URL (so picking `~/Github` with
23+
`https://github.com/user/repo.git` fills `~/Github/repo`). Clone tries
24+
in-process `git2` first and transparently falls back to system `git` with the
25+
configured HTTPS credentials. Resolves #32.
26+
- **Settings now opens in a dedicated OS window** (`Ctrl+,`), not an overlay.
27+
Window position and size are persisted across sessions, and the workspace and
28+
settings windows talk over a cross-window action channel so theme changes and
29+
settings updates apply live.
30+
- **Cream & Blue light theme.** A warm near-paper light theme with cool-grey
31+
element layers and a Xero-style cyan-blue accent, intended as a more formal
32+
alternative to Catppuccin Latte.
33+
- **Detail-panel view-mode toggle button.** A Folder/File icon in the detail
34+
panel toolbar toggles between Flat and Tree file views, alongside the
35+
existing `v` keyboard shortcut. The `v` shortcut is now documented in the
36+
Navigation section of the in-app shortcuts help.
37+
- **Inline descriptions in the command palette.** Every command now shows a
38+
short description next to its label. Long descriptions truncate with an
39+
ellipsis and a hover tooltip shows the full text. The palette itself is
40+
wider (480 → 720 px) so descriptions fit on common displays.
41+
- **Debian packaging.** The release pipeline now builds a `.deb` alongside the
42+
AppImage / tarball, with the necessary `.desktop` and AppStream metadata.
43+
44+
### Changed
45+
46+
- **Command palette redesign.** Widened to 720 px, the heavy focused-blue
47+
header underline replaced with a muted separator (the input renders its own
48+
focus outline), and the navigate / select / dismiss footer switched from a
49+
fixed 32 px row to padding-driven sizing so the labels aren't clipped at
50+
small font metrics. Inter-label gap and modal max-height tuned to match.
51+
- **Settings secret fields commit on Enter, not on every keystroke.** The 10
52+
fields that round-trip through the OS keychain (GitHub token, AI API keys,
53+
Git provider tokens) no longer write to the keychain per character. Live UI
54+
still updates as you type; the actual save happens on submit.
55+
- **Create-PR base branch defaults to the detected default branch.** Reads
56+
`refs/remotes/origin/HEAD` and falls back to `main` only when unavailable, so
57+
repositories whose default branch is `master` (or anything else) no longer
58+
get a stuck "main" placeholder.
59+
- **Fuzzy file-search results are sorted by relevance.** The Ctrl+P-style fuzzy
60+
filter previously returned matches in repo order; it now ranks by fuzzy
61+
score, surfacing tighter character-position matches first in both flat and
62+
tree views.
63+
- **CI is pinned to Rust 1.94.1** (matching `rust-toolchain.toml`) so a stable
64+
bump no longer fails fmt checks on otherwise-green commits.
65+
66+
### Fixed
67+
68+
- **Diff preview now refreshes after stage / unstage / discard.** The diff
69+
viewer was holding the pre-action contents until you re-selected the file.
70+
It now subscribes to `GitProjectEvent::StatusChanged` and recomputes the
71+
diff for the currently displayed file when its status changes. Fixes #31.
72+
- **Theme editor / clone / stash-branch dialogs render with a repo open.**
73+
These three dialogs were only attached to the no-tabs welcome layout, so
74+
clicking "Edit Theme" or "Clone" while a repo was open flipped their
75+
internal `visible` flag but rendered nothing. They are now in the tab-open
76+
render tree too.
77+
- **Clone dialog is no longer hidden behind the Repo Opener.** Welcome-screen
78+
z-order was inverted so the clone dialog sits above the opener it was
79+
launched from.
80+
- **Settings window closes when "Edit Theme" is clicked.** The theme editor
81+
lives in the workspace window; previously the settings window stayed on
82+
top, hiding the editor. Settings now closes when the editor is requested.
83+
- **Graph column headers align with their data rows.** The right-side header
84+
hosts both the "my-commits" filter and the display-settings gear (52 px
85+
total), but the trailing row spacer was still sized for a single button,
86+
so Author / Date were pushed left of their columns. Hash / Message also
87+
ignored the per-row 16 px drag-to-rebase grip. Both spacers are now in the
88+
header, and the Author / Date drag-resize math is updated accordingly.
89+
- **Graph display-settings popover no longer leaks hover** into the commit
90+
rows behind it. The popover only stopped left-click propagation, so
91+
mouse-move still reached the underlying rows.
92+
- **Dialog buttons no longer overflow on narrow modals.** Branch / Confirm /
93+
Create-PR / Stash-Branch / Tag dialogs lay their button row out below the
94+
keybinding hint instead of squeezing it onto a single horizontal strip.
95+
Branch dialog gains `flex_nowrap` to prevent button truncation. Fixes #30.
96+
- **GitHub 403 errors are now actionable.** OAuth-App access restrictions and
97+
SAML SSO enforcement messages are rewritten into a single readable
98+
sentence, and long error text wraps inside a 480 px container instead of
99+
pushing the layout horizontally in the Issues / Pull Requests panels.
100+
- **GitHub OAuth device-flow polling cancels with the window.** Previously the
101+
polling future was detached and could run for ~15 minutes after the
102+
settings UI was dismissed; it is now bound to the settings entity.
103+
- **Settings window bounds save only on close**, not on every render frame
104+
during a drag.
105+
- **Splash screen top corners squared** so they align with the title bar.
106+
107+
### Performance
108+
109+
- **Per-worktree diff-stat cache.** `GitProject::refresh()` and the watcher
110+
loop now share a `WorktreeStatusCache` keyed on path + status flags +
111+
staged blob OIDs + workdir mtime/size for modified files. Watcher-triggered
112+
refreshes skip the expensive `batch_diff_stats()` scan when the fingerprint
113+
is unchanged, cutting CPU during background file-system churn while typing
114+
in another editor.
115+
116+
### Internal
117+
118+
- **Test coverage push.** Workspace event enums and dialog logic gained unit
119+
tests across the board: `BranchDialog`, `ReflogView`, `SubmoduleView`,
120+
`BisectView`, `Toolbar`, `ShortcutsHelp`, `SettingsView`, `RepoOpener`,
121+
`Workspace`, `StashBranchDialog`, `CreatePrDialog` (including PR JSON
122+
request/response parsing), `ConfirmDialog`, `BlameView`, `CommandPalette`
123+
(`CommandContext` / `PaletteCommand`), `CommitPanel` co-author trailer
124+
formatting, and fuzzy file-search ordering. Integration tests gained a
125+
merge-commit graph test and an ignored headless GPU smoke test, and were
126+
made robust to CI environments that lack a configured `init.defaultBranch`.
127+
10128
## [0.1.8] - 2026-04-28
11129

12130
### Added
@@ -248,7 +366,8 @@ establishes a feature-complete baseline for day-to-day use.
248366
- Only x86_64 Windows and Linux, and x86_64/aarch64 macOS are built by CI.
249367
Other architectures can be compiled locally with `cargo build --release`.
250368

251-
[Unreleased]: https://github.com/noahbclarkson/rgitui/compare/v0.1.8...HEAD
369+
[Unreleased]: https://github.com/noahbclarkson/rgitui/compare/v0.2.0...HEAD
370+
[0.2.0]: https://github.com/noahbclarkson/rgitui/compare/v0.1.8...v0.2.0
252371
[0.1.8]: https://github.com/noahbclarkson/rgitui/compare/v0.1.7...v0.1.8
253372
[0.1.7]: https://github.com/noahbclarkson/rgitui/compare/v0.1.6...v0.1.7
254373
[0.1.2]: https://github.com/noahbclarkson/rgitui/compare/v0.1.0...v0.1.2

‎Cargo.lock‎

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎crates/rgitui/Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rgitui"
3-
version = "0.1.8"
3+
version = "0.2.0"
44
edition.workspace = true
55
license.workspace = true
66

‎crates/rgitui_ai/Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rgitui_ai"
3-
version = "0.1.8"
3+
version = "0.2.0"
44
edition.workspace = true
55
license.workspace = true
66

‎crates/rgitui_diff/Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rgitui_diff"
3-
version = "0.1.8"
3+
version = "0.2.0"
44
edition.workspace = true
55
license.workspace = true
66

‎crates/rgitui_git/Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rgitui_git"
3-
version = "0.1.8"
3+
version = "0.2.0"
44
edition.workspace = true
55
license.workspace = true
66

‎crates/rgitui_graph/Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rgitui_graph"
3-
version = "0.1.8"
3+
version = "0.2.0"
44
edition.workspace = true
55
license.workspace = true
66

‎crates/rgitui_settings/Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rgitui_settings"
3-
version = "0.1.8"
3+
version = "0.2.0"
44
edition.workspace = true
55
license.workspace = true
66

‎crates/rgitui_theme/Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rgitui_theme"
3-
version = "0.1.8"
3+
version = "0.2.0"
44
edition.workspace = true
55
license.workspace = true
66

‎crates/rgitui_ui/Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rgitui_ui"
3-
version = "0.1.8"
3+
version = "0.2.0"
44
edition.workspace = true
55
license.workspace = true
66

0 commit comments

Comments
 (0)