Skip to content

fix(strandly): fix bootstrap ordering and update README#2402

Open
awsarron wants to merge 1 commit into
strands-agents:mainfrom
awsarron:fix/strandly-bootstrap
Open

fix(strandly): fix bootstrap ordering and update README#2402
awsarron wants to merge 1 commit into
strands-agents:mainfrom
awsarron:fix/strandly-bootstrap

Conversation

@awsarron
Copy link
Copy Markdown
Member

Summary

  • Fix strandly bootstrap failing on fresh clone — pip install -e strands-py-wasm/ was running before the WASM component was built (hatchling needs strands-agent.wasm to exist)
  • Add pgrayy-wasmtime to root pyproject.toml deps so strandly generate has access to wasmtime.component.bindgen without needing strands-py-wasm installed first
  • Remove _generated/ before regenerating to avoid FileExistsError
  • Fix stale test imports in strands-py-wasm/tests/test_agent.py (StreamEvent moved to types module)
  • Update strands-wasm/README.md to use strandly commands and correct paths

Test plan

  • strandly bootstrap passes from a completely clean state (no .venv/, no dist/, no generated/)
  • Python test passes (1 passed)
  • TypeScript tests pass (2849 passed)
  • Pre-commit hooks pass

@github-actions
Copy link
Copy Markdown
Contributor

Assessment: Approve

Clean, well-scoped fix. The bootstrap ordering change is correct — hatchling's force-include needs the .wasm artifact at install time, so installPyWasm() must follow build().

Minor observations
  • setup command: Now that pip install -e strands-py-wasm/ is removed from setup(), running strandly setup alone no longer yields a fully working Python environment (no strands package importable). This seems intentional since bootstrap is the documented entry point, but worth noting for anyone using setup standalone.
  • package-lock.json: The "peer": true removal on fsevents looks like an npm version artifact rather than an intentional change. Harmless, but might be worth a note in the PR description.

Comment thread strands-wasm/README.md Outdated
Comment thread strandly/src/cli.ts
@github-actions
Copy link
Copy Markdown
Contributor

Assessment: Comment (Approve with minor suggestion)

The core fix is correct and well-motivated — moving installPyWasm() after build() resolves the hatchling force-include dependency on the WASM artifact.

Review Notes
  • README bootstrap instructions: The switch from npm run dev -- bootstrap to strandly bootstrap introduces a chicken-and-egg problem for first-time users (see inline comment).
  • Deleted comment: A small bit of useful architectural context was removed in the generate() refactor.
  • package-lock.json: The "peer": true removal on fsevents appears to be an npm version artifact — harmless but unrelated to the fix.

The bootstrap ordering fix and pgrayy-wasmtime addition are solid improvements to the developer setup experience.

Comment thread pyproject.toml
@github-actions
Copy link
Copy Markdown
Contributor

Assessment: Approve

Clean, well-scoped fix. The bootstrap reordering is correct — installPyWasm() must follow build() because hatchling's force-include needs the WASM artifact at install time.

Details
  • Dependency version alignment: The pgrayy-wasmtime PyPI range in root and git URL pin in strands-py-wasm could diverge over time (see inline comment).
  • README & test fixes: All correct and consistent with the codebase.

- Move `pip install -e strands-py-wasm/` after build step since it
  requires strands-agent.wasm to exist
- Add pgrayy-wasmtime to root pyproject.toml deps so generate step
  has access to wasmtime.component.bindgen
- Remove _generated/ before regenerating to avoid FileExistsError
- Fix stale test imports (StreamEvent moved to types module)
- Update strands-wasm/README.md to use strandly commands and correct
  paths
@awsarron awsarron force-pushed the fix/strandly-bootstrap branch from 1154532 to 75f6a6f Compare May 30, 2026 18:59
@github-actions github-actions Bot added size/s and removed size/s labels May 30, 2026
@awsarron awsarron deployed to auto-approve May 30, 2026 18:59 — with GitHub Actions Active
@github-actions
Copy link
Copy Markdown
Contributor

Assessment: Approve

Well-scoped fix with correct ordering logic. Verified the full pipeline: setup() installs root deps (including pgrayy-wasmtime for codegen), generate() uses wasmtime.component.bindgen, build() produces strands-agent.wasm, then installPyWasm() can successfully install because hatchling's force-include finds the artifact. The rm -rf _generated before regeneration correctly prevents FileExistsError in both normal and --check modes.

No additional concerns beyond what existing reviews have noted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant