Skip to content

H-6617: Create custom graph rendering pipeline inside frontend#8952

Draft
indietyp wants to merge 39 commits into
bm/be-629-implement-kmeans-clustering-in-the-hash-graphfrom
bm/h-6617-experiment-with-graph-rendering-inside-of-hash-graph
Draft

H-6617: Create custom graph rendering pipeline inside frontend#8952
indietyp wants to merge 39 commits into
bm/be-629-implement-kmeans-clustering-in-the-hash-graphfrom
bm/h-6617-experiment-with-graph-rendering-inside-of-hash-graph

Conversation

@indietyp

@indietyp indietyp commented Jul 3, 2026

Copy link
Copy Markdown
Member

🌟 What is the purpose of this PR?

🔗 Related links

  • ...

🚫 Blocked by

  • ...

🔍 What does this change?

  • ...

Pre-Merge Checklist 🚀

🚢 Has this modified a publishable library?

This PR:

  • does not modify any publishable blocks or libraries, or modifications do not need publishing
  • modifies an npm-publishable library and I have added a changeset file(s)
  • modifies a Cargo-publishable library and I have amended the version
  • modifies a Cargo-publishable library, but it is not yet ready to publish
  • modifies a block that will need publishing via GitHub action once merged
  • I am unsure / need advice

📜 Does this require a change to the docs?

The changes in this PR:

  • are internal and do not require a docs change
  • are in a state where docs changes are not yet required but will be
  • require changes to docs which are made as part of this PR
  • require changes to docs which are not made in this PR
    • Provide more detail here
  • I am unsure / need advice

🕸️ Does this require a change to the Turbo Graph?

The changes in this PR:

  • do not affect the execution graph
  • affected the execution graph, and the turbo.json's have been updated to reflect this
  • I am unsure / need advice

⚠️ Known issues

🐾 Next steps

🛡 What tests cover this?

❓ How to test this?

  1. Checkout the branch / view the deployment
  2. Try X
  3. Confirm that Y

📹 Demo

indietyp added 30 commits June 30, 2026 11:43
feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: embedding clustering

feat: embedding clustering

feat: embedding clustering

feat: embedding clustering

feat: checkpoint

feat: checkpoint

feat: checkpoint

fix: merge

feat: checkpoint

feat: checkpoint

feat: checkpoint

fix: merge

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint

feat: checkpoint]

feat: checkpoint]

feat: checkpoint]

feat: checkpoint

feat: checkpoint
Scene, callbacks, picking, interactions, selection, hover-tracking,
hub-labels, and node-icons (renamed from entity-icons) now work against a
generic SceneHandle<NodeId>, implemented by both worker connections. Flat
edge hover resolves through the handle (link entity card vs link-type edge
card), and hub-label thresholds become a per-host LabelPolicy scene option.
@indietyp indietyp force-pushed the bm/h-6617-experiment-with-graph-rendering-inside-of-hash-graph branch from 31c9145 to a289140 Compare July 6, 2026 11:04
@indietyp indietyp force-pushed the bm/be-629-implement-kmeans-clustering-in-the-hash-graph branch from 37a89f7 to e8798a9 Compare July 6, 2026 11:04
@indietyp indietyp force-pushed the bm/h-6617-experiment-with-graph-rendering-inside-of-hash-graph branch from a289140 to 5478dfd Compare July 6, 2026 13:41
@indietyp indietyp force-pushed the bm/h-6617-experiment-with-graph-rendering-inside-of-hash-graph branch from 5478dfd to 8493cd3 Compare July 6, 2026 14:42
@indietyp indietyp force-pushed the bm/h-6617-experiment-with-graph-rendering-inside-of-hash-graph branch from 8493cd3 to 22ecce2 Compare July 6, 2026 17:31
@indietyp indietyp force-pushed the bm/be-629-implement-kmeans-clustering-in-the-hash-graph branch from 3d44b4e to 6f1df89 Compare July 7, 2026 08:24
@indietyp indietyp force-pushed the bm/h-6617-experiment-with-graph-rendering-inside-of-hash-graph branch from 22ecce2 to 7c567c5 Compare July 7, 2026 08:24
@indietyp indietyp force-pushed the bm/h-6617-experiment-with-graph-rendering-inside-of-hash-graph branch from 7c567c5 to db83e42 Compare July 7, 2026 08:30
@indietyp indietyp force-pushed the bm/h-6617-experiment-with-graph-rendering-inside-of-hash-graph branch from db83e42 to b5cf495 Compare July 7, 2026 08:39
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Benchmark results

@rust/hash-graph-benches – Integrations

policy_resolution_large

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2002 $$27.7 \mathrm{ms} \pm 267 \mathrm{μs}\left({\color{gray}1.34 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.54 \mathrm{ms} \pm 20.7 \mathrm{μs}\left({\color{gray}4.93 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1002 $$13.3 \mathrm{ms} \pm 126 \mathrm{μs}\left({\color{red}6.33 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 3314 $$42.4 \mathrm{ms} \pm 384 \mathrm{μs}\left({\color{gray}-0.622 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$14.8 \mathrm{ms} \pm 164 \mathrm{μs}\left({\color{red}7.16 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 1527 $$24.2 \mathrm{ms} \pm 179 \mathrm{μs}\left({\color{gray}3.44 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 2078 $$28.2 \mathrm{ms} \pm 199 \mathrm{μs}\left({\color{gray}0.081 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.82 \mathrm{ms} \pm 30.5 \mathrm{μs}\left({\color{gray}3.33 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 1033 $$13.5 \mathrm{ms} \pm 119 \mathrm{μs}\left({\color{gray}-2.115 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_medium

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 102 $$3.78 \mathrm{ms} \pm 24.2 \mathrm{μs}\left({\color{gray}0.143 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.97 \mathrm{ms} \pm 15.7 \mathrm{μs}\left({\color{gray}0.316 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 52 $$3.35 \mathrm{ms} \pm 18.7 \mathrm{μs}\left({\color{gray}-0.199 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 269 $$5.26 \mathrm{ms} \pm 40.6 \mathrm{μs}\left({\color{gray}1.73 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.57 \mathrm{ms} \pm 23.3 \mathrm{μs}\left({\color{gray}1.68 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 108 $$4.16 \mathrm{ms} \pm 33.6 \mathrm{μs}\left({\color{gray}0.887 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 133 $$4.40 \mathrm{ms} \pm 38.5 \mathrm{μs}\left({\color{gray}0.322 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.43 \mathrm{ms} \pm 18.7 \mathrm{μs}\left({\color{gray}-0.456 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 63 $$4.07 \mathrm{ms} \pm 27.4 \mathrm{μs}\left({\color{gray}-1.330 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_none

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2 $$2.70 \mathrm{ms} \pm 20.2 \mathrm{μs}\left({\color{gray}2.26 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.51 \mathrm{ms} \pm 14.6 \mathrm{μs}\left({\color{gray}1.26 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 2 $$2.65 \mathrm{ms} \pm 15.3 \mathrm{μs}\left({\color{gray}1.17 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 8 $$2.93 \mathrm{ms} \pm 19.3 \mathrm{μs}\left({\color{gray}1.38 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.75 \mathrm{ms} \pm 22.9 \mathrm{μs}\left({\color{gray}2.63 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 3 $$2.95 \mathrm{ms} \pm 21.8 \mathrm{μs}\left({\color{gray}2.04 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_small

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 52 $$3.01 \mathrm{ms} \pm 16.0 \mathrm{μs}\left({\color{gray}-0.776 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.71 \mathrm{ms} \pm 14.1 \mathrm{μs}\left({\color{gray}-0.925 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 26 $$2.94 \mathrm{ms} \pm 17.3 \mathrm{μs}\left({\color{gray}-1.593 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 94 $$3.40 \mathrm{ms} \pm 19.2 \mathrm{μs}\left({\color{gray}-1.425 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$2.92 \mathrm{ms} \pm 14.8 \mathrm{μs}\left({\color{gray}-1.759 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 27 $$3.25 \mathrm{ms} \pm 22.5 \mathrm{μs}\left({\color{gray}-1.543 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 66 $$3.32 \mathrm{ms} \pm 16.3 \mathrm{μs}\left({\color{gray}-0.674 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.93 \mathrm{ms} \pm 17.4 \mathrm{μs}\left({\color{gray}-0.375 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 29 $$3.31 \mathrm{ms} \pm 22.8 \mathrm{μs}\left({\color{gray}0.616 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_complete

Function Value Mean Flame graphs
entity_by_id;one_depth 1 entities $$41.5 \mathrm{ms} \pm 250 \mathrm{μs}\left({\color{gray}0.380 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 10 entities $$32.1 \mathrm{ms} \pm 205 \mathrm{μs}\left({\color{gray}-1.429 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 25 entities $$34.8 \mathrm{ms} \pm 232 \mathrm{μs}\left({\color{gray}-0.862 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 5 entities $$31.1 \mathrm{ms} \pm 207 \mathrm{μs}\left({\color{gray}0.096 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 50 entities $$40.8 \mathrm{ms} \pm 261 \mathrm{μs}\left({\color{gray}-3.720 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 1 entities $$48.3 \mathrm{ms} \pm 314 \mathrm{μs}\left({\color{gray}-0.959 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 10 entities $$39.5 \mathrm{ms} \pm 200 \mathrm{μs}\left({\color{gray}-2.089 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 25 entities $$89.5 \mathrm{ms} \pm 637 \mathrm{μs}\left({\color{gray}4.89 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 5 entities $$41.5 \mathrm{ms} \pm 3.38 \mathrm{ms}\left({\color{red}26.5 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 50 entities $$281 \mathrm{ms} \pm 1.13 \mathrm{ms}\left({\color{lightgreen}-7.606 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 1 entities $$10.4 \mathrm{ms} \pm 75.4 \mathrm{μs}\left({\color{gray}0.947 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 10 entities $$10.5 \mathrm{ms} \pm 67.7 \mathrm{μs}\left({\color{gray}1.18 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 25 entities $$10.4 \mathrm{ms} \pm 55.6 \mathrm{μs}\left({\color{gray}-0.314 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 5 entities $$10.5 \mathrm{ms} \pm 74.9 \mathrm{μs}\left({\color{gray}2.36 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 50 entities $$10.5 \mathrm{ms} \pm 67.7 \mathrm{μs}\left({\color{gray}-0.648 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_linkless

Function Value Mean Flame graphs
entity_by_id 1 entities $$10.3 \mathrm{ms} \pm 87.5 \mathrm{μs}\left({\color{gray}-0.423 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$10.3 \mathrm{ms} \pm 68.3 \mathrm{μs}\left({\color{gray}-1.283 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 100 entities $$10.4 \mathrm{ms} \pm 92.6 \mathrm{μs}\left({\color{gray}0.550 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1000 entities $$10.6 \mathrm{ms} \pm 73.6 \mathrm{μs}\left({\color{lightgreen}-6.244 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10000 entities $$10.6 \mathrm{ms} \pm 101 \mathrm{μs}\left({\color{gray}0.237 \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.0 \mathrm{ms} \pm 84.1 \mathrm{μs}\left({\color{gray}0.378 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1 $$10.7 \mathrm{ms} \pm 78.7 \mathrm{μs}\left({\color{gray}-1.495 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1 $$10.7 \mathrm{ms} \pm 67.4 \mathrm{μs}\left({\color{gray}-0.216 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1 $$10.8 \mathrm{ms} \pm 76.0 \mathrm{μs}\left({\color{gray}-1.348 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/page/v/2 $$10.8 \mathrm{ms} \pm 77.6 \mathrm{μs}\left({\color{gray}-1.611 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/person/v/1 $$10.9 \mathrm{ms} \pm 111 \mathrm{μs}\left({\color{gray}-0.217 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1 $$10.8 \mathrm{ms} \pm 59.4 \mathrm{μs}\left({\color{gray}-1.161 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/song/v/1 $$10.7 \mathrm{ms} \pm 63.9 \mathrm{μs}\left({\color{gray}-1.676 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1 $$10.8 \mathrm{ms} \pm 67.4 \mathrm{μs}\left({\color{gray}0.399 \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.41 \mathrm{ms} \pm 47.6 \mathrm{μs}\left({\color{gray}-3.055 \mathrm{\%}}\right) $$ Flame Graph

representative_read_multiple_entities

Function Value Mean Flame graphs
entity_by_property traversal_paths=0 0 $$58.3 \mathrm{ms} \pm 445 \mathrm{μs}\left({\color{lightgreen}-5.326 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=255 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true $$109 \mathrm{ms} \pm 650 \mathrm{μs}\left({\color{gray}-3.237 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false $$64.2 \mathrm{ms} \pm 497 \mathrm{μs}\left({\color{gray}-4.303 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true $$72.6 \mathrm{ms} \pm 468 \mathrm{μs}\left({\color{lightgreen}-5.864 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true $$81.7 \mathrm{ms} \pm 558 \mathrm{μs}\left({\color{gray}-3.996 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true $$89.5 \mathrm{ms} \pm 560 \mathrm{μs}\left({\color{gray}-2.393 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=0 0 $$43.8 \mathrm{ms} \pm 259 \mathrm{μs}\left({\color{gray}-2.778 \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 $$72.7 \mathrm{ms} \pm 378 \mathrm{μs}\left({\color{gray}-4.890 \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 $$50.7 \mathrm{ms} \pm 369 \mathrm{μs}\left({\color{gray}-2.829 \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 $$59.7 \mathrm{ms} \pm 438 \mathrm{μs}\left({\color{gray}-4.307 \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 $$62.6 \mathrm{ms} \pm 618 \mathrm{μs}\left({\color{gray}-3.436 \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 $$61.9 \mathrm{ms} \pm 385 \mathrm{μs}\left({\color{gray}-4.841 \mathrm{\%}}\right) $$

scenarios

Function Value Mean Flame graphs
full_test query-limited $$116 \mathrm{ms} \pm 633 \mathrm{μs}\left({\color{gray}-3.244 \mathrm{\%}}\right) $$ Flame Graph
full_test query-unlimited $$127 \mathrm{ms} \pm 712 \mathrm{μs}\left({\color{gray}-2.976 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-limited $$18.3 \mathrm{ms} \pm 156 \mathrm{μs}\left({\color{gray}-2.137 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-unlimited $$511 \mathrm{ms} \pm 1.24 \mathrm{ms}\left({\color{gray}-3.742 \mathrm{\%}}\right) $$ Flame Graph

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 area/deps Relates to third-party dependencies (area) area/infra Relates to version control, CI, CD or IaC (area) type/eng > backend Owned by the @backend team type/eng > frontend Owned by the @frontend team

Development

Successfully merging this pull request may close these issues.

2 participants