For the owner who has /:owner/forge/following open while severing from the terminal, the API or MCP: the page must show it without a reload. Replaces #2213. #2213 was declined twice because #1862 was not on main yet. It now is (release 0.7.147, 8bb4d2b4).
Where it stands on main: severForge (src/actions/follow.ts:44) appends {kind: "forge.severed"} to the bus (line 56), but src/web/pages/chain.ts has no live region. Pages go live with an element that has an id and data-live="<kinds>", plus data-live-repo="owner/name" where it is per repository. liveRegionsJs in src/web/client.ts (around lines 1805–1900) refetches that region when a matching event arrives.
Done looks like:
[ ] On the chain page, the part showing the Sever form and the "you are here" line is a data-live="forge.severed" region scoped to the repository. After a sever it renders the "follows nothing since …" state without a reload.
[ ] If the forge.severed event's scope does not match what liveRegionsJs filters on (its repo), fix the event's fields in severForge; do not special-case the client.
[ ] Test in test/following.test.ts: the chain page carries the live region with the right kind and repo. A sever through severForge appends an event that region would accept, and refetching the page then shows the severed state.
[ ] The parent's /family view, if it lists the severed child, takes the same event the same way; otherwise say in the pull that it does not show the sever.
[ ] bun x tsc --noEmit and bun test test/following.test.ts pass.
For the owner who has
/:owner/forge/followingopen while severing from the terminal, the API or MCP: the page must show it without a reload. Replaces #2213. #2213 was declined twice because #1862 was not on main yet. It now is (release 0.7.147, 8bb4d2b4).Where it stands on main:
severForge(src/actions/follow.ts:44) appends{kind: "forge.severed"}to the bus (line 56), butsrc/web/pages/chain.tshas no live region. Pages go live with an element that has anidanddata-live="<kinds>", plusdata-live-repo="owner/name"where it is per repository.liveRegionsJsinsrc/web/client.ts(around lines 1805–1900) refetches that region when a matching event arrives.Done looks like:
data-live="forge.severed"region scoped to the repository. After a sever it renders the "follows nothing since …" state without a reload.forge.severedevent's scope does not match whatliveRegionsJsfilters on (its repo), fix the event's fields inseverForge; do not special-case the client.test/following.test.ts: the chain page carries the live region with the right kind and repo. A sever throughseverForgeappends an event that region would accept, and refetching the page then shows the severed state./familyview, if it lists the severed child, takes the same event the same way; otherwise say in the pull that it does not show the sever.bun x tsc --noEmitandbun test test/following.test.tspass.