@feltdb/core 0.12.0 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/agent-state.d.ts +489 -0
  2. package/dist/agent-state.d.ts.map +1 -0
  3. package/dist/agent-state.js +993 -0
  4. package/dist/build-identity.json +19 -0
  5. package/dist/create/build-identity.json +19 -0
  6. package/dist/create/package-versions.js +1 -1
  7. package/dist/create/server-source/crates/feltdb/src/lib.rs +11 -0
  8. package/dist/create/server-source/crates/feltdb/src/query_performance.rs +4 -1
  9. package/dist/create/server-source/crates/feltdb/src/state_model.rs +854 -155
  10. package/dist/create/server-source/crates/feltdb/tests/generalized_version_control_substrate_completion.rs +31 -13
  11. package/dist/create/server-source/crates/feltdb/tests/state_ref_authority.rs +918 -0
  12. package/dist/create/server-source/crates/feltdb/tests/workload_envelope_contract.rs +15 -2
  13. package/dist/create/server-source/crates/feltdb-server/Cargo.toml +4 -0
  14. package/dist/create/server-source/crates/feltdb-server/benches/query_shape_observer.rs +136 -0
  15. package/dist/create/server-source/crates/feltdb-server/src/app_state.rs +3 -0
  16. package/dist/create/server-source/crates/feltdb-server/src/lib.rs +1 -0
  17. package/dist/create/server-source/crates/feltdb-server/src/main.rs +74 -5
  18. package/dist/create/server-source/crates/feltdb-server/src/query_shape.rs +1137 -0
  19. package/dist/create/server-source/crates/feltdb-server/tests/fixtures/query-shape-trace.expected.json +300 -0
  20. package/dist/create/server-source/crates/feltdb-server/tests/fixtures/query-shape-trace.json +25 -0
  21. package/dist/create/server-source/crates/feltdb-server/tests/query_shape_trace.rs +128 -0
  22. package/dist/index-core.d.ts +1 -0
  23. package/dist/index-core.d.ts.map +1 -1
  24. package/dist/index-core.js +1 -0
  25. package/dist/studio/app.d.ts.map +1 -1
  26. package/dist/studio/components/GlobalSearch.d.ts.map +1 -1
  27. package/dist/studio/components/index.js +1 -1
  28. package/dist/studio/{components-BHTKlUgT.js → components-Bivm2lX6.js} +2 -1
  29. package/dist/studio/control-plane/Agents.d.ts.map +1 -1
  30. package/dist/studio/control-plane/Data.d.ts.map +1 -1
  31. package/dist/studio/control-plane/Operations.d.ts.map +1 -1
  32. package/dist/studio/control-plane/Overview.d.ts.map +1 -1
  33. package/dist/studio/control-plane/Schema.d.ts.map +1 -1
  34. package/dist/studio/control-plane/State.d.ts +11 -0
  35. package/dist/studio/control-plane/State.d.ts.map +1 -1
  36. package/dist/studio/control-plane/index.d.ts +1 -1
  37. package/dist/studio/control-plane/index.d.ts.map +1 -1
  38. package/dist/studio/control-plane/index.js +2 -2
  39. package/dist/studio/control-plane/primitives.d.ts +14 -2
  40. package/dist/studio/control-plane/primitives.d.ts.map +1 -1
  41. package/dist/studio/control-plane-CLm69XwX.js +4121 -0
  42. package/dist/studio/index.js +266 -235
  43. package/dist/studio/studio.css +1 -1
  44. package/dist/studio-app/assets/{feltdb_wasm-DYfWAV0E.js → feltdb_wasm-DACcD-zs.js} +1 -1
  45. package/dist/studio-app/assets/feltdb_wasm_bg-BejThWID.wasm +0 -0
  46. package/dist/studio-app/assets/index-CiC8VY-a.css +1 -0
  47. package/dist/studio-app/assets/index-CoZaxnlm.js +30 -0
  48. package/dist/studio-app/index.html +2 -2
  49. package/dist/wasm/feltdb_wasm_bg.wasm +0 -0
  50. package/package.json +2 -2
  51. package/dist/studio/control-plane-DP8ljTDO.js +0 -3207
  52. package/dist/studio-app/assets/feltdb_wasm_bg-DHiOUhoQ.wasm +0 -0
  53. package/dist/studio-app/assets/index-6f6KVx5R.js +0 -30
  54. package/dist/studio-app/assets/index-BrsF-kWL.css +0 -1
@@ -0,0 +1,19 @@
1
+ {
2
+ "schema": "feltdb.core-build-identity.v1",
3
+ "package": "@feltdb/core",
4
+ "version": "0.12.1",
5
+ "source_digest": "sha256:95a6ebf48be2a6be56fad60c24a10b62d93878857e728448913d9bc243e8ce3a",
6
+ "inputs": [
7
+ "Cargo.lock",
8
+ "Cargo.toml",
9
+ "crates",
10
+ "packages/core",
11
+ "packages/migration-sherpa",
12
+ "packages/react",
13
+ "packages/studio",
14
+ "packages/wasm",
15
+ "tools/cli",
16
+ "tools/create-feltdb"
17
+ ],
18
+ "files": 731
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "schema": "feltdb.core-build-identity.v1",
3
+ "package": "create-feltdb",
4
+ "version": "0.12.1",
5
+ "source_digest": "sha256:95a6ebf48be2a6be56fad60c24a10b62d93878857e728448913d9bc243e8ce3a",
6
+ "inputs": [
7
+ "Cargo.lock",
8
+ "Cargo.toml",
9
+ "crates",
10
+ "packages/core",
11
+ "packages/migration-sherpa",
12
+ "packages/react",
13
+ "packages/studio",
14
+ "packages/wasm",
15
+ "tools/cli",
16
+ "tools/create-feltdb"
17
+ ],
18
+ "files": 731
19
+ }
@@ -1,4 +1,4 @@
1
1
  // One release train keeps generated applications installable. The repository
2
2
  // validation script checks these values against every workspace manifest.
3
- export const FELTDB_PACKAGE_VERSION = '0.11.9';
3
+ export const FELTDB_PACKAGE_VERSION = '0.12.1';
4
4
  export const feltdbPackageRange = `^${FELTDB_PACKAGE_VERSION}`;
@@ -3025,6 +3025,17 @@ impl FeltDb {
3025
3025
  Ok(keys)
3026
3026
  }
3027
3027
 
3028
+ /// The record write path's head per resource: the revision its next
3029
+ /// authoritative write will name as parent. Garbage collection treats each
3030
+ /// one as a root, so a write can never mint a child of a collected revision.
3031
+ pub(crate) fn revision_head_ids(&self) -> Vec<state_model::StateId> {
3032
+ self.state()
3033
+ .revision_heads
3034
+ .values()
3035
+ .map(|(id, _)| id.clone())
3036
+ .collect()
3037
+ }
3038
+
3028
3039
  pub fn has_applied_transaction(&self, transaction_id: &str) -> Result<bool> {
3029
3040
  Ok(self
3030
3041
  .inner
@@ -189,12 +189,15 @@ mod tests {
189
189
  let timer = tracker.start_timer();
190
190
  std::thread::sleep(Duration::from_micros(50));
191
191
  let elapsed = timer.elapsed_us();
192
+ // A sleep lasts at least as long as asked, and on a loaded machine
193
+ // arbitrarily longer, so only the lower bound is a property.
194
+ assert!(elapsed >= 50, "timer measured {elapsed}us for a 50us sleep");
192
195
 
193
196
  tracker.record_query("index_lookup".to_string(), "idx_1".to_string(), 10, elapsed);
194
197
 
195
198
  let stats = tracker.get_stats("index_lookup").unwrap();
196
199
  assert_eq!(stats.count, 1);
197
- assert!(stats.p50_us < 1000);
200
+ assert_eq!(stats.p50_us, elapsed);
198
201
  }
199
202
 
200
203
  #[test]