Skip to content

fix(scl): negotiate incomplete association addressing without discovery fallback - #143

Merged
masarray merged 1 commit into
mainfrom
fix/scl-smart-association-142
Oct 6, 2026
Merged

masarray merged 1 commit into
mainfrom
fix/scl-smart-association-142

Conversation

@masarray

@masarray masarray commented Oct 6, 2026

Copy link
Copy Markdown
Owner

Closes #142

Root cause

SCL-assisted connect required a complete called AP-title/AE/selectors before opening TCP, while native discovery already had a bounded engine-owned association profile sequence. Omitted SCL association fields were therefore treated as invalid instead of unresolved interoperability evidence.

Architecture

  • preserves BuildExact as the byte-stable complete-SCL path;
  • distinguishes Unspecified / PresentValid / Invalid / Ambiguous critical address fields;
  • explicit valid SCL values are immutable candidate constraints;
  • invalid or conflicting explicit values fail closed before network I/O;
  • missing fields may be resolved only from a small engine-owned profile set;
  • candidate attempts are serial, bounded, and reset TCP/COTP between attempts;
  • after association, SCL-assisted online validation remains Domain/VMD-only; no NamedVariable/GVAA/DataSet rediscovery;
  • accepted candidate/provenance is surfaced in typed result fields.

Regression protection

Synthetic tests cover incomplete AP-title/AE, exact golden-byte preservation, non-default explicit selectors, malformed AP-title, and conflicting duplicate critical fields.

Safety / claim boundary

No write, report activation, control, DataSet mutation, or discovery expansion is introduced. This is implemented/unit-test candidate code only until CI and authorized physical validation complete.

Provenance

Implementation uses project-owned code and synthetic documentation-range endpoints only. No external source, customer file, or raw third-party capture is committed.

I have read and agree to the repository Contributor License Agreement.

Treat omitted SCL association fields as unresolved interoperability evidence rather than malformed engineering data. Preserve explicit valid SCL values as immutable constraints, fail closed on malformed or conflicting declarations, and negotiate only the small engine-owned association profile set with fresh serial transports.

Keep the exact complete-SCL plan byte-stable, retain domain-only validation after SCL-assisted association, expose accepted-candidate provenance, add deterministic synthetic regressions, and align existing source-clean wording without changing registry semantics.

Signed-off-by: Ari Sulistiono <ari.sulistiono@gmail.com>

masarray commented Oct 6, 2026

Copy link
Copy Markdown
Owner Author

Validation status for exact squashed head 84e9820e5a32690475960e49d5ef74e6637847fd:

  • source/provenance hygiene: PASS
  • Release restore/build: PASS
  • full engine tests: PASS
  • package test build: PASS
  • commit history squashed to one DCO Signed-off-by commit
  • no physical IED claim has been made

The change remains draft because the missing-AP-title/AE compatibility lane should be accepted on the target field IED before promotion. Complete-SCL exact planning remains byte-stable and the ordinary native discovery path is unchanged.

masarray commented Oct 6, 2026

Copy link
Copy Markdown
Owner Author

Physical SCL-assisted interoperability acceptance received on 2026-10-06 for exact engine head 84e9820e5a32690475960e49d5ef74e6637847fd.

Sanitized acceptance evidence:

  • bounded association selected BalancedApTitle on attempt 1;
  • ACSE/MMS association accepted and MMS initiate completed;
  • expected/observed/matched MMS domains: 5/5/5, missing=0, extra=0;
  • trusted-SCL initial targets: 395, successful=395, failed=0;
  • projectionErrors=0, cacheLoss=0;
  • full discovery skipped;
  • static DataSet/report authority retained;
  • cyclic MMS process polling remained 0;
  • actual InformationReport traffic observed.

The application under test was the PR merge-test tree for ARSAS #425 and used this exact engine assembly head. No raw field file, endpoint, machine identifier, or customer capture is committed.

This closes the field-validation gate for the association-resolution change. Existing discovery/model/reporting authority is not redefined by this acceptance.

@masarray
masarray marked this pull request as ready for review October 6, 2026 14:04
@masarray
masarray merged commit e5deed1 into main Oct 6, 2026
1 check passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-06T14:05:55.293623Z 84e9820 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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.

SCL-assisted MMS: resolve incomplete association addressing with bounded interoperability candidates

1 participant