Conversation
emit DepartureDelay alongside legacy BoatDepartureDelay ignore the new alias in boat comparison logic update example route data and test fixtures reorder portData to list portWN before portES
replace accidental shallow-copy persistence with explicit per-port departure-delay caching keep PortDepartureDelay live while a boat is docked and late freeze the value after departure until the next boat at that port takes over add a regression test for opposite-port persistence on ed-king-style traffic
update better-sqlite3 to a Node 24 compatible release refresh lockfile verify the targeted FerryTempo regression test still passes
replace fixed -8 sun-time formatting with America/Los_Angeles update getTimeFromEpochSeconds to support IANA timezones while preserving numeric-offset callers add regression coverage for Pacific daylight saving time
Also rename BoatDepartureDelay to DepartureDelay for consistency.
ckulfan
reviewed
Mar 24, 2026
ckulfan
reviewed
Mar 25, 2026
Collaborator
Author
|
Roger that on the line count. Apologies. It should primarily be a re-ordering of the json fields, other than renaming BDD to just DD. It suggested keeping both for the time being, for the exact breaking issue you mentioned. But it will only break DD dial (if I’m not mistaken). And so few clocks are out there, that I decided to just go bold. Only you and Alex will need to update (Keith’s clock is on display downstairs, so I’ll flash as soon as the server is live).Thank you Craig!On Mar 24, 2026, at 17:04, Craig Kulfan ***@***.***> wrote:
@ckulfan commented on this pull request.
In data/ExampleRouteData.json:
@@ -69,7 +77,7 @@
"AtDock": null,
"ScheduledDeparture": null,
"LeftDock": null,
- "BoatDepartureDelay": null,
Just reaffirming that this will break existing clock functionality until those devices have been updated to the latest version of FTClient.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: ***@***.***>
|
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 PR cleans up the FTServer route-data contract so the emitted JSON, schema, example payloads, and generated docs are aligned and easier to reason about.
What Changed
boatDatafields into a more coherent, stable order.portDatafields into a more coherent, stable order.BoatDepartureDelayalias and standardized onDepartureDelay.MMSIPositionUpdatedTerminalIDPortETAPortStopTimerPortArrivalTimeMinusWhy
The route payload had drifted over time:
BoatDepartureDelayandDepartureDelayexisted for the same conceptThis PR makes the contract cleaner and more consistent without changing the meaning of the data, aside from the intentional removal of the old
BoatDepartureDelayalias.Notes
boatDatais not just reordered:BoatDepartureDelayis removed in favor ofDepartureDelay.portDatakeeps the same runtime fields, but they are now emitted in a more coherent order.Testing
npm run docs.npm test -- --runTestsByPath test/FerryTempo.test.js test/Utils.test.js