refactor(adapter): name converter ports by biz keys and drop port bindings - #171
Merged
Merged
Conversation
The audit output converter declared a plural logical port that existed only to be renamed back to the biz egress key through the binding. Use the biz key directly, drop kMatchedPolicies and the binding port mapping, and assert that the converter ports match the biz egress names. Pipeline configs and the external contract are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Converter logical port names are the biz Blackboard keys. Drop the binding input_ports/output_ports, BindIoPort and EffectivePortMapping; the registry audit now checks converter ports against biz ingress/egress names and types directly, and Catalog/validate-io no longer report *_port_mapping. The onboarding guide gains the port naming convention, and its reference table no longer describes the audit converter as using renamed ports. Pipeline JSON is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With rename mappings gone, PortBindings only resolved each port to itself. Remove InputPortBindings/OutputPortBindings and the bindings parameter from DecodeInputFn/EncodeOutputFn, DecodeRequestRows, EncodeResultRows and ReadOutputValue; converters now read and publish their port constants directly, and PreparedDeployment no longer carries port bindings. A write to an undeclared port no longer lands silently on an empty key. Tests use the port keys directly; the row-helper tests now assert against the real port key, so the no-publish-on-failure check is no longer vacuous. Docs drop the remaining references to binding port mappings (including two missed in the previous commit), and the flow diagram is re-rendered. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Binding port rename mappings had a single production use: the audit output converter declared
matched_policiesonly for the binding to rename it back to the biz egress keymatched_policy. This change uses the biz key directly, removes the rename layer (IoBindingDefinition::input_ports/output_ports,BindIoPort,EffectivePortMapping), and then removes the identity-onlyPortBindingsfrom converter callbacks. Converter logical port names are now the biz Blackboard keys. The registry audit still checks converter ports against biz ingress/egress names, types and required-port coverage, and the onboarding guide documents the port naming convention: reusable converters use neutral, role-based names, and input-side and output-side ports never share a name.Operator ABI, Pipeline JSON and deployment
.confremain unchanged. Catalog andvalidate-iono longer report*_port_mapping; no in-repo tool read those fields.DecodeInputFn/EncodeOutputFn,DecodeRequestRows,EncodeResultRowsandReadOutputValuelose their bindings parameter (internal authoring API, pre-release). A converter write to an undeclared port no longer lands silently on an empty key.Commits, each gated separately: 1861d44 unifies
matched_policy; 49a59ec removes the binding mapping layer; 1948117 removesPortBindings.Validation: each commit passed the canonical local gate with 103/103 CTest tests, and the delivery script reran the gate before push. The row-helper tests now assert against the real port key, so the no-publish-on-failure check is no longer vacuous. The architecture flow diagram was re-rendered and passes the diagram gate. Browser workflows were skipped because STUDIO_PLAYWRIGHT_MODULE is unset; real-model, sanitizer and target-hardware acceptance were not run.
🤖 Generated with Claude Code