Skip to content

Feat/290 291 292 293 sync devcontainer release tests - #430

Open
deborah111haruna wants to merge 4 commits into
stellar-vortex-protocol:mainfrom
deborah111haruna:feat/290-291-292-293-sync-devcontainer-release-tests
Open

deborah111haruna wants to merge 4 commits into
stellar-vortex-protocol:mainfrom
deborah111haruna:feat/290-291-292-293-sync-devcontainer-release-tests

Conversation

@deborah111haruna

Copy link
Copy Markdown

Implement Issues #290, #291, #292, #293

Summary

Four high-complexity features for documentation sync, contributor onboarding, release automation, and test coverage:

#290: Sync Postman collection and add CI drift check for view functions

  • Add scripts/check-view-calls-sync.sh to verify collection matches contract view functions
  • Add scripts/generate-view-calls-collection.py to auto-generate collection entries
  • Update examples/view-calls.postman_collection.json with all 37 read-only views (added 25 missing)
  • Update examples/view-calls.md documentation with complete function list
  • Add CI job to .github/workflows/ci.yml to detect and prevent future drift

#291: Add devcontainer for reproducible contributor onboarding

  • Add .devcontainer/devcontainer.json for VS Code/GitHub Codespaces
  • Add .devcontainer/Dockerfile with Rust 1.78, wasm32 target, Stellar CLI, cargo-audit, make, just
  • Update CONTRIBUTING.md with quick-start devcontainer instructions
  • One-click setup eliminates manual multi-step toolchain configuration

#292: Add tag-triggered release workflow with checksummed artifacts

  • Add .github/workflows/release.yml triggered on v* tags
  • Build and publish both intent_settlement and proof_registry release wasm binaries
  • Compute SHA-256 checksums in SHASUMS256.txt for each binary
  • Attach all artifacts to GitHub Release with auto-extracted release notes from CHANGELOG.md
  • Update docs/mainnet-deployment-runbook.md with GitHub Release download option

#293: Add pytest suite and CI job for risk_aware_solver_bot.py

  • Add examples/tests/test_risk_aware_solver_bot.py with 30 pytest tests covering 6 decision gates
  • Mock all Stellar CLI/RPC calls for offline, deterministic testing
  • Add examples/tests/README.md with testing documentation
  • Add CI job to .github/workflows/ci.yml running pytest suite on every PR
  • All tests passing with full coverage of solver bot decision logic

Testing

Closes

… drift check for view functions

- Add scripts/check-view-calls-sync.sh to verify collection matches contract view functions
- Add scripts/generate-view-calls-collection.py to automate collection generation
- Update examples/view-calls.postman_collection.json with all 37 read-only view functions
  from intent_settlement/src/lib.rs (added 25 missing ones)
- Update examples/view-calls.md documentation with complete function list
- Add CI job (view-calls-sync) to .github/workflows/ci.yml to detect future drift
- Remove obsolete get_min_bond and get_protocol_params entries from collection

This ensures the Postman collection documentation stays in sync with the actual
contract interface and prevents documentation drift as new views are added.
…contributor onboarding

- Add .devcontainer/devcontainer.json with VS Code/GitHub Codespaces support
- Add .devcontainer/Dockerfile based on rust:1.78 image
- Preinstall Rust toolchain, wasm32-unknown-unknown, Stellar CLI, cargo-audit, make, just
- Configure rust-analyzer with clippy checks and auto-format on save
- Pre-fetch cargo dependencies during container setup for faster first build
- Update CONTRIBUTING.md with quick-start devcontainer instructions
- Support both local Dev Containers and GitHub Codespaces workflows

Eliminates manual multi-step toolchain setup and ensures all contributors
use the exact pinned Rust 1.78 version used in CI, with one-click setup
in VS Code or GitHub Codespaces.
… with checksummed artifacts

- Add .github/workflows/release.yml triggered on v* tags
- Require all CI checks to pass before building release
- Build both intent_settlement and proof_registry release wasm binaries
- Compute SHA-256 checksums for each binary in SHASUMS256.txt
- Publish GitHub Release with both wasm files and checksums attached
- Extract release notes from CHANGELOG.md (version section)
- Post verification summary to job output with checksum instructions
- Update docs/mainnet-deployment-runbook.md with GitHub Release download option

This provides integrators and auditors with:
- Canonical, signed-off wasm binaries tied to each GitHub tag
- Verifiable SHA-256 checksums for the exact bytes deployed
- Reproducible builds using Rust 1.78.0 matching CI
- Alternative to manual local builds for deployment verification
…sk_aware_solver_bot.py

- Add examples/tests/test_risk_aware_solver_bot.py with comprehensive pytest suite
- Cover all 6 decision gates documented in docs/risk-aware-solver-bot.md:
  1. Solver eligibility gating
  2. Intent state filtering (Open/PartiallyFilled only)
  3. Deadline-slack rejection
  4. Active-intent-cap enforcement
  5. Bond-utilization rejection
  6. Minimum-profit filtering
- Include boundary cases at each threshold (exactly at limit, just below/above)
- Include edge cases (zero values, negative profit, etc.)
- Mock Stellar CLI/RPC calls so tests run fully offline and deterministically
- Test helper function screen_candidates with various intent state scenarios
- Add integration tests combining multiple decision gates
- Add examples/tests/__init__.py for test package
- Add examples/tests/README.md with testing documentation and coverage instructions
- Add CI job (risk-aware-solver-bot-tests) to .github/workflows/ci.yml
- Run pytest on every PR that touches examples/risk_aware_solver_bot.py
- Report coverage with pytest-cov

Total: 30 tests covering the reference solver bot's decision logic with:
- Full line coverage of decision-gate functions
- Boundary and edge case testing
- Integration testing
- Deterministic, offline execution via mocking
@drips-wave

drips-wave Bot commented Sep 24, 2026

Copy link
Copy Markdown

@deborah111haruna Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

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