First tagged release of moshcoding.
Fixed
Self-feeding inbound webhook relay loop (#66) — a domain whose outbound target pointed back at its own inbound receiver fed itself forever, producing dashboard entries like inbound.inbound.inbound.…event. The receiver recorded each event, relayed it as inbound.<type>, and the relay re-entered the receiver, which read inbound.<type> off our own envelope and relayed inbound.inbound.<type>. moshcode.sh hit this and filled its entire 200-row event log with junk.
Fixed in three independent layers:
relayEventType()applies theinbound.prefix at most once.isSelfWebhookUrl()refuses targets aimed at our own/api/webhooks/*— skipped on delivery, dead-lettered for project endpoints, and rejected with an explanatory message when added in the dashboard.- An
x-moshcoding-hopcounter caps relays at 3 hops, bounding the same loop for hosts we can't statically recognize as ours.
fireDomainEvent now sends a user-agent, so relayed events are identifiable in the inbound log rather than appearing as a bare Bun/x.y.
Testing
bun test tests/ → 25 pass / 0 fail. bunx tsc --noEmit clean.