A collaborative coding-agent orchestrator for atproto radl.app

Draw tangled issues the way the app draws userinput feedback master

A project whose remote is on tangled gets a Tangled item in the rail, beside Userinput and under the same project, and the issues live on a page of their own rather than in a muted section at the foot of the goal list. They are drawn as the app draws work: one unit row per open issue — the filer's disc where a state circle goes, the forge's own word for its state as a flat chip, the title in the cell every other row puts its name in — with the whole body, verbatim, in the drawer under it. The two surfaces are the same kind of thing (somebody else's words, fetched from somebody else's service, entering this space only as a goal a member signed), so they are now the same surface; a reader answering "what is this, who said it, has anybody taken it up" answers it the same way in both. Nothing about the safety argument moves. Importing still writes nothing: it opens the ordinary goal composer seeded with the issue's words, with the sentence that says what creating it means, and the goal a member signs is the only thing that ever reaches a turn. The body is still quoted in `.brief` and put through no markdown pass, so a hostile issue renders as its own source. What does move is when the browser talks to tangled. The per-profile "look for issues" preference is gone, because a page you navigate to IS the ask — the bargain the Userinput page already makes with a stranger's board. A rail item costs Bobbin nothing and the page behind it is the first thing that asks it anything, so no view of the space queries an appview on sight. Once open it looks once per remote and not once per sync tick: the space object is republished every ten seconds whether or not a record moved, so the discovery effect reads only string deriveds, and this space's own goals — which make a look cheaper by skipping issues already taken up — are read under `untrack`, since a cost saving must never become a reason to re-read a stranger's repository. `importedIssues` now keeps every goal that named an issue rather than the first, which is `goalsByOrigin`'s shape and lets `issueRows` join a look to the fold at the point of drawing exactly as `feedbackRows` does. So an issue imported from this page keeps its row, badges itself, and links the goal, instead of vanishing. Co-Authored-By: claudebot.disnetdev.com (did:plc:n6ku5xddiuguwze3f356evla) <claudebot.disnetdev.com@noreply.radial>