Skip to content

chore(vext): port the remaining vex-tools delta; drop unused hickory-resolver - #105

Merged
hyperpolymath merged 1 commit into
mainfrom
chore/port-vex-tools-delta-2026-10-06
Oct 6, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
chore/port-vex-tools-delta-2026-10-06

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

This ports the last work from the standalone repo hyperpolymath/vex-tools (last commit 8b2af3f) into vexometer. The owner asked for vex-tools to become part of vexometer and be retired; it will be deleted after this merges, and its full history is kept in the owner's offline archive.

vex-tools and vexometer share merge-base 78ab1ca. Since then vex-tools has 111 commits and vexometer 179. Almost all of vex-tools' delta was template scaffolding that vexometer had already removed or converted, A2ML (retired), PMPL licence files, Deno files, or .md documents vexometer had already turned into .adoc. Two pieces of real work were missing here, and this PR brings in only those.

📌 New pins

Head SHA: e25d3d9.

Lockfile records changed:

  • vext/Cargo.lock: removes 66 packages: hickory-resolver 0.26.1 and the 65 crates only it pulled in. No other package versions change; every change is a removal.
  • vext-email-gateway/Cargo.lock: adds 28 packages: criterion 0.5.1 (dev-dependency, benches only) and 27 crates it pulls in. No existing package version changes; every change is an addition.

No uses: added, no actions.lock entry, no container digest.

Changes

  • vext/vext-core/Cargo.toml: drops hickory-resolver = "0.26". No .rs file under vext/ uses it. vex-tools removed it in 6e68b37; here it had survived a later version bump.
  • vext-email-gateway: adds a library target src/lib.rs that re-exports types. It also adds three integration-test files from vex-tools 4e345d6 (tests/aspect_test.rs, tests/e2e_test.rs, tests/property_test.rs plus its proptest regressions) and the criterion bench benches/gateway_bench.rs. The [lib], [[bin]] and [[bench]] sections and the criterion dev-dependency they need are added to Cargo.toml.
  • Adapted to this repo's newer dependencies. rand 0.10 has no OsRng or RngCore, so key generation uses rand::rngs::SysRng with TryRng::try_fill_bytes. That covers the ported tests and the existing unit test in src/types.rs, which did not compile under cargo test on main.
  • Two inherited tests asserted nothing. aspect_invalid_did_format never used its list of invalid DIDs, and aspect_did_string_parsing discarded the string it was meant to parse. Both now deserialise the DID from its string and assert rejection or a round-trip. A valid DID planted in the invalid list makes the first test fail, so it does check something.

The lazy-eliminator tests from the same vex-tools commit are already in vexometer, so they are not duplicated.

Not carried over, deliberately:

  • template Idris ABI files, which vexometer removed in f7dd218;
  • AI.djot and AI.a2ml (A2ML is retired);
  • PMPL licence files (per the 906eaa5 ruling);
  • deno.json and Deno.res (Deno is banned);
  • template docs/*.adoc, vext/PALIMPSEST.adoc and TEST-NEEDS.md;
  • a root scorecard.yml that would have added action pins.

RSR Quality Checklist

Required

  • Tests pass: cargo test --no-fail-fast in vext-email-gateway passes 4 (lib), 7 (bin), 16 (aspect), 8 (e2e) and 11 (property) tests. cargo test --workspace in vext/ passes. Toolchain: cargo 1.97.1.
  • Code is formatted: the new files are rustfmt --check clean. The existing src/main.rs and src/types.rs were already not rustfmt-clean on main, and this PR does not reformat them.
  • Linter is clean for what this PR adds: it introduces no new warnings. The dead_code warnings that remain come from the existing main.rs, which declares mod types separately from the library.
  • No banned language patterns: Rust only.
  • No unsafe blocks: none added.
  • No banned functions: not applicable (no proof code).
  • SPDX headers on all new files: MPL-2.0 on each new .rs file, carried from vex-tools. The proptest regressions file is generated data with no header slot.
  • No secrets: on the added and modified files, gitleaks reports "no leaks found" and trufflehog 3.96.0 reports 0 findings.

As Applicable

  • .machine_readable/*.a2ml: not touched; A2ML is retired.
  • Documentation: none needed; no user-facing behaviour changes.
  • TOPOLOGY.md: not applicable; no architecture change.
  • CHANGELOG: not updated; these changes are tests and a dependency removal only.
  • New dependencies: criterion 0.5 as a dev-dependency for the bench. One dependency is removed (hickory-resolver).

Testing

  • cargo test --no-fail-fast in vext-email-gateway: all pass (counts above).
  • cargo check --all-targets in vext-email-gateway: builds, bench included.
  • cargo test --workspace --no-fail-fast in vext: all pass. grep -c 'name = "hickory' vext/Cargo.lock gives 0.
  • Mutant check: a valid DID planted in aspect_invalid_did_format makes the test fail; the original passes.
  • Lockfile diffs compared as (name, version) sets against main: the changes are exactly the removals and additions listed above.
  • git diff --cached --check: clean. gitleaks and trufflehog: clean.
  • CI note: no workflow in this repo builds or tests Rust, so CI will not run these tests. The local runs above are the evidence.

Screenshots

Not applicable.

🤖 Generated with Claude Code

https://claude.ai/code/session_013PzSt7Jwt4Fz3R4xYYJ5k8

…resolver

vex-tools is being retired into this repo. Of the 111 commits it carried
past the shared merge-base 78ab1ca, two pieces of work were not already here:

- vext-core: remove `hickory-resolver = "0.26"`. No source file in vext/
  uses it (vex-tools removed it in 6e68b37); the lock loses 66 packages (hickory and the 65 crates
  only it pulled in) and nothing else.
- vext-email-gateway: add the library target (src/lib.rs re-exporting
  `types`), the aspect / e2e / property integration tests and the
  criterion bench from vex-tools 4e345d6, with the `[lib]`, `[[bin]]`,
  `[[bench]]` sections and the criterion dev-dependency they need.

Adapted to this repo's newer dependencies: rand 0.10 has no `OsRng` /
`RngCore`, so the tests (and the existing unit test in types.rs, which
did not compile under `cargo test`) use `SysRng` + `TryRng::try_fill_bytes`.
Two inherited aspect tests asserted nothing; they now parse DIDs through
serde and assert rejection / round-trip (a valid DID planted in the
invalid list makes the test fail).

Verified: `cargo test` in vext-email-gateway (4+7+16+8+11 pass) and
`cargo test --workspace` in vext (all pass).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013PzSt7Jwt4Fz3R4xYYJ5k8
@coderabbitai

coderabbitai Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 450750a4-ea36-459a-a3c3-5b2379850bfd
📥 Commits

Reviewing files that changed from the base of the PR and between c2e25fd and e25d3d9.

⛔ Files ignored due to path filters (2)
  • vext-email-gateway/Cargo.lock is excluded by !**/*.lock
  • vext/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (9)
  • vext-email-gateway/Cargo.toml
  • vext-email-gateway/benches/gateway_bench.rs
  • vext-email-gateway/src/lib.rs
  • vext-email-gateway/src/types.rs
  • vext-email-gateway/tests/aspect_test.rs
  • vext-email-gateway/tests/e2e_test.rs
  • vext-email-gateway/tests/property_test.proptest-regressions
  • vext-email-gateway/tests/property_test.rs
  • vext/vext-core/Cargo.toml
 _______________________________________________
< Finding more bugs than your brain at 4:00 pm. >
 -----------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • 🔴 Error committing to branch - (🔄 Check to retry)
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@hyperpolymath
hyperpolymath merged commit cba55cb into main Oct 6, 2026
24 of 27 checks passed
@hyperpolymath
hyperpolymath deleted the chore/port-vex-tools-delta-2026-10-06 branch October 6, 2026 17:34
@coderabbitai

coderabbitai Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Add Carrot credits or activate Agent usage billing to use Autopilot

@coderabbitai

coderabbitai Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

❌ Failed to create Coding Agent finishing-touch task. Please try again.

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