The event log offered Replay on a delivery whose target was deleted,
and the refusal told the operator to recreate the target and replay.
That cannot work: a recreated target is a new one the old delivery
does not name, so the replay is refused again. The Replay button is
now left off such a delivery, whose row already names the target as
deleted, and the refusal a page left open can still reach now points
to Resubmit, which sends the event to the webhook's currently active
targets.
Model: opus-5-5
An entrypoint's description was set when it was added and could never change, so renaming one meant deleting it and adding a new one with a new URL every sender had to be given again. Each entrypoint on the webhook page now has an Edit button, in the shared secondary style, that opens its description in place with Save and Cancel and keeps its URL. The save goes through the same login, CSRF and ownership checks as the other entrypoint actions; an empty description shows as "Entrypoint". Activate and deactivate now write only the active column, so they cannot undo an edit. Tests cover each, through the router and the browser.
Model: opus-5-5
Saving, deleting, activating or deactivating a webhook, entrypoint or target, and signing out, now land on their page with a one-line notice such as "Webhook deleted." or "Signed out.". The redirect carries a fixed code that maps to fixed text; an unknown code shows nothing, so nothing from the URL is ever echoed. One partial in the page layout shows the notice on every page, and replay and resubmit now use the same codes and partial. Error pages show no notice.
Model: opus-5-5