Repository navigation
Release/0.0.27 - #202
Merged
Merged
Release/0.0.27#202
Conversation
Bumps [@opentelemetry/semantic-conventions](https://github.com/open-telemetry/opentelemetry-js) from 1.40.0 to 1.41.1. - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@semconv/v1.40.0...semconv/v1.41.1) --- updated-dependencies: - dependency-name: "@opentelemetry/semantic-conventions" dependency-version: 1.41.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [eslint](https://github.com/eslint/eslint) from 10.3.0 to 10.4.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v10.3.0...v10.4.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 10.4.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [qs](https://github.com/ljharb/qs) from 6.14.2 to 6.15.2. - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](ljharb/qs@v6.14.2...v6.15.2) --- updated-dependencies: - dependency-name: qs dependency-version: 6.15.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.4.9 to 29.4.11. - [Release notes](https://github.com/kulshekhar/ts-jest/releases) - [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md) - [Commits](kulshekhar/ts-jest@v29.4.9...v29.4.11) --- updated-dependencies: - dependency-name: ts-jest dependency-version: 29.4.11 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 25.6.2 to 25.9.1. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 25.9.1 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.59.2 to 8.59.4. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.4/packages/typescript-eslint) --- updated-dependencies: - dependency-name: typescript-eslint dependency-version: 8.59.4 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.6 to 7.6.1. - [Release notes](https://github.com/protobufjs/protobuf.js/releases) - [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.6.1/CHANGELOG.md) - [Commits](protobufjs/protobuf.js@protobufjs-v7.5.6...protobufjs-v7.6.1) --- updated-dependencies: - dependency-name: protobufjs dependency-version: 7.6.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@grpc/grpc-js](https://github.com/grpc/grpc-node) from 1.14.3 to 1.14.4. - [Release notes](https://github.com/grpc/grpc-node/releases) - [Commits](https://github.com/grpc/grpc-node/compare/@grpc/grpc-js@1.14.3...@grpc/grpc-js@1.14.4) --- updated-dependencies: - dependency-name: "@grpc/grpc-js" dependency-version: 1.14.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
…@opentelemetry/exporter-trace-otlp-grpc, @opentelemetry/resources, @opentelemetry/sdk-metrics and @opentelemetry/sdk-node Bumps [@opentelemetry/core](https://github.com/open-telemetry/opentelemetry-js) to 2.8.0 and updates ancestor dependencies [@opentelemetry/core](https://github.com/open-telemetry/opentelemetry-js), [@opentelemetry/exporter-metrics-otlp-grpc](https://github.com/open-telemetry/opentelemetry-js), [@opentelemetry/exporter-trace-otlp-grpc](https://github.com/open-telemetry/opentelemetry-js), [@opentelemetry/resources](https://github.com/open-telemetry/opentelemetry-js), [@opentelemetry/sdk-metrics](https://github.com/open-telemetry/opentelemetry-js) and [@opentelemetry/sdk-node](https://github.com/open-telemetry/opentelemetry-js). These dependencies need to be updated together. Updates `@opentelemetry/core` from 2.7.1 to 2.8.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@v2.7.1...v2.8.0) Updates `@opentelemetry/exporter-metrics-otlp-grpc` from 0.218.0 to 0.219.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@experimental/v0.218.0...experimental/v0.219.0) Updates `@opentelemetry/exporter-trace-otlp-grpc` from 0.218.0 to 0.219.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@experimental/v0.218.0...experimental/v0.219.0) Updates `@opentelemetry/resources` from 2.7.1 to 2.8.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@v2.7.1...v2.8.0) Updates `@opentelemetry/sdk-metrics` from 2.7.1 to 2.8.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@v2.7.1...v2.8.0) Updates `@opentelemetry/sdk-node` from 0.218.0 to 0.219.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@experimental/v0.218.0...experimental/v0.219.0) --- updated-dependencies: - dependency-name: "@opentelemetry/core" dependency-version: 2.8.0 dependency-type: indirect - dependency-name: "@opentelemetry/exporter-metrics-otlp-grpc" dependency-version: 0.219.0 dependency-type: direct:production - dependency-name: "@opentelemetry/exporter-trace-otlp-grpc" dependency-version: 0.219.0 dependency-type: direct:production - dependency-name: "@opentelemetry/resources" dependency-version: 2.8.0 dependency-type: direct:production - dependency-name: "@opentelemetry/sdk-metrics" dependency-version: 2.8.0 dependency-type: direct:production - dependency-name: "@opentelemetry/sdk-node" dependency-version: 0.219.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [hono](https://github.com/honojs/hono) from 4.12.18 to 4.12.26. - [Release notes](https://github.com/honojs/hono/releases) - [Commits](honojs/hono@v4.12.18...v4.12.26) --- updated-dependencies: - dependency-name: hono dependency-version: 4.12.26 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v6...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Replace the v1/v2 storage with a from-scratch pure-C graph store. The old
biscuit-derived free-list could double-free into a 1-node cycle and hang; v3
eliminates that by redesign (Cartesian-tree allocator, sized free, continuous
coalescing) rather than guarding against it.
native/
memoryfile v3 mmap arena + Cartesian-tree free allocator (zero live
metadata); refuses non-v3 files
stringtable interned, refcounted strings
graph entities/relations/observations, adjacency, persistent name
index, BFS neighbors/find_path (best-effort + byte budget),
POSIX-ERE search, MC pagerank + MERW psi, random walk, validate
graphbind N-API binding (the C store IS the DB)
entity.h/schema.h biscuit-style versioned records (X-macro lens chain)
server.ts is now a thin MCP shell over the C ops (pagination, sort/format,
NL-guard, walker-visit recording, tracing); src/store.ts wraps the binding.
Search is case-sensitive POSIX ERE (dialect surfaced in the no-match warning).
Migration (src/migrate.ts): logical-rebuild old v1/v2 -> v3 preserving
mtime/obsMtime/visits/psi/totals. Auto-migrates in place on open (ensureV3):
flock-serialized across detect+migrate so concurrent startups can't race or
empty-clobber; keeps a .premigrate backup. Validated on a copy of the live
67k-entity / 146k-relation KB (0 mismatches); proven safe under 4 concurrent
startups. Live files are only read, never the originals.
binding.gyp: graphstore target, no -lnode (fixes the Node 24 exit segfault),
-fno-math-errno (drops libm).
Tests: the existing jest suite passes UNMODIFIED; 168/168 (adds migrate.test).
native/Makefile builds the C fuzz/unit harnesses under ASan/UBSan with a
test-only double-free detector (MEMFILE_DOUBLE_FREE_CHECK) that is absent from
the shipped binary; clean across ~900k fuzz ops.
Remove dead JS ranking (pagerank.ts, merw.ts) -- now computed in C.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EfzTKfjTRRNQ828crWoJf1
…test The find_path byte budget is enforced in C (graph_find_path_ex), so the V8 container-slot constants in server.ts were unused (no-unused-vars). The native/bench/test_binding.cjs smoke test duplicated jest coverage and tripped no-require-imports on a CommonJS file; the jest suite + C harnesses cover the binding. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EfzTKfjTRRNQ828crWoJf1
tsconfig compiles tests/ (include ./**/*.ts) and the prepare hook runs tsc, so the new test needs the explicit @jest/globals import the other tests already use. Ambient globals aren't surfaced under CI's frozen-lockfile install (only local npm @types/jest provided them), so tsc failed with TS2304/TS2593 on describe/it/expect. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EfzTKfjTRRNQ828crWoJf1
…ency The migrator read the old format via the old memoryfile.node, which CI/deploy never build (binding.gyp only builds graphstore.node, and the old addon's source became the v3 memoryfile.c -- it can't be rebuilt). That broke the CI test job and, worse, the actual auto-migration for users on first v3 start. readOldRaw parses the old .graph/.strings bytes directly (read-only; layout per graphfile.ts), validated byte-for-byte against the old addon on a copy of the live 67k-entity KB (0 mismatches, totals equal). The migrate test now migrates a committed v2 fixture, so it needs no native old addon either. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EfzTKfjTRRNQ828crWoJf1
memfile v3: pure-C graph store, ops in C, transparent auto-migration
…velop/actions/checkout-7 Bump actions/checkout from 6 to 7
…lop/opentelemetry/semantic-conventions-1.41.1 Bump @opentelemetry/semantic-conventions from 1.40.0 to 1.41.1
…lop/eslint-10.4.0 Bump eslint from 10.3.0 to 10.4.0
…lop/ts-jest-29.4.11 Bump ts-jest from 29.4.9 to 29.4.11
…lop/types/node-25.9.1 Bump @types/node from 25.6.2 to 25.9.1
…lop/typescript-eslint-8.59.4 Bump typescript-eslint from 8.59.2 to 8.59.4
Per-op rdtsc microbenchmark for the v3 graph store: - Adaptive sampling (riff RE=CV/sqrt(n) criterion, 2% target, batch-means), resolved in-run rather than persisted; auto-sizes iterations per op (~0.1s/run). - Frequency-reference op so comparisons cancel cross-run CPU-turbo drift; median is the headline metric. CI tooling, no committed baselines (nothing for git to churn): - bench-compare: base-vs-head on one runner, freq-corrected median, median of N interleaved runs, soft-fail + PR comment (benchmark.yml). - bench-aggregate + bench-creep: reference-normalized time-series on an orphan bench-history branch + slow-creep detector vs rolling baseline (benchmark-history.yml, on push to master). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EfzTKfjTRRNQ828crWoJf1
fc_graph.c: WP/ACSL proofs (memory-model-clean abstractions, fc_index idiom) of the adjacency edge encoding that every traversal decodes. - adj_pack / adj_pack_injective: the (target<<2)|dir packing is a lossless round-trip and injective for target<2^62, dir<4. Modeled arithmetically as target*4+dir (decode /4, %4 — bit-identical for these field widths); the literal bitwise form is opaque to WP's integer model, the same abstraction boundary fc_index uses for hash32. - read_edges_model: iterating count 24-byte entries at adj+8+i*24 is memory-safe and terminating. 42/42 goals discharged by Alt-Ergo. CI (proofs.yml, path-filtered to proof changes): opam frama-c + alt-ergo, runs `make proofs`. scripts/run-proofs.sh gates the result — frama-c exits 0 even with unproved goals, so it parses "Proved goals: P / T": clean files must be 100%, fc_tree is safety-only (mf_fit_model termination needs an acyclicity measure, the documented free-list-cycle frontier). Verified locally: fc_proofs 25/25, fc_index 27/27, fc_graph 42/42, fc_tree 12/13. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EfzTKfjTRRNQ828crWoJf1
Feature/benchmarks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.