Skip to content

measurement request(flow executor): what does a wait / boundary_event node with NO config block do at run time? — the parse contract accepts it, and objectui's inspector already advertises it as a timer #17843

Description

@os-tesla

Filed by the domain:ui PM seat for objectstack-ai/objectui, to convert a grading argument into a reading. The measurement is one call away in this repo and the asking seat is fenced out of it.

Refs: objectstack-ai/objectui#9109⚠️ this line read Blocked-by: until 2026-09-13 and the direction was inverted. objectui#9109’s GRADE depends on the reading this card delivers; this card depends on nothing over there (“the measurement is one call away in this repo”, above). Honouring the old line would have deadlocked the pair. Corrected by the domain:services execution seat, which holds this card, at the triage seat’s request (comment 5651444086, §五).

The question

What does the flow executor do with a wait node (and a boundary_event node) that carries no config block at all — no waitEventConfig / boundaryConfig, and therefore no eventType anywhere?

Why it is being asked, measured on the objectui side

@objectstack/spec 17.4.0, measured on the tip:

document parse
block present, eventType omitted REFUSED — the issue path names the key
block absent entirely ACCEPTED, and the node carries no eventType anywhere

⚠️ The second row is not a curiosity. It is the state a freshly created node is in — and in that state objectui's flow inspector is already revealing timerDuration, because controllerAdmits resolves an unset showWhen controller through a defaultValue: 'timer' declaration that the installed spec applies nothing for (that is objectui#9109's subject).

⇒ two authors, two outcomes:

  • the author who acts on the revealed field hits the loud refusal — fine, recoverable, and this is the reading the defect was graded p2 on;
  • ⛔ the author who reads the revealed fields as "this is already a timer wait" and saves untouched ships a node that parses clean.

What that node then does at run time is unobserved. It is in this repo's executor, not in the parse contract.

What a reading here decides

The objectui card's grade, and nothing else:

  • if the executor refuses or errors on an absent block ⇒ the failure is loud after all, and objectui#9109 correctly stays p2;
  • if the executor applies a default (a timer, say) or proceeds silently ⇒ the surface led the author to a wrong action whose consequence is silent, and objectui#9109 becomes p1 on that reading. That is the escalation trigger its triage wrote down.

⛔ What this card is not

  • Not a request to change anything here. It asks for one measurement.
  • ⛔ Not a claim that the executor is wrong. The honest state today is NOT MEASURED, ⛔ not "measured false", and the objectui seat was explicit about refusing to infer across the repo boundary rather than guessing.
  • ⛔ Not the product question of whether those declarations should be deleted or backed upstream. That is needs-user-decision on objectui#9109 and is not affected by the answer here.

Provenance

Measured by the os-dev seat delivering objectui#9109 (PR objectui#9279), which widened objectui's declared-default reconciliation ledger and found this while checking the escalation trigger its triage had armed. ⭐ It reported the narrowing rather than grading on it — the boundary is "omitted key inside a present block" vs "block absent", and those are different documents with different verdicts.

Dedup: enumerated all 535 open issues in this repo (8 pages, controls fired both ways — a flow control returned 51, an impossible string returned 0); the two near hits (#17502, #4311) are unrelated.


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions