Summary
Two coverage gaps from #7129 (checks: requiredWhen, #7094).
1. The assistant guide does not know the kind. intent-assistant-guide.md (lines ~522-536) lists exactlyOne, compare (added by #7121 the same day), itemsSumEqual and itemsMin; requiredWhen does not occur in the file. The Builder shell and the Intent Editor's assistant are prompted from that guide, so they cannot propose the very kind #7094 was filed for - they will keep proposing the fifteen-line delegate+decision+hold-task workaround the issue describes.
2. The IT asserts source text only. IntentEmissionCoverageIT.java:1930-1956 checks contains("PartyRepository().findById(hop0Fk)"), contains("java.util.Objects.equals(entity.Status, 2)") and friends over the rendered controller/repository. Nothing drives a Doc to POSTED with a nameless Party (the gated repository path - the "synchronous path #7014/#7063 opened" the PR sells) or saves an Entry with note == 'audited' and no value (the ungated controller 400). The boxing question in the sibling issue (Objects.equals(Long, int)) is exactly what a text assertion cannot catch, and the same IT already does a runtime block for compare at :3869-3888.
Fix
Add the requiredWhen bullet to the guide (shape, field: may be one hop away, the presence of status: is the routing). Add the two runtime refusals to the IT.
Found reviewing #7129.
Summary
Two coverage gaps from #7129 (
checks: requiredWhen, #7094).1. The assistant guide does not know the kind.
intent-assistant-guide.md(lines ~522-536) listsexactlyOne,compare(added by #7121 the same day),itemsSumEqualanditemsMin;requiredWhendoes not occur in the file. The Builder shell and the Intent Editor's assistant are prompted from that guide, so they cannot propose the very kind #7094 was filed for - they will keep proposing the fifteen-line delegate+decision+hold-task workaround the issue describes.2. The IT asserts source text only.
IntentEmissionCoverageIT.java:1930-1956checkscontains("PartyRepository().findById(hop0Fk)"),contains("java.util.Objects.equals(entity.Status, 2)")and friends over the rendered controller/repository. Nothing drives aDocto POSTED with a namelessParty(the gated repository path - the "synchronous path #7014/#7063 opened" the PR sells) or saves anEntrywithnote == 'audited'and no value (the ungated controller 400). The boxing question in the sibling issue (Objects.equals(Long, int)) is exactly what a text assertion cannot catch, and the same IT already does a runtime block forcompareat :3869-3888.Fix
Add the
requiredWhenbullet to the guide (shape,field:may be one hop away, the presence ofstatus:is the routing). Add the two runtime refusals to the IT.Found reviewing #7129.