sjg and Claude Opus 4.6
8718a5d8d1
[refactor](trx-server): consolidate protocol logic with trx-protocol
...
Use centralized trx-protocol crate for:
- parse_mode and mode string parsing
- parse_envelope with fallback behavior
- command mapping (ClientCommand -> RigCommand)
- token validation with SimpleTokenValidator
Removes 116 lines of duplicate code. Wraps validator in Arc for
safe sharing across async tasks. No behavior changes, all tests pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com >
2026-02-12 20:27:42 +01:00
sjg and Claude Opus 4.6
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 and Claude Opus 4.6
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 and Claude Opus 4.6
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 and Claude Opus 4.6
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 and Codex
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 and Codex
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 and OpenAI
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 and OpenAI
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 and OpenAI
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 and OpenAI
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Codex
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 and Claude Opus 4.6
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 and Claude Opus 4.6
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 and Claude Opus 4.6
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 and Claude Opus 4.6
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 and Claude Opus 4.6
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