Skip to content

fix(BAR-29): Reports panics as errors and compresses the installer with LZMA - #37

Merged
Bare7a merged 4 commits into
masterfrom
chore/BAR-29_smaller-release-binary
Nov 1, 2026
Merged

Bare7a merged 4 commits into
masterfrom
chore/BAR-29_smaller-release-binary

Conversation

@Bare7a

@Bare7a Bare7a commented Nov 1, 2026 •

Copy link
Copy Markdown
Owner

📝 What changed?

A panic in database work no longer fails silently: the query run, table page, import or AI assistant call it happened in ends with "BarSQL hit a bug", and a new panic hook writes the details to crash.log in the data folder. A few Postgres and MySQL reads that panicked on unexpected server values now return an error instead. The Windows installer is compressed with LZMA, which takes it from 23,732 KB to 15,714 KB (−34%). The version goes to 1.2.3.

🧩 Type of change

  • 🐛 Bug fix
  • ✨ Feature
  • ♻️ Refactor
  • ⬆️ Dependencies
  • 📝 Docs or landing page
  • 🛠️ Build, CI or packaging

🧪 Tested

  • By hand on Windows
  • By hand on macOS
  • By hand on Linux
  • Tests workflow on macOS and Windows

📖 Docs

  • Updated the guide
  • Updated the README or landing page
  • No docs needed

📌 Notes

  • The release profile keeps thin LTO, and panics still unwind. Fat LTO would make the exe 16% smaller but save only 3 MB per update and 1.7 MB of the installer, for twice the build time. panic = "abort" would save another 18 MB on disk, but any panic in database work would close the whole app.
  • A query run that panics drops its tab's session, so that tab's open transaction is rolled back and the usual rolled-back notice appears. Other tabs and connections are untouched.
  • UI actions that run on tokio through state::spawn show the bug as an error toast. The results pane keeps the panic message as the error's detail.
  • crash.log appends each panic with its time and starts over past 1 MB. A panic in UI code still closes the app on Windows and macOS, and its log entry is followed by a second "cannot unwind" entry.
  • crash.log backtraces are bare addresses, because the release exe is stripped and no PDB ships. The panic message and the file and line it came from are still there.
  • Most of the remaining size comes from upstream: tiberius pulls in aws-lc (about 1.3 MB), GPUI Kit ships resvg 0.45 next to GPUI's 0.46 (about 1.1 MB), and GPUI enables 15 image formats (about 0.9 MB).

@Bare7a Bare7a changed the title chore(BAR-29): Shrinks the release binary with fat LTO and panic abort chore(BAR-29): Shrinks the release binary with fat LTO and an LZMA installer Nov 1, 2026
@Bare7a Bare7a changed the title chore(BAR-29): Shrinks the release binary with fat LTO and an LZMA installer chore(BAR-29): Shrinks the release binary and reports panics as errors Nov 1, 2026
@Bare7a Bare7a changed the title chore(BAR-29): Shrinks the release binary and reports panics as errors fix(BAR-29): Reports panics as errors and compresses the installer with LZMA Nov 1, 2026
@Bare7a
Bare7a merged commit 25a8dcc into master Nov 1, 2026
3 checks passed
@Bare7a
Bare7a deleted the chore/BAR-29_smaller-release-binary branch November 1, 2026 22:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant