Skip to content

Lint-debt burn-down: 185 violations block gate stamping (baseline expires 2026-08-13) #261

Description

@forkwright

Finding

kanon lint fails on akroasis main with 185 pre-existing violations (18 error-severity), blocking kanon gate --stamp — no human PR can earn the Gate-Passed trailer required by gate-attestation. The rule set evolved faster than this repo; nothing here is introduced by in-flight PRs.

Evidence

kanon lint . --report @ fix/rustsec-2026-07 (main + lockfile-only diff), 2026-07-16. Error-severity rows, in priority order:

  • RUST/plain-string-secretcrates/akroasis/src/vault/mod.rs:296 (a secret in a plain String in the VAULT module — burn this first)
  • RUST/indexing-slicingcrates/kerykeion/src/crypto.rs:43 (panic path in crypto code)
  • RUST/indexing-slicing + 10× RUST/unwrapcrates/syntonia/src/baofeng/{codec,variant}.rs (radio codec parse paths)

Warning-tier families: 32× bare-assert, 25× shallow-struct, 17× arc-mutex-anti-pattern, 16× config-deny-unknown-fields, 16× no-result-unwrap-or-default, 10× unwrap, plus tail (full list in the committed baseline file).

Why this matters

The gate wall surfaced while landing the RUSTSEC security fix (#260): a repo that cannot stamp cannot land human work, and the two error clusters are in security-bearing code (vault, crypto).

Desired correction

Burn down by family, errors first (vault secret → kerykeion crypto indexing → baofeng parse robustness → warning families). A .kanon-lint-baseline.toml (kanon#1040 pattern) ships with #260 to unblock stamping — remove_after = 2026-08-13; an expired non-empty baseline fails the gate, so this must be cleared by then.

Done when: kanon lint . is clean on main with the baseline file deleted.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions