feat: power reference site with in-process WIP WASM

Add the public-document Worldspace, Rust Client/Host bridge, and WIP-backed tree and document rendering while preserving static fallback and navigation.

Pin the Rust source and build tools, verify resource and trap boundaries, and cover dev and preview loading including same-origin generated module URLs.
This commit is contained in:
2026-10-16 05:59:46 +09:00
parent ad08037f4f
commit c480b67301
26 changed files with 2719 additions and 63 deletions
+21 -1
View File
@@ -10,6 +10,17 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout pinned Rust source
run: |
git clone https://gitea.hareworks.net/Hare/wip-rs ../wip-rs
git -C ../wip-rs checkout "$(python3 -c 'import json; print(json.load(open("site/rust-source.json"))["revision"])')"
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: '1.97.1'
targets: wasm32-unknown-unknown
components: rustfmt, clippy
- name: Install matching WASM bindings tool
run: cargo install wasm-bindgen-cli --version 0.2.121 --locked
- uses: actions/setup-node@v4
with:
node-version: '24'
@@ -21,16 +32,25 @@ jobs:
- name: Check and build
working-directory: site
run: npm run verify
- name: Validate generated Worldspace and Rust bridge
working-directory: site
run: |
WIP_TEST_GENERATED=1 node --test tests/worldspace-data.test.mjs
cargo fmt --all -- --check
cargo test --workspace --locked -- --include-ignored
cargo clippy --workspace --all-targets --locked -- -D warnings
- name: Browser smoke tests
working-directory: site
run: |
npx playwright install --with-deps chromium
npm run test:browser
npm run test:dev
- name: Verify subpath deployment
working-directory: site
run: |
SITE_BASE=/reference SITE_URL=https://example.test npm run verify
SITE_BASE=/reference npm run test:browser
SITE_BASE=/reference SITE_URL=https://example.test npm run test:browser
SITE_BASE=/reference SITE_URL=https://example.test npm run test:dev
- name: Build deployment artifact
working-directory: site
env: