Skip to content

VietIME Suite 0.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 26 Apr 15:55
· 3 commits to main since this release

Added

Installer CLI (vietime-installer) — Phase 2

  • install subcommand: one-click installation of Vietnamese IME stacks
    (fcitx5-bamboo, fcitx5-unikey, ibus-bamboo, ibus-unikey).
  • rollback subcommand: atomic rollback to pre-install state using
    SHA-256-verified snapshot manifests.
  • snapshots subcommand: list and manage installation snapshots.
  • list subcommand: enumerate available engine combos.
  • --dry-run flag: full plan execution without mutations.
  • Pre-state detection: distro, session type, desktop environment.
  • Package manager integration: apt (Debian/Ubuntu), dnf (Fedora),
    pacman (Arch).
  • Environment variable configuration: /etc/environment, ~/.profile,
    ~/.config/environment.d/.
  • im-config integration for default IM framework switching.
  • Snapshot store with 0700 permissions and atomic file writes.

Bench CLI (vietime-bench) — Phase 3

  • run subcommand: automated compatibility matrix runner across
    (engine x app x session x mode) combos with profile-driven expansion.
  • validate subcommand: loads all test vectors and checks for duplicate
    IDs, empty fields, and Unicode NFC normalisation.
  • report subcommand: renders results as JSON, Markdown tables, or
    colour-coded HTML dashboard.
  • compare subcommand: diffs two runs with regression markers (>5% drop).
  • inspect subcommand: shows failure details and reproducer commands.
  • list subcommand: enumerates apps, sessions, modes, drivers, profiles.

Test vectors

  • 500 Telex vectors (T001–T500) covering modifiers, tones, combined
    diacritics, common words, phrases, sentences, and edge cases.
  • 25 bug regression vectors (BUG-001–BUG-025) with known_failing_on
    annotations referencing upstream issues.

Drivers & runners (9 apps, 2 sessions, 2 IM frameworks)

  • Session drivers: X11 (Xvfb + openbox), Wayland (Weston headless).
  • Keystroke injectors: xdotool (X11), ydotool/wtype (Wayland).
  • IM drivers: IBus (ibus-daemon lifecycle, engine activation, gsettings
    mode switch), Fcitx5 (fcitx5 lifecycle, config file mode switch).
  • App runners: gedit, kate, firefox, chromium, vscode, libreoffice,
    slack, discord, obsidian (Electron macro).
  • Shared xdotool helper for window search, focus, select-all, clipboard
    capture.

Profiles

  • Built-in profiles: smoke (3 combos), full (48 combos),
    bugs (4 combos).
  • TOML-based custom profiles with Cartesian product expansion.

Scoring

  • Per-vector exact match + Levenshtein edit distance via strsim.
  • Aggregate accuracy percentage, weighted score, total edit distance.

Reliability

  • Injection retry (3x with 200ms backoff).
  • Capture retry (2x with 500ms delay for empty reads).
  • Run result persistence: runs/<id>/summary.json, per-failure JSON,
    latest symlink.

CI

  • Nightly bench workflow (bench-nightly.yml): cron 2am UTC +
    manual dispatch, 4-combo matrix, artifact upload, HTML gh-pages deploy.
  • validate-vectors job added to main CI.
  • Auto-label issue bot for component/type/engine classification.
  • Bench result JSON Schema (schemas/bench-result.v1.json).

Documentation

  • docs/reproduce-locally.md: prerequisites, quick start, Docker setup.
  • docs/user/{vi,en}/bench.md: compatibility matrix user guide.
  • docs/user/vi/contributing-test-vectors.md: vector format and ID rules.
  • docs/user/{vi,en}/troubleshooting.md: 20-item FAQ for common issues.
  • docs/dev/bench-poc.md: PoC design for headless IME testing.
  • docs/dev/bug-analysis/: template for upstream bug root cause analysis.