Skip to content

SRE-1039: Record cache, persistent and env in task-dependencies.json - #9563

Open
TimDiekmann wants to merge 1 commit into
mainfrom
t/sre-1039-record-cache-persistent-and-env-in-task-dependenciesjson
Open

SRE-1039: Record cache, persistent and env in task-dependencies.json#9563
TimDiekmann wants to merge 1 commit into
mainfrom
t/sre-1039-record-cache-persistent-and-env-in-task-dependenciesjson

Conversation

@TimDiekmann

@TimDiekmann TimDiekmann commented Sep 7, 2026

Copy link
Copy Markdown
Member

🌟 What is the purpose of this PR?

The checked-in docs/task-dependencies.json list, per task, only the tasks turbo runs before it. Whether turbo caches a task, keeps it running, or hashes environment variables into it was not visible, so a change to those fields could not be reviewed as a document diff. Each task is now an object that also carries cache, persistent and env as turbo resolves them.

🔗 Related links

🔍 What does this change?

  • A task entry becomes { "dependsOn": [...], "cache": …, "persistent": …, "env": [...] }. The values come from the dry run's resolvedTaskDefinition, the definition turbo arrives at after merging the root and the package turbo.json.
  • Fields at turbo's defaults are left out: cache appears only as false, persistent only as true, env only when set. A plain build reads { "dependsOn": [...] }, a dev reads { "dependsOn": [...], "cache": false, "persistent": true }.
  • All documents with tasks are regenerated.

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

📜 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

⚠️ Known issues

None.

🐾 Next steps

None.

🛡 What tests cover this?

The documents are regenerated and diffed in CI (Validate Task Dependencies). Verified locally that every dependsOn list is unchanged against the parent commit and that the added fields match turbo run --dry=json for every task.

❓ How to test this?

  1. Check out the branch
  2. Run turbo run //#doc:task-dependencies; the working tree stays clean
  3. Open apps/hash-api/docs/task-dependencies.json; dev carries "cache": false, "persistent": true, test:unit carries "env": ["TEST_COVERAGE"]

@TimDiekmann TimDiekmann self-assigned this Sep 7, 2026
@vercel

vercel Bot commented Sep 7, 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 Sep 9, 2026 2:19pm UTC
hashdotdesign-tokens Ready Ready Preview Sep 9, 2026 2:19pm UTC
petrinaut Ready Ready Preview Sep 9, 2026 2:19pm UTC
petrinaut-docs Ready Ready Preview Sep 9, 2026 2:19pm UTC

Request Review

@TimDiekmann TimDiekmann changed the title Record cache, persistent and env in the task documents SRE-1039: Record cache, persistent and env in task-dependencies.json Sep 7, 2026
@github-actions github-actions Bot added area/apps > hash* Affects HASH (a `hash-*` app) area/apps > hash-api Affects the HASH API (app) area/libs > error-stack Affects the `error-stack` crate (library) area/libs Relates to first-party libraries/crates/packages (area) area/libs > antsi Affects the `antsi` crate (library) type/eng > frontend Owned by the @frontend team type/eng > backend Owned by the @backend team area/tests New or updated tests area/tests > integration New or updated integration tests area/tests > playwright New or updated Playwright tests area/apps area/apps > hash-graph area/apps > hash.design Affects the `hash.design` design site (app) labels Sep 7, 2026
@TimDiekmann
TimDiekmann marked this pull request as ready for review September 7, 2026 10:49
@TimDiekmann
TimDiekmann requested a review from a team as a code owner September 7, 2026 10:49
Copilot AI balanced review requested due to automatic review settings September 7, 2026 10:49
@cursor

cursor Bot commented Sep 7, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Documentation and CI-only metadata generation; no application or turbo graph execution changes beyond richer checked-in snapshots.

Overview
Checked-in docs/task-dependencies.json files no longer list prerequisites as bare arrays. Each task is now an object with dependsOn (same edges as before) plus optional cache, persistent, and env taken from turbo’s merged resolvedTaskDefinition in turbo run --dry=json.

The @rust/hash-repo-chores generator was updated to deserialize those fields and omit turbo defaults (cache: true, persistent: false, empty env) so diffs stay readable. Every package document was regenerated; execution order is unchanged, but CI review can now catch turbo config changes to caching, long-running tasks, and env hashing.

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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The reviewed changes have no unresolved issues blocking approval.

Pull request overview

Updates task-dependency documentation to expose Turbo’s resolved cache, persistence, and environment settings.

Changes:

  • Adds resolved task metadata to the Rust generator.
  • Migrates task entries to structured objects while omitting default values.
  • Regenerates task-dependency documents across the workspace.
File summaries
File Description
tests/hash-playwright/docs/task-dependencies.json Regenerates task metadata.
tests/hash-backend-integration/docs/task-dependencies.json Regenerates task metadata.
tests/graph/test-data/rust/docs/task-dependencies.json Regenerates task metadata.
tests/graph/integration/docs/task-dependencies.json Regenerates task metadata.
tests/graph/http/docs/task-dependencies.json Regenerates task metadata.
tests/graph/benches/docs/task-dependencies.json Regenerates task metadata.
libs/error-stack/macros/docs/task-dependencies.json Regenerates task metadata.
libs/error-stack/docs/task-dependencies.json Regenerates task metadata.
libs/darwin-kperf/sys/docs/task-dependencies.json Regenerates task metadata.
libs/darwin-kperf/events/docs/task-dependencies.json Regenerates task metadata.
libs/darwin-kperf/docs/task-dependencies.json Regenerates task metadata.
libs/darwin-kperf/criterion/docs/task-dependencies.json Regenerates task metadata.
libs/darwin-kperf/codegen/docs/task-dependencies.json Regenerates task metadata.
libs/antsi/docs/task-dependencies.json Regenerates task metadata.
libs/@local/temporal-client/docs/task-dependencies.json Regenerates task metadata.
libs/@local/telemetry/docs/task-dependencies.json Regenerates task metadata.
libs/@local/status/typescript/docs/task-dependencies.json Regenerates task metadata.
libs/@local/status/rust/docs/task-dependencies.json Regenerates task metadata.
libs/@local/repo-chores/rust/src/task_dependencies/mod.rs Reads and serializes resolved Turbo settings.
libs/@local/repo-chores/rust/docs/task-dependencies.json Regenerates task metadata.
libs/@local/repo-chores/node/docs/task-dependencies.json Regenerates task metadata.
libs/@local/petrinaut-python/docs/task-dependencies.json Regenerates task metadata.
libs/@local/petrinaut-optimizer-client/docs/task-dependencies.json Regenerates task metadata.
libs/@local/petrinaut-arch-docs/docs/task-dependencies.json Regenerates task metadata.
libs/@local/middleware/docs/task-dependencies.json Regenerates task metadata.
libs/@local/internal-api-client/typescript/docs/task-dependencies.json Regenerates task metadata.
libs/@local/hashql/syntax-jexpr/docs/task-dependencies.json Regenerates task metadata.
libs/@local/hashql/mir/docs/task-dependencies.json Regenerates task metadata.
libs/@local/hashql/macros/docs/task-dependencies.json Regenerates task metadata.
libs/@local/hashql/hir/docs/task-dependencies.json Regenerates task metadata.
libs/@local/hashql/eval/docs/task-dependencies.json Regenerates task metadata.
libs/@local/hashql/diagnostics/docs/task-dependencies.json Regenerates task metadata.
libs/@local/hashql/core/docs/task-dependencies.json Regenerates task metadata.
libs/@local/hashql/compiletest/docs/task-dependencies.json Regenerates task metadata.
libs/@local/hashql/ast/docs/task-dependencies.json Regenerates task metadata.
libs/@local/hash-isomorphic-utils/docs/task-dependencies.json Regenerates task metadata.
libs/@local/hash-backend-utils/docs/task-dependencies.json Regenerates task metadata.
libs/@local/harpc/wire-protocol/docs/task-dependencies.json Regenerates task metadata.
libs/@local/harpc/types/docs/task-dependencies.json Regenerates task metadata.
libs/@local/harpc/tower/docs/task-dependencies.json Regenerates task metadata.
libs/@local/harpc/system/docs/task-dependencies.json Regenerates task metadata.
libs/@local/harpc/server/docs/task-dependencies.json Regenerates task metadata.
libs/@local/harpc/net/docs/task-dependencies.json Regenerates task metadata.
libs/@local/harpc/codec/docs/task-dependencies.json Regenerates task metadata.
libs/@local/harpc/client/typescript/docs/task-dependencies.json Regenerates task metadata.
libs/@local/harpc/client/rust/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/validation/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/types/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/type-fetcher/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/temporal-versioning/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/store/typescript/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/store/rust/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/sdk/typescript/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/postgres-store/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/migrations/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/migrations-macros/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/embeddings/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/client/typescript/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/authorization/typescript/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/authorization/rust/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/authentication/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/atlas/docs/task-dependencies.json Regenerates task metadata.
libs/@local/graph/api/docs/task-dependencies.json Regenerates task metadata.
libs/@local/eslint/docs/task-dependencies.json Regenerates task metadata.
libs/@local/effect-dns/hickory/typescript/docs/task-dependencies.json Regenerates task metadata.
libs/@local/effect-dns/hickory/rust/docs/task-dependencies.json Regenerates task metadata.
libs/@local/effect-dns/core/docs/task-dependencies.json Regenerates task metadata.
libs/@local/config/docs/task-dependencies.json Regenerates task metadata.
libs/@local/codegen/docs/task-dependencies.json Regenerates task metadata.
libs/@local/codec/typescript/docs/task-dependencies.json Regenerates task metadata.
libs/@local/codec/rust/docs/task-dependencies.json Regenerates task metadata.
libs/@local/advanced-types/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/type-editor/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/refractive/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/query-editor/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/petrinaut/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/petrinaut-core/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/petrinaut-cli/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/ds-helpers/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/ds-components/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/design-system/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/brunch-agent/packages/transport-aisdk/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/brunch-agent/packages/plugin-sdcpn/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/brunch-agent/packages/plugin-gherkin/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/brunch-agent/packages/plugin-dafny/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/brunch-agent/packages/core/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/brunch-agent/packages/binding-flue/docs/task-dependencies.json Regenerates task metadata.
libs/@hashintel/block-design-system/docs/task-dependencies.json Regenerates task metadata.
libs/@blockprotocol/type-system/typescript/docs/task-dependencies.json Regenerates task metadata.
libs/@blockprotocol/type-system/rust/docs/task-dependencies.json Regenerates task metadata.
libs/@blockprotocol/graph/docs/task-dependencies.json Regenerates task metadata.
apps/plugin-browser/docs/task-dependencies.json Regenerates task metadata.
apps/petrinaut-website/docs/task-dependencies.json Regenerates task metadata.
apps/petrinaut-opt/docs/task-dependencies.json Regenerates task metadata.
apps/petrinaut-docs/docs/task-dependencies.json Regenerates task metadata.
apps/hash-integration-worker/docs/task-dependencies.json Regenerates task metadata.
apps/hash-graph/docs/task-dependencies.json Regenerates task metadata.
apps/hash-frontend/docs/task-dependencies.json Regenerates task metadata.
apps/hash-api/docs/task-dependencies.json Regenerates task metadata.
apps/hash-ai-worker-ts/docs/task-dependencies.json Regenerates task metadata.
apps/brunch-agent/docs/task-dependencies.json Regenerates task metadata.
.claude/hooks/docs/task-dependencies.json Regenerates task metadata.
Review details
  • Files reviewed: 102/102 changed files
  • Comments generated: 0
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@codspeed-hq

codspeed-hq Bot commented Sep 7, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 15.93%

⚠️ 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

⚠️ 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 regressed benchmarks
✅ 96 untouched benchmarks

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Benchmark BASE HEAD Efficiency
bit_matrix/dense/iter_row[64] 137.2 ns 166.4 ns -17.53%
bit_matrix/dense/iter_row[200] 174.7 ns 203.9 ns -14.31%
⚠️ as_constant < 1 ns < 1 ns N/A
⚠️ constant_equal < 1 ns < 1 ns N/A
⚠️ constant_not_equal < 1 ns < 1 ns N/A
⚠️ access < 1 ns < 1 ns N/A
⚠️ runtime_equal < 1 ns < 1 ns N/A
⚠️ runtime_not_equal < 1 ns < 1 ns N/A

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing t/sre-1039-record-cache-persistent-and-env-in-task-dependenciesjson (4b537d4) with main (94dff8e)1

Open in CodSpeed

Footnotes

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

@codecov

codecov Bot commented Sep 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 65.89%. Comparing base (407734a) to head (4b537d4).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #9563      +/-   ##
==========================================
- Coverage   65.89%   65.89%   -0.01%     
==========================================
  Files        1887     1887              
  Lines      198443   198443              
  Branches     8248     8248              
==========================================
- Hits       130773   130772       -1     
- Misses      66140    66141       +1     
  Partials     1530     1530              
Flag Coverage Δ
apps.hash-ai-worker-ts 1.99% <ø> (ø)
apps.hash-api 15.35% <ø> (ø)
apps.hash-graph 12.54% <ø> (ø)
blockprotocol.type-system 38.15% <ø> (ø)
local.claude-hooks 0.00% <ø> (ø)
local.harpc-client 51.49% <ø> (ø)
local.hash-backend-utils 3.27% <ø> (ø)
local.hash-graph-sdk 10.02% <ø> (ø)
local.hash-isomorphic-utils 12.22% <ø> (ø)
rust.antsi 2.36% <ø> (ø)
rust.error-stack 90.81% <ø> (ø)
rust.harpc-codec 84.70% <ø> (ø)
rust.harpc-net 96.19% <ø> (-0.02%) ⬇️
rust.harpc-tower 67.03% <ø> (ø)
rust.harpc-types 0.00% <ø> (ø)
rust.harpc-wire-protocol 92.23% <ø> (ø)
rust.hash-codec 72.76% <ø> (ø)
rust.hash-config 81.14% <ø> (ø)
rust.hash-graph-api 19.71% <ø> (ø)
rust.hash-graph-atlas 80.36% <ø> (ø)
rust.hash-graph-authentication 96.02% <ø> (ø)
rust.hash-graph-authorization 63.14% <ø> (ø)
rust.hash-graph-embeddings 91.88% <ø> (ø)
rust.hash-graph-postgres-store 32.15% <ø> (ø)
rust.hash-graph-store 48.41% <ø> (ø)
rust.hash-graph-temporal-versioning 50.18% <ø> (ø)
rust.hash-graph-types 0.00% <ø> (ø)
rust.hash-graph-validation 84.71% <ø> (ø)
rust.hash-middleware 90.92% <ø> (ø)
rust.hashql-ast 89.63% <ø> (ø)
rust.hashql-compiletest 28.39% <ø> (ø)
rust.hashql-core 78.92% <ø> (ø)
rust.hashql-diagnostics 72.51% <ø> (ø)
rust.hashql-eval 79.82% <ø> (ø)
rust.hashql-hir 89.09% <ø> (ø)
rust.hashql-mir 87.92% <ø> (ø)
rust.hashql-syntax-jexpr 94.04% <ø> (ø)

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.

indietyp
indietyp previously approved these changes Sep 7, 2026
@TimDiekmann
TimDiekmann added this pull request to the merge queue Sep 7, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Sep 7, 2026
Base automatically changed from t/sre-1033-declare-turbo-task-dependencies-where-they-hold-instead-of to main September 7, 2026 13:51
@TimDiekmann
TimDiekmann force-pushed the t/sre-1039-record-cache-persistent-and-env-in-task-dependenciesjson branch from 35dcc30 to 4b8c372 Compare September 7, 2026 13:56
@TimDiekmann
TimDiekmann requested a review from indietyp September 7, 2026 14:13
indietyp
indietyp previously approved these changes Sep 7, 2026
@github-actions

github-actions Bot commented Sep 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.2 \mathrm{ms} \pm 270 \mathrm{μs}\left({\color{gray}-1.166 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.46 \mathrm{ms} \pm 21.4 \mathrm{μs}\left({\color{gray}-2.064 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1002 $$12.4 \mathrm{ms} \pm 138 \mathrm{μs}\left({\color{gray}-0.470 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 3314 $$43.3 \mathrm{ms} \pm 445 \mathrm{μs}\left({\color{gray}-1.009 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$13.9 \mathrm{ms} \pm 122 \mathrm{μs}\left({\color{gray}-1.510 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 1527 $$23.7 \mathrm{ms} \pm 249 \mathrm{μs}\left({\color{gray}-4.994 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 2078 $$28.2 \mathrm{ms} \pm 220 \mathrm{μs}\left({\color{gray}-0.002 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.75 \mathrm{ms} \pm 21.1 \mathrm{μs}\left({\color{gray}-0.768 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 1033 $$13.4 \mathrm{ms} \pm 126 \mathrm{μs}\left({\color{gray}0.276 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_medium

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 102 $$3.85 \mathrm{ms} \pm 24.3 \mathrm{μs}\left({\color{gray}1.03 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.07 \mathrm{ms} \pm 21.3 \mathrm{μs}\left({\color{gray}2.88 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 52 $$3.43 \mathrm{ms} \pm 22.7 \mathrm{μs}\left({\color{gray}1.44 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 269 $$5.42 \mathrm{ms} \pm 51.3 \mathrm{μs}\left({\color{gray}3.99 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.64 \mathrm{ms} \pm 24.8 \mathrm{μs}\left({\color{gray}1.75 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 108 $$4.24 \mathrm{ms} \pm 28.5 \mathrm{μs}\left({\color{gray}0.982 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 133 $$4.72 \mathrm{ms} \pm 31.8 \mathrm{μs}\left({\color{red}5.41 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.56 \mathrm{ms} \pm 25.7 \mathrm{μs}\left({\color{gray}3.77 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 63 $$4.29 \mathrm{ms} \pm 40.2 \mathrm{μs}\left({\color{gray}0.819 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_none

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2 $$2.72 \mathrm{ms} \pm 15.1 \mathrm{μs}\left({\color{gray}-0.921 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.66 \mathrm{ms} \pm 14.1 \mathrm{μs}\left({\color{gray}-0.635 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 2 $$2.78 \mathrm{ms} \pm 16.4 \mathrm{μs}\left({\color{gray}-1.262 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 8 $$3.03 \mathrm{ms} \pm 15.0 \mathrm{μs}\left({\color{gray}-1.290 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.86 \mathrm{ms} \pm 17.6 \mathrm{μs}\left({\color{gray}-0.320 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 3 $$3.12 \mathrm{ms} \pm 16.0 \mathrm{μs}\left({\color{gray}-2.210 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_small

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 52 $$3.12 \mathrm{ms} \pm 18.9 \mathrm{μs}\left({\color{gray}0.365 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.76 \mathrm{ms} \pm 18.0 \mathrm{μs}\left({\color{gray}-1.902 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 26 $$2.98 \mathrm{ms} \pm 18.9 \mathrm{μs}\left({\color{gray}-0.253 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 94 $$3.56 \mathrm{ms} \pm 22.9 \mathrm{μs}\left({\color{gray}-0.444 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.02 \mathrm{ms} \pm 17.6 \mathrm{μs}\left({\color{gray}-1.377 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 27 $$3.30 \mathrm{ms} \pm 21.7 \mathrm{μs}\left({\color{gray}0.077 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 66 $$3.51 \mathrm{ms} \pm 29.8 \mathrm{μs}\left({\color{gray}-0.365 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.03 \mathrm{ms} \pm 17.6 \mathrm{μs}\left({\color{gray}-0.710 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 29 $$3.39 \mathrm{ms} \pm 19.1 \mathrm{μs}\left({\color{gray}-0.579 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_complete

Function Value Mean Flame graphs
entity_by_id;one_depth 1 entities $$31.6 \mathrm{ms} \pm 179 \mathrm{μs}\left({\color{gray}-0.357 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 10 entities $$70.4 \mathrm{ms} \pm 588 \mathrm{μs}\left({\color{gray}-0.316 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 25 entities $$34.8 \mathrm{ms} \pm 217 \mathrm{μs}\left({\color{gray}-0.245 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 5 entities $$39.0 \mathrm{ms} \pm 213 \mathrm{μs}\left({\color{gray}0.603 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 50 entities $$40.6 \mathrm{ms} \pm 240 \mathrm{μs}\left({\color{gray}-1.688 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 1 entities $$33.3 \mathrm{ms} \pm 189 \mathrm{μs}\left({\color{gray}-0.086 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 10 entities $$424 \mathrm{ms} \pm 1.41 \mathrm{ms}\left({\color{gray}1.04 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 25 entities $$89.3 \mathrm{ms} \pm 479 \mathrm{μs}\left({\color{gray}-0.497 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 5 entities $$77.5 \mathrm{ms} \pm 481 \mathrm{μs}\left({\color{gray}-0.549 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 50 entities $$305 \mathrm{ms} \pm 1.36 \mathrm{ms}\left({\color{red}11.2 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 1 entities $$10.3 \mathrm{ms} \pm 66.9 \mathrm{μs}\left({\color{gray}-0.562 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 10 entities $$10.4 \mathrm{ms} \pm 52.9 \mathrm{μs}\left({\color{gray}-1.664 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 25 entities $$10.6 \mathrm{ms} \pm 70.7 \mathrm{μs}\left({\color{gray}-0.495 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 5 entities $$10.5 \mathrm{ms} \pm 77.1 \mathrm{μs}\left({\color{gray}0.209 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 50 entities $$10.5 \mathrm{ms} \pm 66.8 \mathrm{μs}\left({\color{gray}-1.936 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_linkless

Function Value Mean Flame graphs
entity_by_id 1 entities $$10.3 \mathrm{ms} \pm 78.3 \mathrm{μs}\left({\color{gray}-1.207 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$10.3 \mathrm{ms} \pm 50.3 \mathrm{μs}\left({\color{gray}-2.613 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 100 entities $$10.3 \mathrm{ms} \pm 52.1 \mathrm{μs}\left({\color{gray}-1.795 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1000 entities $$10.4 \mathrm{ms} \pm 72.8 \mathrm{μs}\left({\color{gray}-1.477 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10000 entities $$10.6 \mathrm{ms} \pm 53.7 \mathrm{μs}\left({\color{gray}-1.461 \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 $$10.8 \mathrm{ms} \pm 62.2 \mathrm{μs}\left({\color{gray}-1.300 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1 $$10.9 \mathrm{ms} \pm 57.8 \mathrm{μs}\left({\color{gray}0.033 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1 $$11.0 \mathrm{ms} \pm 94.5 \mathrm{μs}\left({\color{gray}2.34 \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 59.7 \mathrm{μs}\left({\color{gray}-1.992 \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 61.7 \mathrm{μs}\left({\color{gray}-0.601 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/person/v/1 $$10.8 \mathrm{ms} \pm 72.3 \mathrm{μs}\left({\color{gray}-0.573 \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 72.7 \mathrm{μs}\left({\color{gray}-2.991 \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 58.4 \mathrm{μs}\left({\color{gray}-0.862 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1 $$10.9 \mathrm{ms} \pm 61.3 \mathrm{μs}\left({\color{gray}0.249 \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.07 \mathrm{ms} \pm 53.4 \mathrm{μs}\left({\color{gray}0.162 \mathrm{\%}}\right) $$ Flame Graph

representative_read_multiple_entities

Function Value Mean Flame graphs
entity_by_property traversal_paths=0 0 $$55.0 \mathrm{ms} \pm 472 \mathrm{μs}\left({\color{gray}-1.146 \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 558 \mathrm{μs}\left({\color{gray}0.301 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false $$61.0 \mathrm{ms} \pm 437 \mathrm{μs}\left({\color{gray}-2.135 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true $$70.8 \mathrm{ms} \pm 539 \mathrm{μs}\left({\color{gray}-0.554 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true $$79.6 \mathrm{ms} \pm 546 \mathrm{μs}\left({\color{gray}0.195 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true $$86.5 \mathrm{ms} \pm 647 \mathrm{μs}\left({\color{gray}-0.866 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=0 0 $$44.7 \mathrm{ms} \pm 355 \mathrm{μs}\left({\color{gray}-0.997 \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.5 \mathrm{ms} \pm 372 \mathrm{μs}\left({\color{gray}-0.272 \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 $$52.3 \mathrm{ms} \pm 444 \mathrm{μs}\left({\color{gray}2.42 \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.6 \mathrm{ms} \pm 399 \mathrm{μs}\left({\color{gray}0.128 \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 $$61.3 \mathrm{ms} \pm 403 \mathrm{μs}\left({\color{gray}-0.968 \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 $$62.2 \mathrm{ms} \pm 566 \mathrm{μs}\left({\color{gray}-0.300 \mathrm{\%}}\right) $$

scenarios

Function Value Mean Flame graphs
full_test query-limited $$112 \mathrm{ms} \pm 783 \mathrm{μs}\left({\color{gray}-4.774 \mathrm{\%}}\right) $$ Flame Graph
full_test query-unlimited $$127 \mathrm{ms} \pm 924 \mathrm{μs}\left({\color{gray}-2.827 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-limited $$22.9 \mathrm{ms} \pm 225 \mathrm{μs}\left({\color{gray}1.54 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-unlimited $$495 \mathrm{ms} \pm 1.68 \mathrm{ms}\left({\color{lightgreen}-5.027 \mathrm{\%}}\right) $$ Flame Graph

A document listed, per task, only the tasks turbo runs before it. Each
task is now an object with `dependsOn` plus `cache`, `persistent` and
`env` as turbo resolves them after merging the root and the package
`turbo.json`, so a change to those fields shows up as a document diff.
A field at turbo's default — a cached, non-persistent task without
environment variables — is left out.
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/apps > hash* Affects HASH (a `hash-*` app) area/apps > hash-api Affects the HASH API (app) area/apps > hash-graph area/apps area/libs > antsi Affects the `antsi` crate (library) area/libs > error-stack Affects the `error-stack` crate (library) area/libs Relates to first-party libraries/crates/packages (area) area/tests > integration New or updated integration tests area/tests > playwright New or updated Playwright tests area/tests New or updated tests 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.

3 participants