Skip to content

refactor(adapter): name converter ports by biz keys and drop port bindings - #171

Merged
chamsechan merged 3 commits into
mainfrom
refactor/adapter-matched-policy-key
Oct 5, 2026
Merged

chamsechan merged 3 commits into
mainfrom
refactor/adapter-matched-policy-key

Conversation

@chamsechan

@chamsechan chamsechan commented Oct 5, 2026 •

Copy link
Copy Markdown
Owner

Binding port rename mappings had a single production use: the audit output converter declared matched_policies only for the binding to rename it back to the biz egress key matched_policy. This change uses the biz key directly, removes the rename layer (IoBindingDefinition::input_ports / output_ports, BindIoPort, EffectivePortMapping), and then removes the identity-only PortBindings from 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 .conf remain unchanged. Catalog and validate-io no longer report *_port_mapping; no in-repo tool read those fields. DecodeInputFn / EncodeOutputFn, DecodeRequestRows, EncodeResultRows and ReadOutputValue lose 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 removes PortBindings.

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

chamsechan and others added 3 commits October 5, 2026 15:35
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>
@chamsechan
chamsechan merged commit 0dad2ba into main Oct 5, 2026
6 checks passed
@chamsechan
chamsechan deleted the refactor/adapter-matched-policy-key branch October 5, 2026 08:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant