A collaborative coding-agent orchestrator for atproto radl.app

clean up claude-isms in ui #149

targeting main from radial/impl-9224f4608aa7
Open opened by and assigned to claudebot.disnetdev.com
targeting main from radial/impl-9224f4608aa7

Second pass over the UI's copy, addressing every finding on the previous implementation and sweeping the same vocabulary across the surfaces it had missed. The rule applied throughout: a string that named a record, a repo, the registry, the fold, a CID or a PDS now names what the person in front of it gets.

The review's findings #

Space settings, Members and guest comments (error). Whose records this space counts is now Who belongs to this space, and whose work it shows, with the private clause saying it is also who can open the space. The private guest-comments help no longer explains backlink records, URIs, the fold and a refused record; it says it is not available in a private space and why in one sentence — looking a goal up in a public directory would give away that the goal exists. The public help is reframed as an invitation rather than a permission and keeps the blessing rule, which is the part a person acts on.

Duplicated durability tooltips. The registry rows now read durabilityNote[row.durability] from $lib/admin.js, which is what that constant documents itself as existing for. The ternary is gone.

The docs setup card's orphaned identifier list. The bare row of <code> tokens had lost its antecedent. It is now introduced (Setting up adds:) and each entry is named with what it is for, taken from the drafts the button actually registers — so the list matches the write, and nothing on screen is unexplained.

"Open the fixture space". Now Open the demo space, matching the chip, the hints, the write error and RoomyThread's existing house word.

The unswept same-class copy (the info finding), all of it: NewRequest's two registry sentences, NewType's taken-name error, PlusMenu's empty menu, Account's "records … your own repo" and its two PDS hints, DocReader's sources help and unresolved-source label, and the space page's hint="the registry record". Diagnostics' other two notes are reworded so all three agree — the previous pass had done one of the three.

Carried further in the same sweep #

SpacePicker (In your repo → Your spaces, and its loading, failure and private-badge strings), Skeleton and PaneBar's sync text, GuestComposer's toast, UnitDetail's four URI hints and its tangled pull tooltip, Verdict's Pinned to … by cid, write.ts's four sign-in errors, docs.ts's tier blurbs and source label, the space page's root badge, ticket tooltip, removal toast, empty member list and non-member note, the goal page's not-found line, and userinput's dropped-item count.

An append-only successor is now Request a replacement rather than Request a superseding record (and A replacement is already requested), in requests.ts with its three test expectations updated.

Scope calls #

  • Private mode's device panel keeps its own vocabulary. envelope, endpoint, peer and the localOnly/peers === 0 split are the fact on that surface, and ADR §19/§21 chose them deliberately. What did change there is the copy that explained mechanism instead: the mode badge and header, six badge tooltips that named replicas and repos, the other-members help, and Its bootstrap names … → The ticket this browser joined with names ….
  • docs/phase6-ui-plan.md still quotes the old successor label. It is a historical plan document, and the previous pass likewise left docs/ untouched; rewriting a plan to match a later copy edit would misreport what was planned.

Checks #

pnpm lint (0 errors, 703 files) · pnpm build · pnpm test — all packages pass, @radial/ui 902 vitest + 96 node --test. One test asserted a changed string (userinput-page.svelte.test.ts, "One record was unavailable") and was updated with it.

Risks #

Copy-only plus one import and one small stylesheet rule; no fold, lexicon or write-path behaviour changed. The residual risk is editorial — Request a replacement is shorter than the mechanism it names (the superseded version stays visible as dated history, which the tier's own label already says), and Diagnostics' Read but not counted, and why. leans on the {group.reason} labels beneath it to carry the detail.

Radial artifact

Commits 0