Skip to content

Releases: rcieri/glab-tui

v0.8.4

Choose a tag to compare

@github-actions github-actions released this 13 Aug 12:28
c15a039

What's Changed

Fixed

  • Theme-safe syntax highlighting — The diff view's syntax highlighting no longer hardcodes a fixed syntect palette. highlight_line_syntax now derives the highlighting theme from the active app theme (text_normal foreground on the theme bg) and strips all syntect scope colors, so highlighted code always matches the active theme — including custom and light themes — and the reset theme is no longer serialized into saved configs (#313) — thanks @rcieri.
  • GitHub Enterprise backend detection — Backend detection now parses the remote host and, for non-github.com hosts, probes both gh auth status --active --hostname <host> and glab auth status --hostname <host>. A new repo-local backend = "github" | "gitlab" config key overrides automatic detection for ambiguous remotes (SSH aliases, hosts serving both platforms), and the shared detection logic is now used at startup, in the repo switcher, for diff review submission, and by doctor (#312) — thanks @rcieri.
  • Milestone progress renderingglab milestone list now passes --project/--group (the previous -R flag was silently ignored, leaving the Milestones tab empty), and milestone issues are fetched by milestone title instead of iid — fixing the progress column and "Issues Status" detail stuck at 0%. Stale empty milestone-issue cache entries no longer block a re-fetch, and fetch errors surface through the failure toast instead of silently substituting an empty list (#303) — thanks @nazgull30.
  • Merge MRs without prompting (GitLab)glab mr merge runs with --yes so the TUI never hangs on the CLI's interactive confirmation, and multiple selected MRs can be merged in sequence from the merge-options selector (#310) — thanks @rcieri.
  • Draft/Ready status editing — The MR/PR edit-menu status field now actually applies the change (updates the local row and calls the backend toggle) instead of silently discarding it, and the field is available for GitHub PRs as well (#308) — thanks @rcieri.
  • Help overlay polishq is consumed by the help search input instead of quitting or closing the overlay, and the help screen now separates "Quit program" (the remappable quit key) from "Close active overlay" (Esc) (#309, #311) — thanks @rcieri.

Dependencies

  • Bump clap 4.6.44.6.6 (#307)
  • Bump CI Actions dtolnay/rust-toolchain and Swatinem/rust-cache 2.9.12.9.2 (#305, #306)

Contributors

Full Changelog: v0.8.3...v0.8.4

v0.8.3

Choose a tag to compare

@github-actions github-actions released this 04 Aug 23:50
c11c244

What's Changed

Added

  • Real label colors from the API — The Labels column now renders each label with its actual color returned by glab label list / gh label list (hex, normalized and persisted in the offline cache). GitHub-style background-fill colors that are too light to read as foreground text automatically fall back to the theme palette, which now ships full 10-entry palettes across all 16 bundled themes. A new fetch_label_colors config option (default true) switches back to always using the theme palette (#295) — thanks @rcieri.
  • Complete theme coverage — Every remaining hardcoded RGB value was replaced with semantic theme tokens so all surfaces honor the active theme: the diff view (unified and side-by-side addition/deletion lines, gutters, separators, empty panes, draft/current comment overlays, file-tree stats), markdown rendering (headings, list bullets, blockquotes, code), and the diff selection/search-match highlight backgrounds (#295) — thanks @rcieri, @vctls

Fixed

  • Windows CI test race — Unit tests that mutate process-global environment variables (config paths, cache dirs) are now serialized on a shared config::TEST_ENV_MUTEX, eliminating an intermittent page_size assertion failure on Windows where one test's GLAB_TUI_CONFIG mutation leaked into another test's Config::load() (#296) — thanks @rcieri.

Changed

  • Release toolingscripts/release.sh gained animated spinner and progress-bar helpers: preflight checks, release builds, demo-GIF generation, PR-merge polling, and the branch push now run with a live spinner and captured logs (auto-disabled when not a TTY), and release phases are numbered (1/7 …) for clearer progress reporting (#296) — thanks @rcieri.
  • Documentation — README package-manager version badges (crates.io, GitHub releases, Homebrew, Scoop, Docker) consolidated into the header badge row, and the Homebrew badge re-pointed at the main repo's release tags (the tap repo publishes no releases of its own) — thanks @rcieri.

Dependencies

  • Bump toml 1.1.31.1.4 (#292)
  • Bump CI Actions docker/login-action 4.5.24.6.0 (#293)
  • Bump CI Actions actions/stale 10.4.011.0.0 (#294)

Contributors

Full Changelog: v0.8.2...v0.8.3

v0.8.2

Choose a tag to compare

@github-actions github-actions released this 02 Aug 18:17

What's Changed

Added

  • MR/PR review state at a glance — The MR/PR table now surfaces Approval (CHG/CHANGES, AWAITING, APPROVED, REVIEW REQ), Mergeable (CONFLICT, REBASE, CLEAN, CHECKING), and Workflow (Returned, Review req, Yours, Approved, By others, Inactive) columns with color-coded icon badges, reordered so the status indicators sit together at the front of the table. GitLab state comes from a single bulk GraphQL query; GitHub derives it from the native gh pr list review/merge fields. Pending approvals repeat one icon per approval still needed, and GitLab's blocking_discussions_resolved flag is surfaced alongside (#270, #274) — thanks @zenibako.
  • Rebase & revoke approvalsR rebases the source branch onto the target on both hosts (gated by mergeability: conflicted MRs must be resolved locally, already-clean MRs are skipped), and A revokes your approval on GitLab (gh has no revoke path) — both behind the standard confirm popup (#270) — thanks @zenibako.
  • Filter picker aligned with the table — Value-based column filter selectors now show the exact text the table renders (OPEN/CLOSED, CONFLICT/REBASE/CLEAN, SUCCESS/FAILED, …). Legacy lowercase values already saved in config.toml or the cache keep working through automatic normalize_filter_value() normalization (#274) — thanks @rcieri.
  • api_per_page configuration — New api_per_page key bounds the per-request response size (clamped to GitLab's accepted 1–100 per_page range) for issues, MRs, pipelines, and labels — a workaround for GitLab instances that truncate large JSON response bodies (#269, #272) — thanks @zenibako.
  • Rosé Pine themes — Three new bundled presets: rose-pine, rose-pine-moon, and rose-pine-dawn (16 bundled themes total) (#278) — thanks @vctls.
  • Theme polish — The root canvas background is now painted for every theme, the default and clean presets use pure black backgrounds, and the light-theme demo GIF was re-recorded. The hardcoded in-code fallback theme was removed: Theme::default() now derives directly from src/themes/default.toml, so the bundled TOML is the single source of truth (#282) — thanks @rcieri.

Fixed

  • Milestone removal & attribute clearing — Milestones can now be removed (empty / None selector value) and attributes cleared from the edit menu and bulk updates, and the premature tab-refresh race after edit submission was eliminated (#281) — thanks @rcieri.
  • Cached filter compatibility — Pre-existing saved column filters stored with the old lowercase display values are normalized transparently, so no config or cache migration is required after upgrading (#274) — thanks @rcieri.
  • Overlay & diff view backgrounds — Popup overlays (edit menus, selectors, confirm dialogs, column filters) and the diff view now paint the active theme background instead of resetting to the terminal default color, so every surface renders consistently with the chosen theme on terminals whose default background differs from bg — thanks @rcieri.

Changed

  • Release toolingscripts/release.sh now interactively selects the opencode model (provider → model → variant) used for regenerated docs and release notes, via fzf with a numbered-menu fallback; set OPENCODE_MODEL to skip the prompt (#283) — thanks @rcieri.
  • Test robustnessworkflow_dispatch input parsing now tests against an inline fixture instead of reading a repository workflow file (#271); new unit tests cover MR keybinding collision detection, bundled-theme parsing, api_per_page clamping, MR state derivation, and filter normalization — thanks @zenibako.
  • Documentation — Backend docs describe _per_request semantics (no-op on GitHub, which paginates via --limit), and the generated config.toml documents api_per_page; the README CI badge now points at rust.yml (#272) — thanks @rcieri.

Contributors

Full Changelog: v0.8.1...v0.8.2

v0.8.1

Choose a tag to compare

@github-actions github-actions released this 31 Jul 12:38
ad1417e

What's Changed

Fixed

  • Nested GitLab subgroups — Remote project paths are now parsed by a shared git_helpers::parse_project_path that preserves the full namespace path instead of truncating to the last two segments. Projects in nested subgroup namespaces (e.g. group/subgroup/project) on self-hosted GitLab no longer fail with "Project Not Found"; the parser also handles ssh:// URLs, explicit ports, and embedded credentials, and the offline cache is keyed identically (#256) — thanks @zenibako.
  • Review submission popup — Submitting a review with pending draft comments now uses the standard confirmation popup with styled [ YES ] / [ NO ] buttons (h/l to toggle, Enter/y to confirm, n/Esc to cancel) instead of the bare y/n keybinds, consistent with every other destructive action (#247, #248) — thanks @rcieri.
  • Pipeline creation with variables — Fixed the glab ci run flag name (--variable--variables) and stopped passing --mr when custom variables or workflow_dispatch inputs are set, so pipelines triggered with variables/inputs now run correctly (#258) — thanks @leogargitter.
  • Release build cachingrust-cache is skipped on release tag builds to avoid restoring stale caches, and the git identity is configured before the Homebrew/Scoop manifest commits (#260, #264) — thanks @rcieri.

Changed

  • Local-first release orchestration — All release automation consolidated into a single scripts/release.sh orchestrator: preflight checks, version bump, doc and demo-GIF regeneration via headless opencode, a chore: prepare release PR with a review gate, squash-merge and tag, release build wait, release notes with contributor attribution, Homebrew/Scoop manifest sync, GHCR image push, and crates.io publish. The prepare-release and post-release workflows were removed; release.yml now only builds the cross-platform binary matrix — thanks @rcieri.
  • CI hardening — All third-party GitHub Actions pinned to commit SHAs (versions kept as comments for update tooling) so no step can be re-pointed to unreviewed code; dtolnay/rust-toolchain now takes an explicit toolchain input (#250) — thanks @Thibaud-Vdb.
  • Filtering & keybinding documentation — README expanded with a Filtering, Grouping & Columns walkthrough and complete per-tab keybinding tables (including the remappable config.toml key for every binding); the in-app ? help overlay surfaces the configure/filter workflow, and stale shortcuts (pipeline artifact download, milestone J/K) were removed (#261) — thanks @rcieri.
  • Dead code removal — Removed the unused KeybindingPipelines.download_artifact config key (no handler exists; d cancels) and the never-invoked handle_entity_update function along with its now-unused imports (#261) — thanks @rcieri.
  • Demo GIFs — Restored the original higher-quality demo recordings, reverting the earlier GIF compression — thanks @rcieri.

Contributors

Full Changelog: v0.8.0...v0.8.1

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 00:28
83e4c42

What's Changed

Added

  • Mouse support — Click to navigate and interact with all overlays, modals, sidebar tabs, and table scrolling via mouse events (#216, #227, #228).
  • Bulk editing — Select multiple issues or merge requests and apply batch operations (close, reopen, label, assign) in a single action (#215, #230).
  • Create MR/PR from issue — Press m on a selected issue to instantly create a merge/pull request from it, with automatic branch creation and push (#185, #229).
  • CLI subcommands — New doctor and clean-cache subcommands for system diagnostics and cache management (#178, #237).
  • Todos/Notifications tab overhaul — Badges, relative time_ago timestamps, an explicit Updated column, and fuzzy search across all todo columns (#158, #239).
  • Milestone visual progress bar — Replaces plain percentage text with a rendered progress bar in the milestones table column (#161, #238).
  • Configurable sidebar and terminal pane — New UiConfig section in config.toml lets users set sidebar width and toggle sidebar/terminal pane visibility (#223).
  • Edit menu mnemonics footer — Keybinding hints displayed at the bottom of edit menus for quick reference (#220).
  • Pipeline search and group-by — Filter and group pipelines by Name, Event, SHA, and Actor columns (#221).
  • Run pipeline dialog — Gated on backend availability with appropriate messaging when the feature is not supported (#222).
  • Related pipelines from MR detail — Press P in MR detail view to list pipelines associated with the selected merge request (#212).
  • Manual GitLab job start — Press S to start manual (blocked) GitLab CI jobs from the job view (#214).
  • Unified Modal component — Reusable double-bordered modal widget for consistent overlay rendering (#210).
  • Auto-dismiss error toasts — Error messages render as timed notification toasts instead of persistent overlays (#211).
  • BackendKind enum — Runtime backend identification with terminology helpers (term()) for host-aware UI strings (#206).
  • Semantic theme tokens — Label palette, clean preset, and expanded color token system for finer-grained UI theming (#207).
  • workflow_dispatch inputs — Detects and prompts for workflow_dispatch inputs when triggering GitHub Actions pipelines.
  • Performance optimizations — Cached repo attributes, reduced over-fetching of unchanged data, and streamlined mutation handlers (#240).

Fixed

  • GitHub PR draft toggle — Fixed gh pr edit --draftgh pr ready --undo for marking PRs as draft.
  • Help overlay completeness — All missing keybindings now documented; switched from hardcoded to config-backed rendering (#236).
  • Cache staleness — Milestone issues no longer served stale; GitHub branch metadata correctly fetched (#235).
  • Quote strippingextract_quotes now only strips outer matching quote pairs (#234).
  • Mouse click targeting — Selector click handler properly accounts for search bar and footer height (#227).
  • Confirm popup with mouse — Backend methods used for confirm action execution; event-sending bugs resolved (#227).
  • Responsive column widths — Table columns now adapt gracefully on 80-col terminals (#224).
  • GitHub job stage name — Uses workflow name instead of raw job identifier for GitHub Actions stage column (#213).
  • GitLab milestone fixes — Corrected milestone update and deletion behavior.

Changed

  • In-terminal hints removed — All inline status hints removed from the UI; functionality consolidated into the help overlay (?) (#226).
  • Edit menu terminology — Standardized field labels using the new FieldType enum (#225).
  • Terminology extraction — Hardcoded host-aware strings moved into BackendKind::term() for single-source-of-truth (#206).
  • CI release automation — Submodules removed; post-release.yml now updates Homebrew and Scoop manifests directly.

Dependencies

  • Add clap 4 (with derive feature) — CLI argument parsing
  • Add serde_yaml 0.9 — YAML support for doctor diagnostics output

Full Changelog: v0.7.0...v0.8.0

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 01:00

What's Changed

Added

  • Backend trait system — Extracted a unified Backend trait (src/backend/mod.rs) with dedicated GlabBackend (src/backend/glab.rs) and GhBackend (src/backend/gh.rs) implementations, replacing the old src/gitlab/ translation layer. The trait provides ~40 methods covering all API interactions with proper async dispatch (#165).
  • Domain model layer — Consolidated domain types into src/domain/ with clean modules for branches, deployments (Environment & Deployment), issues, milestones, mr, notifications, pipelines, releases, and runners, each with serde-powered structs and dedicated list/get helpers.
  • crates.io publishing — Package renamed to glab-tui-crate (binary stays glab-tui) for publishing on crates.io; cargo install glab-tui-crate now works.
  • Homebrew & Scoop distribution — Added .gitmodules for homebrew-glab-tui and scoop-glab-tui manifest repos, with CI automation to update formulas on release.
  • async-trait dependency — Added async-trait = "0.1.89" to support the new async Backend trait.

Fixed

  • is_draft detection — Fixed draft status not being correctly parsed from GitLab MR responses.
  • GitLab nerd font icons — Replaced custom nerd font GitLab icon with standard FontAwesome icon for better cross-terminal compatibility.
  • Repository argument encoding — Removed spurious URL encoding from glab native subcommand -R arguments, fixing entity fetch failures when project paths contain special characters (#181).
  • Non-blocking CLI commands — Reverted to non-blocking subprocess spawning to prevent UI freeze during CLI calls (#183).
  • Diff rename handling — Fixed diff parsing when files are renamed, ensuring renamed file diffs are displayed correctly (#184).
  • Terminal output corruption — Resolved extraneous printouts corrupting the terminal display (#173).
  • Trace view regression — Fixed the job trace viewer that was not displaying output (#172).
  • Code injection mitigation — Applied escaping fixes for CodeQL security alert #25 (shell argument injection) (#168).
  • macOS CI hangs — Prevented cargo test from hanging on macOS runners by fixing PTY lifecycle.
  • Duplicate release notes — CI now generates release notes only once in the matrix build.

Changed

  • Architecture overhaul — Removed the entire src/gitlab/ module tree. Replaced with src/backend/ (trait + per-host impls) and src/domain/ (data types + logic). The GitlabClient now lives in src/domain/client.rs and delegates to the backend trait.
  • Package identity — Cargo package renamed from glab-tui to glab-tui-crate to free the glab-tui name for the binary. The install command changes to cargo install glab-tui-crate.
  • Release automation — CI release.yml now triggers manifest updates on Homebrew and Scoop submodules after a release publish.

Dependencies

  • Bump toml from 0.8 to 1.1.3+spec-1.1.0
  • Bump tokio from 1.52.3 to 1.53.0
  • Add async-trait 0.1.89
  • Bump the patch-updates group with 4 dependency updates
  • Bump docker/login-action, docker/build-push-action, actions/checkout (CI)

Full Changelog: v0.6.0...v0.7.0

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 11 Jul 16:44

What's Changed

Added

  • Nerd Font icon system — All tab titles, status badges, labels, and UI indicators can now render nerd font icons. Uses hardcoded defaults that are not user-configurable (#156).
  • Pipeline / Action status in MR/PR pane — The MR/PR details panel now displays the pipeline (GitLab) or workflow action (GitHub) status graphically with stage dots, adapting terminology to the remote host (#144, #126).
  • Confirmation prompts for destructive actions — Closing issues, closing MRs, merging MRs, and deleting branches/releases/milestones now show a confirmation dialog before executing (#141, #146).
  • Entity deletion — Issues and merge requests can now be deleted directly from the TUI. New delete_entity keybinding added (#150).
  • Fetchable selectors for free-form fields — Branch inputs, environment selectors, and other free-form fields were upgraded to fetchable Selector lists with fuzzy matching (#145).
  • Improved cache persistence — Selector items and milestone issues are now persisted to disk cache alongside API payload data, reducing redundant network fetches on tab switches (#147).

Fixed

  • Column widths bounded — All table columns now use fixed Length constraints instead of Fill, guaranteeing every column stays within the terminal viewport (#125, #155).
  • Config auto-create removedConfig::load() no longer writes config.toml on startup when missing. The file is now created only by an explicit save_view / save_layout action (#74daa1b).
  • Homebrew installation — Fixed wrong version pinning and corrected the installation method in the Homebrew formula (#148).
  • E2E test deadlocks — Resolved deadlocks in parallel PTY spawning by preparing process allocations before forking (#fcb16b3, #4118699).
  • Install script asset matchinginstall.sh now matches exact asset names to avoid downloading multiple release URLs (#c6acf24).

Changed

  • Tab titles — Now include nerd font icons. Falls back gracefully on non-nerd-font terminals via config override.
  • Pipeline column in MRs — Renamed to "Pipeline" on GitLab, "Action" on GitHub, gated by host detection.
  • Confirmation UXConfirmAction enum expanded with new variants; new confirm_popup_selected_yes state field.

Dependencies

  • Bump docker/login-action from 3 to 4
  • Bump docker/build-push-action from 6 to 7

Full Changelog: v0.5.0...v0.6.0

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 07 Jul 13:28

What's Changed

Added

  • Save view configurations — Inline page size editing, multi-page fetching, and config persistence validation in the configuration view (#142).
  • Milestone tracker & editing — Support editing milestone fields, color-coded progress bars, caching milestone issues to avoid redundant network fetches, and dynamically rendering milestones column headers (#106, #110, #140).
  • Release creation & editing — Support structured release creation and editing via EditMenu, along with commit metadata and assets link rendering in the release preview (#106, #110).
  • Issue, MR, and PR description templates — Choose from description templates when creating new issues or merge/pull requests (#123).
  • Fuzzy matching improvements — Upgrade pipelines, jobs, and branch/workflow selectors to use SkimMatcherV2 fuzzy matching, matching the merge request list (#103).
  • Run pipeline workflow/branch selectors — Autocomplete and search local/remote branches and CI configuration files when triggering pipelines (#103).
  • Packaging and manifests — Add Docker container support, Scoop, and Homebrew formula packages with manifest auto-bumping utilities (#107).

Fixed

  • GitHub PR Ready — Use correct gh pr ready subcommand instead of the invalid gh pr edit --ready flag when marking GitHub PRs ready (#103).
  • Runner details panel — Hide details pane if not applicable/empty (#109).
  • UTF-8 characters in labels — Prevent panic on label truncation with multi-byte characters by ensuring truncation snaps down to character boundaries (#93).

Changed

  • Reordered Date column to the left of Release Name in the releases table.
  • Moved collapse/expand matrix hint from jobs pane to help view.

Full Changelog: v0.4.0...v0.5.0

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 15:00

What's Changed

Added

  • TOML config file~/.config/glab-tui/config.toml (or $GLAB_TUI_CONFIG) auto-generated on first run with all options documented inline.
  • Theme system — choose from six bundled presets (default, tokyo-night, gruvbox, nord, catppuccin-mocha, dracula) via theme_preset in config; full per-color overrides supported under [theme].
  • Custom theme files — place additional <name>.toml files in ~/.config/glab-tui/themes/ to create and share your own themes.
  • Fully configurable keybindings — every action across all panes is remappable in config.toml under [keybindings.global], [keybindings.issues], [keybindings.mrs], [keybindings.pipelines], and [keybindings.releases].
  • Interactive calendar date picker — press Enter on Due Date / Start Date in the edit menu to open an inline calendar widget; navigate with h/l (month) and j/k (day).
  • Due Date column in Issues — new Due Date column in the issues table; hidden automatically when connected to GitHub.
  • Start Date column in Milestones — new Start Date column; hidden automatically when connected to GitHub.
  • Runner details panel — selecting a runner now opens a structured side-panel showing Runner ID, description, status, tags, and live job/queue metrics.
  • Per-pane column config in TOML — set default visible columns, column filters, and group-by column persistently via [issues], [mrs], etc. sections in config.toml.

Fixed

  • Small terminal handling — gracefully degrade layout when the terminal is too small rather than panicking.
  • Pipeline job cache persistence — pipeline jobs are now saved to and restored from disk cache.
  • Selector "Create New" entry — always appears at the top of the list even when a filter is active.
  • Empty description on GitHub — creating issues/MRs on GitHub no longer inserts a blank description field.
  • GitLab-only fields hidden on GitHub — due date, weight, confidential, and start-date fields are excluded from GitHub issue/MR forms.
  • Ctrl+E to open editor — unified shortcut to open $EDITOR for description fields across all edit menus.

Changed

  • Config architecture refactor — keybindings, column visibility, and themes were extracted from hard-coded constants in ui.rs into a dedicated config.rs module; FormattingConfig struct removed.
  • Keybinding matching — all hardcoded KeyCode::Char match arms replaced with keybinding_matches() helper, enabling full runtime override from config.toml.
  • Edit menu UI polish — edit popup border and title rendered in focused accent color; field values colored to match the details pane; date picker styled to match the details pane theme.
  • cancel pipeline keybinding — default changed from c to d (resolves conflict with download_artifact, which was also d).
  • Runner tab layout — rebuilt runner details rendering: removed old flat list in favor of a structured two-pane layout (table + details panel).

Dependencies

  • Bump anyhow from 1.0.98 to 1.0.103
  • Bump ratatui from 0.30.1 to 0.30.2
  • Bump actions/checkout from 4 to 7 (CI)
  • Bump actions/stale from 9 to 10 (CI)

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 15:00

Note on version numbering: This release was originally tagged as v2.2.0 but has been renumbered to v0.3.0 for semver consistency — the jump from v0.2.1 to v2.2.0 was unintentional. No code changes; only the tag name differs.

What's Changed

Added

  • Code review system with draft comments, multi-line comments, and code suggestions in diff view.
  • Syntax highlighting in diff/patch viewer using syntect (base16-eighties.dark theme).
  • Side-by-side diff layout — toggle between unified and side-by-side with d in diff view.
  • Value-based column filtering — filter table rows by specific column values via configure popup.
  • Column grouping & ordering — merge grouping into configure view with ascending/descending sort.
  • Show read notifications — toggleable via show_read parameter on todos/notifications tab.

Fixed

  • ID sorting — compare ID columns numerically instead of lexicographically.
  • Diff contextual naming — show "Pull Request" or "Merge Request" based on host, not both.
  • Review pane focus — focus files pane on Esc, confirm drafts when closing diff.
  • Line range selection — correct line range and comment target on side-by-side diff.
  • UI rendering alignment — align with sorted lists, resolve borrow checker conflict.
  • Row selection in grouping view — restore normal selection, editing, and column toggling.
  • Group map rebuild — rebuild group map and update filters when toggling columns.
  • Layout scaling — fix layout scaling issues (#71).
  • POST for retry/cancel — use -X POST for retry and cancel endpoints (#49).
  • Editor-based comments — fix comment creation via editor (#38).
  • --file-path flag — use for glab mr note create.
  • Description template — hide from EditMenu, load on demand when editing.
  • Notification command args — fix gh api notifications?all=true argument passing.

Changed

  • Refactored column configure popup — replaced old FILTERS section with unified COLUMNS, GROUP BY, and ORDER sections.
  • Contextual column renaming — milestones: rename IID column to ID.
  • Cache directory migration — moved from ~/.glab-tui-cache to ~/.cache/glab-tui.
  • Extended cache persistence — now saves enabled_columns, group_by_column, group_ascending, column_filters.
  • Event refactoringDiffFetched changed from tuple struct to named fields with comments payload.
  • GitHub endpoint translation — added /retry/rerun, /notes/comments maps; pull request comment JSON translation.

Dependencies

  • Bump ratatui from 0.29.0 to 0.30.1
  • Bump crossterm from 0.28.1 to 0.29.0
  • Bump chrono from 0.4.44 to 0.4.45
  • Add syntect v5 with default-fancy features

CI/CD

  • Bump codecov/codecov-action from v4 to v7
  • Bump actions/upload-artifact from v4 to v7
  • Bump actions/labeler from v5 to v6
  • Bump amannn/action-semantic-pull-request from v5 to v6
  • Bump softprops/action-gh-release from v2 to v3

Full Changelog: v0.2.1...v0.3.0
RELEASENOTES