PRism Desktop v0.6.0
Pre-release
Pre-release
This release is headlined by a big step forward for the PR-detail experience: you can now merge a ready pull request straight from the action bar, review a unified activity timeline on the Overview tab, and spot which files have open or resolved comments at a glance from the file tree. The inbox now rehydrates instantly on launch from a cached snapshot instead of showing an empty screen, and mergeability/readiness indicators resolve themselves within seconds instead of getting stuck. Underneath, a large batch of hardening and performance work makes the app more resilient to race conditions and noticeably snappier when scrolling diffs and the inbox. Here's the detail. 🚀
🚀 New features
- Merge from PR-detail — you can now merge a ready, mergeable pull request directly from the action bar, choosing a merge method when more than one is allowed. (#656)
- Unified activity timeline — the Overview tab now shows a single newest-first feed of comments, reviews, pushes, and lifecycle events, with consecutive commits collapsed into an expandable group and the feed live-updating as reviewers act. (#692)
- Per-file comment indicator — the Files tab now shows a glyph next to any file with review comments, filled for unresolved threads and outlined once everything's resolved, with a hover tooltip giving the counts. (#691)
- Instant inbox on launch — the inbox and activity rail now load immediately from your last-known snapshot on startup instead of showing a blank screen, refreshing quietly in the background. (#686)
✨ Improvements
- Mergeability stops getting stuck — the PR-detail merge panel and inbox readiness badge now resolve on their own within a couple of seconds instead of staying frozen on "still being calculated" until you refresh. (#658)
- Full-length AI rationale — Hotspots no longer cuts off long AI-generated explanations mid-sentence; the full text now renders. (#699)
- Smoother diff scrolling — the diff view now skips re-rendering unchanged rows during scrolling, thread toggles, and composer actions, keeping large diffs responsive. (#689)
- Snappier inbox — inbox rows now skip re-rendering when unrelated parts of the page update, keeping large inboxes responsive during live updates. (#709)
🐛 Fixes
- The Checks tab's detail pane now stays in view when scrolling through a long list of checks, and skipped checks now sort to the end instead of ahead of passing ones. (#700)
- The inbox's refreshing indicator now stays visible for the whole background revalidation after a cold start, instead of disappearing while data is still loading. (#694)
- Running
run.ps1 --no-browser(with or without other flags) now launches correctly instead of failing with a parameter-binding error. (#707) - The background PR poller no longer risks failing for everyone with many open PRs, by matching the inbox's safer batch size for readiness queries. (#683)
🔧 Under the hood
- Hardens several frontend hooks against double-clicks, hung requests, and abandoned fetches so rapid actions and page navigation can't leave the UI stuck or duplicate a submitted comment. (#660)
- Closes several session and validation race conditions on the backend, including protecting draft discards and comment posts from in-flight submits. (#661)
- Ensures the submit pipeline always posts your latest draft, reply, or summary edit to GitHub even if it changed right before submission. (#677)
- Hardens crash recovery, the desktop app's background process, and CI security (pinned installer checksum and a stricter author gate on automated workflows). (#662)
- Caches app state in memory to avoid repeatedly re-reading and re-parsing it from disk during normal use. (#679)
- Streamlines how the inbox applies AI-generated enrichments internally, reducing unnecessary CPU work. (#678)
- Consolidates duplicated GitHub data-fetching code paths in the backend to reduce drift between them. (#680)
- Shares one GitHub batch-query implementation across the inbox and active-PR polling instead of two separately maintained copies. (#682)
- Consolidates duplicated modal focus-trapping, dropdown-dismissal, and banner styling code in the frontend into shared, reusable pieces. (#702)
- Modal backdrops and shadows now consistently use the app's theme-aware scrim and shadow tokens, giving light and dark mode a more polished, consistent look. (#706)
- Breaks the large DiffPane component into smaller, focused files without changing its behavior or appearance. (#703)
- Continues breaking up the Files tab into smaller hooks, which also lets the diff view's rendering optimizations actually kick in. (#710)
- Finishes splitting up the PR header into layout and submit-flow pieces, completing the PR-detail decomposition effort. (#711)
- Updates the checkout GitHub Action to its latest major version. (#696)
- Updates the release-publishing GitHub Action to its latest version. (#695)
Full Changelog: v0.5.1...v0.6.0