Releases: vk0eppel/Patch
Releases · vk0eppel/Patch
Release list
v0.9.3
v0.9.2
Maintenance release: two behavior fixes riding on a large internal refactor series (#177–#188).
Fixed
- Settings → Behavior → Reset now resets every setting. The old reset silently skipped Flash whole screen, leaving a stale value after a reset. Factory defaults are now owned by the engine, so the Reset button can't drift from them. (#179, #180)
- An unresolved network pin is now fully inert outbound. The presence heartbeat could unicast to dynamically-discovered peers even before an interface was pinned, contradicting the mandatory-pinning confinement rules. While unresolved, presence now goes to configured Static Peers only. (code-review follow-up to #178)
Internal
- Three rounds of architecture deepening (#177–#188): the UI command surface is a single test-enforced bridge seam, config mutations flow through one
ConfigPatchcommand, macro saves travel as one typed object end-to-end, the peer-import flows share one request/offer gate, and ~1,300 lines of pass-through and duplicated code were deleted. Test suites grew from 313+291 to 321+299 (Rust+Flutter).
Full Changelog: v0.9.1...v0.9.2
v0.9.1
Fixes
- Recover from a lagged event stream instead of silently losing pushes.
- Harden DM handlers and codec against crafted/echoed packets.
- Three AppStore fixes in message buffering and peer refresh.
- Four peer-discovery review findings.
- Five peer/messaging review findings.
- Three wire/FFI-boundary review findings.
Full Changelog: v0.9.0...v0.9.1
v0.9.0
Behavior changes
- Mandatory interface pinning (#154–#157): "Auto" network mode is gone. Patch now requires you to pin a network interface in Settings → Network (auto-selected on first run when only one is usable) before dynamic discovery or traffic flows. See ADR-0011.
Fixes
- Messages now sort by local arrival order rather than the sender's clock (#164), so a peer with a skewed system clock can no longer reorder the message list.
Internal
Two rounds of architecture cleanup — no user-visible behavior change: registry/presenter consolidation, a shared OSC-target validation seam, discovery peer-lifecycle and reliability-loop extraction, dead pass-through deletion in the Rust↔Flutter bridge, and a consolidated flash-decision path (#158–#173, #175–#176). Covered by 298 Rust tests and 284 Flutter tests, all green.
Full Changelog: v0.8.0...v0.9.0
v0.8.0
v0.7.4
v0.7.3
v0.7.2
v0.7.1
What's new
In-app help system
- Bundled all user docs (Quick Start, Networking, Channels & Show Files, OSC Integration, Integrations, Troubleshooting) as app assets — readable offline, no browser needed on a show floor
- New Help & Documentation section at the bottom of Settings with one-tap access to every guide
- Contextual ? buttons next to the Network interface picker, OSC port field, and Static Peers header — open the relevant guide instantly
- Smarter Peers panel empty state: when no peers are found, a hint explains what to do and links directly to the Networking guide or Settings
Doc fixes
- Networking: corrected NIC change behaviour (applies live, no restart); macOS Local Network permission version (12+); added amber/stale dot state; OSC port can be changed in Settings UI
- Integrations: MIDI macro triggers are fully implemented — removed stale "planned" note
- Quick Start: added amber dot state; removed contradictory channel-tab tap description
- Channels & Show Files: corrected RF default colour; expanded CH1–CH4 macro rows
- OSC Integration: documented 6 previously undocumented addresses (DM, channels/macros request-reply)
- Troubleshooting: added amber/stale dot state
Full Changelog: v0.7.0...v0.7.1
Full Changelog: v0.7.0...v0.7.1