vietc/CHANGELOG.md
Khoa Vo a714dca0be
Some checks are pending
Build & Release / Build & test (push) Waiting to run
Build & Release / Build packages (push) Blocked by required conditions
release: v0.1.5 — Event Sourcing, Flatpak build fixes, icons
2026-06-28 21:20:19 +07:00

3.4 KiB

Changelog

v0.1.5 (2026-06-28)

Event Sourcing (privacy-safe architecture)

  • EventStore replaces Vec<char> keystroke history — typed InputEvents (KeyTyped, Backspace, Flush, Paste) with push/pop/clear/raw_keystrokes/pattern_hash
  • Engine::replay_events() — stateless replay through fresh BambooEngine (replaces replay_keystrokes())
  • Engine::replay_events_to_commands() — computes diff commands (Type, Backspace) comparing expected vs screen output
  • EventStore::pattern_hash() — sha256 of event type sequence; privacy-safe pattern detection without text recovery
  • Daemon updated — all keystroke_history references migrated to event_store; replay_and_inject(), replay_backspace(), word_to_commit(), replay_reset() use new Event Sourcing API

Flatpak Build Fixes

  • Fixed SDK/RUNTIME swap: flatpak build-init arg order is SDK then RUNTIME; previous org.gnome.Platform as SDK meant /usr/lib/sdk/ was never mounted
  • Rust SDK extension now auto-mounts at /usr/lib/sdk/rust-stable/ — no symlinks or file copies needed
  • Icons: renamed to io.github.vietc.VietPlus.* prefix (Flatpak export requires app ID prefix for all icon files)
  • Desktop file: removed unregistered InputMethod category
  • Tray: icon_name() returns Flatpak-prefixed names when running inside Flatpak sandbox (detected via /app/bin/vietc-daemon); icon_pixmap() programmatic fallback unchanged
  • Bundle: VietPlus-0.1.5.flatpak (46 MB, runtime org.gnome.Platform//50)

Documentation

  • packaging/flatpak/FLATPAK_BUILD.md — detailed build instructions (prerequisites, manual step-by-step, installation)
  • RELEASE_CHECKLIST.md — step-by-step release process (bump version, build, test, push, create release)

Licenses

  • MIT license headers (// SPDX-License-Identifier: MIT) on all 22 .rs files across 6 crates

Icons

  • packaging/icons/vietc.svg — app icon (keyboard + VN badge)
  • packaging/icons/vietc-vn.svg — tray icon (red VN)
  • packaging/icons/vietc-en.svg — tray icon (gray EN)

v0.1.4 (2026-06-28)

Flatpak Packaging

  • Flatpak bundle with all components: daemon, CLI, system tray, uinputd, XRecord, wrapper script
  • System tray icon via D-Bus StatusNotifierItem (ksni)
  • Build script packaging/flatpak/build-flatpak.sh — automated build from source
  • Permissions: X11, Wayland, D-Bus session bus, input devices, IPC

Documentation

  • README updated with Flatpak-only install/build instructions

Clipboard & Injection

  • Fix clipboard-into-text race — Eliminated race condition where clipboard content leaked into typed text during Unicode injection.
  • CI/CD pipeline — GitHub Actions workflow for automatic .deb and AppImage builds on push.

Tests

  • 106 tests passing (72 engine + 16 CLI + 12 protocol + 5 auto-restore + 1 tone placement).

Releases

  • vietc_0.1.4-1_amd64.deb, Viet+-0.1.4-x86_64.AppImage on GitHub + Forgejo.

v0.1.3 (2026-06-26)

  • ua-horn cluster fix, clipboard_context save/restore, control-key consumption
  • 106 tests, DEB + AppImage

v0.1.2 (2026-06-26)

  • Flush char forwarded as raw key, auto-restore English words
  • Tone placement qu/gi/uê/uơ, skip auto-repeat, Enter key

v0.1.1 (2026-06-26)

  • Fix Telex tone key consumption, persistent X11 connection

v0.1.0 (2026-06-26)

Initial release — bamboo engine port, evdev capture, uinput injection.