Repository navigation
animaEngine 1.1.0
Pre-releaseanimaEngine 1.1.0
The first release after 1.0, and the first one shaped by actually
running the application rather than only reading it.
Everything before this was verified the way a library is verified: unit
tests over the parsers, fuzzing over the byte-facing code, a memory soak,
static review. All of that held — and none of it could see that the
command palette never opened, that the "+ Add" button in the keybindings
tab was painted over by the row beneath it, or that dragging a character
was not implemented at all on the native Wayland backend. Those are
things you only find by putting the overlay on a screen and clicking it.
So this cycle built a harness that does exactly that: a headless
compositor, a virtual pointer and keyboard, and screenshots. It found
eighteen defects. Several of them made whole features unreachable.
What you'll notice
- Poke. Tap a mascot in edit mode and it reacts. Previously a tap was
swallowed as a zero-distance drag. - Hover-startle. Mascots recoil from an approaching cursor. There's an
Appearance toggle if you'd rather they didn't. - Dragging works on native Wayland. Left-click selects a character and
you can drag it around. On that backend, selection was right-click only
and drag did not exist — the core interaction of a desktop-pet overlay
was missing, and the module's own documentation implied otherwise by
leaving it off the limitations list. - Ctrl+K works again, along with Ctrl+A/C/V/X/Z and shift-selection in
every text field. On native Wayland the modifier state reaching the UI
was hardcoded to "nothing held", so every modifier chord silently did
nothing. The same bug meant recording a new binding stored
"Ctrl+Shift+X" as a bare "X". - The keybindings tab is usable. Rows no longer paint over each other;
the "+ Add" button of any action with two chords is no longer completely
hidden behind the next row. - Clicking the settings panel no longer discards your selection.
- The Light theme's inactive tab icons are readable — they sat at
2.11:1 against a 3:1 requirement, and that tab bar is icon-only, so the
glyph is the control's entire label. - Ten locales stopped showing English. The whole behaviour picker drew
hardcoded strings while its translations sat unused in every.ftl
file.
Under the hood
A long list of correctness and hardening fixes — bounded reads across the
untrusted-input surfaces, 0600 on config and crash files, path
redaction in logs, a single saving shutdown path, entity ids that can't
collide, unbounded polls and event waits given limits. The full list is in
CHANGELOG.md.
Two of the fixes are worth calling out because of what they say about the
gaps that were closed:
cargo testwas deleting and rewriting 34 committed files. The demo
generation test pointed the process at the repository, removed
assets/demo, and regenerated it in place. It left the working tree
dirty with a diff no review would catch — binary, one pixel, identical
file size — and would have destroyed the shipped assets outright if a
generator had panicked midway.- Two new tests close the classes that hid these. One asserts every
English message key is actually referenced by the code; the existing
parity test proved translations existed, but nothing proved the app
asked for them. The other asserts WCAG contrast for the ordinary Dark
and Light palettes, which had no such guard — only the two
high-contrast themes did.
Compatibility
No change to the config schema, the D-Bus surface, the CLI flags, the
accepted asset formats, or the XDG paths. A config.toml from 1.0.0
loads unchanged. See stability-policy.md.
Not in this release
- Windows is not supported. This release contains groundwork for the
port — anOverlayPlatformtrait, target-gated Linux/BSD dependencies,
and a Windows backend skeleton — but that skeleton has never been
built or run on Windows. It can't be meaningfully cross-compiled from
Linux, and no CI job covers it. It's scaffolding, not support. - Nine of the ten locales are machine-translated for the strings added
here and in 1.0.0, and still want a native-speaker pass.
Known gaps in verification
Recorded honestly, since this release is largely about the difference
between "tested" and "verified":
The headless harness covered the native Wayland path in English and
German. Not yet exercised interactively: the winit/X11 path (no
compositing X server was available), Shimeji pack import, file
drag-and-drop onto the overlay, preset Append/Replace, multi-monitor
visual behaviour, the two high-contrast themes, and the eight remaining
locales. docs/runtime-findings.md keeps that map, along with the
reproduction recipe and the traps involved in driving a Wayland
compositor from a test.