chore: remove abandoned wasm TypeScript-to-Python experiment#2838
chore: remove abandoned wasm TypeScript-to-Python experiment#2838yonib05 wants to merge 3 commits into
Conversation
Drop the strands-wasm, strands-py-wasm, and wit packages along with the WIT-to-bindings pipeline. Strip the wasm/WIT/Python-venv layers from the strandly CLI, leaving a TypeScript-focused dev tool, and remove the wasm-only CI workflows, dependabot entry, and doc references. The root pyproject.toml's ruff/pyright config and componentize-py and wasmtime dependencies only ever served strands-py-wasm; strands-py is self-contained via hatch, so those are trimmed too.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Assessment: Approve Clean, well-scoped deletion of the abandoned WASM experiment. I verified the removal is complete — there are no dangling references to Review notes
Nicely surgical cleanup — the line-by-line CLI trim is easy to follow. |
| run(`npx prettier ${opts?.check ? '--check' : '--write'} 'strands-ts/**/*.ts' --ignore-path .gitignore`) | ||
| } | ||
|
|
||
| function clean(): void { |
There was a problem hiding this comment.
Issue: clean() calls npm run clean --workspaces, but strandly has no clean script (only strands-ts does). npm run --workspaces without --if-present exits non-zero when a workspace is missing the script — though the surrounding try/catch downgrades it to a warning, so it's non-fatal. This is pre-existing behavior (unchanged by this PR aside from dropping the rm -rf .venv strands-py-wasm/target line), so not blocking.
Suggestion: Optional follow-up — add --if-present to make the intent explicit and silence the spurious warning.
Prune the wasm dependency trees (componentize-js, jco, wasmtime, the strands-wasm workspace) that npm resolves out now that the packages are gone, and recompute dev flags.
strandly has no clean script, so 'npm run clean --workspaces' errored and was swallowed by a try/catch. --if-present skips workspaces without the script, dropping the warn-and-continue wrapper.
|
Re-reviewed after The regenerated lockfile fully resolves the consistency concern from my earlier review:
Assessment: Approve. The only blocking item from my first pass is addressed. The remaining |
|
Thanks for the review. Both follow-ups are addressed:
|
|
Re-reviewed after The
Assessment: Approve. Both follow-ups from my reviews (lockfile regeneration + |
|
A note on the red checks — all of them are unrelated to the changes in this PR:
|
Description
We trialed compiling the TypeScript SDK to other languages via WebAssembly, and have decided not to pursue that direction. This removes the experiment from the monorepo.
Deleted wholesale:
strands-wasm/— WASM component bindingsstrands-py-wasm/— Python host/bridge for WASM componentswit/— WebAssembly Interface Types definitions (the WIT-to-bindings pipeline only ever fed this experiment;strands-tsimports nothing generated from it).github/workflows/wasm-py-check.ymland.github/workflows/python-wasm-pypi-publish-on-release.ymlSurgical edits:
strandly/src/cli.ts): dropped the--wasm/--pylayer flags, thegenerate(WIT codegen) andvalidatecommands, the Python-venv helpers (py,installPyWasm), and wasm build/check/clean steps. It is now a TypeScript-focused dev CLI.pyproject.toml: removedcomponentize-pyand the forkedwasmtimedependency plus the py-wasm integration-test extras, and dropped the ruff/pyrightincludepaths that targetedstrands-py-wasm.strands-pyis self-contained via hatch and is unaffected.ci.yml,typescript-pr-and-push.yml,typescript-integration-test.yml): removed wasm/wit path filters and thecall-py-checkjob.package.jsonworkspace,package-lock.json(regenerated to prune the wasm dependency trees),.github/dependabot.yml,.gitignore,.husky/pre-commit, rootREADME.md,AGENTS.md, andstrands-ts/AGENTS.md.Related Issues
Type of Change
Other: removal of an abandoned experiment / repo cleanup
Testing
Verified locally with a clean install:
npm install— regeneratespackage-lock.jsonwith the wasm dependency trees (componentize-js, jco, wasmtime, thestrands-wasmworkspace) fully pruned; no residual wasm references remain.npm run build(strands-ts) — passes.--helpshows the trimmed command set,strandly checkruns the full TS type-check (src + integ) with no errors,strandly fmtworks..husky/pre-commithook (build + test suite with coverage + lint + format check) passes.This is otherwise a deletion-only change with no new runtime code; the strandly CLI rewrite only delegates to existing, unchanged
strands-tsnpm scripts.Checklist