Skip to content

v3.12.1 — handoff typing parity

Choose a tag to compare

@fredgis fredgis released this 12 Sep 10:55
· 32 commits to main since this release
29068d5

Closing v3.12.0 at the end that reads it.

Making recommendation.target an enumeration stopped the Advisor emitting a sentence where a target name belongs. The consumer still took any string, so the phrase the producer had just stopped sending would have been accepted by the skill that receives it. Refused at one end of the pair, open at the other.

Both ends share one vocabulary for the eight families now, and the regression mirror's primary_target with them.

Two more asymmetries found alongside

The consumer required three fields on a recommendation where the Advisor requires five, so it accepted a handoff without the availability and cutover classes the plan reads.

And neither input shape branched on recommendationStatus, so a handoff could declare it had refused to choose while naming the target it chose. Both shapes branch now, exactly as the producer does.

The check that missed all three

It compared the shared vocabularies and never the fields that use them. It compares the required lists and the resolved typing of every recommendation field now, and the mirror's target with them.

Verified end to end: the worked example's object still satisfies the consumer's public shape with no missing field, no undeclared field, and a target the enumeration admits.

71 gates, 3601 prerequisite checks to 3611.