diff --git a/Cargo.lock b/Cargo.lock index 244dc45..a5e3071 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -507,7 +507,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ "iana-time-zone", + "js-sys", "num-traits", + "wasm-bindgen", "windows-link 0.2.1", ] @@ -1565,11 +1567,11 @@ dependencies = [ [[package]] name = "hashlink" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" +checksum = "ea0b22561a9c04a7cb1a302c013e0259cd3b4bb619f145b32f72b8b4bcbed230" dependencies = [ - "hashbrown 0.15.5", + "hashbrown 0.16.1", ] [[package]] @@ -2178,9 +2180,9 @@ dependencies = [ [[package]] name = "libsqlite3-sys" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "133c182a6a2c87864fe97778797e46c7e999672690dc9fa3ee8e241aa4a9c13f" +checksum = "95b4103cffefa72eb8428cb6b47d6627161e51c2739fc5e3b734584157bc642a" dependencies = [ "cc", "pkg-config", @@ -3768,9 +3770,9 @@ dependencies = [ [[package]] name = "rusqlite" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "165ca6e57b20e1351573e3729b958bc62f0e48025386970b6e4d29e7a7e71f3f" +checksum = "f1c93dd1c9683b438c392c492109cb702b8090b2bfc8fed6f6e4eb4523f17af3" dependencies = [ "bitflags 2.10.0", "chrono", @@ -3779,6 +3781,7 @@ dependencies = [ "hashlink", "libsqlite3-sys", "smallvec", + "sqlite-wasm-rs", ] [[package]] @@ -4174,6 +4177,19 @@ dependencies = [ "windows-sys 0.60.2", ] +[[package]] +name = "sqlite-wasm-rs" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e98301bf8b0540c7de45ecd760539b9c62f5772aed172f08efba597c11cd5d" +dependencies = [ + "cc", + "hashbrown 0.16.1", + "js-sys", + "thiserror 2.0.17", + "wasm-bindgen", +] + [[package]] name = "stable_deref_trait" version = "1.2.1" diff --git a/crates/executor-local/Cargo.toml b/crates/executor-local/Cargo.toml index d5fe33b..16f165a 100644 --- a/crates/executor-local/Cargo.toml +++ b/crates/executor-local/Cargo.toml @@ -31,5 +31,5 @@ tracing = "0.1" [dev-dependencies] tempfile = "3.10" -rusqlite = { version = "0.37", features = ["bundled"] } +rusqlite = { version = "0.38", features = ["bundled"] } serde_yaml = "0.9.34" diff --git a/crates/kb/Cargo.toml b/crates/kb/Cargo.toml index aacc3e4..8f727a3 100644 --- a/crates/kb/Cargo.toml +++ b/crates/kb/Cargo.toml @@ -10,7 +10,7 @@ name = "runloop_kb" runloop-core = { path = "../core" } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -rusqlite = { version = "0.37", features = ["bundled", "chrono", "backup"] } +rusqlite = { version = "0.38", features = ["bundled", "chrono", "backup"] } thiserror = "2.0" parking_lot = "0.12" blake3 = "1.5" diff --git a/crates/kb/src/lib.rs b/crates/kb/src/lib.rs index 2af1c8f..8da757e 100644 --- a/crates/kb/src/lib.rs +++ b/crates/kb/src/lib.rs @@ -626,13 +626,15 @@ impl KnowledgeBase { let hash = blake3::hash(envelope_canonical.as_bytes()); let ts_ms = timestamp_ms(); + let ts_ms_i64 = i64::try_from(ts_ms) + .map_err(|_| Error::Config(format!("timestamp out of range: {ts_ms}")))?; let mut conn = self.events.lock(); let tx = conn.transaction()?; tx.execute( "INSERT INTO events (ts_ms, actor, kind, scope, payload_json, provenance_json, hash_blake3) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7)", params![ - ts_ms, + ts_ms_i64, &delta.actor, &delta.kind, scope,