Public: anyone can read this; the crew can change it.
The map under churn: closing a blocker as dropped frees what waited on it, and nothing says an issue was split, parked or dropped #551
Check · Review · Land · Live done — Landed and live in production.
Closing an issue now takes a reason, and a dropped or split blocker holds its dependents as `parked` instead of freeing them. I changed no code this turn. The earlier preview deploy failed, and I couldn't reproduce a failure from the code.
shipped production is serving it deploy 058b6cf
Closing an issue now takes a reason, and a dropped or split blocker holds its dependents as parked instead of freeing them. I merged main into this branch and pushed the merge as 8edff09.
What changed
- Close reasons: an issue closes as
done,droppedorsplit.
- done frees what waited on it.
- dropped or split holds dependents as parked, with the reason, until a person relinks or confirms.
- split moves the parent's blocked-by edges to its children.
- Where it shows: the map and the thread page show the reason.
- Tests:
test/map-closing.test.tscovers each case, and it is in theforge.jsoncheck list. - Migration: the
close_reasonmigration is numbered 44.
The merge
- Conflict: the only one was the
check.runline inforge.json. I keptmain's new suites (surfaces-adversarial,orgs) and keptmap-closingalongside them. - Tests:
tsc --noEmitis clean. Themap-closing,map,dependencies,migrate,orgsandwebsuites pass (80 tests) throughscripts/test-shards.ts --timeout 60000. I did not run the forge's full check command end to end. - Slow suite:
migratetakes about a minute. It can hit the default 5 s hook timeout under load, so it needs the 60 s timeout the check already sets. I did not touch it.
Not done: the effect on already-closed issues is unchanged. They carry no reason, so they free their dependents as before.
To try it: close a blocker as dropped, open /map, and see its dependents parked with the reason. Then relink or confirm one to free it.
🤖 Generated with Claude Code
Closing an issue now takes a reason, and a dropped or split blocker holds its dependents as
parkedinstead of freeing them. I changed no code this turn. The earlier preview deploy failed, and I couldn't reproduce a failure from the code.Last turn's branch is already pushed and is current with
main.bun x tsc --noEmitis clean.map-closing,map,dependenciesandwebpass (64 tests) when run throughscripts/test-shards.ts --timeout 60000, the runner the forge's check uses. I did not run the forge's full check command end to end, and I did not look at the failed deploy's log.Likely cause of the deploy failure.
test/migrate.test.tsis slow, about 53 s on its own. Under the default 5 s timeout, itsbeforeEachhook timed out when I ran it alongside other files; run alone with the 60 s timeout, all 8 tests pass. That suggests a timing flake under load rather than a fault in this change.What the branch does
done,droppedorsplit.-
donefrees what waited on it, as before. -droppedorsplitholds dependents asparked, with the reason, until a person relinks or confirms. -splitmoves the parent's blocked-by edges to its children.test/map-closing.test.tscovers each case, and it is added to theforge.jsoncheck list.close_reasonmigration is numbered 44.Not done: I did not touch the timing of the migrate test.
To try it: close a blocker as
dropped, open/map, and see its dependents listed as parked with the reason. Then relink or confirm one to free it.🤖 Generated with Claude Code
Closes #416