- Shipped
- September 4, 2026 at 7:15 PM UTC
- Author
- Kamo
- Commit
- cdc6102
The Publish control was a bordered block of its own further down the form, carrying two lines of hint under the switch. It is now a compact toggle on the heading's row, immediately left of SEND TO AI, labelled "Public" — and the hint it used to print moved into a tooltip, which is the one place it costs no room at all. The tooltip stays state-dependent: "off" is the consequential position here, and somebody hovering wants to know which way it currently points, not what the control is called. Both switches sit in one trailing group rather than carrying an `ml: 'auto'` each. Flexbox splits free space between every auto margin, so two of them would have pushed a gap between the pair instead of keeping them together; with the group, SEND TO AI still ends hard right when Public is absent, exactly as before it existed. Public reads left of SEND TO AI because it is about the report and SEND TO AI is about what happens next — they read in the order they take effect. The label is "Public" while the payload field, the flag and the column all stay `publish`: the label says what the report WILL BE, the field says what you are doing to it. That needed a NEW dictionary key — translate.ts only visits keys it has not seen, so editing the English under `form.publish` would have left 21 locales saying "Publish". SEND TO AI now also arms itself for a god-eligible operator filing a new report. That is a deliberate reversal of the old comment: off was "the only defensible default" because the switch starts a session on a machine holding cluster credentials, and it stays off for every ordinary reporter. It is applied in an effect and guarded by a ref, because useState reads its argument on the first render — when rights are still loading and the answer is always "not god" — and because a re-run would turn the switch back on after somebody had deliberately turned it off, leaving no way to file without a hand-off. Gated on maySendToAi too, so the state can never be on while the control is invisible. The requirement itself is pinned rather than described: the new test asserts the two switches' accessible names in DOM order and that they share one group with exactly two checkboxes in it. An sx tweak that moved either control past the other fails it.