Dwell timed itself with std::time::Instant, whose now() panics on
wasm32-unknown-unknown ("unreachable"). Express calls gaze_enter() and
check_completion() every 50 ms once the camera sees a face, so the first time
an eye-gaze or head-tracking user looked at a cell, the app crashed. Proven
with a small wasm probe: std's Instant throws, web_time's returns. Dwell and
aac-core's store now use web-time, which is std's Instant on native targets and
performance.now() in the browser.
ScanEngine gains set_grid()/grid(): the engine was built for a fixed 4×5 grid
and had no way to learn the board on screen. A running scan restarts from the
top of the new grid, so it never highlights a row the board does not have.
New test: set_grid_follows_the_board_and_restarts_a_running_scan.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
38 lines
1,012 B
TOML
38 lines
1,012 B
TOML
[workspace]
|
|
resolver = "3"
|
|
members = [
|
|
"crates/access-core",
|
|
"crates/aac-core",
|
|
"crates/aac-web",
|
|
"crates/aac-conformance",
|
|
]
|
|
|
|
[workspace.package]
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
license = "Apache-2.0"
|
|
repository = "https://github.com/transaction-science/open-standards"
|
|
rust-version = "1.97"
|
|
authors = ["Transaction Science <[email protected]>"]
|
|
|
|
[workspace.dependencies]
|
|
# A monotonic clock that works on the web too: std::time::Instant::now()
|
|
# panics on wasm32-unknown-unknown, which crashed eye-gaze dwell in the browser.
|
|
web-time = "1"
|
|
access-core = { path = "crates/access-core" }
|
|
aac-core = { path = "crates/aac-core" }
|
|
|
|
# Serialization
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = { version = "1" }
|
|
|
|
# Error handling / diagnostics
|
|
thiserror = "2"
|
|
tracing = "0.1"
|
|
|
|
# Identity / time
|
|
uuid = { version = "1", features = ["v4", "serde"] }
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
|
|
[workspace.lints.clippy]
|
|
all = "warn"
|