docs: catch #149's device sync page up with recent sync changes - #158
Merged
sdornan merged 21 commits intoSep 28, 2026
Merged
Conversation
The new UI picks platform icons from a list built into the image (rommapp/romm#4792), so icons bind-mounted over /var/www/html/assets/platforms no longer show there. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The new UI only loads the icons built into the image (rommapp/romm#4792), and the classic UI is being removed, so bind-mounting custom icons is no longer supported. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
docs: remove the custom platform icon guide
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
docs(install): state the minimum MariaDB and MySQL versions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KmjiC9WMP32QMybm4teqVJ
Vendors blader/humanizer (MIT) unmodified at 9862685f, the same copy rommapp/romm uses, and excludes it from Trunk so it stays byte-identical to upstream. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XXuG7JWgxP6DPLB182yD9v
Applies the vendored humanizer to the prose a change adds under docs/, skipping snippet partials and the nav file, and keeping headings (anchor targets), front matter, MkDocs syntax and UI labels as written. Ends with trunk and a strict mkdocs build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XXuG7JWgxP6DPLB182yD9v
docs: replace httpx references with httpx2
…-g30s9a chore: vendor humanizer and add a humanize-docs skill
Run the humanizer skill over every page under docs/ (snippets and Navigation.md excluded). Removes decorative bold, dashes, choppy fragments, staged openers, sales language and exclamation closers. Front matter, headings, MkDocs syntax, code, links and UI labels are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Checked against rommapp/romm master: - watcher delay defaults to 5 minutes (backend/config/__init__.py), not 10 seconds - client API tokens are rmm_ + 64 hex = 68 chars (handler/auth/base_handler.py), not 44 - argosy-launcher and playnite-plugin are GPLv3, not AGPLv3, and GPLv3 is not permissive - indent the firmware legality admonition body so it renders inside the box - fix the "Where's can I find you?" FAQ heading typo Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
docs: humanize prose across all pages
rommapp/romm#4852 raised the default from 60 to 180. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
# Conflicts: # docs/reference/configuration-file.md
docs(streaming): document the RetroArch core override
docs: SEVEN_ZIP_TIMEOUT defaults to 180 seconds
…claude/pr-149-alignment-45er1r # Conflicts: # docs/developers/device-sync-protocol.md
Negotiate can now return a `delete` action (with `total_delete`) when a slot the device still holds was emptied on the server, and `download` also covers a device holding a removed version. Sessions belong to one launch rather than being cancelled by the next negotiate, and a session the 24-hour cleanup expired can still be completed. Also documents the `content_hash` baseline on upload, update and download confirmation, the `capabilities` registration field, the 409 from `allow_existing: false`, how device matching actually works, and the extra devices scope needed when passing `device_id` to the save endpoints. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016jZ2WEQAFScfBv7UGUscNZ
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
This is a follow-up to #149, targeting its branch. Merging it clears #149's conflict with
mainand brings the page back in line with the backend. Several sync changes landed inrommapp/rommafter #149 was opened (#4670, #4674, #4768, #4789,f0c49b6).Merge with
main0136284("humanize prose across all pages") reworded lines that #149 replaces. I kept #149's version in each conflicting hunk. The intro sentence was the only line both sides changed, and I keptmain's rewording there.Content fixes (
docs/developers/device-sync-protocol.md)deleteaction: negotiate returnsdeletewhen the device still holds a save for a slot that was emptied on the server. It comes with atotal_deletecount.downloadalso covers a device that holds a version the server removed.404for an unknown session and400for one that was cancelled or failed on purpose.content_hashbaseline: documented onPOST /api/saves,PUT /api/saves/{id}and the/downloadedconfirmation body, including when the server keeps or drops it.capabilitiesfield. Matching is onmac_addressfirst, thenhostname+platform. The server returns200for an existing device and201for a new one.allow_existing: falsereturns409 device_exists.device_idto the save endpoints also needsdevices.write(upload and update) ordevices.read(download), otherwise the call returns403./devicessocket namespace only carries install requests, so the device still decides when to sync.Checked against
backend/endpoints/sync/__init__.py,backend/endpoints/responses/sync.py,backend/endpoints/device/__init__.py,backend/endpoints/saves.py,backend/handler/sync/comparison.pyandbackend/tasks/scheduled/cleanup_sync_sessions.pyon currentmaster.The page passes prettier and markdownlint with the repo's Trunk configs, and
mkdocs build --strictsucceeds.AI disclosure
This change was written with AI assistance (Claude Code), working from a comparison of the page against the RomM server source. Please review it against the backend before merging.
🤖 Generated with Claude Code
https://claude.ai/code/session_016jZ2WEQAFScfBv7UGUscNZ
Generated by Claude Code