Skip to content

v0.2.6

Latest

Choose a tag to compare

@Ethran Ethran released this 27 Jul 11:39
45fe631

Notable v0.2.6

Small corrections and improvements

Crash Handling & Resilience

  • Durable Crash Reporting: Writes fail-safe crash logs to disk before process death, surviving OOM conditions.
  • Crash Logs Viewer: Added log inspection (Settings → Debug) with copy, share, and clear options.
  • Crash-Loop Detection: Tracks and reports rapid startup crash loops across app restarts.
  • Corrupt Settings Recovery: Gracefully handles invalid settings or pen types with safe fallbacks instead of crashing at launch.

Canvas & Performance

  • Zero-Allocation Scrolling: Uses canvas matrix transformations for scrolling to eliminate per-frame allocations.
  • In-Place DB Updates: Updated stroke/image moves, resizes, and color changes to run in-place, fixing constraint crashes and resize/undo bugs.
  • Database I/O Safety: Hardened stroke and image writes against disk I/O exceptions (SQLiteDiskIOException).

Sync Engine

  • Streaming Uploads: Streams page point data via temporary disk files to prevent heap spikes on large pages.
  • Lightweight Media GC: Queries file URIs directly without loading full stroke trees into memory.
  • Manifest Self-Healing: Detects missing remote manifests and re-uploads local state to prevent endless retry loops.
  • Orphan Cleanup: Removes abandoned remote directories older than 7 days that aren't linked locally.
  • Granular Timestamps: Advances individual Page.updatedAt timestamps on edit.

Bug Fixes

  • Deleted Notebook Navigation: Handles background notebook deletion gracefully by returning to the library instead of crashing.
  • PDF Export: Fixed pagination overlapping issues.
  • Focused Call Stacks: Filters logcat traces to app-specific frames for easier debugging.

Full Changelog: v0.2.5...v0.2.6