Skip to content

Harmonize output APIs and add wireless XML support - #109

Merged
maebli merged 2 commits into
mainfrom
agent/harmonize-output-contract
Jul 26, 2026
Merged

Harmonize output APIs and add wireless XML support#109
maebli merged 2 commits into
mainfrom
agent/harmonize-output-contract

Conversation

@maebli

@maebli maebli commented Jul 26, 2026

Copy link
Copy Markdown
Owner

What changed

  • Added one versioned output contract across Rust, CLI, Python, and WASM, including strict hex parsing, typed errors, exact numeric values, provenance, diagnostics, enrichment, and width-aware table rendering.
  • Added wireless rSCADA XML support for short and long transport headers, ELL frames, and encrypted payloads while preserving wired XML byte parity.
  • Reworked the documentation output presentation around a self-hosted Shiki bundle with high-contrast light/dark themes, line numbers, keyboard-accessible scrolling, copy-safe gutters, and container-aware table sizing.
  • Documented the migration and release in CHANGELOG.md, updated binding examples, and moved the workspace packages to version 0.4.0.

Why

Output behavior had drifted between public surfaces: wireless frames could not be rendered as XML, tables overflowed narrow result boxes, syntax highlighting had weak contrast and incomplete language coverage, and error/value representations differed by binding. This makes those surfaces follow one explicit public contract while retaining clearly named legacy renderers for migration.

Impact

The canonical JSON, YAML, CSV, table, and binding representations now share a stable schema. Existing legacy layouts remain available under explicit legacy format names during the 0.4 migration. Wireless XML now uses real decoded transport/application fields and falls back to link-layer identity only when application identity is unavailable.

Validation

  • cargo test --workspace --all-features --exclude pymbusparser
  • cargo test -p m-bus-parser --features std
  • cargo clippy --workspace --all-targets --all-features --exclude pymbusparser -- -D warnings
  • cargo clippy -p pymbusparser --all-targets --all-features -- -D warnings
  • Python extension build plus 7 binding tests
  • wasm-pack test --headless --firefox (7 browser tests)
  • npm test in docs-ui (WCAG contrast and bundle-size checks)
  • cargo fmt --all -- --check
  • git diff --check

@maebli
maebli merged commit 487f07c into main Jul 26, 2026
14 checks passed
@maebli
maebli deleted the agent/harmonize-output-contract branch July 26, 2026 20:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant