Skip to content

refactor(crates): rename Wasm-component crates into the scry-sai-* namespace#47

Merged
avrabe merged 1 commit into
mainfrom
feat-scry-sai-components
Jun 14, 2026
Merged

refactor(crates): rename Wasm-component crates into the scry-sai-* namespace#47
avrabe merged 1 commit into
mainfrom
feat-scry-sai-components

Conversation

@avrabe

@avrabe avrabe commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Completes the scry-sai-* namespace across the whole workspace (part 2 of 2): wasm-lattice → scry-sai-lattice, scry-analyzer → scry-sai-analyzer. Same witness DEC-034 trick — rename only the Cargo [package] name; keep [lib] name (wasm_lattice / scry_analyzer), the directories, and the Bazel targets unchanged, so //:scry builds exactly as before. Nothing depends on these two as cargo deps, so the rename is fully isolated.

Publishing status (unchanged)

These stay publish = false and continue shipping as signed .wasm release assets. They are cdylib Wasm components built from Bazel-generated WIT bindings → a host cargo publish can't build them, and a cargo add scry-sai-analyzer consumer can't use a cdylib component. This matches the witness precedent (publish the libraries, ship the component).

Deliberately deferred: making them genuine crates.io libraries would require a wit_bindgen::generate! binding refactor that swaps the rust_wasm_component_bindgen rule on the path that builds the shipped //:scry — high risk (CI-only validation), for no consumer benefit. Flagged for an explicit decision rather than done speculatively.

Result: full namespace

crates.io package publishes?
scry-sai-interval, scry-sai-taint, scry-sai-octagon, scry-sai-provenance, scry-sai-core ✅ yes (libraries)
scry-sai-lattice, scry-sai-analyzer ships as .wasm (publish = false)
scry-host-tests, scry-mcdc internal harnesses (unpublished)

Verification

  • bare cargo build --release, pure-crate tests (5+24), rivet validate clean.
  • Bazel //:scry unaffected (target names unchanged) — confirmed by CI.

🤖 Generated with Claude Code

…mespace

Complete the scry-sai-* (Sound Abstract Interpretation) namespace across the
whole workspace: wasm-lattice -> scry-sai-lattice, scry-analyzer ->
scry-sai-analyzer. Witness DEC-034 trick again — rename only [package] name;
keep [lib] name (wasm_lattice / scry_analyzer), the directories, and the Bazel
targets (rust_wasm_component_bindgen name + the macro-derived bindings crate)
unchanged, so //:scry builds exactly as before. Nothing depends on these two as
cargo deps, so the rename is fully isolated.

They stay publish = false and continue to ship as signed .wasm release assets:
they are cdylib Wasm components built from Bazel-generated WIT bindings, so a
host cargo publish can't build them and a cargo add consumer can't use a cdylib
component (the witness precedent). Making them genuine crates.io libraries would
require a wit_bindgen::generate! binding refactor touching the shipped //:scry
composition for no consumer benefit — deferred.

Verified: bare cargo build --release, pure-crate tests, rivet clean. Bazel
//:scry unaffected (target names unchanged) — confirmed by CI.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@avrabe avrabe merged commit 4e35d24 into main Jun 14, 2026
9 checks passed
@avrabe avrabe deleted the feat-scry-sai-components branch June 14, 2026 21:12
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