Skip to content

Conversation

@lunelson
Copy link
Contributor

@lunelson lunelson commented Dec 17, 2025

WIP

This branch is for re-working the ds-theme package along the structure exemplified by park-ui, in the "preset" package of their monorepo. Park UI is now an official best-practice example, maintained by the same org (chakra) and primary maintainer as pandacss and ark-ui

@github-actions github-actions bot added area/deps Relates to third-party dependencies (area) area/apps > hash* Affects HASH (a `hash-*` app) area/infra Relates to version control, CI, CD or IaC (area) area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team area/apps area/apps > hash.design Affects the `hash.design` design site (app) labels Dec 17, 2025
@codecov
Copy link

codecov bot commented Dec 17, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 58.45%. Comparing base (24aaf5c) to head (cb07de7).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8191      +/-   ##
==========================================
- Coverage   58.45%   58.45%   -0.01%     
==========================================
  Files        1181     1181              
  Lines      111503   111503              
  Branches     5008     5008              
==========================================
- Hits        65180    65179       -1     
- Misses      45566    45567       +1     
  Partials      757      757              
Flag Coverage Δ
local.harpc-client 51.24% <ø> (ø)
local.hash-graph-sdk 10.88% <ø> (ø)
local.hash-isomorphic-utils 0.00% <ø> (ø)
rust.harpc-types 0.00% <ø> (ø)
rust.hash-codec 72.76% <ø> (ø)
rust.hashql-core 82.28% <ø> (ø)

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

☔ View full report in Codecov by Sentry.
📢 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.

@github-actions
Copy link
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 $$29.4 \mathrm{ms} \pm 290 \mathrm{μs}\left({\color{red}6.62 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.26 \mathrm{ms} \pm 14.1 \mathrm{μs}\left({\color{gray}-1.116 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1001 $$12.9 \mathrm{ms} \pm 69.7 \mathrm{μs}\left({\color{gray}-0.968 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 3314 $$42.1 \mathrm{ms} \pm 297 \mathrm{μs}\left({\color{gray}-2.426 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$14.9 \mathrm{ms} \pm 106 \mathrm{μs}\left({\color{gray}0.244 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 1526 $$24.2 \mathrm{ms} \pm 128 \mathrm{μs}\left({\color{gray}2.18 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 2078 $$31.9 \mathrm{ms} \pm 188 \mathrm{μs}\left({\color{lightgreen}-28.650 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.61 \mathrm{ms} \pm 15.7 \mathrm{μs}\left({\color{lightgreen}-82.407 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 1033 $$13.6 \mathrm{ms} \pm 81.9 \mathrm{μs}\left({\color{lightgreen}-50.803 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_medium

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 102 $$3.64 \mathrm{ms} \pm 15.9 \mathrm{μs}\left({\color{gray}-1.365 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.88 \mathrm{ms} \pm 12.6 \mathrm{μs}\left({\color{gray}2.03 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 51 $$3.24 \mathrm{ms} \pm 18.6 \mathrm{μs}\left({\color{gray}1.84 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 269 $$4.95 \mathrm{ms} \pm 28.0 \mathrm{μs}\left({\color{gray}-1.420 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.45 \mathrm{ms} \pm 20.0 \mathrm{μs}\left({\color{gray}0.538 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 107 $$3.94 \mathrm{ms} \pm 23.5 \mathrm{μs}\left({\color{gray}-0.844 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 133 $$4.16 \mathrm{ms} \pm 22.6 \mathrm{μs}\left({\color{gray}-2.533 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.33 \mathrm{ms} \pm 14.8 \mathrm{μs}\left({\color{gray}2.13 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 63 $$3.84 \mathrm{ms} \pm 16.7 \mathrm{μs}\left({\color{gray}-1.177 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_none

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2 $$2.54 \mathrm{ms} \pm 8.67 \mathrm{μs}\left({\color{gray}3.39 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.51 \mathrm{ms} \pm 11.4 \mathrm{μs}\left({\color{gray}4.99 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1 $$2.63 \mathrm{ms} \pm 15.4 \mathrm{μs}\left({\color{red}7.37 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 8 $$2.78 \mathrm{ms} \pm 13.3 \mathrm{μs}\left({\color{gray}4.59 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.68 \mathrm{ms} \pm 11.2 \mathrm{μs}\left({\color{gray}4.48 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 3 $$2.91 \mathrm{ms} \pm 15.1 \mathrm{μs}\left({\color{red}6.91 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_small

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 52 $$2.96 \mathrm{ms} \pm 15.2 \mathrm{μs}\left({\color{red}6.94 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.62 \mathrm{ms} \pm 11.5 \mathrm{μs}\left({\color{red}7.02 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 25 $$2.81 \mathrm{ms} \pm 14.1 \mathrm{μs}\left({\color{red}9.32 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 94 $$3.29 \mathrm{ms} \pm 19.4 \mathrm{μs}\left({\color{red}6.50 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$2.89 \mathrm{ms} \pm 17.3 \mathrm{μs}\left({\color{red}8.51 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 26 $$3.10 \mathrm{ms} \pm 14.9 \mathrm{μs}\left({\color{red}7.61 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 66 $$3.19 \mathrm{ms} \pm 14.6 \mathrm{μs}\left({\color{red}5.48 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.83 \mathrm{ms} \pm 13.1 \mathrm{μs}\left({\color{red}7.03 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 29 $$3.06 \mathrm{ms} \pm 10.8 \mathrm{μs}\left({\color{red}7.07 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_complete

Function Value Mean Flame graphs
entity_by_id;one_depth 1 entities $$38.6 \mathrm{ms} \pm 160 \mathrm{μs}\left({\color{gray}-0.375 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 10 entities $$77.0 \mathrm{ms} \pm 314 \mathrm{μs}\left({\color{gray}0.644 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 25 entities $$43.7 \mathrm{ms} \pm 233 \mathrm{μs}\left({\color{gray}3.43 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 5 entities $$46.0 \mathrm{ms} \pm 201 \mathrm{μs}\left({\color{gray}1.21 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 50 entities $$54.7 \mathrm{ms} \pm 318 \mathrm{μs}\left({\color{gray}1.28 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 1 entities $$41.7 \mathrm{ms} \pm 265 \mathrm{μs}\left({\color{gray}4.25 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 10 entities $$414 \mathrm{ms} \pm 944 \mathrm{μs}\left({\color{gray}0.004 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 25 entities $$91.6 \mathrm{ms} \pm 366 \mathrm{μs}\left({\color{gray}-4.894 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 5 entities $$85.4 \mathrm{ms} \pm 324 \mathrm{μs}\left({\color{gray}0.697 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 50 entities $$310 \mathrm{ms} \pm 687 \mathrm{μs}\left({\color{red}10.4 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 1 entities $$14.5 \mathrm{ms} \pm 76.6 \mathrm{μs}\left({\color{gray}-1.293 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 10 entities $$15.1 \mathrm{ms} \pm 77.6 \mathrm{μs}\left({\color{gray}1.20 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 25 entities $$15.0 \mathrm{ms} \pm 72.9 \mathrm{μs}\left({\color{gray}0.732 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 5 entities $$14.7 \mathrm{ms} \pm 75.7 \mathrm{μs}\left({\color{gray}-1.362 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 50 entities $$17.9 \mathrm{ms} \pm 85.8 \mathrm{μs}\left({\color{gray}-0.714 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_linkless

Function Value Mean Flame graphs
entity_by_id 1 entities $$14.7 \mathrm{ms} \pm 81.9 \mathrm{μs}\left({\color{gray}3.56 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$14.9 \mathrm{ms} \pm 80.5 \mathrm{μs}\left({\color{gray}0.058 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 100 entities $$14.9 \mathrm{ms} \pm 58.3 \mathrm{μs}\left({\color{gray}1.03 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1000 entities $$15.3 \mathrm{ms} \pm 80.4 \mathrm{μs}\left({\color{gray}2.57 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10000 entities $$22.7 \mathrm{ms} \pm 123 \mathrm{μs}\left({\color{gray}0.792 \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 $$28.7 \mathrm{ms} \pm 308 \mathrm{μs}\left({\color{gray}-0.095 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1 $$29.3 \mathrm{ms} \pm 297 \mathrm{μs}\left({\color{gray}-0.860 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1 $$29.1 \mathrm{ms} \pm 236 \mathrm{μs}\left({\color{lightgreen}-5.995 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1 $$29.1 \mathrm{ms} \pm 221 \mathrm{μs}\left({\color{lightgreen}-6.039 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/page/v/2 $$29.2 \mathrm{ms} \pm 262 \mathrm{μs}\left({\color{gray}-0.723 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/person/v/1 $$29.4 \mathrm{ms} \pm 258 \mathrm{μs}\left({\color{gray}0.216 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1 $$29.5 \mathrm{ms} \pm 240 \mathrm{μs}\left({\color{gray}2.37 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/song/v/1 $$29.5 \mathrm{ms} \pm 236 \mathrm{μs}\left({\color{lightgreen}-6.069 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1 $$29.5 \mathrm{ms} \pm 253 \mathrm{μs}\left({\color{gray}-3.247 \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 $$7.97 \mathrm{ms} \pm 34.5 \mathrm{μs}\left({\color{gray}-0.420 \mathrm{\%}}\right) $$ Flame Graph

representative_read_multiple_entities

Function Value Mean Flame graphs
entity_by_property traversal_paths=0 0 $$46.3 \mathrm{ms} \pm 210 \mathrm{μs}\left({\color{gray}-1.915 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=255 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true $$93.2 \mathrm{ms} \pm 350 \mathrm{μs}\left({\color{gray}0.482 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false $$51.4 \mathrm{ms} \pm 296 \mathrm{μs}\left({\color{gray}-3.688 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true $$60.0 \mathrm{ms} \pm 309 \mathrm{μs}\left({\color{gray}-2.093 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true $$67.9 \mathrm{ms} \pm 375 \mathrm{μs}\left({\color{gray}1.07 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true $$74.7 \mathrm{ms} \pm 333 \mathrm{μs}\left({\color{gray}-1.420 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=0 0 $$49.6 \mathrm{ms} \pm 190 \mathrm{μs}\left({\color{gray}-2.364 \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.3 \mathrm{ms} \pm 315 \mathrm{μs}\left({\color{gray}-0.764 \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 $$59.2 \mathrm{ms} \pm 419 \mathrm{μs}\left({\color{gray}2.74 \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 $$66.6 \mathrm{ms} \pm 278 \mathrm{μs}\left({\color{gray}2.46 \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.4 \mathrm{ms} \pm 308 \mathrm{μs}\left({\color{gray}-0.201 \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 369 \mathrm{μs}\left({\color{gray}1.72 \mathrm{\%}}\right) $$

scenarios

Function Value Mean Flame graphs
full_test query-limited $$128 \mathrm{ms} \pm 376 \mathrm{μs}\left({\color{lightgreen}-8.813 \mathrm{\%}}\right) $$ Flame Graph
full_test query-unlimited $$128 \mathrm{ms} \pm 456 \mathrm{μs}\left({\color{lightgreen}-8.236 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-limited $$41.1 \mathrm{ms} \pm 182 \mathrm{μs}\left({\color{lightgreen}-18.759 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-unlimited $$572 \mathrm{ms} \pm 1.13 \mathrm{ms}\left({\color{gray}-2.317 \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.design Affects the `hash.design` design site (app) area/deps Relates to third-party dependencies (area) area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team

Development

Successfully merging this pull request may close these issues.

2 participants