Skip to content

Conversation

TimDiekmann
Copy link
Member

@TimDiekmann TimDiekmann commented Aug 30, 2025

🌟 What is the purpose of this PR?

With the release of [email protected] we can remove the deprecated features. This will take effect from 0.7.0 onwards.

Note: We should wait to merge until we do other breaking changes. This gives us the option to still release 0.6.1 if we want/need to.

🚫 Blocked by

🔍 What does this change?

Remove

  • Context
  • attach_printable, attach_printable_lazy, attach_lazy
  • report!

Pre-Merge Checklist 🚀

🚢 Has this modified a publishable library?

This PR:

  • modifies a Cargo-publishable library, but it is not yet ready to publish

📜 Does this require a change to the docs?

The changes in this PR:

  • are internal and do not require a docs change

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

The changes in this PR:

  • do not affect the execution graph

@TimDiekmann TimDiekmann self-assigned this Aug 30, 2025
@TimDiekmann TimDiekmann requested a review from indietyp August 30, 2025 12:55
@github-actions github-actions bot added area/libs > error-stack Affects the `error-stack` crate (library) area/libs Relates to first-party libraries/crates/packages (area) area/tests New or updated tests labels Aug 30, 2025
@github-actions github-actions bot added the area/infra Relates to version control, CI, CD or IaC (area) label Aug 30, 2025
@TimDiekmann TimDiekmann changed the base branch from t/es-16-publish-error-stack-060 to main August 30, 2025 12:59
Copy link

codecov bot commented Aug 30, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 54.90%. Comparing base (25b8d30) to head (7ded865).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #7763      +/-   ##
==========================================
+ Coverage   54.85%   54.90%   +0.04%     
==========================================
  Files        1083     1084       +1     
  Lines       96635    96588      -47     
  Branches     4537     4538       +1     
==========================================
+ Hits        53010    53031      +21     
+ Misses      43035    42968      -67     
+ Partials      590      589       -1     
Flag Coverage Δ
apps.hash-ai-worker-ts 1.32% <ø> (ø)
rust.harpc-codec 84.22% <ø> (ø)
rust.harpc-tower 66.80% <ø> (ø)
rust.harpc-wire-protocol 92.23% <ø> (ø)
rust.hash-codec 72.52% <ø> (ø)
rust.hash-graph-api 3.13% <ø> (ø)
rust.hash-graph-postgres-store 20.06% <ø> (ø)
rust.hash-graph-store 32.93% <ø> (ø)
rust.hash-graph-temporal-versioning 48.22% <ø> (ø)
rust.hash-graph-validation 83.29% <ø> (ø)
rust.hashql-compiletest 51.38% <ø> (ø)
rust.hashql-diagnostics 50.24% <ø> (ø)
rust.hashql-hir 85.96% <ø> (ø)

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.

indietyp
indietyp previously approved these changes Aug 30, 2025
@TimDiekmann
Copy link
Member Author

Put on hold until we do other breaking changes. The issue about the unstable feature emitting a different output should be revisited when we come back to this.

Copy link
Contributor

Benchmark results

@rust/hash-graph-benches – Integrations

policy_resolution_extra_large

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 10002 $$96.8 \mathrm{ms} \pm 596 \mathrm{μs}\left({\color{gray}-0.055 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$5.55 \mathrm{ms} \pm 21.5 \mathrm{μs}\left({\color{gray}1.01 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 5001 $$77.1 \mathrm{ms} \pm 426 \mathrm{μs}\left({\color{gray}0.035 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 27604 $$283 \mathrm{ms} \pm 1.11 \mathrm{ms}\left({\color{gray}-0.945 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$21.0 \mathrm{ms} \pm 207 \mathrm{μs}\left({\color{gray}-0.408 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 13450 $$227 \mathrm{ms} \pm 1.02 \mathrm{ms}\left({\color{gray}0.855 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 11308 $$136 \mathrm{ms} \pm 9.62 \mathrm{ms}\left({\color{gray}1.43 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$6.55 \mathrm{ms} \pm 34.7 \mathrm{μs}\left({\color{gray}2.00 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 5628 $$87.6 \mathrm{ms} \pm 565 \mathrm{μs}\left({\color{gray}-0.084 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_large

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2002 $$28.7 \mathrm{ms} \pm 173 \mathrm{μs}\left({\color{gray}-1.161 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.64 \mathrm{ms} \pm 17.9 \mathrm{μs}\left({\color{gray}1.73 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1001 $$13.0 \mathrm{ms} \pm 74.5 \mathrm{μs}\left({\color{lightgreen}-7.228 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 3314 $$37.8 \mathrm{ms} \pm 319 \mathrm{μs}\left({\color{gray}-3.882 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$14.5 \mathrm{ms} \pm 72.3 \mathrm{μs}\left({\color{gray}2.99 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 1526 $$23.9 \mathrm{ms} \pm 143 \mathrm{μs}\left({\color{lightgreen}-5.225 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 2078 $$47.7 \mathrm{ms} \pm 173 \mathrm{μs}\left({\color{gray}-0.908 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.92 \mathrm{ms} \pm 18.1 \mathrm{μs}\left({\color{gray}2.16 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 1033 $$14.7 \mathrm{ms} \pm 126 \mathrm{μs}\left({\color{lightgreen}-42.812 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_medium

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 102 $$3.98 \mathrm{ms} \pm 20.8 \mathrm{μs}\left({\color{gray}0.699 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.10 \mathrm{ms} \pm 12.1 \mathrm{μs}\left({\color{gray}1.09 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 51 $$3.50 \mathrm{ms} \pm 18.1 \mathrm{μs}\left({\color{gray}1.04 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 269 $$5.40 \mathrm{ms} \pm 23.4 \mathrm{μs}\left({\color{gray}0.348 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.69 \mathrm{ms} \pm 14.2 \mathrm{μs}\left({\color{gray}0.714 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 107 $$4.28 \mathrm{ms} \pm 16.0 \mathrm{μs}\left({\color{gray}1.54 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 133 $$4.65 \mathrm{ms} \pm 20.7 \mathrm{μs}\left({\color{gray}0.585 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.58 \mathrm{ms} \pm 13.4 \mathrm{μs}\left({\color{gray}1.19 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 63 $$4.27 \mathrm{ms} \pm 22.0 \mathrm{μs}\left({\color{gray}1.17 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_none

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2 $$2.57 \mathrm{ms} \pm 10.9 \mathrm{μs}\left({\color{lightgreen}-34.282 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.51 \mathrm{ms} \pm 8.90 \mathrm{μs}\left({\color{lightgreen}-34.409 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1 $$2.56 \mathrm{ms} \pm 12.8 \mathrm{μs}\left({\color{lightgreen}-34.371 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 8 $$2.85 \mathrm{ms} \pm 12.7 \mathrm{μs}\left({\color{lightgreen}-43.914 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.68 \mathrm{ms} \pm 10.7 \mathrm{μs}\left({\color{lightgreen}-44.952 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 3 $$2.88 \mathrm{ms} \pm 11.0 \mathrm{μs}\left({\color{lightgreen}-43.562 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_small

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 52 $$2.99 \mathrm{ms} \pm 10.7 \mathrm{μs}\left({\color{gray}4.83 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.66 \mathrm{ms} \pm 11.4 \mathrm{μs}\left({\color{red}7.14 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 25 $$2.80 \mathrm{ms} \pm 12.8 \mathrm{μs}\left({\color{red}6.14 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 94 $$3.35 \mathrm{ms} \pm 12.4 \mathrm{μs}\left({\color{red}5.53 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$2.92 \mathrm{ms} \pm 11.3 \mathrm{μs}\left({\color{red}6.64 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 26 $$3.13 \mathrm{ms} \pm 12.0 \mathrm{μs}\left({\color{gray}4.66 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 66 $$3.24 \mathrm{ms} \pm 13.8 \mathrm{μs}\left({\color{red}5.89 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.89 \mathrm{ms} \pm 11.7 \mathrm{μs}\left({\color{red}8.86 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 29 $$3.14 \mathrm{ms} \pm 15.1 \mathrm{μs}\left({\color{red}6.44 \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 $$29.2 \mathrm{ms} \pm 268 \mathrm{μs}\left({\color{gray}-3.431 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1 $$30.4 \mathrm{ms} \pm 327 \mathrm{μs}\left({\color{gray}-4.577 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1 $$29.6 \mathrm{ms} \pm 257 \mathrm{μs}\left({\color{gray}-1.243 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1 $$29.9 \mathrm{ms} \pm 248 \mathrm{μs}\left({\color{gray}3.41 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/page/v/2 $$30.6 \mathrm{ms} \pm 239 \mathrm{μs}\left({\color{gray}1.35 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/person/v/1 $$30.0 \mathrm{ms} \pm 283 \mathrm{μs}\left({\color{gray}1.32 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1 $$30.3 \mathrm{ms} \pm 260 \mathrm{μs}\left({\color{gray}2.24 \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 249 \mathrm{μs}\left({\color{gray}-3.178 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1 $$30.8 \mathrm{ms} \pm 279 \mathrm{μs}\left({\color{red}5.06 \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 $$9.11 \mathrm{ms} \pm 30.2 \mathrm{μs}\left({\color{gray}-0.156 \mathrm{\%}}\right) $$ Flame Graph

representative_read_multiple_entities

Function Value Mean Flame graphs
entity_by_property depths: DT=0, PT=0, ET=0, E=0 $$55.5 \mathrm{ms} \pm 239 \mathrm{μs}\left({\color{gray}-1.482 \mathrm{\%}}\right) $$ Flame Graph
entity_by_property depths: DT=0, PT=0, ET=0, E=2 $$63.8 \mathrm{ms} \pm 328 \mathrm{μs}\left({\color{gray}-1.137 \mathrm{\%}}\right) $$ Flame Graph
entity_by_property depths: DT=0, PT=0, ET=2, E=2 $$72.3 \mathrm{ms} \pm 238 \mathrm{μs}\left({\color{gray}-0.871 \mathrm{\%}}\right) $$ Flame Graph
entity_by_property depths: DT=0, PT=2, ET=2, E=2 $$83.0 \mathrm{ms} \pm 789 \mathrm{μs}\left({\color{gray}-0.056 \mathrm{\%}}\right) $$ Flame Graph
entity_by_property depths: DT=2, PT=2, ET=2, E=2 $$88.5 \mathrm{ms} \pm 349 \mathrm{μs}\left({\color{gray}-0.172 \mathrm{\%}}\right) $$ Flame Graph
entity_by_property depths: DT=255, PT=255, ET=255, E=255 $$110 \mathrm{ms} \pm 419 \mathrm{μs}\left({\color{gray}0.618 \mathrm{\%}}\right) $$ Flame Graph
link_by_source_by_property depths: DT=0, PT=0, ET=0, E=0 $$48.7 \mathrm{ms} \pm 182 \mathrm{μs}\left({\color{gray}-0.926 \mathrm{\%}}\right) $$ Flame Graph
link_by_source_by_property depths: DT=0, PT=0, ET=0, E=2 $$93.0 \mathrm{ms} \pm 448 \mathrm{μs}\left({\color{gray}0.093 \mathrm{\%}}\right) $$ Flame Graph
link_by_source_by_property depths: DT=0, PT=0, ET=2, E=2 $$107 \mathrm{ms} \pm 519 \mathrm{μs}\left({\color{gray}0.869 \mathrm{\%}}\right) $$ Flame Graph
link_by_source_by_property depths: DT=0, PT=2, ET=2, E=2 $$116 \mathrm{ms} \pm 529 \mathrm{μs}\left({\color{gray}0.385 \mathrm{\%}}\right) $$ Flame Graph
link_by_source_by_property depths: DT=2, PT=2, ET=2, E=2 $$122 \mathrm{ms} \pm 489 \mathrm{μs}\left({\color{gray}-0.093 \mathrm{\%}}\right) $$ Flame Graph
link_by_source_by_property depths: DT=255, PT=255, ET=255, E=255 $$140 \mathrm{ms} \pm 475 \mathrm{μs}\left({\color{gray}0.421 \mathrm{\%}}\right) $$ Flame Graph

scaling_read_entity_complete_one_depth

Function Value Mean Flame graphs
entity_by_id 1 entities $$58.1 \mathrm{ms} \pm 270 \mathrm{μs}\left({\color{gray}-0.584 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$106 \mathrm{ms} \pm 534 \mathrm{μs}\left({\color{red}8.21 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 25 entities $$245 \mathrm{ms} \pm 1.36 \mathrm{ms}\left({\color{gray}-0.274 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 5 entities $$70.6 \mathrm{ms} \pm 619 \mathrm{μs}\left({\color{gray}1.65 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 50 entities $$360 \mathrm{ms} \pm 3.16 \mathrm{ms}\left({\color{gray}-0.605 \mathrm{\%}}\right) $$ Flame Graph

scaling_read_entity_complete_zero_depth

Function Value Mean Flame graphs
entity_by_id 1 entities $$15.0 \mathrm{ms} \pm 60.5 \mathrm{μs}\left({\color{gray}1.00 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$16.6 \mathrm{ms} \pm 117 \mathrm{μs}\left({\color{gray}2.53 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 25 entities $$17.2 \mathrm{ms} \pm 64.0 \mathrm{μs}\left({\color{gray}2.71 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 5 entities $$15.3 \mathrm{ms} \pm 93.4 \mathrm{μs}\left({\color{gray}1.53 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 50 entities $$17.9 \mathrm{ms} \pm 108 \mathrm{μs}\left({\color{gray}-0.733 \mathrm{\%}}\right) $$ Flame Graph

scaling_read_entity_linkless

Function Value Mean Flame graphs
entity_by_id 1 entities $$15.2 \mathrm{ms} \pm 61.5 \mathrm{μs}\left({\color{gray}1.67 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$15.3 \mathrm{ms} \pm 92.4 \mathrm{μs}\left({\color{gray}3.37 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 100 entities $$15.3 \mathrm{ms} \pm 52.6 \mathrm{μs}\left({\color{red}10.3 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1000 entities $$16.2 \mathrm{ms} \pm 63.9 \mathrm{μs}\left({\color{red}9.75 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10000 entities $$26.9 \mathrm{ms} \pm 130 \mathrm{μs}\left({\color{gray}2.30 \mathrm{\%}}\right) $$ Flame Graph

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/infra Relates to version control, CI, CD or IaC (area) area/libs > error-stack Affects the `error-stack` crate (library) area/libs Relates to first-party libraries/crates/packages (area) area/tests New or updated tests

Development

Successfully merging this pull request may close these issues.

2 participants