Skip to content

H-6752: Remove the Linear and Notion MCP servers and ban install scripts - #9183

Merged
TimDiekmann merged 3 commits into
mainfrom
claude/h-6752-remove-mcp-servers
Aug 10, 2026
Merged

H-6752: Remove the Linear and Notion MCP servers and ban install scripts#9183
TimDiekmann merged 3 commits into
mainfrom
claude/h-6752-remove-mcp-servers

Conversation

@claude

@claude claude Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Requested via Slack thread

🌟 What is the purpose of this PR?

Removes the two in-repo MCP servers (Linear and Notion), retires the postinstall mechanism, and then bans install scripts outright so it cannot come back.

Before: a plain yarn install ended by running turbo run postinstall, a pass over 87 task nodes whose only real work was building two MCP servers that nothing in the monorepo consumes. (Each server also declared its own postinstall, so Yarn built them once directly and the root turbo pass built them again.) Nothing prevented a new install script being added tomorrow.

After: install does no turbo work, the servers are gone, and any workspace that declares preinstall, install, postinstall or prepare now fails yarn lint:constraints. Removing the scripts was the cleanup; the constraint is what makes it stick.

🔗 Related links

🔍 What does this change?

Removing the servers and the mechanism

  • deletes apps/mcp/@apps/linear-mcp and @apps/notion-mcp, plus the folder README
  • removes the postinstall script from the root package.json
  • removes the postinstall task (and the now-empty // Install commands group) from the root turbo.json
  • updates yarn.lock — drops the two workspace entries, their dependencies (@modelcontextprotocol/sdk, @notionhq/client, notion-to-md, chokidar-cli, shx) and the transitive packages that become unreferenced
  • drops the mention of the bundled servers from .config/_examples/README.md

Banning install scripts

  • adds enforceNoInstallScripts to yarn.config.cjs, rejecting preinstall, install, postinstall and prepare in every workspace, the root included. yarn.config.cjs is already the repo's manifest gate — it runs in CI via lint.yml (yarn lint:constraints) and on staged package.json via lefthook — so this needs no new tooling or CI step. It unsets rather than errors, matching the file's convention, so yarn fix:constraints autofixes a violation.
  • deletes the only two pre-existing violations: prepare in apps/hash-ai-worker-ts/package.json and in libs/@hashintel/ds-components/package.json

Publish lifecycle scripts (prepack, prepublishOnly, postpublish, ...) are deliberately not covered — 17 of them across 11 published packages are needed by yarn changeset:publish.

The node.postinstall = "corepack enable" hook in .config/mise/config.toml is an unrelated mise tool hook and is untouched. "install": "0.13.0" in apps/hash-api/package.json is a dependency named install, not a script; a manifest.scripts-based constraint correctly ignores it.

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:

  • require changes to docs which are made as part of this PR

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

⚠️ Known issues

  • The servers were built on the legacy MCP API — Server with setRequestHandler, rather than McpServer/registerTool — and were stdio-only (StdioServerTransport). Both Linear and Notion now ship their own MCP servers, so anyone who had these wired in locally should point their client at those instead.
  • hydrateLinearIssue (libs/@local/hash-backend-utils/src/linear.ts) was imported by the Linear server, but it is not orphaned by this change: libs/@local/repo-chores/node/scripts/ai-pr-review/get-pr-info.ts still uses it. No follow-up needed.
  • Dropping prepare from apps/hash-ai-worker-ts is safe: the package is private, so no publish path invoked it, its generated output (@local/hash-isomorphic-utils/src/chart-config-schema.ts) is committed, and generate:chart-config-schema remains for manual regeneration. Dropping it from @hashintel/ds-components is safe because prepublishOnly: turbo run build already runs the same codegen chain via build's dependsOn: ["codegen"].

🐾 Next steps

None.

🛡 What tests cover this?

No test covered the deleted packages; nothing imported them. The constraint is itself the regression test for the ban, and it runs in CI on every PR.

❓ How to test this?

  1. yarn lint:constraints passes with zero violations.
  2. Re-add "postinstall" to the root package.json and yarn lint:constraints fails with hash@workspace:. → Extraneous field scripts["postinstall"]; the same happens for a non-root workspace. yarn fix:constraints removes it again.
  3. turbo run postinstall --dry=json fails with Could not find task 'postinstall' in project (it previously resolved 87 nodes, 2 of them real).
  4. turbo run build --dry=json and turbo run lint:tsc --dry=json still resolve, with the workspace count down from 87 to 85 and only @apps/linear-mcp / @apps/notion-mcp dropped.
  5. yarn install --immutable succeeds and completes without invoking turbo.

Delete `apps/mcp` (the `@apps/linear-mcp` and `@apps/notion-mcp`
workspaces) and retire the `postinstall` mechanism, of which they were
the only consumers.

- remove the root `package.json` `postinstall` script, which ran
  `turbo run postinstall` on every `yarn install`
- remove the `postinstall` task from the root `turbo.json`
- drop the two workspaces, their dependencies and the transitive
  packages that become unreferenced from `yarn.lock`
- drop the reference to the bundled servers from
  `.config/_examples/README.md`

`turbo run postinstall` now resolves no task at all, and a plain
`yarn install` no longer triggers a turbo pass.
@vercel

vercel Bot commented Aug 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hash Ready Ready Preview Aug 10, 2026 10:34am
hashdotdesign-tokens Ready Ready Preview Aug 10, 2026 10:34am
petrinaut Ready Ready Preview Aug 10, 2026 10:34am

@github-actions github-actions Bot added area/deps Relates to third-party dependencies (area) area/infra Relates to version control, CI, CD or IaC (area) area/apps type/legal Owned by the @legal team labels Aug 10, 2026
@claude
claude Bot temporarily deployed to pull-request August 10, 2026 09:26 Inactive
@claude
claude Bot temporarily deployed to pull-request August 10, 2026 09:26 Inactive
@codecov

codecov Bot commented Aug 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 59.58%. Comparing base (77fb79c) to head (67d89fe).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #9183   +/-   ##
=======================================
  Coverage   59.58%   59.58%           
=======================================
  Files        1419     1419           
  Lines      138220   138220           
  Branches     6549     6549           
=======================================
+ Hits        82355    82356    +1     
+ Misses      54801    54800    -1     
  Partials     1064     1064           
Flag Coverage Δ
apps.hash-ai-worker-ts 1.99% <ø> (ø)
rust.harpc-tower 67.03% <ø> (ø)
rust.hash-graph-postgres-store 29.66% <ø> (ø)

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.

Removing the `postinstall` mechanism only cleared the existing scripts;
this stops new ones being introduced.

Add `enforceNoInstallScripts` to `yarn.config.cjs`, rejecting
`preinstall`, `install`, `postinstall` and `prepare` in every workspace
(the root included). These run on `yarn install` and so allow arbitrary
code execution on a plain checkout-and-install. The constraint already
gates manifests in CI (`lint.yml`, `yarn lint:constraints`) and on
staged `package.json` via lefthook, so no new tooling is needed. It
`unset`s rather than `error`s, matching the surrounding convention, so
`yarn fix:constraints` autofixes a violation.

Publish lifecycle scripts (`prepack`, `prepublishOnly`, `postpublish`,
...) are deliberately out of scope: 17 of them across 11 published
packages are needed by `yarn changeset:publish`.

Delete the only two pre-existing violations:

- `apps/hash-ai-worker-ts` `prepare` — the package is private, so no
  publish path invoked it. Its output
  (`@local/hash-isomorphic-utils/src/chart-config-schema.ts`) is
  committed, and `generate:chart-config-schema` remains for manual
  regeneration.
- `@hashintel/ds-components` `prepare` — redundant with
  `prepublishOnly: turbo run build`, whose `build` task depends on
  `codegen`, running the same `codegen:colors && codegen:tokens &&
  codegen:panda` chain.
@github-actions github-actions Bot added area/apps > hash* Affects HASH (a `hash-*` app) area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team area/apps > hash.design Affects the `hash.design` design site (app) labels Aug 10, 2026
@claude
claude Bot temporarily deployed to pull-request August 10, 2026 09:34 Inactive
@claude
claude Bot temporarily deployed to pull-request August 10, 2026 09:34 Inactive
@codspeed-hq

codspeed-hq Bot commented Aug 10, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 98 untouched benchmarks


Comparing claude/h-6752-remove-mcp-servers (7558cb2) with main (271284a)1

Open in CodSpeed

Footnotes

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

@claude claude Bot changed the title H-6752: Remove the Linear and Notion MCP servers H-6752: Remove the Linear and Notion MCP servers and ban install scripts Aug 10, 2026
@claude
claude Bot marked this pull request as ready for review August 10, 2026 09:59
@claude
claude Bot requested a review from a team as a code owner August 10, 2026 09:59
@claude
claude Bot requested a review from TimDiekmann August 10, 2026 09:59
@cursor

cursor Bot commented Aug 10, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Tooling and developer-workflow cleanup only; no runtime product paths change. Risk is mainly local MCP setups that still pointed at the removed servers.

Overview
Removes the bundled Linear and Notion MCP servers under apps/mcp/ and stops routing install-time work through Turbo. Root postinstall and the matching turbo.json task are gone, and docs no longer point at those servers.

Install scripts are now blocked repo-wide: yarn.config.cjs adds enforceNoInstallScripts, which strips preinstall, install, postinstall, and prepare from every workspace (including root), so yarn lint:constraints / yarn fix:constraints prevent them from returning. The only prior prepare hooks removed are in hash-ai-worker-ts (chart schema codegen) and @hashintel/ds-components (codegen).

yarn.lock drops the two MCP workspaces and dependencies that only they used (e.g. MCP SDK, Notion client, notion-to-md).

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

@claude
claude Bot temporarily deployed to pull-request August 10, 2026 10:17 Inactive
@TimDiekmann
TimDiekmann added this pull request to the merge queue Aug 10, 2026
Merged via the queue into main with commit 2ed2383 Aug 10, 2026
183 checks passed
@TimDiekmann
TimDiekmann deleted the claude/h-6752-remove-mcp-servers branch August 10, 2026 11:16
@github-actions

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.5 \mathrm{ms} \pm 238 \mathrm{μs}\left({\color{gray}2.34 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.50 \mathrm{ms} \pm 24.3 \mathrm{μs}\left({\color{gray}0.729 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1002 $$12.8 \mathrm{ms} \pm 110 \mathrm{μs}\left({\color{gray}3.68 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 3314 $$43.4 \mathrm{ms} \pm 391 \mathrm{μs}\left({\color{gray}-0.022 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$14.4 \mathrm{ms} \pm 146 \mathrm{μs}\left({\color{gray}1.23 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 1527 $$24.5 \mathrm{ms} \pm 199 \mathrm{μs}\left({\color{gray}4.58 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 2078 $$28.1 \mathrm{ms} \pm 193 \mathrm{μs}\left({\color{gray}0.250 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.79 \mathrm{ms} \pm 24.0 \mathrm{μs}\left({\color{gray}0.501 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 1033 $$13.5 \mathrm{ms} \pm 125 \mathrm{μs}\left({\color{gray}1.22 \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 26.7 \mathrm{μs}\left({\color{gray}2.06 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.05 \mathrm{ms} \pm 19.0 \mathrm{μs}\left({\color{gray}0.483 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 52 $$3.45 \mathrm{ms} \pm 22.4 \mathrm{μs}\left({\color{gray}1.88 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 269 $$5.25 \mathrm{ms} \pm 30.7 \mathrm{μs}\left({\color{gray}0.115 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.58 \mathrm{ms} \pm 21.9 \mathrm{μs}\left({\color{gray}0.430 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 108 $$4.17 \mathrm{ms} \pm 22.3 \mathrm{μs}\left({\color{gray}0.364 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 133 $$4.50 \mathrm{ms} \pm 25.4 \mathrm{μs}\left({\color{gray}0.562 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.52 \mathrm{ms} \pm 26.8 \mathrm{μs}\left({\color{gray}-0.069 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 63 $$4.15 \mathrm{ms} \pm 27.4 \mathrm{μs}\left({\color{gray}0.461 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_none

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2 $$2.73 \mathrm{ms} \pm 15.0 \mathrm{μs}\left({\color{gray}0.175 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.57 \mathrm{ms} \pm 16.0 \mathrm{μs}\left({\color{gray}-0.034 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 2 $$2.70 \mathrm{ms} \pm 14.4 \mathrm{μs}\left({\color{gray}0.169 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 8 $$2.99 \mathrm{ms} \pm 13.8 \mathrm{μs}\left({\color{gray}-0.175 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.79 \mathrm{ms} \pm 17.3 \mathrm{μs}\left({\color{gray}0.365 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 3 $$2.99 \mathrm{ms} \pm 17.5 \mathrm{μs}\left({\color{gray}-1.123 \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 21.1 \mathrm{μs}\left({\color{gray}0.305 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.79 \mathrm{ms} \pm 14.3 \mathrm{μs}\left({\color{gray}-0.456 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 26 $$3.07 \mathrm{ms} \pm 28.6 \mathrm{μs}\left({\color{gray}1.05 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 94 $$3.53 \mathrm{ms} \pm 22.2 \mathrm{μs}\left({\color{gray}0.633 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.06 \mathrm{ms} \pm 22.5 \mathrm{μs}\left({\color{gray}0.809 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 27 $$3.36 \mathrm{ms} \pm 20.9 \mathrm{μs}\left({\color{gray}1.65 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 66 $$3.46 \mathrm{ms} \pm 18.6 \mathrm{μs}\left({\color{gray}0.484 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.01 \mathrm{ms} \pm 18.2 \mathrm{μs}\left({\color{gray}-0.040 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 29 $$3.43 \mathrm{ms} \pm 22.1 \mathrm{μs}\left({\color{gray}0.477 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_complete

Function Value Mean Flame graphs
entity_by_id;one_depth 1 entities $$44.2 \mathrm{ms} \pm 267 \mathrm{μs}\left({\color{gray}3.30 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 10 entities $$34.3 \mathrm{ms} \pm 222 \mathrm{μs}\left({\color{gray}1.92 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 25 entities $$36.8 \mathrm{ms} \pm 275 \mathrm{μs}\left({\color{gray}1.56 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 5 entities $$33.9 \mathrm{ms} \pm 371 \mathrm{μs}\left({\color{lightgreen}-25.696 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 50 entities $$43.9 \mathrm{ms} \pm 266 \mathrm{μs}\left({\color{gray}3.59 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 1 entities $$51.2 \mathrm{ms} \pm 316 \mathrm{μs}\left({\color{gray}0.613 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 10 entities $$41.6 \mathrm{ms} \pm 240 \mathrm{μs}\left({\color{gray}2.00 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 25 entities $$93.7 \mathrm{ms} \pm 542 \mathrm{μs}\left({\color{gray}-0.096 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 5 entities $$54.0 \mathrm{ms} \pm 4.92 \mathrm{ms}\left({\color{gray}3.72 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 50 entities $$278 \mathrm{ms} \pm 892 \mathrm{μs}\left({\color{gray}-0.330 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 1 entities $$11.3 \mathrm{ms} \pm 57.1 \mathrm{μs}\left({\color{gray}0.303 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 10 entities $$11.4 \mathrm{ms} \pm 65.1 \mathrm{μs}\left({\color{gray}-0.366 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 25 entities $$11.4 \mathrm{ms} \pm 65.8 \mathrm{μs}\left({\color{gray}0.147 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 5 entities $$11.4 \mathrm{ms} \pm 70.8 \mathrm{μs}\left({\color{gray}0.532 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 50 entities $$11.4 \mathrm{ms} \pm 68.3 \mathrm{μs}\left({\color{gray}0.661 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_linkless

Function Value Mean Flame graphs
entity_by_id 1 entities $$11.3 \mathrm{ms} \pm 61.8 \mathrm{μs}\left({\color{gray}0.088 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$11.5 \mathrm{ms} \pm 63.3 \mathrm{μs}\left({\color{gray}0.528 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 100 entities $$11.4 \mathrm{ms} \pm 74.0 \mathrm{μs}\left({\color{gray}0.305 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1000 entities $$11.4 \mathrm{ms} \pm 69.3 \mathrm{μs}\left({\color{gray}0.585 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10000 entities $$11.5 \mathrm{ms} \pm 66.4 \mathrm{μs}\left({\color{gray}-1.722 \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.9 \mathrm{ms} \pm 74.1 \mathrm{μs}\left({\color{gray}1.58 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1 $$12.1 \mathrm{ms} \pm 81.9 \mathrm{μs}\left({\color{gray}1.56 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1 $$11.9 \mathrm{ms} \pm 80.1 \mathrm{μs}\left({\color{gray}1.69 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1 $$12.0 \mathrm{ms} \pm 86.5 \mathrm{μs}\left({\color{gray}1.46 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/page/v/2 $$11.8 \mathrm{ms} \pm 63.6 \mathrm{μs}\left({\color{gray}1.64 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/person/v/1 $$12.0 \mathrm{ms} \pm 93.1 \mathrm{μs}\left({\color{gray}1.43 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1 $$11.9 \mathrm{ms} \pm 63.0 \mathrm{μs}\left({\color{gray}-1.037 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/song/v/1 $$11.9 \mathrm{ms} \pm 69.7 \mathrm{μs}\left({\color{gray}1.77 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1 $$12.1 \mathrm{ms} \pm 69.7 \mathrm{μs}\left({\color{gray}3.67 \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.95 \mathrm{ms} \pm 54.4 \mathrm{μs}\left({\color{gray}1.24 \mathrm{\%}}\right) $$ Flame Graph

representative_read_multiple_entities

Function Value Mean Flame graphs
entity_by_property traversal_paths=0 0 $$61.5 \mathrm{ms} \pm 373 \mathrm{μs}\left({\color{gray}4.22 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=255 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true $$117 \mathrm{ms} \pm 603 \mathrm{μs}\left({\color{gray}3.40 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false $$69.0 \mathrm{ms} \pm 539 \mathrm{μs}\left({\color{gray}4.34 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true $$78.9 \mathrm{ms} \pm 559 \mathrm{μs}\left({\color{gray}4.02 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true $$89.5 \mathrm{ms} \pm 489 \mathrm{μs}\left({\color{gray}4.04 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true $$96.7 \mathrm{ms} \pm 621 \mathrm{μs}\left({\color{red}5.25 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=0 0 $$46.1 \mathrm{ms} \pm 304 \mathrm{μs}\left({\color{red}5.95 \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 $$76.6 \mathrm{ms} \pm 462 \mathrm{μs}\left({\color{red}5.27 \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 $$53.1 \mathrm{ms} \pm 352 \mathrm{μs}\left({\color{red}7.15 \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 $$62.0 \mathrm{ms} \pm 470 \mathrm{μs}\left({\color{red}5.59 \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 $$65.8 \mathrm{ms} \pm 505 \mathrm{μs}\left({\color{red}5.46 \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 $$65.6 \mathrm{ms} \pm 461 \mathrm{μs}\left({\color{red}5.43 \mathrm{\%}}\right) $$

scenarios

Function Value Mean Flame graphs
full_test query-limited $$120 \mathrm{ms} \pm 826 \mathrm{μs}\left({\color{lightgreen}-5.097 \mathrm{\%}}\right) $$ Flame Graph
full_test query-unlimited $$131 \mathrm{ms} \pm 634 \mathrm{μs}\left({\color{lightgreen}-5.427 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-limited $$24.7 \mathrm{ms} \pm 184 \mathrm{μs}\left({\color{red}26.8 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-unlimited $$550 \mathrm{ms} \pm 1.51 \mathrm{ms}\left({\color{red}6.29 \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/apps > hash* Affects HASH (a `hash-*` app) area/apps area/deps Relates to third-party dependencies (area) 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 type/legal Owned by the @legal team

Development

Successfully merging this pull request may close these issues.

3 participants