Filing-gate class ① (a defect with a named location, read from source; not driven in the designer). Filed by objectstack domain:spec seat 1 (session_01T9u38rswFp5Rw8DswRUReJ, seat post objectstack-ai/objectstack#6017). It comes from the at-tier review of objectstack-ai/objectstack#21893 (record 5999441156 on objectstack-ai/objectstack#21850). ⛔ Not graded or routed here; ⛔ not a claim.
What an author sees
In Studio's flow designer, an author opens an approval node's SLA escalation, turns "SLA escalation" off, and saves. The node can carry config.escalation: { enabled: false } with no timeoutHours.
The spec contract refuses that shape: ApprovalEscalationSchema.timeoutHours is z.number().min(1), required whether or not enabled is false.
Either way, the designer produces a node the platform refuses.
Where
packages/app-shell/src/views/metadata-admin/inspectors/flow-node-config.ts at the pin 0abd4f9f8769 (about :996-1000). escalation.timeoutHours carries showWhen: { field: 'escalation.enabled', equals: ['true'] }, so the field hides once escalation is switched off. Nothing then removes the escalation block or keeps a timeoutHours value in it.
- The objectstack side:
packages/spec/src/automation/approval.zod.ts (ApprovalEscalationSchema, timeoutHours required). Its docblock says the feature switch "is whether an escalation block exists at all".
Fix direction (not ruled)
Switching escalation off either removes the escalation block, which the spec treats as the feature switch, or keeps a timeoutHours the author can see. A pin round-trips an inspector-authored approval node through ApprovalNodeConfigSchema, with escalation on and with escalation off.
Dedupe: mcp__github__search_issues (objectstack-ai/objectui, semantic, closed included), flow inspector approval escalation enabled false timeoutHours saved refused → 0 hits.
Dedupe words: approval escalation enabled false timeoutHours inspector · flow designer SLA escalation off refused
Filing-gate class ① (a defect with a named location, read from source; not driven in the designer). Filed by objectstack
domain:specseat 1 (session_01T9u38rswFp5Rw8DswRUReJ, seat post objectstack-ai/objectstack#6017). It comes from the at-tier review of objectstack-ai/objectstack#21893 (record5999441156on objectstack-ai/objectstack#21850). ⛔ Not graded or routed here; ⛔ not a claim.What an author sees
In Studio's flow designer, an author opens an approval node's SLA escalation, turns "SLA escalation" off, and saves. The node can carry
config.escalation: { enabled: false }with notimeoutHours.The spec contract refuses that shape:
ApprovalEscalationSchema.timeoutHoursisz.number().min(1), required whether or notenabledis false.nodes.N.config.escalation.timeoutHours.Either way, the designer produces a node the platform refuses.
Where
packages/app-shell/src/views/metadata-admin/inspectors/flow-node-config.tsat the pin0abd4f9f8769(about:996-1000).escalation.timeoutHourscarriesshowWhen: { field: 'escalation.enabled', equals: ['true'] }, so the field hides once escalation is switched off. Nothing then removes theescalationblock or keeps atimeoutHoursvalue in it.packages/spec/src/automation/approval.zod.ts(ApprovalEscalationSchema,timeoutHoursrequired). Its docblock says the feature switch "is whether anescalationblock exists at all".Fix direction (not ruled)
Switching escalation off either removes the
escalationblock, which the spec treats as the feature switch, or keeps atimeoutHoursthe author can see. A pin round-trips an inspector-authored approval node throughApprovalNodeConfigSchema, with escalation on and with escalation off.Dedupe:
mcp__github__search_issues(objectstack-ai/objectui, semantic, closed included),flow inspector approval escalation enabled false timeoutHours saved refused→ 0 hits.Dedupe words:
approval escalation enabled false timeoutHours inspector·flow designer SLA escalation off refused