Add xovi extension management with Vellum integration#7
Merged
Conversation
Deploy/remove curated QMD extensions (unlock Methods content, page size normalization, quicksheet template inheritance, prevent zoom-out) directly from the Device & Sync page. Detects xovi/Vellum/qt-resource-rebuilder on the device, with one-click install/uninstall via Vellum. Key changes: - xovi status checking, deploy, remove, and Vellum install/uninstall routes - Extension definitions with firmware version mapping and SHA-512 validation - DeviceXoviCard component with extension selection, deploy progress, and error handling - Normalize device model codenames (Chiappa→rmPPM, Merlot→rmPP) from /sys/devices/soc0/machine for correct UI labels and recommendations - Ref-counted busy state so xovi and sync operations independently block page navigation - Fix rebuild_hashtable hang by piping stdin (script has interactive prompt) - Fix Vellum uninstall to explicitly remove all three packages - CI and Docker checksum validation for bundled QMD files - Documentation for xovi extensions, updated quickstart and device-sync docs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add server/data/xovi-extensions/ to git (was excluded by data/ ignore rule) — CI and Docker need manifest.json + QMD files for validation - Move rebuild_hashtable stdout out of step messages into a separate log field — prevents huge xochitl output from flooding the UI - Add "Download log" button for verbose rebuild output - Fix Vellum uninstall to remove all three packages explicitly - Default page size normalization to None instead of auto-recommending - Improve page size description to explain sync-target reasoning - Clear stale operation errors when re-checking xovi status Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The rebuild_hashtable script temporarily starts xochitl to build the hashtable, causing the device UI to restart during the process. Update progress messages to set expectations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/sys/devices/soc0/machine(e.g. "reMarkable Chiappa" →rmPPM) for correct UI labelsrebuild_hashtablehang (script has interactiveread -pprompt — now piped viaecho |)qt-resource-rebuilder,xovi-extensions,xovi)Test plan
pnpm test— 995 tests passpnpm lint— cleanpnpm build— clean🤖 Generated with Claude Code