Claude and Stan Grams
edf16b63d6
[fix](trx-core): log invalid state machine transitions
...
Add debug-level tracing for rejected state transitions instead of
silently returning false, aiding debugging of unexpected rig behavior.
https://claude.ai/code/session_01XzurkeuUmamBuhQwxVy7T4
Signed-off-by: Claude <noreply@anthropic.com >
2026-03-26 07:02:46 +01:00
Claude and Stan Grams
9cf66fc04a
[fix](trx-app): add plugin loading validation and disable toggle
...
Reject world-writable plugin files on Unix to prevent loading tampered
libraries. Add TRX_PLUGINS_DISABLED env var to disable plugin loading
entirely.
https://claude.ai/code/session_01XzurkeuUmamBuhQwxVy7T4
Signed-off-by: Claude <noreply@anthropic.com >
2026-03-26 07:02:46 +01:00
Claude and Stan Grams
cbe22bd7b6
[refactor](trx-frontend-http): replace string-level JSON splice with serde(flatten)
...
Use a StateWithMeta wrapper struct with #[serde(flatten)] for merging
rig state with frontend meta, replacing the manual string manipulation.
Also add Serialize derive and skip_serializing_if to FrontendMeta.
https://claude.ai/code/session_01XzurkeuUmamBuhQwxVy7T4
Signed-off-by: Claude <noreply@anthropic.com >
2026-03-26 07:02:46 +01:00
Claude and Stan Grams
635a1214d0
[refactor](trx-client): switch VChanAudioCmd to bounded channels (cap 256)
...
Replace unbounded_channel with channel(256) for VChanAudioCmd to prevent
unlimited memory accumulation under backpressure. Use try_send in
synchronous contexts.
https://claude.ai/code/session_01XzurkeuUmamBuhQwxVy7T4
Signed-off-by: Claude <noreply@anthropic.com >
2026-03-26 07:02:46 +01:00
Claude and Stan Grams
c3abc5ff5b
[refactor](trx-frontend): add DecodeHistory type alias and use bounded channels
...
Introduce DecodeHistory<T> alias for the repeated
Arc<Mutex<VecDeque<(Instant, Option<String>, T)>>> pattern (9 fields).
Also switch VChanAudioCmd channel senders from UnboundedSender to Sender
to prevent unbounded memory growth under backpressure.
https://claude.ai/code/session_01XzurkeuUmamBuhQwxVy7T4
Signed-off-by: Claude <noreply@anthropic.com >
2026-03-26 07:02:46 +01:00
Claude and Stan Grams
449b877694
[refactor](trx-ftx): use HashSet for candidate deduplication
...
Replace Vec::contains() with HashSet::insert() for O(1) dedup lookups
instead of O(n), significantly reducing comparisons during decode.
https://claude.ai/code/session_01XzurkeuUmamBuhQwxVy7T4
Signed-off-by: Claude <noreply@anthropic.com >
2026-03-26 07:02:46 +01:00
Claude and Stan Grams
99d95c8eb6
[refactor](trx-frontend-rigctl): adapt to Cow-returning mode_to_string
...
Update rig_mode_to_str to call .into_owned() on the new Cow return.
https://claude.ai/code/session_01XzurkeuUmamBuhQwxVy7T4
Signed-off-by: Claude <noreply@anthropic.com >
2026-03-26 07:02:46 +01:00
Claude and Stan Grams
019f12e3fc
[refactor](trx-protocol): return Cow<'static, str> from mode_to_string
...
Eliminates per-call String allocations for standard modes by returning
borrowed static strings. Only the Other variant allocates.
https://claude.ai/code/session_01XzurkeuUmamBuhQwxVy7T4
Signed-off-by: Claude <noreply@anthropic.com >
2026-03-26 07:02:46 +01:00