Skip to content

P8 reporting: reject type-conflicting structured MMS FCD leaves before scalar projection - #199

Merged
masarray merged 2 commits into
stagingfrom
fix/p8-fcd-typed-leaf-integrity-20261029
Oct 29, 2026
Merged

masarray merged 2 commits into
stagingfrom
fix/p8-fcd-typed-leaf-integrity-20261029

Conversation

@masarray

Copy link
Copy Markdown
Owner

P8 major reporting integrity milestone — typed FCD leaf validation, zero false process publication

Why / global engineering context

Engine issue #159 documents the C264 structured-FCD safety gap: a received Structure is different from an RCB that never sent any frame. Previously the semantic projector validated structure child counts and model paths, but did not validate the declared exact MMS type of each positional leaf. Example: a received utc-time value at the model's exact q:bit-string position could be interpreted through the generic fallback. A wrong quality/timestamp association must never result in a convincing but false scalar process value.

Engine changes (one atomic commit / 2 files)

  • Store only exact-confidence declared MMS types as optional leaf contracts in each structured DataSet member schema. Partial/unknown model types retain legacy support; SCL bType alone is NOT promoted to live MMS authority.
  • Reject a structured member when any leaf contradicts its exact type or two exact declarations conflict at the same member leaf. No guessed quality/time.
  • On an exact typed contradiction, do not re-enter the generic positional projector for the rejected member. Preserve the original input frame for diagnostics and add explicit REPORT_SEMANTIC_REJECTED reason. Other members of the same received Report remain independent.
  • Keep existing DataSet identity, member order, runtime subscription, RCB mutation and wire traffic completely unchanged. No vendor switch, polling fallback, GI retry, new cache or background work.

Deterministic regression

Positive ordered float/float/bit-string/utc-time; negative swapped q/t with no false process values, contradictory exact model metadata, and positive unknown/partial model compatibility. Existing semantic structured tests remain in place. Conservative limitation: equal-type siblings cannot prove physical leaf order; this PR does not claim full wire/physical certification.

Exact baseline engine staging 5923029a8b98ea841cc36db6f20c2ea80d21547c; candidate head b34c687264e3fc7b22ddeb6699bf9b7da2eafb14. One atomic source commit so the PR triggers one CI wave. Keep DRAFT until exact-SHA .NET full CI passes and review is clean. Does not alter ARSAS engine pin, stable release, nor claim that SG7 #707 (56/77 vs 77/77) is fixed.

@masarray
masarray marked this pull request as ready for review October 29, 2026 12:09
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 29, 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-29T12:10:06.253735Z 72e66c2 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.

1 participant