Skip to content

BE-841: Remove the start script from hash-graph-atlas and filter the bench workflow's start tasks - #9633

Merged
TimDiekmann merged 1 commit into
mainfrom
claude/be-841-remove-atlas-start-script
Sep 9, 2026
Merged

BE-841: Remove the start script from hash-graph-atlas and filter the bench workflow's start tasks#9633
TimDiekmann merged 1 commit into
mainfrom
claude/be-841-remove-atlas-start-script

Conversation

@claude

@claude claude Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Requested by Tim Diekmann · Slack thread

🌟 What is the purpose of this PR?

Before: The hash-graph-benches job fails on every run since #9306 made @apps/hash-graph depend on @rust/hash-graph-atlas. The bench workflow runs turbo run start without a filter, so it also runs the atlas package's start script. That script points at the standalone hash-graph-atlas binary, which requires the cli feature, so cargo refuses to build it, the graph server start is aborted, and the healthcheck times out.

After: The atlas package has no start script, and the bench workflow starts only @apps/hash-graph. The standalone atlas binary only runs one-off operator jobs (fit, report, dump); serving lives in the hash-graph binary, so there is no atlas service to start.

🔗 Related links

🚫 Blocked by

  • Nothing

🔍 What does this change?

  • Removes the start script from @rust/hash-graph-atlas and drops the matching entry from its generated docs/task-dependencies.json.
  • Adds --filter @apps/hash-graph to the turbo run start and turbo run start:healthcheck calls in both "Start background tasks" steps of bench.yml.

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:

  • affected the execution graph, and the turbo.json's have been updated to reflect this
    • The start task is removed from the atlas package. No turbo.json references it, so only the generated task-dependencies.json changes.

⚠️ Known issues

None.

🐾 Next steps

Close #9616, which adds --features cli to the start script instead of removing it.

🛡 What tests cover this?

  • The hash-graph-benches job on this PR. Bench-CI is non-blocking, so check its "Start background tasks" step by hand.
  • The task-dependencies.json lint check in lint.yml verifies the regenerated file matches. The file was edited by hand to match what the generator produces (the sandbox cannot build hash-repo-chores), so this check confirms it.

❓ How to test this?

  1. Open the hash-graph-benches job on this PR.
  2. Confirm the "Start background tasks" step no longer logs target hash-graph-atlasin packagehash-graph-atlasrequires the features:cli``.
  3. Confirm the healthcheck passes and the benches run.

📹 Demo

Not applicable.

@vercel

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

Request Review

@codspeed-hq

codspeed-hq Bot commented Sep 9, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

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

✅ 98 untouched benchmarks

Performance Changes

Benchmark BASE HEAD Efficiency
⚠️ 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

Comparing claude/be-841-remove-atlas-start-script (dc5afc2) with main (94dff8e)1

Open in CodSpeed

Footnotes

  1. No successful run was found on main (db4f62c) 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.

@claude
claude Bot marked this pull request as ready for review September 9, 2026 17:13
@claude
claude Bot requested a review from a team as a code owner September 9, 2026 17:13
@claude
claude Bot requested a review from TimDiekmann September 9, 2026 17:13
@cursor

cursor Bot commented Sep 9, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
CI and package script changes only; no runtime application logic or auth/data paths are modified.

Overview
Fixes failing hash-graph-benches CI by stopping Turbo from starting the standalone @rust/hash-graph-atlas service during integration bench runs.

The atlas package no longer defines a start script (and its generated task-dependencies.json drops the start task), since serving belongs in @apps/hash-graph and atlas is only for one-off operator binaries. In .github/workflows/bench.yml, both “Start background tasks” steps now run turbo run start and start:healthcheck with --filter @apps/hash-graph, so only the graph app is brought up for base/head bench comparisons.

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

@TimDiekmann
TimDiekmann added this pull request to the merge queue Sep 9, 2026
@github-actions

github-actions Bot commented Sep 9, 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.8 \mathrm{ms} \pm 236 \mathrm{μs}\left({\color{gray}-0.574 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.49 \mathrm{ms} \pm 24.4 \mathrm{μs}\left({\color{gray}-2.054 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1002 $$13.3 \mathrm{ms} \pm 117 \mathrm{μs}\left({\color{gray}-3.771 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 3314 $$44.9 \mathrm{ms} \pm 467 \mathrm{μs}\left({\color{gray}1.67 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$14.8 \mathrm{ms} \pm 124 \mathrm{μs}\left({\color{gray}-3.684 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 1527 $$24.9 \mathrm{ms} \pm 201 \mathrm{μs}\left({\color{gray}-3.450 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 2078 $$29.1 \mathrm{ms} \pm 260 \mathrm{μs}\left({\color{gray}-1.590 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.82 \mathrm{ms} \pm 27.1 \mathrm{μs}\left({\color{gray}-2.652 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 1033 $$14.7 \mathrm{ms} \pm 161 \mathrm{μs}\left({\color{gray}-0.148 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_medium

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 102 $$3.91 \mathrm{ms} \pm 28.7 \mathrm{μs}\left({\color{gray}0.223 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.05 \mathrm{ms} \pm 19.5 \mathrm{μs}\left({\color{gray}-0.186 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 52 $$3.40 \mathrm{ms} \pm 22.5 \mathrm{μs}\left({\color{gray}-1.371 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 269 $$5.32 \mathrm{ms} \pm 45.3 \mathrm{μs}\left({\color{gray}-0.417 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.64 \mathrm{ms} \pm 24.7 \mathrm{μs}\left({\color{gray}1.01 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 108 $$4.24 \mathrm{ms} \pm 30.2 \mathrm{μs}\left({\color{gray}-0.706 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 133 $$4.64 \mathrm{ms} \pm 40.7 \mathrm{μs}\left({\color{gray}1.47 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.49 \mathrm{ms} \pm 23.9 \mathrm{μs}\left({\color{gray}-0.536 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 63 $$4.35 \mathrm{ms} \pm 34.3 \mathrm{μs}\left({\color{gray}-0.274 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_none

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2 $$2.74 \mathrm{ms} \pm 14.6 \mathrm{μs}\left({\color{gray}-2.409 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.70 \mathrm{ms} \pm 14.8 \mathrm{μs}\left({\color{gray}-1.245 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 2 $$2.86 \mathrm{ms} \pm 19.5 \mathrm{μs}\left({\color{gray}-2.991 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 8 $$3.12 \mathrm{ms} \pm 24.7 \mathrm{μs}\left({\color{gray}-0.079 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.87 \mathrm{ms} \pm 14.8 \mathrm{μs}\left({\color{gray}-3.367 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 3 $$3.19 \mathrm{ms} \pm 21.0 \mathrm{μs}\left({\color{gray}-0.089 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_small

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 52 $$3.15 \mathrm{ms} \pm 19.7 \mathrm{μs}\left({\color{gray}-1.182 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.82 \mathrm{ms} \pm 17.8 \mathrm{μs}\left({\color{gray}-1.115 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 26 $$3.03 \mathrm{ms} \pm 18.4 \mathrm{μs}\left({\color{gray}0.710 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 94 $$3.57 \mathrm{ms} \pm 25.6 \mathrm{μs}\left({\color{gray}-1.270 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.09 \mathrm{ms} \pm 21.6 \mathrm{μs}\left({\color{gray}0.796 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 27 $$3.36 \mathrm{ms} \pm 21.4 \mathrm{μs}\left({\color{gray}-0.709 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 66 $$3.57 \mathrm{ms} \pm 26.2 \mathrm{μs}\left({\color{gray}2.47 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.11 \mathrm{ms} \pm 23.4 \mathrm{μs}\left({\color{gray}-0.501 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 29 $$3.48 \mathrm{ms} \pm 34.9 \mathrm{μs}\left({\color{gray}1.48 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_complete

Function Value Mean Flame graphs
entity_by_id;one_depth 1 entities $$32.4 \mathrm{ms} \pm 184 \mathrm{μs}\left({\color{gray}-0.640 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 10 entities $$72.2 \mathrm{ms} \pm 567 \mathrm{μs}\left({\color{gray}0.424 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 25 entities $$37.0 \mathrm{ms} \pm 314 \mathrm{μs}\left({\color{gray}2.28 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 5 entities $$40.8 \mathrm{ms} \pm 343 \mathrm{μs}\left({\color{gray}1.83 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 50 entities $$43.1 \mathrm{ms} \pm 309 \mathrm{μs}\left({\color{gray}0.336 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 1 entities $$33.7 \mathrm{ms} \pm 203 \mathrm{μs}\left({\color{gray}-2.070 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 10 entities $$422 \mathrm{ms} \pm 1.41 \mathrm{ms}\left({\color{gray}0.593 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 25 entities $$93.0 \mathrm{ms} \pm 545 \mathrm{μs}\left({\color{gray}0.821 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 5 entities $$79.4 \mathrm{ms} \pm 404 \mathrm{μs}\left({\color{gray}0.308 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 50 entities $$276 \mathrm{ms} \pm 916 \mathrm{μs}\left({\color{lightgreen}-8.902 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 1 entities $$10.6 \mathrm{ms} \pm 84.0 \mathrm{μs}\left({\color{gray}0.640 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 10 entities $$10.7 \mathrm{ms} \pm 70.0 \mathrm{μs}\left({\color{gray}-0.641 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 25 entities $$10.7 \mathrm{ms} \pm 70.1 \mathrm{μs}\left({\color{gray}-0.239 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 5 entities $$10.5 \mathrm{ms} \pm 55.4 \mathrm{μs}\left({\color{gray}-0.599 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 50 entities $$10.7 \mathrm{ms} \pm 75.1 \mathrm{μs}\left({\color{gray}0.555 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_linkless

Function Value Mean Flame graphs
entity_by_id 1 entities $$10.6 \mathrm{ms} \pm 67.7 \mathrm{μs}\left({\color{gray}1.08 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$10.4 \mathrm{ms} \pm 64.4 \mathrm{μs}\left({\color{gray}0.073 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 100 entities $$10.6 \mathrm{ms} \pm 72.3 \mathrm{μs}\left({\color{gray}1.56 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1000 entities $$10.6 \mathrm{ms} \pm 86.2 \mathrm{μs}\left({\color{gray}1.48 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10000 entities $$10.8 \mathrm{ms} \pm 68.9 \mathrm{μs}\left({\color{gray}-0.730 \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.2 \mathrm{ms} \pm 84.2 \mathrm{μs}\left({\color{gray}0.716 \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 75.6 \mathrm{μs}\left({\color{gray}-1.068 \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 85.5 \mathrm{μs}\left({\color{gray}1.45 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1 $$11.0 \mathrm{ms} \pm 71.2 \mathrm{μs}\left({\color{gray}-1.550 \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 77.9 \mathrm{μs}\left({\color{gray}-1.785 \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 70.4 \mathrm{μs}\left({\color{gray}-3.185 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1 $$11.2 \mathrm{ms} \pm 87.9 \mathrm{μs}\left({\color{gray}1.45 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/song/v/1 $$11.4 \mathrm{ms} \pm 98.3 \mathrm{μs}\left({\color{gray}0.782 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1 $$11.2 \mathrm{ms} \pm 76.6 \mathrm{μs}\left({\color{gray}-0.384 \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.22 \mathrm{ms} \pm 52.3 \mathrm{μs}\left({\color{gray}1.50 \mathrm{\%}}\right) $$ Flame Graph

representative_read_multiple_entities

Function Value Mean Flame graphs
entity_by_property traversal_paths=0 0 $$58.0 \mathrm{ms} \pm 463 \mathrm{μs}\left({\color{gray}3.79 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=255 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true $$111 \mathrm{ms} \pm 614 \mathrm{μs}\left({\color{gray}2.12 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false $$63.6 \mathrm{ms} \pm 403 \mathrm{μs}\left({\color{gray}1.44 \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.2 \mathrm{ms} \pm 463 \mathrm{μs}\left({\color{gray}1.68 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true $$82.3 \mathrm{ms} \pm 611 \mathrm{μs}\left({\color{gray}2.59 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true $$88.2 \mathrm{ms} \pm 549 \mathrm{μs}\left({\color{gray}1.63 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=0 0 $$46.6 \mathrm{ms} \pm 334 \mathrm{μs}\left({\color{gray}2.56 \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 $$74.2 \mathrm{ms} \pm 461 \mathrm{μs}\left({\color{gray}1.35 \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.6 \mathrm{ms} \pm 464 \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:0;links:1;link_dests:0;type:true $$61.8 \mathrm{ms} \pm 477 \mathrm{μs}\left({\color{gray}2.73 \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.5 \mathrm{ms} \pm 443 \mathrm{μs}\left({\color{gray}-0.476 \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 $$63.6 \mathrm{ms} \pm 446 \mathrm{μs}\left({\color{gray}1.65 \mathrm{\%}}\right) $$

scenarios

Function Value Mean Flame graphs
full_test query-limited $$118 \mathrm{ms} \pm 658 \mathrm{μs}\left({\color{gray}3.11 \mathrm{\%}}\right) $$ Flame Graph
full_test query-unlimited $$128 \mathrm{ms} \pm 795 \mathrm{μs}\left({\color{gray}1.19 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-limited $$23.8 \mathrm{ms} \pm 194 \mathrm{μs}\left({\color{gray}-0.156 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-unlimited $$514 \mathrm{ms} \pm 1.73 \mathrm{ms}\left({\color{gray}-1.432 \mathrm{\%}}\right) $$ Flame Graph

Merged via the queue into main with commit 116ce0f Sep 9, 2026
231 checks passed
@TimDiekmann
TimDiekmann deleted the claude/be-841-remove-atlas-start-script branch September 9, 2026 18:05
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 Relates to first-party libraries/crates/packages (area) type/eng > backend Owned by the @backend team

Development

Successfully merging this pull request may close these issues.

2 participants