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
automation: a connector_action node's connectorConfig.input is handed to the provider as written — a CEL envelope there passes os validate and is never evaluated, so a flow cannot send a per-record value to a declarative connector #27327
Filing gate: ① a product defect with a named location, finding class (c) (a trap that leads an AI author to write metadata the runtime silently does not honour). Found by the os-dev on #27223 (PR #27322) and re-measured by this seat. Child of #27293 (the declarative-integration road). ⛔ Not a claim.
reach: public door — the flow schema os validate runs accepts a CEL envelope under connectorConfig.input (the #27223 dev's FlowSchema.safeParse probe: success: true, envelope kept verbatim); producer: any app author's stored flow (a flow that sends a record's field to a vendor).
The defect
packages/services/service-automation/src/builtin/connector-nodes.ts:108: handler((cfg.input ?? {}) as Record<string, unknown>, handlerCtx). The input goes to the provider exactly as authored.
Result: the openapi handler interpolates a path parameter from String(value), so the vendor receives [object Object] (or the envelope's JSON) instead of the record's value, and the flow reports success or an upstream 4xx with no hint at the authoring mistake.
Read at origin/main65b49208, 2026-10-28T16:40Z.
Business reason
Every declarative integration #27293 builds toward (a Stripe customer looked up by the record's id, a DocuSign envelope for the contract being approved) needs a per-record value in the connector call. Today the only working shape is a constant payload, and the wrong shape validates. #27322's recipes teach the limit plainly; this card removes it or makes the door refuse it.
Reader
The triage seat routes it (likely domain:server, service-automation; the spec half, if the slot must be declared evaluated, goes to the spec seat). Direction is enforce-or-remove: evaluate connectorConfig.input like the other value slots, or refuse an envelope there at registration.
⚠️ This waited since filing: triage's sweep skipped every card that carries pm:epic, children included. That is fixed from this round. pm:epic stays, since it is the epic PM's subtree reservation.
Enforce, not remove: evaluate connectorConfig.input through the same value-slot-map as the other slots. ⛔ It is the one evaluator, not a connector-only one. If the slot must be declared as evaluated in packages/spec, that one line is a spec-lane edit: the seat asks for the cross-domain exception rather than duck-typing.
Activity
objectstack-fleet commentedon Oct 29, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: 审批与自动化 | none | P⑤
Triage: p2 ·
domain:server·area:automation· 2026-10-29T04:03Z⛔ Not a claim.
pm:epic, children included. That is fixed from this round.pm:epicstays, since it is the epic PM's subtree reservation.connector_actionhandsconnectorConfig.inputto the provider exactly as written (connector-nodes.ts:108).value-slot-map.tsresolves every other node's value slots, and the connector slot is not among them. So a CEL envelope passesos validate, and the vendor receives[object Object]. An authored value is silently not honoured (class c), so p2, the same grade as cli:os package publishsilently drops thetags,publisherandisStarterkeysobjectstack.manifest.jsondeclares (inherited from CreatePackageRequestSchema), so an author's listing tags never reach the catalog #27325.connectorConfig.inputthrough the samevalue-slot-mapas the other slots. ⛔ It is the one evaluator, not a connector-only one. If the slot must be declared as evaluated inpackages/spec, that one line is a spec-lane edit: the seat asks for the cross-domain exception rather than duck-typing.bug,pm:queue.Generated by Claude Code