Skip to content

Releases: bg002h/descriptor-mnemonic

descriptor-mnemonic-md-cli-v0.12.0

Choose a tag to compare

descriptor-mnemonic-md-cli-v0.11.3

Choose a tag to compare

descriptor-mnemonic-md-cli-v0.11.2

Choose a tag to compare

descriptor-mnemonic-md-cli-v0.11.1

Choose a tag to compare

descriptor-mnemonic-md-cli-v0.11.0

Choose a tag to compare

md-cli v0.6.1 — argv-hardening (PR_SET_DUMPABLE)

Choose a tag to compare

SemVer-PATCH — process argv-hardening. md now calls prctl(PR_SET_DUMPABLE, 0) at the top of main() (Linux; no-op elsewhere), denying other-UID /proc/$PID/cmdline reads + core dumps. New process_hardening module + libc dep. Part of the m-format constellation argv-hardening rollout (mnemonic-toolkit v0.34.7 + ms-cli v0.4.1 + mk-cli v0.4.2).

md-codec-v0.35.0

Choose a tag to compare

@bg002h bg002h released this 18 May 04:27

md-codec [0.35.0] — 2026-05-17

Closes md-codec-decode-with-correction-supports-non-chunked-md1
(filed at v0.22.x follow-ups cycle Phase B.8). Lockstep with
mnemonic-toolkit-v0.24.0 Tranche D.

Added

  • decode_with_correction non-chunked-form detection (crates/md-codec/src/chunk.rs).
    Pre-pass routes strings.len() == 1 inputs whose first-symbol bit-0 is
    0 (non-chunked header sentinel) directly into decode_payload,
    bypassing the chunk-reassembly path. Falls through to the existing
    reassemble for len > 1 OR len == 1 && bit-0 == 1 (preserves
    v0.34.0 count-1-chunked-of-1 semantics; multi-strings-supplied-as-one
    still surfaces Error::ChunkSetIncomplete).
  • 5 new unit cells in crates/md-codec/tests/bch_decode.rs covering the
    non-chunked-form detection branch.

Fixed

  • mnemonic repair --md1 / md repair invocations against non-chunked
    single-string md1 (the form emitted by plain md encode for small
    payloads) previously surfaced as wire-format-mismatch errors. They now
    decode through the BCH correction pipeline like any other md1 input.

Notes

  • Wire-format change is purely additive: non-chunked md1 was previously
    rejected by decode_with_correction; now decodable. No corpus refresh
    required; no downstream-codec migration burden.

Resolved (FOLLOWUPS)

  • md-codec-decode-with-correction-supports-non-chunked-md1 (cross-repo
    primary). GUI + toolkit + ms-codec mirrors transition open
    RESOLVED in md-codec-v0.35.0 lockstep.

md-codec v0.34.0 — public BCH primitives + decode_with_correction

Choose a tag to compare

@bg002h bg002h released this 18 May 00:59

Tranche B Phase B.1 + B.2 of the v0.22.x follow-ups cycle. Promotes md-codec's BCH primitives to the public API and adds a full-decode-semantic decode_with_correction for downstream sibling-codec + toolkit consumers.

What's new

  • Public BCH surfacebch::{GEN_REGULAR, MD_REGULAR_CONST, polymod_run, hrp_expand, bch_create_checksum_regular, bch_verify_regular} now pub. Lifts the visibility gate that blocked toolkit + ms-codec from consuming these primitives without forking.
  • bch_decode module — vendored Berlekamp-Massey + Chien + Forney + Gf32/Gf1024 (~450 LOC prod + ~100 LOC tests; constant-agnostic body parameterized on MD_REGULAR_CONST). Mirrors mk_codec::string_layer::bch_decode byte-equivalent under parity-smoke against mnemonic-toolkit-v0.22.1.
  • chunk::decode_with_correction(strings: &[&str]) -> Result<(Descriptor, Vec<CorrectionDetail>), Error> — full-decode semantics (Q1 lock): BCH-corrects each chunk then runs the existing decoder. Atomic per chunk per D28 (any chunk failing capacity bound → entire call fails with chunk_index named).
  • New Error::TooManyErrors { chunk_index: usize, bound: u8 } variant for BCH-correction-capacity failures.

Closes FOLLOWUPs

  • md-codec-decode-with-correction-public-api (toolkit + this repo)

Files new at this release

2 visibility-pin/parity tests + 1 unit test file (bch_decode.rs)
+550 LOC bch_decode.rs prod
+190 LOC chunk.rs (decode_with_correction)

Lockstep

🤖 Released as part of the v0.22.x follow-ups cycle (Tranche B close).

md-cli v0.6.0 — md repair subcommand

Choose a tag to compare

Tranche B Phase B.6 of the v0.22.x follow-ups cycle. Sibling-CLI repair surface mirroring toolkit's `mnemonic repair --md1`.

What's new

  • `md repair ...` — variadic positional multi-chunk repair via md-codec v0.34.0's `decode_with_correction`. D28 atomic semantics: if ANY chunk fails BCH capacity → whole call fails with `chunk_index` named, NO partial output emitted.
  • Exit codes per D26: `0` (clean) / `5` (REPAIR_APPLIED) / `2` (unrepairable).
  • `--json` envelope byte-matches toolkit's `RepairJson` schema per D27 (`schema_version="1"`, `kind="md1"`, `corrected_chunks`, `repairs[].{chunk_index, original_chunk, corrected_chunk, corrected_positions[].{position, was, now}}`).
  • D25 handler-signature cascade — 9 existing handlers refactored to `Result` for exit-5 propagation.

Closes FOLLOWUPs

  • `md-cli-repair-flag` (toolkit + this repo)

Lockstep

🤖 Released as part of the v0.22.x follow-ups cycle (Tranche B close).

md-codec v0.33.1 — doc-comment Vector struct fields

Choose a tag to compare

@bg002h bg002h released this 16 May 04:21

What's in this release

Patch: add /// doc-comments to the 5 pub fields of md_codec::test_vectors::Vector (name, template, keys, fingerprints, force_chunked). The fields were exposed in v0.33.0 (commit 8a52bed, the test_vectors public-API promotion) but lacked doc-comments, which the workspace -D warnings clippy gate upgrades to errors via the missing_docs lint. Result: workspace CI red on main since 2026-05-14 23:15 UTC. Doc-comment-only patch; no API contract change.

Full notes: CHANGELOG#md-codec-0331