sjg
d93f784aad
refactor: convert AIS plugin to TypeScript
2026-08-01 12:39:20 +02:00
sjg
ec59908e0d
refactor: convert background decode controls to TypeScript
2026-08-01 12:36:27 +02:00
sjg
7251ec276d
refactor: convert WEFAX plugin to TypeScript
2026-08-01 12:33:38 +02:00
sjg
0ab0f80986
refactor: convert VDES plugin to TypeScript
2026-08-01 12:30:17 +02:00
sjg
2cbcc23fec
refactor: move plugin loading into typed registry
2026-08-01 12:26:29 +02:00
sjg
968fb3ea2d
refactor: type the local Leaflet AIS adapter
2026-08-01 12:23:37 +02:00
sjg
5ba3ecf59b
refactor: make FT8 family a typed module
2026-08-01 12:21:13 +02:00
sjg
03bdc10b02
refactor: convert CW plugin to TypeScript
2026-08-01 12:18:51 +02:00
sjg
d96624be4f
refactor: convert WSPR plugin to TypeScript
2026-08-01 12:15:19 +02:00
sjg
a5dccd5489
refactor: consolidate FT2 and FT4 plugins in TypeScript
2026-08-01 12:12:27 +02:00
sjg
42e5dc8604
docs: record frontend migration baseline
2026-08-01 12:09:38 +02:00
sjg
e6f593b959
refactor: convert screenshot support to TypeScript
2026-08-01 12:08:44 +02:00
sjg
9ac6d7f82c
refactor: convert WebGL renderer to TypeScript
2026-08-01 12:07:02 +02:00
sjg
a58553ba66
refactor: convert decode history worker to TypeScript
2026-08-01 12:03:19 +02:00
sjg
7442437757
refactor: convert shared UI core to TypeScript
2026-08-01 12:01:07 +02:00
sjg
bbc53d56b0
feat: generate typed frontend API contracts
2026-08-01 11:58:09 +02:00
sjg
888f793eb8
build: add frontend TypeScript toolchain
2026-08-01 11:52:47 +02:00
sjg
b4ea35baf8
feat(ui): add dedicated audio controls section
CI / lint (pull_request) Failing after 1s
CI / test (pull_request) Failing after 0s
CI / reuse (pull_request) Failing after 0s
CI / lint (push) Failing after 1s
CI / test (push) Failing after 1s
CI / reuse (push) Failing after 0s
2026-08-01 11:32:34 +02:00
sjg
508ed8a8e7
feat(ui): separate scheduler controls subsection
CI / lint (pull_request) Failing after 1s
CI / test (pull_request) Failing after 2s
CI / reuse (pull_request) Failing after 2s
CI / lint (push) Failing after 0s
CI / test (push) Failing after 1s
CI / reuse (push) Failing after 1s
2026-08-01 11:28:51 +02:00
sjg
d9fc623ef4
fix(ui): simplify operator layout picker
CI / lint (push) Failing after 1s
CI / test (push) Failing after 0s
CI / reuse (push) Failing after 0s
CI / lint (pull_request) Failing after 2s
CI / test (pull_request) Failing after 2s
CI / reuse (pull_request) Failing after 1s
2026-08-01 11:25:32 +02:00
sjg
53736ef750
fix(ui): hide SDR power and align header controls
CI / lint (pull_request) Failing after 1s
CI / test (pull_request) Failing after 2s
CI / reuse (pull_request) Failing after 1s
2026-08-01 11:23:57 +02:00
sjg
6566eae2c7
fix(ui): keep workspace and rig context visible
CI / lint (pull_request) Failing after 1s
CI / test (pull_request) Failing after 1s
CI / reuse (pull_request) Failing after 1s
CI / lint (push) Failing after 0s
CI / test (push) Failing after 0s
CI / reuse (push) Failing after 1s
2026-08-01 11:19:31 +02:00
sjg
f3eeddff7c
fix(ui): close mobile overlays predictably
2026-08-01 11:18:37 +02:00
sjg
1540ca5b4e
test(ui): cover shared component behavior
2026-08-01 11:17:17 +02:00
sjg
e449704fd2
feat(ui): explain unavailable workspaces
2026-08-01 11:16:03 +02:00
sjg
af74430551
fix(ui): make rig switching atomic and visible
2026-08-01 11:15:39 +02:00
sjg
d07dbdc645
feat(ui): focus broadcast workspace on reception
2026-08-01 11:14:10 +02:00
sjg
d07a627508
feat(ui): remember workspaces per rig
2026-08-01 11:13:21 +02:00
sjg
9fbf90ee91
feat(ui): explain operator workspace choices
2026-08-01 11:12:33 +02:00
sjg
d393b3cefc
feat(ui): drive workspaces from rig capabilities
2026-08-01 11:11:47 +02:00
sjg
35a492ec95
fix(ui): gate broadcast layout on rig capability
CI / lint (pull_request) Failing after 2s
CI / test (pull_request) Failing after 2s
CI / reuse (pull_request) Failing after 2s
CI / lint (push) Failing after 1s
CI / test (push) Failing after 3s
CI / reuse (push) Failing after 1s
2026-08-01 11:05:45 +02:00
sjg
b20da5c541
style(ui): polish shared interaction components
CI / lint (pull_request) Failing after 1s
CI / test (pull_request) Failing after 1s
CI / reuse (pull_request) Failing after 2s
CI / lint (push) Failing after 2s
CI / test (push) Failing after 1s
CI / reuse (push) Failing after 2s
2026-08-01 10:43:29 +02:00
sjg
a0bdaa2c4b
feat(ui): improve radio operator experience
CI / lint (pull_request) Failing after 1s
CI / test (pull_request) Failing after 1s
CI / reuse (pull_request) Failing after 1s
CI / lint (push) Failing after 1s
CI / test (push) Failing after 1s
CI / reuse (push) Failing after 0s
2026-08-01 02:24:47 +02:00
sjg
6676b66993
[fix](trx-frontend): account for WFM interference in auto bandwidth
CI / lint (pull_request) Failing after 1s
CI / test (pull_request) Failing after 1s
CI / reuse (pull_request) Failing after 0s
CI / lint (push) Failing after 0s
CI / test (push) Failing after 1s
CI / reuse (push) Failing after 1s
2026-08-01 02:07:32 +02:00
sjg
412651d612
[fix](trx-frontend): narrow weak WFM to 60 kHz
CI / lint (push) Failing after 1s
CI / test (push) Failing after 2s
CI / reuse (push) Failing after 1s
2026-08-01 02:04:14 +02:00
sjg
d347b493d9
[fix](trx-frontend): make auto bandwidth modulation-aware
2026-08-01 02:04:14 +02:00
sjg
39e59dca96
[fix](trx-server): gate test-only history imports
CI / lint (pull_request) Failing after 1s
CI / test (pull_request) Failing after 1s
CI / reuse (pull_request) Failing after 1s
CI / lint (push) Failing after 3s
CI / test (push) Failing after 2s
CI / reuse (push) Failing after 1s
2026-08-01 01:55:33 +02:00
sjg
5654520901
[fix](workspace): clear build and clippy warnings
CI / lint (push) Failing after 1s
CI / test (push) Failing after 1s
CI / reuse (push) Failing after 1s
2026-08-01 01:52:08 +02:00
sjg
ff75fcc692
[refactor](trx-server): extract decoder history store
CI / lint (pull_request) Failing after 2s
CI / test (pull_request) Failing after 2s
CI / reuse (pull_request) Failing after 1s
CI / lint (push) Failing after 2s
CI / test (push) Failing after 2s
CI / reuse (push) Failing after 1s
2026-08-01 01:45:19 +02:00
sjg
4728b578ae
[refactor](trx-server): extract history policy
2026-08-01 01:44:26 +02:00
sjg
7db7fad9b0
[refactor](trx-frontend): define module service boundaries
2026-08-01 01:44:26 +02:00
sjg
830f7299fe
[fix](trx-frontend): vendor Opus decoder
2026-08-01 01:44:26 +02:00
sjg
061738a63b
[fix](trx-frontend): serialize plugin loading
CI / lint (push) Failing after 1s
CI / test (push) Failing after 1s
CI / reuse (push) Failing after 1s
2026-08-01 01:43:50 +02:00
sjg
e8bd97655f
[fix](trx-server): offload history persistence
CI / reuse (push) Failing after 1s
CI / lint (push) Failing after 2s
CI / test (push) Failing after 2s
2026-08-01 01:43:47 +02:00
sjg
7d0b36450d
[fix](trx-server): persist all decoder histories
CI / reuse (push) Failing after 1s
CI / lint (pull_request) Failing after 3s
CI / test (pull_request) Failing after 1s
CI / reuse (pull_request) Failing after 2s
CI / lint (push) Failing after 1s
CI / test (push) Failing after 1s
2026-08-01 01:23:36 +02:00
Stan Grams
b12c83e8b5
[fix](trx-frontend): preload AIS map icons
CI / lint (pull_request) Failing after 6s
CI / test (pull_request) Failing after 2s
CI / reuse (pull_request) Failing after 1s
CI / lint (push) Failing after 1s
CI / test (push) Failing after 2s
CI / reuse (push) Failing after 0s
2026-08-01 01:14:07 +02:00
sjg
4b17b4ac1d
[style](trx-ftx): use iterators in LDPC single-index loops
...
CI / lint (pull_request) Successful in 2m35s
CI / test (pull_request) Successful in 3m22s
CI / reuse (pull_request) Successful in 7s
CI / lint (push) Successful in 2m34s
CI / test (push) Successful in 3m26s
CI / reuse (push) Successful in 7s
clippy needless_range_loop (rust 1.97) flagged the loops in ldpc_check
and ldpc_decode that use a range only to index one array. Replace them
with iterator/enumerate forms. The belief-propagation loops that index
several arrays by the same variable are left as-is (not flagged).
Behaviour is unchanged; the transformations are index-for-index
equivalent. Verified the lib compiles and is clippy-clean; the crate's
LDPC tests run in the CI test job (they need a dev-dependency not
available in the local offline sandbox).
Assisted-By: Claude Code (claude-opus-4)
Claude-Session: https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-07-18 10:43:01 +02:00
sjg
977f7b709e
[style](trx-ais): drop redundant u32 cast
...
CI / lint (pull_request) Failing after 2m28s
CI / test (pull_request) Successful in 3m23s
CI / reuse (pull_request) Successful in 7s
get_uint returns Option<u32>, so `? as u32` is an unnecessary same-type
cast flagged by clippy under -D warnings (rust 1.97).
Assisted-By: Claude Code (claude-opus-4)
Claude-Session: https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-07-18 10:28:55 +02:00
sjg
a2838b06a2
[style](trx-ftx): fix clippy question_mark and collapsible_match
...
CI / lint (pull_request) Failing after 2m22s
CI / test (pull_request) Successful in 3m27s
CI / reuse (pull_request) Successful in 8s
CI runs a newer clippy (1.97) than was available locally, which flagged
three lints in trx-ftx not caught earlier:
- question_mark: replace the Some/None match in CallsignHashTable::lookup
with `self.entries[idx].as_ref()?`
- collapsible_match: fold the nested `if` in text.rs char/nchar into match
guards on the AlphanumSpaceSlash arm
Behaviour is unchanged; verified clean with nightly clippy (1.93).
Assisted-By: Claude Code (claude-opus-4)
Claude-Session: https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-07-18 09:25:12 +02:00
sjg
c6cd661676
[style](trx-rs): fix clippy warnings for -D warnings CI
...
CI / lint (pull_request) Failing after 4m14s
CI / test (pull_request) Successful in 15m22s
CI / reuse (pull_request) Successful in 7s
The CI lint job runs clippy with -D warnings, which surfaced a set of
existing warnings across decoders, the client, and the soapysdr backend.
Resolve them so the workspace is clean under the enforced lint level:
- collapsible_match / identity_op / needless_range_loop / same_item_push
in trx-rds, trx-wspr, trx-vdes, trx-wefax, trx-aprs (mostly tests)
- field_reassign_with_default -> struct-update syntax in trx-client config
tests
- assign_op_pattern, useless vec!, and test-module ordering picked up by
cargo clippy --fix in trx-client and the soapysdr WFM tests
No behaviour changes; all affected crates' tests pass.
Assisted-By: Claude Code (claude-opus-4)
Claude-Session: https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV
Signed-off-by: Stan Grams <sjg@haxx.space >
2026-07-17 23:49:12 +02:00