Finding
kanon lint now enforces WORKFLOW/unwired-dead-code-untracked (error severity) — every #[allow(dead_code)]/#[expect(dead_code, reason = "...")] must carry a #NNN tracking reference or one of the closed-benign markers (RAII/held/keeps-alive/guard/test-fixture/schema-contract) in its reason. This rule postdates the akroasis#261 baseline (which does not cover it), so it is currently live-blocking kanon gate --stamp independent of any baseline expiry. 7 of the 12 flagged sites are genuinely forward-looking/awaiting-integration code (not test-only), so they need a real tracking ref rather than a benign marker. The other 5 (test-only or an existing tracked gap) are handled inline in the same pass as this issue — see akroasis#244 (kerykeion/store_forward.rs) and the test-fixture marker sites.
Evidence
kanon lint . --min-severity error @ main (8506c10), 2026-07-16 — the 7 sites this issue tracks:
crates/akroasis/src/main.rs:7 — mod mesh; suppression says "mesh helpers used by daemon; unused in CLI binary build". Verified: format_node_row, build_status_table, build_nodes_table, format_gateway_health have zero production callers anywhere in the tree (grep -rn across all crates) — only exercised by mesh::mod's own unit tests. No daemon/server crate currently calls them; print_status/print_nodes render hardcoded placeholder tables instead of calling these helpers. The "used by daemon" claim does not hold against current tree state.
crates/akroasis/src/main.rs:60 — Config.config_path field, reason "reserved for future CLI options" — no consumer exists yet.
crates/syntonia/src/baofeng/constants.rs:8 — protocol constants gated #![cfg_attr(not(feature = "hardware-serial"), expect(dead_code, ...))]; permanently "dead" in any build without the feature.
crates/syntonia/src/baofeng/variant.rs:5 — same feature-gate pattern for the variant API.
crates/syntonia/src/hardware/warnings.rs:66,94,113 — collect_scan_warnings, collect_detection_warnings, port_access_denied, reason "crate-local warning helpers are staged for the akroasis hardware backend" — no hardware backend currently calls them.
Why this matters
Dead-code suppressions without a live tracking ref are exactly the pattern that hid the already-filed unwired-capability gaps in this repo (akroasis#235, #236, #238, #244 all began as an unremarked #[allow(dead_code)]). The rule exists to stop that recurring silently. Right now these 7 sites fail the letter of the rule (no ref, no accurate benign marker) while also being real instances of the pattern the rule is designed to catch — the main.rs:7 mesh case in particular has a reason string that is no longer true against current tree state.
Desired correction
Per site, one of:
- Wire the code into a real caller and drop the suppression, or
- Confirm the code is genuinely staged for a specific, named future integration and reference this issue's number in the
reason string (already done for the sites above as part of the pass that filed this issue).
Track resolution here; close individual sites out via the kanon lint --refs-live sweep once each is either wired or the reason is otherwise satisfied.
Done when: kanon lint . --min-severity error shows zero WORKFLOW/unwired-dead-code-untracked findings whose reason cites this issue AND either the code has been wired into a real caller or the "staged for future work" framing has been confirmed still accurate.
Note — separate finding, same lint pass
VOCAB/crate-name-collision (warning, non-blocking): crates/koinon/Cargo.toml — the akroasis workspace's koinon crate ("κοινόν — common/shared types for the Akroasis workspace") collides in name with the standalone fleet repo koinon. kanon lint flags this as fixable only by adding a distinct_concepts block to kanon's hub-words.toml (fleet-wide config, lives in the kanon repo, not akroasis) or renaming one of the two. This is a cross-repo naming call outside a single-repo lint fix and is left for an explicit naming decision rather than resolved unilaterally here.
Finding
kanon lintnow enforcesWORKFLOW/unwired-dead-code-untracked(error severity) — every#[allow(dead_code)]/#[expect(dead_code, reason = "...")]must carry a#NNNtracking reference or one of the closed-benign markers (RAII/held/keeps-alive/guard/test-fixture/schema-contract) in itsreason. This rule postdates the akroasis#261 baseline (which does not cover it), so it is currently live-blockingkanon gate --stampindependent of any baseline expiry. 7 of the 12 flagged sites are genuinely forward-looking/awaiting-integration code (not test-only), so they need a real tracking ref rather than a benign marker. The other 5 (test-only or an existing tracked gap) are handled inline in the same pass as this issue — see akroasis#244 (kerykeion/store_forward.rs) and thetest-fixturemarker sites.Evidence
kanon lint . --min-severity error@ main (8506c10), 2026-07-16 — the 7 sites this issue tracks:crates/akroasis/src/main.rs:7—mod mesh;suppression says "mesh helpers used by daemon; unused in CLI binary build". Verified:format_node_row,build_status_table,build_nodes_table,format_gateway_healthhave zero production callers anywhere in the tree (grep -rnacross all crates) — only exercised bymesh::mod's own unit tests. No daemon/server crate currently calls them;print_status/print_nodesrender hardcoded placeholder tables instead of calling these helpers. The "used by daemon" claim does not hold against current tree state.crates/akroasis/src/main.rs:60—Config.config_pathfield, reason "reserved for future CLI options" — no consumer exists yet.crates/syntonia/src/baofeng/constants.rs:8— protocol constants gated#![cfg_attr(not(feature = "hardware-serial"), expect(dead_code, ...))]; permanently "dead" in any build without the feature.crates/syntonia/src/baofeng/variant.rs:5— same feature-gate pattern for the variant API.crates/syntonia/src/hardware/warnings.rs:66,94,113—collect_scan_warnings,collect_detection_warnings,port_access_denied, reason "crate-local warning helpers are staged for the akroasis hardware backend" — no hardware backend currently calls them.Why this matters
Dead-code suppressions without a live tracking ref are exactly the pattern that hid the already-filed unwired-capability gaps in this repo (akroasis#235, #236, #238, #244 all began as an unremarked
#[allow(dead_code)]). The rule exists to stop that recurring silently. Right now these 7 sites fail the letter of the rule (no ref, no accurate benign marker) while also being real instances of the pattern the rule is designed to catch — themain.rs:7mesh case in particular has a reason string that is no longer true against current tree state.Desired correction
Per site, one of:
reasonstring (already done for the sites above as part of the pass that filed this issue).Track resolution here; close individual sites out via the
kanon lint --refs-livesweep once each is either wired or the reason is otherwise satisfied.Done when:
kanon lint . --min-severity errorshows zeroWORKFLOW/unwired-dead-code-untrackedfindings whosereasoncites this issue AND either the code has been wired into a real caller or the "staged for future work" framing has been confirmed still accurate.Note — separate finding, same lint pass
VOCAB/crate-name-collision(warning, non-blocking):crates/koinon/Cargo.toml— the akroasis workspace'skoinoncrate ("κοινόν — common/shared types for the Akroasis workspace") collides in name with the standalone fleet repokoinon.kanon lintflags this as fixable only by adding adistinct_conceptsblock to kanon'shub-words.toml(fleet-wide config, lives in thekanonrepo, notakroasis) or renaming one of the two. This is a cross-repo naming call outside a single-repo lint fix and is left for an explicit naming decision rather than resolved unilaterally here.