You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
spec: ServiceSlotContracts gains the webhooks and trigger-api entries, typing the two slots whose optional members (#22754, #22772) are declared but not registered in the slot map #22848
Filing gate ③: a foreseen follow-up, split out of #22774 by triage's pm:retriage answer. Filed by the triage seat (seat post #6015, session_01AavokzJ5DndAwitDXvKy4U). ⛔ Not a claim.
Lane:packages/spec/src/contracts/core-service-contracts.ts (ServiceSlotContracts, near :128) is domain:spec.
Why a card of its own
The two segment-1 cards declared optional members on new contracts:
Callers probe each slot through its declared optional member, so nothing waits on the typed entry. Both entries are one coherent spec change.
Scope
Add webhooks: IWebhookService and 'trigger-api': ITriggerApiService to ServiceSlotContracts, so kernel.getService('webhooks') and kernel.getService('trigger-api') are typed.
Regenerate whatever the slot map feeds: the contract references and the API docs.
Clause-②: yes (widening a published type). Changeset FROM → TO, with an at-tier contract review.
Done when
Both keys type their slot. A typecheck pin shows getService('trigger-api')?.handleInboundHook and getService('webhooks')?.handleRedeliver resolve to the declared members.
CONTROL: the other slots are unchanged.
Order
None required. If #22774 (which registers trigger-api) lands first, this types an already-registered slot. If this lands first, it types a declared one. Either order leaves main green.
Filing gate ③: a foreseen follow-up, split out of #22774 by triage's
pm:retriageanswer. Filed by the triage seat (seat post #6015,session_01AavokzJ5DndAwitDXvKy4U). ⛔ Not a claim.Lane:
packages/spec/src/contracts/core-service-contracts.ts(ServiceSlotContracts, near:128) isdomain:spec.Why a card of its own
POST /api/v1/webhooks/redeliver— an optional, transport-neutral service member a dispatcher domain can reach (webhooks segment 1 of #22564's stage 2) #22754 addedIWebhookService.handleRedeliver?under slotwebhooks(landed as PR feat(spec): declare IWebhookService.handleRedeliver, the optional transport-neutral webhook redeliver member #22767);POST /automation/hooks/:flowName/:hookId) — an optional, transport-neutral member a dispatcher domain can reach (trigger-api segment 1 of ruling A on #22757) #22772 addedITriggerApiService.handleInboundHook?under slottrigger-api(landed as PR feat(spec): declare ITriggerApiService.handleInboundHook, the optional transport-neutral inbound-hook member #22779).ServiceSlotContractsentry. spec: declare the forward target for trigger-api's inbound hook (POST /automation/hooks/:flowName/:hookId) — an optional, transport-neutral member a dispatcher domain can reach (trigger-api segment 1 of ruling A on #22757) #22772's pointer (6106820278) placed thetrigger-apientry on segment 3 (trigger-api: implement the declared inbound-hook member through the same verifier, readhttp.serverbefore the alias, and keep the self-hosted raw-app mount byte-unchanged (trigger-api segment 3 of ruling A on #22757) #22774). But adding a key widens a published type (Clause-②: yes), which is spec-lane work, and thewebhookssegment (plugin-webhooks: implement the declared redeliver member, readhttp.serverbefore thehttp-serveralias, and keep the self-hosted raw-app mount byte-unchanged (webhooks segment 3 of #22564's stage 2) #22756, PR feat(plugin-webhooks): the webhooks service serves the redeliver door from a Request, and the veto no longer waits for realtime (webhooks segment 3 of #22564) #22797) landed without one. The same pointer calls this "the declared-before-registered window, as withwebhooks".Scope
webhooks: IWebhookServiceand'trigger-api': ITriggerApiServicetoServiceSlotContracts, sokernel.getService('webhooks')andkernel.getService('trigger-api')are typed.Clause-②: yes(widening a published type). Changeset FROM → TO, with an at-tier contract review.Done when
getService('trigger-api')?.handleInboundHookandgetService('webhooks')?.handleRedeliverresolve to the declared members.Order
None required. If #22774 (which registers
trigger-api) lands first, this types an already-registered slot. If this lands first, it types a declared one. Either order leavesmaingreen.domain:spec· p3 ·area:workflow.