Repository navigation
The release where first start stopped being a trap, and the wizard learned to
listen. The full detail — every entry with its why — is in
CHANGELOG.md.
First start, redone
- Trust on first use, the model Jellyfin and the *arr suite use: an
unclaimed installation opens on its wizard, and creating the first account
claims it. The bootstrap token is gone — under Docker it made the first
account impossible to create. - A mandatory access step: open on the local network (said out loud, in the
terminal too, at every start) or protected by accounts/SSO.romule access open|closeflips it from the terminal when the interface is out of reach. - Two-factor sign-in with a QR code — encoder written in stdlib, verified by
its own decoder against the published reference vector.
The console, at last
- Pairing works from a container. The connection is checked rather than
taken on adb's word (adb connectexits 0 on links that sitoffline), a
flat refusal right after pairing is retried once, the paired address itself
is tried first, and the connection port is swept for outward from the
pairing port when everything faster failed. - The wizard asks how the console is linked — cable or Wi-Fi — and shows that
path alone; once connected it shows the console's own answers: name,
battery, Android version. Adding a console opens the same connect dialog on
a blank entry, and the console names itself on first contact. - The ROMs root is found, by folder names (aliases included:
PS1,
Sega) and by contents when names say nothing — which is why every platform
now shows its game count.
Interface
- Folder navigation is one reusable modal; platform cards carry tinted
silhouettes; provider settings hide until their provider is chosen; an
« À propos » tab with version, release notes, source and tools. - The update pill can be dismissed, server-side, until the next version.
- ~370 sentences moved into named, accented constants; the terminal speaks
English (ROMULE_LANG=fropts into French) and no longer mixes languages
mid-stream.
Nets that now bite
Every defect above got a checker or a test proven to fail without its fix:
routes vs methods, duplicate DOM ids, sentences split by emphasis, sentences
hidden in ternaries, config keys vs docs vs README counts, and a port sweep
tested with 1100 file descriptors open — the condition that had silently
disabled it.
Upgrade: docker compose pull && docker compose up -d. Configurations
from 0.3.x are read as they are; going back keeps your pairing.