- linkRepair: `continue` on `idx === -1` so we don't `splice(-1, 1)`
and clobber the last unrelated link.
- linkTopology: report origin- and target-slot-out-of-bounds errors
independently for the same link instead of bailing after the first.
- useWorkflowValidation: re-throw non-`LinkRepairAbortedError` failures
so unrelated bugs don't get silently downgraded to an aborted load.
- useWorkflowValidation: route every toast string through
`vue-i18n` (`validation.topology.*` keys in
`src/locales/en/main.json`).
- Convert `scripts/prepare-workflow-validation.js` to TypeScript per
repo policy and run it via `tsx`. Make the catalog regex robust by
appending a synthetic terminator instead of changing the existing
`\\n\\S` semantics, which broke for the multiline catalog block.
- Add object-form link tests covering the both-shapes contract.