Repository navigation
Releases: Pavel1778/Klyrshift
Release list
v0.2.9
What's Changed
- fix(screenshots): make README renders byte-reproducible; harden update URL by @Pavel1778 in #22
- chore(site): pin sharp past the libvips/libheif/librsvg advisories by @Pavel1778 in #23
- chore(site): migrate landing page to Astro 7 + Tailwind CSS 4 by @Pavel1778 in #33
- fix(site): complete the LinguaFix → Klyrshift rename (live hosts) by @Pavel1778 in #34
- Pin the Node major (24), not a patch, for the Layero build by @Pavel1778 in #35
- Add always-on learning and stop re-fixing undone corrections by @Pavel1778 in #36
- chore(deps): bump actions/checkout from 4 to 7 by @dependabot[bot] in #24
- chore(deps): bump actions/setup-node from 4 to 7 by @dependabot[bot] in #25
- chore(deps): bump actions/setup-python from 5 to 7 by @dependabot[bot] in #26
- chore(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #28
- chore(deps): update tomli requirement from >=2.0.1 to >=2.5.0 by @dependabot[bot] in #29
- chore(deps): bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #30
- Correct the Layero Node notes against the real deploy log by @Pavel1778 in #37
- Prepare v0.2.9: Debian 13 hardening, undo safety, dependency drift by @Pavel1778 in #38
New Contributors
- @dependabot[bot] made their first contribution in #24
Full Changelog: v0.2.8.4...v0.2.9
v0.2.8.4
Full Changelog: v0.2.8.3...v0.2.8.4
v0.2.8.3
Full Changelog: v0.2.8...v0.2.8.3
v0.2.8
What's Changed
- v0.2.8 — fix text deformation + full audit (tasks 1–10, features A/B) by @Pavel1778 in #21
Full Changelog: v0.2.7...v0.2.8
v0.2.7
What's Changed
- fix: undo hotkey docs match the real default (SHIFT+BACKSPACE), v0.2.7 by @Pavel1778 in #20
Full Changelog: v0.2.6...v0.2.7
v0.2.6
What's Changed
- fix: v0.2.6 — daemon-written history, config-safe persist, short-word hotkey by @Pavel1778 in #18
- fix(packaging): prune nested bytecode + empty dirs on purge (v0.2.6 release recovery) by @Pavel1778 in #19
Full Changelog: v0.2.5...v0.2.6
v0.2.5
v0.2.4
v0.2.3
v0.2.3
Установка / Install
wget https://github.com/Pavel1778/LinguaFix/releases/download/v0.2.3/linguafix_0.2.3_all.deb
sudo apt install ./linguafix_0.2.3_all.debSHA-256: 0be9878a1ac47f877bf96697343bbc671f89f295222b95d6fed5cbe741515948
[0.2.3] - 2026-10-07
Added
- Two-edit typo correction for long words: a word of at least six characters may
now be corrected withintypo_max_distance_longedits (default 2), but only
when the best candidate is clearly more frequent than the runner-up. Short
words keep the strict one-edit rule. Config keys:typo_max_distance_long,
typo_long_word_threshold,typo_top1_ratio_strict. - Adaptive idle timeout (
analysis_timeout_adaptive, on by default): the
fallback that flushes a word typed without a separator now follows the user's
typing speed — shorter for a fast typist, longer for a slow one — clamped to
0.3–2.0 s. Only inter-key timing is recorded, never characters. - A "Т9" tab in the GUI with a single master toggle for typo correction and the
new punctuation cleanup, plus per-rule rows. - Opt-in punctuation cleanup (
punctuation.py): dashes, ellipsis, Cyrillic smart
quotes and spacing, applied only when layout detection and typo correction both
decline. A replacement the input backend cannot type is refused wholesale rather
than half-applied. Off by default. - Search-engine metadata for two indexed hosts: each host declares itself
canonical (https://linguafix.layero.appfor the Russian primary,
https://linguafix.vercel.appfor the English mirror) and cross-links the other
withhreflang(ru,en,x-default), so the copies do not compete as
duplicate content. A generatedrobots.txtand a sitemap are emitted per host,
the defaultdescription/og:locale/JSON-LD follow the host language, and the
README carries a keyword paragraph plus both site links. - Google and Yandex site-verification files served on both hosts, an
apple-touch-icon, and a footer "About" block in the host language. - Packaging contract tests (
tests/test_packaging_contract.py): the systemd
user unit (noNice/CPUSchedulingPolicy,Restart=always), the desktop
entry, package-data coverage, bytecode stripping inbuild_deb.sh, the
release workflow's tag filter, and a realdpkg-debcontents check.
Changed
linguafix fixnow loads the user dictionary before detection, so a taught
brand such asvercelis corrected by the CLI exactly as the daemon does.
Fixed
-
The GUI no longer freezes ("приложение не отвечает"): the home page ran its
daemon probes (systemctl,g3kb-switch,xprop, the focused-app D-Bus query)
synchronously on the GTK main thread on a timer and on every toggle click. They
now run on a worker thread (gui/async_utils.run_in_background) and report back
on the main thread; the toggle click and its reconcile poll are async too. -
The window tab labels are no longer truncated ("Глав…"): the fixed wide
ViewSwitcheris replaced by a headerViewSwitcherTitleplus a bottom
ViewSwitcherBarthat appears only on narrow windows. -
daemon_control._systemctlbacks off for 10 s after a timeout so a hung user
D-Bus cannot re-pay the 5 s timeout on every GUI refresh. -
The desktop launcher declares
StartupWMClassequal to the application id, so
GNOME associates the running window with its installed entry. -
Both hosts publish their own sitemap and
robots.txtinstead of the preview
suppressing them, so each is independently discoverable without duplicate content. -
Landing page mobile audit (8 items): removed the leaked developer note
«Плейсхолдер — замените реальным скриншотом» from all four mock-up SVGs;
replaced the external shields.io footer badges (broken behind a slow/blocked
CDN, and not proxied by the host) with self-hosted SVGs in
site/public/badges/; the footer now names the single canonical host
(linguafix.layero.app) instead of a mirror link that hit a login wall; code
blocks now wrap instead of clipping
at 375 px; the install tabs stack vertically on mobile; localised the
«Privacy First» feature title to «Приватность»; softened the step-03 copy to
«Атомарно, одной транзакцией». -
The opt-in update check no longer blocks the keyboard event loop: the daily
network request runs on a worker thread, so a slow or offline network cannot
freeze typing for the whole request timeout. -
Landing page: the power glyph in the hero and the placeholder window is centred
again. The arc's sweep flag was inverted, which pushed the icon to the top of
the button instead of forming a ring around its centre. -
Landing page demo leaves URL, e-mail, path and version tokens untouched,
matching the daemon's structural-separator rule. -
Re-synced
blackformatting oftests/test_data_sync.pywith the current
release of the formatter.
Removed
- Stale release tag
v0.2.0-stage2and the merged feature branches;mainis
the only branch left inorigin.
Full Changelog: v0.2.2...v0.2.3
v0.2.2
What's Changed
- v0.2.2: stop/kill via daemon_control, GUI config push, window resize fix, button restyle by @Pavel1778 in #16
Full Changelog: v0.2.1...v0.2.2