Repository navigation
feat(devices): device list updates from the APRS Foundation (F4.16) - #356
Merged
Merged
Conversation
Base automatically changed from
feat/f1.34-about-components
to
feat/f4.17-sbom
October 21, 2026 17:45
gx1400
force-pushed
the
feat/f4.16-device-list
branch
from
October 21, 2026 17:47
92aaa8f to
8005686
Compare
gx1400
force-pushed
the
feat/f4.17-sbom
branch
from
October 21, 2026 17:47
f426c90 to
3ae8ac2
Compare
The engine checks the aprs-deviceid list weekly (or daily, or never) and on Update now, with APRS.NET's AprsDeviceListSource and the kept copy's ETag, never while the Internet switch is off. A newer list that reads is kept as published, used at once, and every station heard is identified again; on start a kept list older than the built-in one is deleted. Settings › Data shows the list in use, the last check, Update now, the schedule and, on the desktop, the address; About credits the list. On a gateway Update now is the operator's and the address is the environment's. Closes #355
gx1400
force-pushed
the
feat/f4.16-device-list
branch
from
October 21, 2026 17:56
8005686 to
87980fe
Compare
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.
Stacked on #354. Closes #355. Spec:
docs/features/F4.16-device-list.md. The decisions were agreed 2026-10-19; what this build settled is under Built in the spec.Engine (
Engine.DeviceList.cs)On start, the engine loads the kept
tocalls.jsonif it reads and is newer than APRS.NET's built-in list. Otherwise it deletes the file and uses the built-in list.Schedule: the first check is 3 minutes after start, or one interval after the last check if that's later. Then it checks weekly by default (or daily, or never). The engine checks nothing while the Internet switch is off or the address is empty.
Update now runs a check at once.
A check sends the kept copy's ETag with
AprsDeviceListSource. If the server has a newer list that reads:StationStore.UseDeviceListnames every station already heard again.Otherwise the check reports
devicelist.not-newer,unreadable,unexpected-answerorunreachable.The last-check time and the ETag are kept with the settings. A client's save never overwrites them, and only the desktop may change the address.
Options:
Engine:DeviceList:Url(empty turns downloading off),Folder(defaults todeviceidin the data folder) andTimeout. The desktop setsUrlIsSetting.The new
devicelistHTTP client sends the same User-Agent as address lookup.EngineStatus.DeviceList,GetDeviceListAsync(everyone) andUpdateDeviceListAsync(operator-only on a gateway) are added, through the hub and the remote client.UI
Tests
DeviceListTests):