Conversation
- Remove duplicate BossTerm menu on macOS (move Check for Updates to Help menu) - Read app version from Info.plist on macOS for accurate version display - Redesign update banner to match TabBar styling (dark background, compact layout) - Reduce banner height from ~60px to ~28px with smaller fonts and icons - Use accent colors for icons instead of colored backgrounds 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Code Review: PR #92 - Improve update banner UI and version detectionOverall AssessmentThis is a well-executed PR that addresses multiple UX improvements. The code quality is solid, the changes are cohesive, and the approach is appropriate for the goals. Strengths1. Excellent UI Consistency
2. Smart Version Detection Logic
3. Simplified Menu Structure
4. Consistent Layout PatternAll five banner states follow identical structure - good for maintainability Issues and Suggestions1. Minor: Text Overflow Handling (Priority: Low)Location: UpdateUI.kt:93-102 The UpdateAvailableBanner does not handle long version strings gracefully. Add maxLines and overflow parameters to prevent layout issues with pre-release versions like 1.0.0-beta.3.rc1. 2. Enhancement: XML Parsing Robustness (Priority: Medium)Location: Version.kt:64-67 Add validation after regex match to ensure we only return version strings that can actually be parsed by Version.parse(). This prevents returning malformed version strings. 3. Potential Issue: File I/O on Main Thread (Priority: Medium)Location: Version.kt:61-62 CURRENT is a lazy property that reads from disk on first access. If accessed on UI thread during startup, could cause jank. Consider documenting this or making version loading asynchronous. Security ConsiderationsNo Security Issues Found
Code QualityFollows BossTerm Conventions
RecommendationsMust Fix Before MergeNone - the PR is production-ready as-is. Should Fix (High Value)
Nice to Have
Final VerdictApprove with minor suggestions This PR successfully:
The suggestions above are enhancements, not blockers. The code is well-structured and ready to merge. Great work on the UI redesign! |
Code Review SummaryOverall, this is a well-structured PR that successfully addresses UI consistency and version detection issues. The changes are clean, focused, and improve the user experience. Here's my detailed feedback: ✅ Strengths1. Menu Simplification (
|
| Priority | Issue | Action |
|---|---|---|
| HIGH | Info.plist regex parsing | Use PlistBuddy or proper XML parser |
| MEDIUM | Silent error swallowing | Add logging to catch block |
| LOW | Regex group accessor | Use safer .groups?.get(1)?.value |
| LOW | Test coverage | Add unit tests for Version.kt |
✅ Approval Recommendation
Status: ✅ Approve with suggestions
The PR successfully achieves its goals and the code quality is good. The Info.plist parsing is the only concern, but it's:
- Non-blocking (has fallback)
- Unlikely to fail in practice (plist format is stable)
- Easy to improve in a follow-up PR
Suggested merge strategy: Merge as-is, then create a follow-up issue to improve plist parsing robustness.
Great work on improving the UI consistency! The new banner design is much cleaner. 🎨
fix: Improve update banner UI and version detection
Summary
Changes
tryGetMacOSBundleVersion()to read CFBundleShortVersionString from Info.plist#1E1E1E)Test plan
🤖 Generated with Claude Code