Sigil-Files #37
No reviewers
Labels
No Label
CI/CD 🛠️
WIP 🚧
bug 🐞
code quality 🧹
data collection 🗃️
dependency 📦
do not merge 🚫
documentation 📝
duplicate 🔄
enhancement ✨
good first issue 🌱
help wanted 👋
inference 🧠
invalid 🛑
machine learning 🚀
priority
high🔥
priority
low 🍃
priority
medium 🌟
quantum ⚛️
question ❓
radio 📡
sprintable 🏃♂️
test 🧪
wont fix ❌
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: qoherent/ria-toolkit-oss#37
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "sigil-info"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The generated Sigil Syntax for OSS
WIP: Sigil-Filesto Sigil-FilesReviewed the logic in each
.sigilfile against the actual source and verified the causal/behavioral claims in every module'slogic/constraintssection. All findings below were independently reproduced against the code, not just inferred.Approving the docs, but flagging four things below, two of which are real code issues the review surfaced rather than doc issues.
1. signal.sigil — HighLevelGenerators section describes broken functionality
PSKGenerator/QAMGenerator/PAMGeneratorare documented as working (record(batch_size, num_bits)), but none of the three can even be constructed:Mapper.input_type returns a list-wrapped DataType; upstream blocks like BinarySource.output_type return the bare enum. The type-chain validation the doc credits as a correctness guarantee actually rejects the construction outright, for all three generators identically. No test exercises these classes, so it's silent today. This isn't a doc-wording issue — it's a real bug the doc review surfaced. Suggest filing it separately rather than blocking this PR on it.
2. agent.sigil — TX interlocks are scoped to one execution mode, not "the agent"
The doc states TX safety interlocks (--allow-tx, tx_max_gain_db, tx_max_duration_s, frequency bounds, watchdog) as a property of the agent generally. They're only enforced in the WebSocket streamer's TX path (streamer.py) — AgentConfig.tx_enabled/tx_max_gain_db/tx_max_duration_s/tx_allowed_freq_ranges are referenced nowhere else. The legacy long-poll NodeAgent → TxExecutor path (legacy_executor.py, orchestration/tx_executor.py) has none of them — no gain cap, no duration watchdog, no frequency bound, just a --role tx flag. Given this is RF transmit safety, worth either fixing the doc's scoping or (better) tightening the legacy path to match.
3. sdr.sigil — two driver-coverage overstatements
"USB/network drops are translated to SdrDisconnectedError" , only true for the Pluto driver. translate_disconnect is imported and called only in pluto.py; USRP, HackRF, Blade, RTLSDR, and ThinkRF never call it, so their disconnects propagate raw native exceptions instead.
Identifiers are documented as free-form per-device values including "HackRF/BladeRF serial" but both drivers' init explicitly warn and ignore any identifier passed in. There's no serial-based selection for them at all.
4. Minor wording nits (accurate in spirit, imprecise in detail)
data.sigil: RadioDataset reads are called "lazy" which is true for indexed access, but the bulk .data/.metadata accessors (f["data"][:], f["metadata/metadata"][:]) load the entire HDF5 file into memory.
io.sigil: SigMF is described as namespacing "the rest" of metadata under ria: it actually namespaces every key with no exclusion for ones already mapped to core SigMF keys, so those are duplicated rather than just the remainder covered. It's actually duplicated twice over: once via the ria:-prefixed keys, and again via a whole nested "ria" object (meta_dict["ria"] = metadata).
Everything else checked out exactly against source: root package constraints (numpy/scipy pins, SDR extras, license), the view/viz split, transforms' type/bounds contracts, orchestration's exact start-TX→record→stop-TX→label→QA→save sequence, the server's auth/deploy/inference behavior, the container app runner, the CLI command mapping, remote-control's SSH/ZMQ flow, and the core Recording/annotation/io behavior (including the previously-flagged save_recording and tx_cw latent bugs, which are correctly documented as-is).
Checkout
From your project repository, check out a new branch and test the changes.