Skip to content

SRE-1173: Depend on ^manifest in compile and compile:release - #10007

Merged
claude[bot] merged 3 commits into
mainfrom
claude/sre-1173-manifest-edges-on-compile
Oct 12, 2026
Merged

claude[bot] merged 3 commits into
mainfrom
claude/sre-1173-manifest-edges-on-compile

Conversation

@claude

@claude claude Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Requested via Slack thread

🌟 Purpose

compile and compile:release build the hash-graph binary, which links every workspace crate it reaches. Neither task depended on the manifest chain of those crates, so its hash did not cover their sources.

This PR adds the ^manifest edge to both tasks. Both tasks stay cache: false until they declare their binary outputs, which SRE-1174 tracks. A cache hit without outputs restores no binary. That is what broke the merge queue on an earlier version of this PR, which enabled caching: hash-graph#compile got a remote cache hit, target/debug/hash-graph was never built, and hash-graph#start:test:migrate failed. #9987 is a related experiment with caching the debug binary.

🔍 Changes

  • The edits are in the root turbo.json. hash-graph is the only package that implements either task, and its turbo.json sets neither cache nor dependsOn for them.
  • The docs/task-dependencies.json files are regenerated with turbo run //#doc:task-dependencies.

@github-actions github-actions Bot added area/apps > hash* Affects HASH (a `hash-*` app) area/apps > hash-api Affects the HASH API (app) type/eng > backend Owned by the @backend team area/tests New or updated tests area/tests > integration New or updated integration tests area/apps area/apps > hash-graph labels Oct 12, 2026
The `hash-graph` binary links every workspace crate it reaches, so its
compile tasks now depend on the `manifest` chain of those crates. Both
tasks stay uncached. The task-dependency docs are regenerated.
@claude
claude Bot force-pushed the claude/sre-1173-manifest-edges-on-compile branch from 4d43e06 to 8d454a6 Compare October 12, 2026 17:17
The `^manifest` edges make the hash of both tasks cover every workspace
crate the `hash-graph` binary links, so the tasks no longer need to opt
out of caching. The task-dependency docs are regenerated.
@claude claude Bot changed the title SRE-1173: Depend on ^manifest in compile and compile:release SRE-1173: Cache compile and compile:release behind ^manifest edges Oct 12, 2026
@claude
claude Bot deployed to pull-request October 12, 2026 17:21 Active
@claude
claude Bot deployed to pull-request October 12, 2026 17:21 Active
@codecov

codecov Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 67.98%. Comparing base (9d99b72) to head (b1785af).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #10007      +/-   ##
==========================================
+ Coverage   67.97%   67.98%   +0.01%     
==========================================
  Files        1945     1945              
  Lines      201707   201674      -33     
  Branches     8288     8286       -2     
==========================================
- Hits       137107   137105       -2     
+ Misses      62981    62950      -31     
  Partials     1619     1619              
Flag Coverage Δ
hash-graph 21.28% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@codspeed

codspeed Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Merging this PR will improve performance by 18.95%

⚠️ 6 benchmarks measured no execution time

Nothing ran under measurement, usually because the compiler removed the code under test. These results are not comparable, so they count as unchanged.

Preventing compiler optimizations

⚠️ 1 benchmark spent significant time in system calls

System calls cannot be consistently instrumented, so they are not included in the measure, which understates the real cost. Please switch to the Walltime instrument to accurately measure system calls.

Measurement and system calls

⚠️ Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 2 improved benchmarks
✅ 96 untouched benchmarks

Performance Changes

Benchmark BASE HEAD Efficiency
⚡ bit_matrix/dense/iter_row[64] 166.4 ns 137.2 ns +21.26%
⚡ bit_matrix/dense/iter_row[200] 203.9 ns 174.7 ns +16.69%

Tip

Curious why performance improved? Comment @codspeedbot explain why performance improved on this PR, or directly use the CodSpeed MCP with your agent.


Comparing claude/sre-1173-manifest-edges-on-compile (b1785af) with main (a0c2313)1

Open in CodSpeed

Footnotes

  1. No successful run was found on main (dd2d712) during the generation of this report, so a0c2313 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report. ↩

@indietyp
indietyp marked this pull request as ready for review October 12, 2026 17:58
@indietyp
indietyp requested a review from a team as a code owner October 12, 2026 17:58
@cursor

cursor Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

PR Summary

Low Risk
Turborepo task graph and generated docs only; changes when compile tasks invalidate/re-run, not application logic.

Overview
Adds dependsOn: ["^manifest"] to the root Turborepo compile and compile:release tasks so their hashes include inputs from every transitive workspace crate the hash-graph binary links, not just the app package.

Regenerates docs/task-dependencies.json across graph apps, workers, and integration/bench tests. Those files pick up broader affectedBy lists (e.g. full harpc-*, hash-graph-*, hashql-* chains on start / start:test / test:integration) and new affectedBy on hash-graph compile/start/migrate/healthcheck tasks—documentation of the graph after the manifest edge change, not new runtime behavior.

Reviewed by Cursor Bugbot for commit b1785af. Bugbot is set up for automated code reviews on this repo. Configure here.

TimDiekmann
TimDiekmann previously approved these changes Oct 12, 2026
indietyp
indietyp previously approved these changes Oct 12, 2026
@indietyp
indietyp enabled auto-merge October 12, 2026 18:01
@vercel

vercel Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
hash Ready Ready Preview Oct 12, 2026 7:17pm UTC
hashdotdesign-tokens Ready Ready Preview Oct 12, 2026 7:17pm UTC
petrinaut Ready Ready Preview Oct 12, 2026 7:17pm UTC
petrinaut-docs Ready Ready Preview Oct 12, 2026 7:17pm UTC

Request Review

@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 12, 2026
A cache hit for `compile` or `compile:release` restores no binary,
because neither task declares its outputs. Both tasks stay uncached
until they do, and keep their `^manifest` edges. The task-dependency
docs are regenerated.
@claude
claude Bot dismissed stale reviews from indietyp and TimDiekmann via b1785af October 12, 2026 18:35
@claude claude Bot changed the title SRE-1173: Cache compile and compile:release behind ^manifest edges SRE-1173: Depend on ^manifest in compile and compile:release Oct 12, 2026
@claude
claude Bot enabled auto-merge October 12, 2026 18:36
@claude
claude Bot deployed to pull-request October 12, 2026 18:36 Active
@claude
claude Bot deployed to pull-request October 12, 2026 18:36 Active
@claude
claude Bot added this pull request to the merge queue Oct 12, 2026
Merged via the queue into main with commit 7acbf0b Oct 12, 2026
236 checks passed
@claude
claude Bot deleted the claude/sre-1173-manifest-edges-on-compile branch October 12, 2026 19:46
@github-actions

Copy link
Copy Markdown
Contributor

Benchmark results

hash-graph-benches – Integrations

policy_resolution_large

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2002 $$28.7 \mathrm{ms} \pm 299 \mathrm{μs}\left({\color{gray}-1.298 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.55 \mathrm{ms} \pm 26.9 \mathrm{μs}\left({\color{gray}-1.662 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1002 $$13.9 \mathrm{ms} \pm 123 \mathrm{μs}\left({\color{gray}-3.196 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 3314 $$45.7 \mathrm{ms} \pm 531 \mathrm{μs}\left({\color{gray}-2.355 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$15.3 \mathrm{ms} \pm 143 \mathrm{μs}\left({\color{gray}-2.156 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 1527 $$25.9 \mathrm{ms} \pm 252 \mathrm{μs}\left({\color{gray}-1.716 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 2078 $$30.4 \mathrm{ms} \pm 357 \mathrm{μs}\left({\color{gray}0.713 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.95 \mathrm{ms} \pm 33.3 \mathrm{μs}\left({\color{gray}0.503 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 1033 $$14.9 \mathrm{ms} \pm 187 \mathrm{μs}\left({\color{gray}-0.518 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_medium

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 102 $$4.20 \mathrm{ms} \pm 37.7 \mathrm{μs}\left({\color{red}6.39 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.18 \mathrm{ms} \pm 26.3 \mathrm{μs}\left({\color{gray}2.79 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 52 $$3.65 \mathrm{ms} \pm 31.7 \mathrm{μs}\left({\color{gray}4.52 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 269 $$5.51 \mathrm{ms} \pm 42.0 \mathrm{μs}\left({\color{gray}1.79 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.74 \mathrm{ms} \pm 28.5 \mathrm{μs}\left({\color{gray}3.71 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 108 $$4.40 \mathrm{ms} \pm 38.0 \mathrm{μs}\left({\color{gray}2.42 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 133 $$4.95 \mathrm{ms} \pm 47.3 \mathrm{μs}\left({\color{red}6.03 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.77 \mathrm{ms} \pm 33.2 \mathrm{μs}\left({\color{red}7.27 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 63 $$4.68 \mathrm{ms} \pm 54.3 \mathrm{μs}\left({\color{red}7.85 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_none

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2 $$2.84 \mathrm{ms} \pm 19.5 \mathrm{μs}\left({\color{gray}0.174 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.88 \mathrm{ms} \pm 22.3 \mathrm{μs}\left({\color{gray}2.96 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 2 $$3.03 \mathrm{ms} \pm 30.3 \mathrm{μs}\left({\color{gray}4.82 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 8 $$3.18 \mathrm{ms} \pm 32.2 \mathrm{μs}\left({\color{gray}-0.744 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.94 \mathrm{ms} \pm 24.9 \mathrm{μs}\left({\color{gray}-2.260 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 3 $$3.22 \mathrm{ms} \pm 29.7 \mathrm{μs}\left({\color{gray}-1.779 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_small

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 52 $$3.21 \mathrm{ms} \pm 23.3 \mathrm{μs}\left({\color{gray}-1.716 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.88 \mathrm{ms} \pm 24.1 \mathrm{μs}\left({\color{gray}0.204 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 26 $$3.04 \mathrm{ms} \pm 25.9 \mathrm{μs}\left({\color{gray}-3.032 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 94 $$3.67 \mathrm{ms} \pm 29.1 \mathrm{μs}\left({\color{gray}0.412 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.12 \mathrm{ms} \pm 37.2 \mathrm{μs}\left({\color{gray}0.100 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 27 $$3.38 \mathrm{ms} \pm 22.8 \mathrm{μs}\left({\color{gray}-0.461 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 66 $$3.63 \mathrm{ms} \pm 28.9 \mathrm{μs}\left({\color{gray}-0.121 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.13 \mathrm{ms} \pm 22.2 \mathrm{μs}\left({\color{gray}-3.083 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 29 $$3.50 \mathrm{ms} \pm 27.9 \mathrm{μs}\left({\color{gray}0.085 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_complete

Function Value Mean Flame graphs
entity_by_id;one_depth 1 entities $$33.6 \mathrm{ms} \pm 252 \mathrm{μs}\left({\color{gray}3.18 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 10 entities $$74.7 \mathrm{ms} \pm 612 \mathrm{μs}\left({\color{gray}3.22 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 25 entities $$37.8 \mathrm{ms} \pm 371 \mathrm{μs}\left({\color{gray}1.76 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 5 entities $$41.6 \mathrm{ms} \pm 290 \mathrm{μs}\left({\color{gray}2.72 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 50 entities $$46.0 \mathrm{ms} \pm 408 \mathrm{μs}\left({\color{red}5.66 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 1 entities $$35.4 \mathrm{ms} \pm 281 \mathrm{μs}\left({\color{gray}1.22 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 10 entities $$428 \mathrm{ms} \pm 2.05 \mathrm{ms}\left({\color{gray}0.538 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 25 entities $$88.8 \mathrm{ms} \pm 913 \mathrm{μs}\left({\color{gray}-3.431 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 5 entities $$80.8 \mathrm{ms} \pm 764 \mathrm{μs}\left({\color{gray}-0.392 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 50 entities $$285 \mathrm{ms} \pm 1.50 \mathrm{ms}\left({\color{lightgreen}-8.827 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 1 entities $$10.8 \mathrm{ms} \pm 101 \mathrm{μs}\left({\color{gray}2.50 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 10 entities $$10.8 \mathrm{ms} \pm 94.7 \mathrm{μs}\left({\color{gray}-0.359 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 25 entities $$10.7 \mathrm{ms} \pm 77.5 \mathrm{μs}\left({\color{gray}-1.249 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 5 entities $$11.0 \mathrm{ms} \pm 92.3 \mathrm{μs}\left({\color{gray}3.40 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 50 entities $$10.6 \mathrm{ms} \pm 75.2 \mathrm{μs}\left({\color{gray}-0.651 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_linkless

Function Value Mean Flame graphs
entity_by_id 1 entities $$10.4 \mathrm{ms} \pm 71.8 \mathrm{μs}\left({\color{gray}-1.453 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$10.5 \mathrm{ms} \pm 92.5 \mathrm{μs}\left({\color{gray}0.930 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 100 entities $$10.6 \mathrm{ms} \pm 101 \mathrm{μs}\left({\color{gray}-0.263 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1000 entities $$10.6 \mathrm{ms} \pm 75.3 \mathrm{μs}\left({\color{gray}0.473 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10000 entities $$10.7 \mathrm{ms} \pm 82.4 \mathrm{μs}\left({\color{gray}0.729 \mathrm{\%}}\right) $$ Flame Graph

representative_read_entity

Function Value Mean Flame graphs
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/block/v/1 $$11.1 \mathrm{ms} \pm 88.4 \mathrm{μs}\left({\color{gray}-2.448 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1 $$11.1 \mathrm{ms} \pm 78.9 \mathrm{μs}\left({\color{gray}-4.673 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1 $$11.1 \mathrm{ms} \pm 86.3 \mathrm{μs}\left({\color{lightgreen}-7.039 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1 $$11.1 \mathrm{ms} \pm 85.6 \mathrm{μs}\left({\color{lightgreen}-5.309 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/page/v/2 $$11.2 \mathrm{ms} \pm 83.6 \mathrm{μs}\left({\color{gray}-2.614 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/person/v/1 $$11.1 \mathrm{ms} \pm 89.6 \mathrm{μs}\left({\color{gray}-4.300 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1 $$11.3 \mathrm{ms} \pm 101 \mathrm{μs}\left({\color{gray}0.528 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/song/v/1 $$11.8 \mathrm{ms} \pm 105 \mathrm{μs}\left({\color{gray}2.31 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1 $$11.1 \mathrm{ms} \pm 92.8 \mathrm{μs}\left({\color{gray}-1.644 \mathrm{\%}}\right) $$ Flame Graph

representative_read_entity_type

Function Value Mean Flame graphs
get_entity_type_by_id Account ID: bf5a9ef5-dc3b-43cf-a291-6210c0321eba $$8.16 \mathrm{ms} \pm 59.3 \mathrm{μs}\left({\color{gray}-0.856 \mathrm{\%}}\right) $$ Flame Graph

representative_read_multiple_entities

Function Value Mean Flame graphs
entity_by_property traversal_paths=0 0 $$60.8 \mathrm{ms} \pm 655 \mathrm{μs}\left({\color{gray}2.09 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=255 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true $$115 \mathrm{ms} \pm 913 \mathrm{μs}\left({\color{gray}2.25 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false $$67.6 \mathrm{ms} \pm 699 \mathrm{μs}\left({\color{gray}4.74 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true $$76.6 \mathrm{ms} \pm 764 \mathrm{μs}\left({\color{gray}3.92 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true $$84.7 \mathrm{ms} \pm 724 \mathrm{μs}\left({\color{gray}1.55 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true $$92.8 \mathrm{ms} \pm 731 \mathrm{μs}\left({\color{gray}1.34 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=0 0 $$49.3 \mathrm{ms} \pm 332 \mathrm{μs}\left({\color{gray}1.87 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=255 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true $$77.5 \mathrm{ms} \pm 701 \mathrm{μs}\left({\color{gray}-1.441 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false $$55.3 \mathrm{ms} \pm 498 \mathrm{μs}\left({\color{gray}2.26 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true $$65.2 \mathrm{ms} \pm 591 \mathrm{μs}\left({\color{gray}1.18 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true $$67.3 \mathrm{ms} \pm 543 \mathrm{μs}\left({\color{gray}0.948 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true $$66.7 \mathrm{ms} \pm 476 \mathrm{μs}\left({\color{gray}-2.142 \mathrm{\%}}\right) $$

scenarios

Function Value Mean Flame graphs
full_test query-limited $$120 \mathrm{ms} \pm 884 \mathrm{μs}\left({\color{gray}-0.819 \mathrm{\%}}\right) $$ Flame Graph
full_test query-unlimited $$132 \mathrm{ms} \pm 907 \mathrm{μs}\left({\color{gray}-0.581 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-limited $$24.4 \mathrm{ms} \pm 241 \mathrm{μs}\left({\color{gray}-1.677 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-unlimited $$526 \mathrm{ms} \pm 1.65 \mathrm{ms}\left({\color{gray}-1.178 \mathrm{\%}}\right) $$ Flame Graph

This branch was successfully deployed

5 active deployments
Preview – petrinaut-docs — b1785af6 Deployed Oct 12, 2026 by vercel[bot]
Preview – hash — b1785af6 Deployed Oct 12, 2026 by vercel[bot]
Preview – hashdotdesign-tokens — b1785af6 Deployed Oct 12, 2026 by vercel[bot]
Preview – petrinaut — b1785af6 Deployed Oct 12, 2026 by vercel[bot]
pull-request — b1785af6 Deployed Oct 12, 2026 by claude[bot] via Sourcemaps (@apps/hash-ai-worker-ts) #39470
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/apps > hash* Affects HASH (a `hash-*` app) area/apps > hash-api Affects the HASH API (app) area/apps > hash-graph area/apps area/tests > integration New or updated integration tests area/tests New or updated tests type/eng > backend Owned by the @backend team

Development

Successfully merging this pull request may close these issues.

3 participants