Repository navigation
Conversation
Add a RemoteSetup logic driver that passes setup commands from the Concierge and Signage Manager setup flow to Booking Panel, Control and Signage devices. Implements the interface in docs/remote-setup.md of PlaceOS/user-interfaces. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Match the updated interface in PlaceOS/user-interfaces#718: - `register` takes no config and removes the device from `clear_list` - `device_<id>` holds configure commands only - `clear` adds the device to `clear_list`, also if it is not registered - add `clear_system` and the `clear_systems` binding - keep 1,000 entries maximum in each list Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Match PlaceOS/user-interfaces#718: a device that is set up also applies configure commands, so the setup flow can change its system. - `configure` does not need the device in `devices` - `complete` takes the device app and adds a device that is not listed - keep 1,000 pending commands maximum. Removing a device keeps its command Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
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.
Setting up a booking panel, control panel or signage display means typing a system ID on the device. PlaceOS/user-interfaces#718 adds a QR code to the setup screen, so a person can pick a system on a phone instead. The apps need a
RemoteSetupdriver to pass changes between the phone and the device. This PR adds that driver.How it works
register, then every 15 minutes. The driver shows it in thedevicesbinding.configure. The driver puts the command in thedevice_<id>binding and returns its ID. The device applies it and callscomplete, and the driver records the new config.devices.completeadds it, using the app that the device sends.clear(device_id), which adds the ID toclear_list. The ID stays until the device registers again.clear_system(app, system_id), which adds an entry toclear_systems. Devices of that app that show that system clear.configure,clearandclear_systemneedSupportaccess. Any signed-in device can callregisterandcomplete.devices, pending commands,clear_listandclear_systemseach keep 1,000 entries at most, and the oldest go first.clear_listIDs go after 7 days (device_ttl_hours). Commands andclear_systemsentries go after 15 minutes (command_ttl_minutes).devicesare sent at most once per second. Check-ins that only updatelast_seenare sent once per minute.Devices, commands and clears are not kept across driver restarts. Devices on their setup screen register again within 15 minutes.
Testing
The spec covers register, bad input, configure through to
complete(also for a device that did not register), clearing by ID and by system, and stale removal. It passes in the harness.Created with Claude Opus 5.5 in Claude Code (T3 Code).
🤖 Generated with Claude Code