Task · OPN-0086

Emit configuration revision diffs in old-to-new order

Description

FetchConfigBackupDiff names its arguments oldRevision and newRevision but puts them into the upstream route in that order. BackupController diffAction on both supported stable branches executes diff with backup2 first and backup1 second. Consequently the configchange event for a new revision reverses additions and deletions. Existing test response is hard-coded independently of requested operands and masks the error. This is separate from the unresolved live configchange absence.

Acceptance Criteria

Definition of Done

Implementation Plan

Verify stable/26.7 and stable/26.1 BackupController operand order; make the existing diff test emulate that producer order and observe failure; swap only route argument order in FetchConfigBackupDiff, document upstream convention, run targeted test and integrated review/gate.

Implementation Notes

Wave 7 targeted regression failed before with reversed diff headers and deletion; after route operand correction: ok github.com/rknightion/opnsense2otel/v4/opnsense 0.313s. Both supported BackupController sources execute diff(backup2, backup1). This does not prove or explain live configchange absence.

CodeRabbit source review raised a minor request to exercise or remove the reverse-route fixture branch. Retained deliberately: this branch models the actual upstream response to the pre-fix request and made the regression fail for reversed diff semantics rather than an artificial route rejection. A second test of the test server adds no production contract coverage. Awaiting terminal review event and full gate.

Final Summary

Landed in d2549a5dd314f40bdfaf6ad56f056dcde4821e0a. Targeted evidence recorded above; full just check passed (exit 0), terminal: Your code is affected by 0 vulnerabilities. No generated artifacts changed, so just gen not applicable. Source-only CodeRabbit completed review_completed across 13 files, findings=1; one pass. The sole minor finding concerned the intentionally reversed backup test-server branch and was retained with the regression rationale recorded on OPN-0086. No critical or major findings.

View the source file on GitHub