🤖️ Prompt
Phase 9 of the Interactive Job Runtime Refactor (master ticket 26/08/20/INTERACTIVE-JOB-RUNTIME-REFACTOR).
Replace third-party runtime dependencies with repo-owned implementations. The declared boundary: no third-party source or package dependencies in runtime products; compiler, linker, OS and browser ABI, graphics driver and the browser's own WASM engine are platform boundaries; no dependency may be replaced merely by copying its source unchanged into the repo.
Every replacement follows: old implementation, then dual-run differential tests, then parity and performance gates, then the new implementation becomes the default, then the old dependency is deleted. No flag-day purge.
Baseline: 238 third-party dependencies (104 Rust, 134 JS) recorded in the committed ratchet file at the repo root; the freeze check fails the build on any newly introduced package.
Ordered scope: thiserror to plain enums with Display and Error; serde, serde_json and ts-rs to an internal schema description plus the existing owned pack codec, an owned streaming JSON parser and writer where compatibility is required, and owned schema-to-language generation with explicit versioning and migration tests; tokio to the Phase 1 worker pool plus an owned platform I/O reactor (kqueue, epoll, IOCP, browser); flate2, libz-sys, miniz_oxide and zip to an owned streaming DEFLATE and ZIP implementation covering only the formats the products actually consume; getrandom and uuid to an owned seeded RNG plus an OS entropy shim; image and gltf to owned decoders for the formats actually used; rayon to pool lanes; jsonschema, prost, notify, reqwest and axum to owned equivalents scoped to their real consumers; rusqlite, sqlx and neo4j to an owned append-only event-log store matching the mandated CQRS and event-sourcing model; wasmtime and wit-bindgen to a repo-owned WASM interpreter whose instruction-level fuel metering becomes the preemption mechanism, differential-tested against wasmtime across the full plugin suite before wasmtime is deleted; and nalgebra, parry3d and spade to owned math, collision and triangulation, differential-tested against the Puzzle and FEM suites.
Sequencing constraint: a concurrent peer session is rewriting the plugin tree under ticket 26/08/20/COMPOSE-TO-PUZZLE5D-MIGRATION, so dependency work that touches plugin crates must wait until that settles. Framework-level replacements proceed first.
Exit gate: the dependency audit reports no third-party package under the declared boundary, and parity and performance gates are green for every replacement.
🤖️ Prompt
Phase 9 of the Interactive Job Runtime Refactor (master ticket 26/08/20/INTERACTIVE-JOB-RUNTIME-REFACTOR).
Replace third-party runtime dependencies with repo-owned implementations. The declared boundary: no third-party source or package dependencies in runtime products; compiler, linker, OS and browser ABI, graphics driver and the browser's own WASM engine are platform boundaries; no dependency may be replaced merely by copying its source unchanged into the repo.
Every replacement follows: old implementation, then dual-run differential tests, then parity and performance gates, then the new implementation becomes the default, then the old dependency is deleted. No flag-day purge.
Baseline: 238 third-party dependencies (104 Rust, 134 JS) recorded in the committed ratchet file at the repo root; the freeze check fails the build on any newly introduced package.
Ordered scope: thiserror to plain enums with Display and Error; serde, serde_json and ts-rs to an internal schema description plus the existing owned pack codec, an owned streaming JSON parser and writer where compatibility is required, and owned schema-to-language generation with explicit versioning and migration tests; tokio to the Phase 1 worker pool plus an owned platform I/O reactor (kqueue, epoll, IOCP, browser); flate2, libz-sys, miniz_oxide and zip to an owned streaming DEFLATE and ZIP implementation covering only the formats the products actually consume; getrandom and uuid to an owned seeded RNG plus an OS entropy shim; image and gltf to owned decoders for the formats actually used; rayon to pool lanes; jsonschema, prost, notify, reqwest and axum to owned equivalents scoped to their real consumers; rusqlite, sqlx and neo4j to an owned append-only event-log store matching the mandated CQRS and event-sourcing model; wasmtime and wit-bindgen to a repo-owned WASM interpreter whose instruction-level fuel metering becomes the preemption mechanism, differential-tested against wasmtime across the full plugin suite before wasmtime is deleted; and nalgebra, parry3d and spade to owned math, collision and triangulation, differential-tested against the Puzzle and FEM suites.
Sequencing constraint: a concurrent peer session is rewriting the plugin tree under ticket 26/08/20/COMPOSE-TO-PUZZLE5D-MIGRATION, so dependency work that touches plugin crates must wait until that settles. Framework-level replacements proceed first.
Exit gate: the dependency audit reports no third-party package under the declared boundary, and parity and performance gates are green for every replacement.