sjg
6f9658375f
[feat](trx-protocol): create protocol unification crate
...
Add new crate to centralize protocol conversion logic:
- codec module: mode parsing/formatting, envelope parsing
- auth module: token validation, bearer prefix handling
- mapping module: ClientCommand <-> RigCommand conversion
Includes 76 comprehensive tests covering all command variants,
error cases, and round-trip conversions. Removes duplication
across listener, remote_client, and HTTP-JSON frontend.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-12 20:27:38 +01:00
sjg
8b28f3615f
[chore](trx-ft8): suppress unused code warnings in external C library
...
Add compiler flags to suppress C warnings from vendored ft8_lib:
- -Wno-unused-const-variable for db_power_sum array
- -Wno-unused-function for ft8_decode_multi_symbols
These are harmless warnings from external code we don't control.
Suppressing at build system level keeps external code unchanged.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-12 20:14:06 +01:00
sjg
cf67574571
[docs](trx-rs): remove appkit frontend references
...
Remove AppKit frontend mentions from documentation:
- Update AGENTS.md project structure
- Remove AppKit from capabilities table in OVERVIEW.md
- Remove AppKit from frontends table in OVERVIEW.md
- Remove AppKit from Frontends section in README.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-12 20:06:03 +01:00
sjg
55fde37924
[chore](trx-client): remove appkit frontend support
...
Remove macOS AppKit frontend (trx-frontend-appkit) and related code:
- Delete appkit crate directory
- Remove appkit dependency and feature from Cargo.toml
- Remove appkit imports, main thread handling, and config from main.rs
- Remove AppKit config struct from config.rs
- Remove appkit section from example config
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-12 20:06:01 +01:00
sjg
a53bd7a08f
[docs](trx-rs): align AGENTS with contributing
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-12 19:57:05 +01:00
sjg
a7ae47ff00
[chore](root): add git attrs and ignore
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-12 19:53:59 +01:00
sjg
2dfe4a30dc
[feat](trx-backend): add ft450d cat backend
...
Co-authored-by: OpenAI <assistant@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 23:53:16 +01:00
sjg
176b3e306c
[fix](trx-frontend-http): filter ft8 and refresh rf values
...
Co-authored-by: OpenAI <assistant@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 23:38:50 +01:00
sjg
3a739069c0
[fix](trx-frontend-http): avoid decode history deadlock
...
Co-authored-by: OpenAI <assistant@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 23:31:17 +01:00
sjg
c24d5d0152
[fix](trx-frontend-http): persist decode history and fix ft8 locators
...
Co-authored-by: OpenAI <assistant@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 23:22:35 +01:00
sjg
211c3baf16
[fix](trx-frontend-http): send decode history on connect
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 23:17:44 +01:00
sjg
1bfc23fec7
[fix](trx-frontend-http): tokenize ft8 grids reliably
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 22:15:24 +01:00
sjg
a8f7e9c8de
Revert "[fix](trx-frontend-http): normalize ft8 locator spacing"
...
This reverts commit 5aa9502e37 .
2026-02-09 22:15:00 +01:00
sjg
5aa9502e37
[fix](trx-frontend-http): normalize ft8 locator spacing
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 22:14:22 +01:00
sjg
dc376c9afb
[fix](trx-frontend-http): detect ft8 grids by scan
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 22:11:37 +01:00
sjg
0073f11c15
[fix](trx-frontend-http): robust ft8 grid highlighting
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 22:09:49 +01:00
sjg
2b6df0e738
[fix](trx-frontend-http): highlight ft8 grid tokens
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 22:06:39 +01:00
sjg
44a4c0df24
[fix](trx-frontend-http): parse ft8 locators reliably
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 22:04:12 +01:00
sjg
bfc5e531cc
[feat](trx-frontend-http): add ft8 locators and map filters
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 21:50:23 +01:00
sjg
dbb58fa2b7
[feat](trx-frontend-http): add ft8 headers and rf freq
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 21:44:50 +01:00
sjg
0e856073be
[docs](trx-frontend-http): add ft8 to overview
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 21:43:37 +01:00
sjg
9f2306aa71
[fix](trx-ft8): correct result buffer size
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 21:41:53 +01:00
sjg
995ddd7306
[fix](trx-ft8): align decode result layout
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 21:41:08 +01:00
sjg
4d32f017a8
[chore](trx-server): log ft8 toggle and offsets
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 21:38:18 +01:00
sjg
55693bb6e8
[fix](trx-server): align ft8 decode to time slots
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 21:35:51 +01:00
sjg
a4a3f1464e
[fix](trx-ft8): enable stpcpy on linux
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 21:31:39 +01:00
sjg
5f3ea48ef7
[chore](trx-rs): address clippy warnings
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 21:26:53 +01:00
sjg
cf11c16096
[fix](trx-ft8): make decoder Send
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 21:25:19 +01:00
sjg
c4ca178097
[fix](trx-ft8): make raw decode result copyable
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 21:23:52 +01:00
sjg
56041874da
[fix](trx-ft8): update callsign hash constants
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 21:22:25 +01:00
sjg
1199ab85e9
[feat](trx-rs): add ft8 decoder
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 21:19:56 +01:00
sjg
7bd1a70607
[fix](trx-frontend-http): align cw controls
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 20:53:07 +01:00
sjg
a22a648b5d
[fix](trx-frontend-http-json): map cw control commands
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 20:51:55 +01:00
sjg
715e6eb9aa
[fix](trx-core): handle cw control commands
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 20:51:14 +01:00
sjg
0daf9e27ae
[feat](trx-rs): add cw auto/manual controls
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 20:50:31 +01:00
sjg
dfc0f220e8
[feat](trx-frontend-http): show cw auto mode
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 19:58:10 +01:00
sjg
f610bf7db3
[fix](trx-frontend-http): update decode status on mode change
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 19:54:32 +01:00
sjg
b9c58844f0
[fix](trx-server): gate cw decode strictly by mode
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 19:50:08 +01:00
sjg
3dbf590472
[fix](trx-server): gate aprs decode strictly by mode
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 19:48:55 +01:00
sjg
af9b44f4d4
[feat](trx-server): auto-decode cw regardless of mode
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 19:43:43 +01:00
sjg
b3293f1de3
[feat](trx-rs): server-side decode and aprs byte rendering
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 19:38:25 +01:00
sjg
7b4bcb6f04
[feat](trx-frontend-http): auto-enable aprs and cw decode
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 19:36:12 +01:00
sjg
1500a26761
[feat](trx-server): retain aprs history for new clients
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 19:26:18 +01:00
sjg
8811aa59ee
[fix](trx-core): avoid APRS JSON type collision
...
Co-authored-by: Codex <codex@openai.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-09 19:21:07 +01:00
sjg
88ccc7ab81
[feat](trx-frontend-http): add decoder toggle/clear UI and endpoints
...
Add POST endpoints for toggle_aprs_decode, toggle_cw_decode,
clear_aprs_decode, and clear_cw_decode. Add toggle buttons in APRS
and CW tabs. Render decoder enabled state from SSE updates. Clear
button now also resets server-side decoder state.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-08 23:09:51 +01:00
sjg
4a3273653a
[feat](trx-frontend-http-json): map decoder commands
...
Add SetAprsDecodeEnabled, SetCwDecodeEnabled, ResetAprsDecoder, and
ResetCwDecoder to the JSON TCP frontend command mapping.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-08 23:09:43 +01:00
sjg
25eec2a7a8
[feat](trx-client): map decoder commands in remote client
...
Initialize decoder state fields and map new RigCommand/ClientCommand
variants through the remote client TCP bridge.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-08 23:09:40 +01:00
sjg
548aa540ab
[feat](trx-server): handle decoder toggle and reset commands
...
Process decoder commands as early returns in rig_task (no CAT needed).
Check aprs_decode_enabled/cw_decode_enabled flags in decoder tasks
alongside mode. Track reset_seq to trigger decoder.reset() on clear.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-08 23:09:37 +01:00
sjg
b257f69389
[feat](trx-core): add decoder toggle and reset commands
...
Add aprs_decode_enabled, cw_decode_enabled, aprs_decode_reset_seq, and
cw_decode_reset_seq fields to RigState and RigSnapshot. Add corresponding
RigCommand and ClientCommand variants for toggling and resetting decoders.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-08 23:09:32 +01:00
sjg
2feecbfe4f
[fix](trx-frontend-http): fix decode SSE status detection
...
Replace HEAD probe with EventSource readyState check to properly
detect 404 vs connection drop. HEAD requests to SSE endpoints may
not behave reliably across all setups.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-08 22:57:19 +01:00