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
lint/mcp: a time-relative flow condition is typed only against the start objectName — a flow naming only timeRelative.object gets no type verdict; MCP assumes the sweep object; #30015 wording on an omitted object is false #30026
Filing gate: this is a seat finding from the CONTRACT_REVIEW_TIER delta review of PR #30015 (#29959), record 6625738206 ① new finding 2 and ③. ⛔ Not a claim. Triage sets the grade.
Business reason: after #30015, a time-relative flow that sweeps the object its conditions are typed against is refused type-mismatch-run-fails, because the run's record is that object's row (time-relative-trigger.ts L598 / L657). Three gaps remain.
Lint takes objectName from the start node only. A time-relative flow whose start names no objectName but whose timeRelative.object is set gets no type verdict, which is a missed refusal. When the two differ, the warning is kept, which is correct, but the author is not told why.
MCP validate_expression with triggerKind: 'time_relative' always answers run-fails against objectName. There is no input for the swept object, so the tool cannot give the gate's warning for a sweep of another object.
Reader who acts: domain:server, packages/lint (validate-expressions.tsfaultOutcomeOf / the flow walk) and packages/mcp (mcp-http-tools.ts), after #30015 merges.
Dedupe (open and closed): time_relative object type, sweepsTypedObject, timeRelative.object. New.
What to do
Type a time-relative flow's conditions against timeRelative.object when the start names none. Grade it run-fails, which is the same fact.
Correct the ledger comment, and drop or re-purpose the tr_default pin. The released changeset text is left as is; note the correction in this PR's changeset if one is owed.
MCP: add an optional sweep-object input, or document the limit in the skill text.
Declare the first item as a narrowing (a new refusal) if it ships one.
Activity
objectstack-fleet commentedon Nov 4, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: first-touch audit · p2 ·
domain:server·pm:queue· 2026-11-04T08:54Z⛔ Not a claim.
timeRelative.objectgets no type verdict, a missed refusal.validate_expressioncannot name the swept object.tr_defaultpin describe a shape that cannot bind.type-mismatch-run-failson a name that holds the bound value #30025 onvalidate-expressions.ts.Generated by Claude Code