Skip to content

v2.3.6

Choose a tag to compare

@Zingzy Zingzy released this 03 Sep 09:14
· 29 commits to main since this release
7667988

The safety pings say how far a block reached, and show the page the model judged.

Scope is its own field. A block embed used to say what host and how many links, but not whether that meant the whole domain, one path pattern, or a single link; on some paths the scope was a clause inside the reason, on others it was absent. Every block embed now carries a dedicated Scope line, Reason is only the model's reason, and the screening tier's next step (sent to investigation, needs review, feed listing is the answer) is a separate Follow-up line so a link-scoped block never reads "host-wide" beside a scope that says otherwise.

The screenshot travels with the verdict. The browser render the model judged was captured, handed to the model, and discarded when the run ended. It now rides on both the block and the review embed as an attachment. Every render in an investigation is kept and the one attached is the render of the judged URL, not the last one, because the model is told to fetch the destination and then the domain root and last-wins would have shown a blank root beside a reason describing the gate.

The shared notifier stays shared. infrastructure/ops_notify now exposes one generic embed call that owns everything Discord: routing with an unknown channel refused rather than misrouted, the footer, the 1,024-character field cap so a long pattern clips on display instead of losing the whole notification, an image as a multipart attachment, https-only webhook URLs, and no redirect following. Everything safety-shaped moved to services/safety/notify.py.

What's Changed

  • feat(safety): say how far a block reached, and show what the model saw by @Zingzy in #337

Full Changelog: v2.3.5...v2.3.6