Repository navigation
M2D-2: bounded canonical Quality/TimeQuality evidence for RCB reports - #165
Conversation
Project Quality/UTC-TimeQuality evidence directly from successful MmsReportValue payloads via existing canonical decoder; preserve report DataSet member index and ReportID provenance. Cap typed evidence at 96 per report snapshot without a second semantic cache. Inspect a selected received member in Browser Reports with the same reusable dense q/t panel, while offline values remain unknown. Validate IEC dotted references and add report source contracts.
…me selection Correct typed decoder leaf extraction from both MMS and IEC reference paths (no duplicated/truncated header source), preserve selected report-member inspection through repeated snapshots of the same frame, precisely flag omitted q/t details, and fall back to canonical directory MMS references. Extend Browser source integrity contract; exact Git blob contents verified before push.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c7a6841b65
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| readonly property string latestReportIdentity: !hasLastReport ? "" : [ | ||
| latestReport.reportId || "", latestReport.sequence || "", | ||
| latestReport.subSequence || "", latestReport.entryId || "" | ||
| ].join("|") | ||
| onLatestReportIdentityChanged: selectedReportMemberIndex = -1 |
There was a problem hiding this comment.
Reset selection for reports without optional identifiers
When an RCB omits sequence-number, segmentation, and entry-id from OptFlds, successive reports all produce the same identity (RptID|—|—|), so this handler never resets the selected row. The highlight then remains while the evidence silently changes to the same row in a newer frame; use a stable per-frame occurrence identifier rather than only optional wire fields.
AGENTS.md reference: AGENTS.md:L74-L86
Useful? React with 👍 / 👎.
| QString memberRef = QString::fromStdString(item.data_reference); | ||
| if (memberRef.isEmpty() && item.member) | ||
| memberRef = QString::fromStdString(item.member->user_reference); | ||
| if (memberRef.isEmpty() && item.member) | ||
| memberRef = QString::fromStdString(item.member->mms_reference); |
There was a problem hiding this comment.
Cross-check DataRef before using it as the semantic type
When a report supplies a DataReference that disagrees with the directory member already mapped by inclusion index, this gives the untrusted wire string priority. A malformed endpoint can therefore make an unrelated 13-bit BIT STRING appear as IEC Quality merely by ending DataRef in .q; validate the reference against item.member or fail closed on a mismatch before decoding engineering evidence.
AGENTS.md reference: AGENTS.md:L55-L66
Useful? React with 👍 / 👎.
Baseline
Continue from merged native Workbench M2D-1 PR #163 (
maine749617). ReuseMmsEngineeringEvidence.hppandBrowserEngineeringEvidence.qmladded in M2D-1. No web UI and no MMS engine, ESP32/SMV/PTP or reporting subscription changes.Implementation
MmsReportValuetyped values already retained by existing RCB report runtime (buildSubscriptionUi), not from display strings, hex guesses, polling or duplicate subscriptions.LN.DO.q/tas well as MMS$FC$DO$q/tin the shared typed decoder. Extend large-model QA and QML report contract. No second decoder or semantic cache.Acceptance
CI discipline
Single atomic commit; only scoped Workbench CI. Keep Draft until acceptance.