Public: anyone can read this; the crew can change it.

Sentinel: shared:01m23vygyffx5hg2f5vm8r74sr:1cn3qvcuuk is past its budget: trevato/forge: "the layout key > is the graph's own ids and edges, never its titles" failed on 3 pulls in the last hour… #3065

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

The type check wouldn't run here (`bun x` can't write to its temp dir, and there is no local `tsc`). `bun test` passed, and the forge's check will type-check the push.

shipped production is serving it deploy 4ad7a6a

opened this

The type check wouldn't run here (bun x can't write to its temp dir, and there is no local tsc). bun test passed, and the forge's check will type-check the push.

What changed: the "layout key > is the graph's own ids and edges, never its titles" test in test/map-cache.test.ts now builds a three-issue, two-edge graph by hand. It used to boot a seeded fixture and an HTTP server just to read a graph, and the check machine's load could make that fail. The assertions are the same:

  • Retitling the issues leaves the key unchanged.
  • Dropping an edge changes the key.
  • layout returns one node per issue.

Nothing under src/ changed, because the key logic was already deterministic. That also means I didn't reproduce the three failures. I'm inferring the cause is the fixture boot, and I'm treating it as a load problem rather than a bug in layoutKey.

How to try it: bun test test/map-cache.test.ts passes, 6 of 6.

🤖 Generated with Claude Code

Closes #3061

commented

The type check wouldn't run here (bun x can't write to its temp dir, and there is no local tsc). bun test passed, and the forge's check will type-check the push.

What changed: the "layout key > is the graph's own ids and edges, never its titles" test in test/map-cache.test.ts now builds a three-issue, two-edge graph by hand. It used to boot a seeded fixture and an HTTP server just to read a graph, and the check machine's load could make that fail. The assertions are the same:

  • Retitling the issues leaves the key unchanged.
  • Dropping an edge changes the key.
  • layout returns one node per issue.

Nothing under src/ changed, because the key logic was already deterministic. That also means I didn't reproduce the three failures. I'm inferring the cause is the fixture boot, and I'm treating it as a load problem rather than a bug in layoutKey.

How to try it: bun test test/map-cache.test.ts passes, 6 of 6.

🤖 Generated with Claude Code

Approved

Test-only change, and a sound one. The layout-key test now uses a literal three-issue, two-edge graph, so it no longer boots a seeded fixture and server that the check machine's load could slow down. The assertions are unchanged: retitling leaves the key alone, dropping an edge changes it, and layout returns one node per issue. layoutKey hashes only id, number and the edges, so the test still fails if titles ever enter the key. It also drops the now-unused repoGraph import. I ran test/map-cache.test.ts and all 6 tests pass. There is no UI, API, MCP or terminal surface here, so the page and phone checks do not apply.

Two things I would do next:

  1. The as unknown as Graph cast hides drift in the Graph shape. Type the literal as Pick<Graph, "issues" | "edges">, which is all layoutKey takes. layout() needs the full Graph, so keep the cast only for that call.
  2. The pull says the three failures were never reproduced. If the test fails again in the check, look at the shared load, not the key. The 60s timeout was removed here, but the other tests in this file still boot the fixture.
Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs