Repository navigation
v1.2.1
Infinitune 1.2.1: keyboard-operable oneshot sliders on Node 26
The seek and volume bars on the oneshot and reimagine pages now work with the keyboard, touch, and screen readers, and Infinitune runs on Node 26.
Real sliders for oneshot playback
- The seek and volume bars were clickable areas: keyboard users could focus them but not move them, and screen readers announced them as buttons. Each bar is now a real slider with the same look.
- Arrow keys, Page Up/Down, and Home/End seek or change the volume. Touch dragging works, and screen readers hear values such as "0:19 of 0:40" and "60%".
- A click lands exactly where the bar was hit. Seeking is disabled until this song is the one playing, so clicking the bar no longer moves a different song.
Node 26
- The container image now runs on Node 26 (
node:26-slim), the newest release line, which becomes LTS on October 28, 2026. CI tests on Node 26 as well. - Node 25 and later no longer ship corepack. The image installs the pinned pnpm with npm, and CI uses
pnpm/action-setup.
Development and maintenance
pnpm devhydrates pages again. Since 1.2.0's dependency update, the app pinned an older TanStack Store than the router needs, and Vite's dev server served the router that older copy. Production builds were not affected.- Six unused player components, five icons that only they used, and the
@dnd-kitpackages are removed, about 3,600 lines in total. - The SonarQube scan skips Dependabot pull requests, which never receive the scanner token.
Upgrade notes
- The image base changes from
node:22-slimtonode:26-slim. The app still runs asnode(uid 1000), and data and configuration stay compatible with 1.2.0. - Self-hosted CI runners need
libatomic1for Node 26. The CI workflow installs it when it is missing. - The known issue from 1.2.0 remains: a worker cancelled during a slow storage save can still overwrite its replacement's audio file.
Pull request: #55.


