kovagoadi
6734c13963
Merge pull request 'Update debian:13 Docker digest to f324c7f' ( #25 ) from renovate/debian-13 into main
...
Continuous Integration / lint-and-security (push) Successful in 19s
Continuous Integration / tests-and-coverage (push) Successful in 24s
Reviewed-on: #25
2026-08-26 21:07:27 +02:00
kovagoadi
3641bf383e
Merge branch 'main' into renovate/debian-13
Continuous Integration / lint-and-security (pull_request) Successful in 19s
Continuous Integration / tests-and-coverage (pull_request) Successful in 23s
2026-08-26 21:06:04 +02:00
kovagoadi
db7fb8e09a
Merge pull request 'Fix ruff lint findings across client, protocol, and tests' ( #27 ) from claude/ruff-import-sorting-bb5651 into main
...
Continuous Integration / lint-and-security (push) Successful in 22s
Continuous Integration / tests-and-coverage (push) Successful in 26s
Reviewed-on: #27
2026-08-26 21:05:46 +02:00
kovagoadi and Claude
25953bea06
Fix ruff lint findings across client, protocol, and tests
...
Continuous Integration / lint-and-security (pull_request) Successful in 20s
Continuous Integration / tests-and-coverage (pull_request) Successful in 25s
Resolve 51 findings from the I/RUF/BLE/TRY002/S110/PLR0402 rule set:
- Sort imports and __all__ (I001, RUF022, PLR0402). The sys.path.insert
calls in check_public_calls.py and tests/test_e2e.py still precede the
openttd imports that depend on them.
- Replace unused unpacked values with _ (RUF059) and annotate the two
timetable lookup tables as ClassVar (RUF012).
- Narrow the best-effort excepts in OpenTTDClient.quit and
OpenTTDAdminClient.quit to (OSError, SocketClosed) and log at debug
rather than swallowing silently (BLE001, S110). The test doubles now
raise an OSError subclass so they still exercise that branch.
- Narrow the gamescript JSON fallback to json.JSONDecodeError. The broad
catch in receive_packet keeps a noqa: it guards untrusted wire data and
must degrade to a no-op packet instead of killing the connection.
- Use contextlib.suppress instead of try/except/pass in tests.
ruff check . is clean, 102 tests pass, coverage stays at 100%.
Co-Authored-By: Claude <[email protected] >
2026-08-26 20:57:56 +02:00
renovate-bot
1a2ea538e8
Update debian:13 Docker digest to f324c7f
Continuous Integration / lint-and-security (pull_request) Failing after 4m2s
Continuous Integration / tests-and-coverage (pull_request) Successful in 37s
2026-08-26 02:21:51 +00:00
kovagoadi
8e352ba248
Merge pull request 'Update debian:13 Docker digest to 34cd9e9' ( #23 ) from renovate/debian-13 into main
...
Continuous Integration / lint-and-security (push) Failing after 33s
Continuous Integration / tests-and-coverage (push) Successful in 24s
Reviewed-on: #23
2026-08-06 17:43:23 +02:00
kovagoadi
7fdd5f2fca
Merge branch 'main' into renovate/debian-13
Continuous Integration / lint-and-security (pull_request) Successful in 23s
Continuous Integration / tests-and-coverage (pull_request) Successful in 27s
2026-08-06 17:38:42 +02:00
kovagoadi
a9f5b2d5d9
Merge pull request 'Update debian:trixie-slim Docker digest to 3a39a05' ( #24 ) from renovate/debian-trixie-slim into main
...
Continuous Integration / lint-and-security (push) Successful in 49s
Continuous Integration / tests-and-coverage (push) Successful in 30s
Reviewed-on: #24
2026-08-06 17:38:34 +02:00
renovate-bot
e925659e28
Update debian:trixie-slim Docker digest to 3a39a05
Continuous Integration / lint-and-security (pull_request) Successful in 21s
Continuous Integration / tests-and-coverage (pull_request) Successful in 25s
2026-08-06 02:22:05 +00:00
renovate-bot
846d085e1a
Update debian:13 Docker digest to 34cd9e9
Continuous Integration / lint-and-security (pull_request) Successful in 1m0s
Continuous Integration / tests-and-coverage (pull_request) Successful in 28s
2026-08-06 02:22:00 +00:00
kovagoadi
f0ef4148b0
Merge pull request 'Add scheduled dispatch support (edit + authoritative view)' ( #22 ) from claude/station-realtime-planned-data-0fc51a into main
...
Continuous Integration / lint-and-security (push) Successful in 21s
Continuous Integration / tests-and-coverage (push) Successful in 25s
Reviewed-on: #22
2026-07-24 23:00:14 +02:00
kovagoadi
67e886f8d2
Merge branch 'main' into claude/station-realtime-planned-data-0fc51a
Continuous Integration / lint-and-security (pull_request) Successful in 20s
Continuous Integration / tests-and-coverage (pull_request) Successful in 25s
2026-07-24 22:58:39 +02:00
kovagoadi and Claude Opus 4.8
2eea541158
Add scheduled dispatch support (edit + authoritative view)
...
Continuous Integration / lint-and-security (pull_request) Successful in 22s
Continuous Integration / tests-and-coverage (pull_request) Successful in 24s
Editing (game port, OpenTTDClient): a core of JGRPP's scheduled dispatch
DoCommands — set_scheduled_dispatch (enable/disable), add/remove schedule,
add/remove/clear slots, and set duration/start date. Adds the command IDs
to protocol.py.
Viewing (admin, OpenTTDAdminClient.get_dispatch): the GameScript API has no
dispatch support, so a new server patch (docker/patches/0002-*) adds
read-only GSOrder.GetScheduledDispatch* / IsScheduledDispatchEnabled
getters, an AdminBridge GameScript get_dispatch handler exposes them, and
get_dispatch() returns the live schedules and slots (mirrors get_timetable).
Note: set_dispatch_start_date values are normalised by the engine relative
to current game time, so they read back offset from the requested value.
Includes unit + e2e tests, a demo in main.py, and protocol/timetable docs.
The AdminBridge GameScript and the patched OpenTTD-patches clone live
outside this repo; the 0002 patch file is the durable source for the latter.
Co-Authored-By: Claude Opus 4.8 <[email protected] >
2026-07-24 22:56:37 +02:00
kovagoadi
af1a865fd6
Merge pull request 'Add station listing and cargo queries to admin client' ( #21 ) from claude/station-realtime-planned-data-0fc51a into main
...
Continuous Integration / lint-and-security (push) Successful in 20s
Continuous Integration / tests-and-coverage (push) Successful in 23s
Reviewed-on: #21
2026-07-23 21:52:35 +02:00
kovagoadi and Claude Opus 4.8
81a4d9333d
Add station listing and cargo queries to admin client
...
Continuous Integration / lint-and-security (pull_request) Successful in 20s
Continuous Integration / tests-and-coverage (pull_request) Successful in 24s
Extends the AdminBridge GameScript JSON channel (the same relay used by
list_vehicles/get_timetable) with station support:
- list_stations(): enumerate stations, fire-and-forget like list_vehicles().
- get_station(): authoritative per-cargo snapshot of a station's live state,
with both the real-time waiting amount (GSStation.GetCargoWaiting) and the
planned cargodist link-graph flow (GetCargoPlanned), plus rating.
- get_station_cargo(): break one cargo type down by source station and by
next hop (the cargodist routing destination) for both waiting and planned
amounts, with optional from_station/via_station filters.
All three use stock GameScript API (no server patch, unlike timetables).
Refactors the shared GS request/reply correlation out of get_timetable and
get_station into a _gs_query() helper. Companion handlers must be added to
the server-side AdminBridge GameScript (not tracked in this repo).
Includes unit + e2e tests, a worked demo in main_admin.py, and protocol docs.
Co-Authored-By: Claude Opus 4.8 <[email protected] >
2026-07-23 21:48:20 +02:00
kovagoadi
c39f970ef9
Merge pull request 'Added real timetable support' ( #20 ) from add-real-timetable-support into main
...
Continuous Integration / lint-and-security (push) Successful in 20s
Continuous Integration / tests-and-coverage (push) Successful in 24s
Reviewed-on: #20
2026-07-23 21:02:37 +02:00
kovagoadi
36fc118da3
Merge branch 'main' into add-real-timetable-support
Continuous Integration / lint-and-security (pull_request) Successful in 26s
Continuous Integration / tests-and-coverage (pull_request) Successful in 24s
2026-07-23 21:00:50 +02:00
kovagoadi
3b54a722d6
Added real timetable support
Continuous Integration / lint-and-security (pull_request) Successful in 33s
Continuous Integration / tests-and-coverage (pull_request) Successful in 26s
2026-07-23 20:59:28 +02:00
kovagoadi
38cc5ae40c
Merge pull request 'Update actions/setup-python action to v7' ( #19 ) from renovate/actions-setup-python-7.x into main
...
Continuous Integration / lint-and-security (push) Successful in 20s
Continuous Integration / tests-and-coverage (push) Successful in 23s
Reviewed-on: #19
2026-07-21 20:09:28 +02:00
kovagoadi
dfb88523f1
Merge branch 'main' into renovate/actions-setup-python-7.x
Continuous Integration / lint-and-security (pull_request) Successful in 20s
Continuous Integration / tests-and-coverage (pull_request) Successful in 24s
2026-07-21 20:07:54 +02:00
kovagoadi
5db0dab9bf
Merge pull request 'Update actions/checkout digest to 3d3c42e' ( #18 ) from renovate/actions-checkout-digest into main
...
Continuous Integration / lint-and-security (push) Successful in 22s
Continuous Integration / tests-and-coverage (push) Successful in 26s
Reviewed-on: #18
2026-07-21 20:07:47 +02:00
renovate-bot
71bef5a8a2
Update actions/setup-python action to v7
Continuous Integration / lint-and-security (pull_request) Successful in 1m55s
Continuous Integration / tests-and-coverage (pull_request) Successful in 24s
2026-07-21 02:22:10 +00:00
renovate-bot
df9c7b3f06
Update actions/checkout digest to 3d3c42e
Continuous Integration / lint-and-security (pull_request) Successful in 55s
Continuous Integration / tests-and-coverage (pull_request) Successful in 24s
2026-07-21 02:22:05 +00:00
kovagoadi
954663e80c
Merge pull request 'Add vehicle timetable get/set support' ( #17 ) from claude/listing-vehicles-support-d07bf0 into main
...
Continuous Integration / lint-and-security (push) Successful in 21s
Continuous Integration / tests-and-coverage (push) Successful in 25s
Reviewed-on: #17
2026-07-16 23:26:14 +02:00
kovagoadi
6a28e4acff
Merge branch 'main' into claude/listing-vehicles-support-d07bf0
Continuous Integration / lint-and-security (pull_request) Successful in 21s
Continuous Integration / tests-and-coverage (pull_request) Successful in 25s
2026-07-16 23:25:21 +02:00
kovagoadi and Claude Sonnet 5
b33869334a
Add vehicle timetable get/set support
...
Continuous Integration / lint-and-security (pull_request) Successful in 22s
Continuous Integration / tests-and-coverage (pull_request) Successful in 24s
Timetables have no GameScript API surface, so this implements real
DoCommands over the game port (ClientCommand/ServerCommand) instead of
the Admin GameScript relay used for list_vehicles(): change_timetable(),
autofill_timetable(), set_timetable_start(), and set_vehicle_on_time()
send commands, while get_vehicle_timetable() reconstructs state purely
by observing ServerCommand broadcasts, since no query command exists.
Includes the custom varuint wire codec these commands require, a full
usage guide (docs/TIMETABLES.md), and a worked demo in main.py.
Co-Authored-By: Claude Sonnet 5 <[email protected] >
2026-07-16 23:21:21 +02:00
kovagoadi
fa1741f95b
Merge pull request 'Add vehicle listing support to admin client' ( #16 ) from claude/listing-vehicles-support-d07bf0 into main
...
Continuous Integration / lint-and-security (push) Successful in 22s
Continuous Integration / tests-and-coverage (push) Successful in 24s
Reviewed-on: #16
2026-07-16 20:46:58 +02:00
kovagoadi and Claude Sonnet 5
0a8271d57c
Add vehicle listing support to admin client
...
Continuous Integration / lint-and-security (pull_request) Successful in 31s
Continuous Integration / tests-and-coverage (pull_request) Successful in 25s
The Admin Network has no native packet for listing individual vehicles,
so list_vehicles() sends a "list_vehicles" command over the existing
GameScript JSON channel and relies on a companion server-side script to
reply with vehicle data via ServerGamescript. Requires subscribing to
Gamescript updates (documented in docs/PROTOCOL.md) to receive the reply.
Co-Authored-By: Claude Sonnet 5 <[email protected] >
2026-07-16 20:44:44 +02:00
kovagoadi
309f1da762
Merge pull request 'Update debian Docker tag to trixie-20260713' ( #15 ) from renovate/debian-13.x into main
...
Continuous Integration / lint-and-security (push) Successful in 20s
Continuous Integration / tests-and-coverage (push) Successful in 24s
Reviewed-on: #15
2026-07-15 09:14:53 +02:00
kovagoadi
2526b8aec4
Merge branch 'main' into renovate/debian-13.x
Continuous Integration / lint-and-security (pull_request) Successful in 21s
Continuous Integration / tests-and-coverage (pull_request) Successful in 23s
2026-07-15 09:13:54 +02:00
kovagoadi
38e0604cf3
Merge pull request 'Update debian:bookworm-slim Docker digest to 7b140f3' ( #14 ) from renovate/debian-bookworm-slim into main
...
Continuous Integration / lint-and-security (push) Successful in 22s
Continuous Integration / tests-and-coverage (push) Successful in 24s
Reviewed-on: #14
2026-07-15 09:13:09 +02:00
renovate-bot
d87f26a8ef
Update debian Docker tag to trixie-20260713
Continuous Integration / lint-and-security (pull_request) Successful in 20s
Continuous Integration / tests-and-coverage (pull_request) Successful in 23s
2026-07-15 02:22:08 +00:00
renovate-bot
d0c4d9218d
Update debian:bookworm-slim Docker digest to 7b140f3
Continuous Integration / lint-and-security (pull_request) Successful in 48s
Continuous Integration / tests-and-coverage (pull_request) Successful in 26s
2026-07-15 02:22:04 +00:00
kovagoadi
ab8ab7390e
Merge pull request 'Update debian Docker tag to v13' ( #13 ) from renovate/debian-13.x into main
...
Continuous Integration / lint-and-security (push) Successful in 30s
Continuous Integration / tests-and-coverage (push) Successful in 23s
Reviewed-on: #13
2026-07-03 14:48:46 +02:00
renovate-bot
eb507b9f11
Update debian Docker tag to v13
Continuous Integration / lint-and-security (pull_request) Successful in 23s
Continuous Integration / tests-and-coverage (pull_request) Successful in 22s
2026-07-02 02:22:50 +00:00
kovagoadi
2d5e57998b
Merge pull request 'Update debian Docker tag to bookworm-20260623' ( #12 ) from renovate/debian-12.x into main
...
Continuous Integration / lint-and-security (push) Successful in 22s
Continuous Integration / tests-and-coverage (push) Successful in 24s
Reviewed-on: #12
2026-07-01 20:31:44 +02:00
renovate-bot
aea5cf124c
Update debian Docker tag to bookworm-20260623
Continuous Integration / lint-and-security (pull_request) Successful in 21s
Continuous Integration / tests-and-coverage (pull_request) Successful in 23s
2026-07-01 02:22:45 +00:00
kovagoadi
5d5329d197
Merge pull request 'Pin dependencies' ( #11 ) from renovate/pin-dependencies into main
...
Continuous Integration / lint-and-security (push) Successful in 21s
Continuous Integration / tests-and-coverage (push) Successful in 23s
Reviewed-on: #11
2026-06-30 23:47:15 +02:00
renovate-bot
17d68fa984
Pin dependencies
Continuous Integration / lint-and-security (pull_request) Successful in 20s
Continuous Integration / tests-and-coverage (pull_request) Successful in 23s
2026-06-30 02:22:41 +00:00
kovagoadi
fc30def3e7
Merge pull request 'Add admin port support with other major refactorations' ( #9 ) from add-admin-port-support into main
...
Continuous Integration / lint-and-security (push) Successful in 19s
Continuous Integration / tests-and-coverage (push) Successful in 23s
Reviewed-on: #9
2026-06-29 20:00:37 +02:00
kovagoadi
c69f146e65
Fixed ruff issues
Continuous Integration / lint-and-security (pull_request) Successful in 21s
Continuous Integration / tests-and-coverage (pull_request) Successful in 23s
2026-06-29 19:58:16 +02:00
kovagoadi
94c0cf6ad7
Added auto_exclude to public_calls.py file
Continuous Integration / lint-and-security (pull_request) Failing after 18s
Continuous Integration / tests-and-coverage (pull_request) Successful in 23s
2026-06-29 19:54:50 +02:00
kovagoadi
aebd5f4ef5
Add admin port support with other major refactorations
Continuous Integration / lint-and-security (pull_request) Failing after 39s
Continuous Integration / tests-and-coverage (pull_request) Successful in 24s
2026-06-29 19:47:48 +02:00
kovagoadi
df629b2922
Merge pull request 'Update actions/setup-python digest to ece7cb0' ( #8 ) from renovate/actions-setup-python-digest into main
...
Continuous Integration / lint-and-security (push) Successful in 36s
Continuous Integration / tests-and-coverage (push) Successful in 22s
Reviewed-on: #8
2026-06-26 00:50:31 +02:00
renovate-bot
2575b35000
Update actions/setup-python digest to ece7cb0
Continuous Integration / lint-and-security (pull_request) Successful in 3m35s
Continuous Integration / tests-and-coverage (pull_request) Successful in 38s
2026-06-25 02:22:41 +00:00
kovagoadi
cb4c2df25a
Merge pull request 'Update actions/checkout action to v7' ( #7 ) from renovate/actions-checkout-7.x into main
...
Continuous Integration / lint-and-security (push) Successful in 59s
Continuous Integration / tests-and-coverage (push) Successful in 23s
Reviewed-on: #7
2026-06-19 22:35:42 +02:00
renovate-bot
7f2b16b581
Update actions/checkout action to v7
Continuous Integration / lint-and-security (pull_request) Successful in 2m25s
Continuous Integration / tests-and-coverage (pull_request) Successful in 47s
2026-06-19 02:21:55 +00:00
kovagoadi
4165ddbf89
Merge pull request 'Update actions/setup-python action to v6' ( #6 ) from renovate/actions-setup-python-6.x into main
...
Continuous Integration / lint-and-security (push) Successful in 19s
Continuous Integration / tests-and-coverage (push) Successful in 20s
Reviewed-on: #6
2026-06-07 12:05:05 +02:00
kovagoadi
94d1e1db5e
Merge branch 'main' into renovate/actions-setup-python-6.x
Continuous Integration / lint-and-security (pull_request) Successful in 24s
Continuous Integration / tests-and-coverage (pull_request) Successful in 21s
2026-06-07 12:03:29 +02:00
kovagoadi
458f3cbb8f
Merge pull request 'Update actions/checkout action to v6' ( #3 ) from renovate/actions-checkout-6.x into main
...
Continuous Integration / lint-and-security (push) Successful in 28s
Continuous Integration / tests-and-coverage (push) Successful in 24s
Reviewed-on: #3
2026-06-07 12:03:21 +02:00