Skip to content

[Golden Failed] Firewall & port forwarding: 7 new screen states have no baseline, 8 re-rendered — 1170 screens failing #1689

Open

Description

@PeterJhongLinksys

Daily Golden Verify on 2026-10-15 (branch dev-2.7.3) reports 1170 failing screens in Firewall and Port Forwarding. This is one suspected cause with two findings. Neither looks like a visual defect.

Suspected cause

This is a suspected cause only, by file relevance: it is the only PR in the window (2026-10-10T20:15:08Z .. 2026-10-14T20:14:58Z) that changes both failing golden test files. PR #1682 (base fix/1611-fwdev204-gui-gaps, the branch of #1680) touches the same firewall files and is listed for context. PR #1664 changes lib/page/port_forwarding/views/usp_port_forwarding_detail_view.dart (ISP-limitation notice) but none of the failing dialog states. Both PRs merged after the last Generate Golden run (2026-10-13T00:04Z, golden-ci PR #39), so that pending baseline PR does not cover them.

Finding 1: missing baseline (546 screens)

Verdict: regression (baseline coverage gap) · confidence 🟢 High · broken_flag: false

7 new screen states have no golden PNG on the baseline branch: firewall-error, firewall-missing_rule, port_forwarding-dialog_overlap_and_lan_host_port_range, port_forwarding-dialog_overlap_port_triggering, port_forwarding-full_single_port, port_forwarding-full_port_range, port_forwarding-full_port_triggering. The PR description lists exactly these as new golden states.

  • The report has no expected/actual/diff images for them (failureImages == null), and the goldenUrl returns HTTP 404 (checked firewall-error-phone480-el.png, port_forwarding-full_single_port-phone480-el.png).
  • None of these states existed in the 2026-10-14 report.

No images were read for this finding because none exist.

Finding 2: re-rendered existing states (624 screens)

Verdict: intended (per PR description) · confidence 🟢 High · broken_flag: false

States: firewall-all_on, firewall-all_off, firewall-edit_dirty, port_forwarding-dialog_add_port_range, port_forwarding-dialog_add_port_triggering, port_forwarding-dialog_edit_port_range, port_forwarding-dialog_edit_port_triggering, port_forwarding-dialog_validation_port_range.

  • Firewall: the current render adds a Filter Internet NAT redirection switch in Internet filters, which pushes the IPv6 Port Service card down. This matches the PR's + Filter Internet NAT redirection. Labels align with the other rows, nothing clipped.
  • Port forwarding range dialog: the baseline has an Internal Port field; the current render does not, so the rest of the form moves up about 45 px and the dialog gets shorter. This matches the PR's - Internal Port field. In the current render all fields and the Cancel/Add buttons sit inside the dialog with padding; the overlap in the diff image is only the two layouts superimposed.

Images read: 5 (firewall-all_on|en|phone480 diff + actual, port_forwarding-dialog_add_port_range|en|phone480 diff + actual + baseline). All URLs returned 200 before reading. hasOverflow is false on every row; no new overflow today.

This finding is not auto-accepted into the baseline because Finding 1 is in the same run.

Failing screens

Screen state phone480 screen1080 desktop1280 Failing locales
firewall-all_off ❌ 26/26 ❌ 26/26 ❌ 26/26 all
firewall-all_on ❌ 26/26 ❌ 26/26 ❌ 26/26 all
firewall-edit_dirty ❌ 26/26 ❌ 26/26 ❌ 26/26 all
firewall-error ❌ 26/26 ❌ 26/26 ❌ 26/26 all
firewall-missing_rule ❌ 26/26 ❌ 26/26 ❌ 26/26 all
port_forwarding-dialog_add_port_range ❌ 26/26 ❌ 26/26 ❌ 26/26 all
port_forwarding-dialog_add_port_triggering ❌ 26/26 ❌ 26/26 ❌ 26/26 all
port_forwarding-dialog_edit_port_range ❌ 26/26 ❌ 26/26 ❌ 26/26 all
port_forwarding-dialog_edit_port_triggering ❌ 26/26 ❌ 26/26 ❌ 26/26 all
port_forwarding-dialog_overlap_and_lan_host_port_range ❌ 26/26 ❌ 26/26 ❌ 26/26 all
port_forwarding-dialog_overlap_port_triggering ❌ 26/26 ❌ 26/26 ❌ 26/26 all
port_forwarding-dialog_validation_port_range ❌ 26/26 ❌ 26/26 ❌ 26/26 all
port_forwarding-full_port_range ❌ 26/26 ❌ 26/26 ❌ 26/26 all
port_forwarding-full_port_triggering ❌ 26/26 ❌ 26/26 ❌ 26/26 all
port_forwarding-full_single_port ❌ 26/26 ❌ 26/26 ❌ 26/26 all

Pattern: every state fails in all 26 locales at every rendered width, en included — a content/layout change from one PR, not a translation or font issue.

Full failing screen list (1170)
  • firewall-all_off|ar|desktop1280
  • firewall-all_off|ar|phone480
  • firewall-all_off|ar|screen1080
  • firewall-all_off|da|desktop1280
  • firewall-all_off|da|phone480
  • firewall-all_off|da|screen1080
  • firewall-all_off|de|desktop1280
  • firewall-all_off|de|phone480
  • firewall-all_off|de|screen1080
  • firewall-all_off|el|desktop1280
  • firewall-all_off|el|phone480
  • firewall-all_off|el|screen1080
  • firewall-all_off|en|desktop1280
  • firewall-all_off|en|phone480
  • firewall-all_off|en|screen1080
  • firewall-all_off|es_AR|desktop1280
  • firewall-all_off|es_AR|phone480
  • firewall-all_off|es_AR|screen1080
  • firewall-all_off|es|desktop1280
  • firewall-all_off|es|phone480
  • firewall-all_off|es|screen1080
  • firewall-all_off|fi|desktop1280
  • firewall-all_off|fi|phone480
  • firewall-all_off|fi|screen1080
  • firewall-all_off|fr_CA|desktop1280
  • firewall-all_off|fr_CA|phone480
  • firewall-all_off|fr_CA|screen1080
  • firewall-all_off|fr|desktop1280
  • firewall-all_off|fr|phone480
  • firewall-all_off|fr|screen1080
  • firewall-all_off|id|desktop1280
  • firewall-all_off|id|phone480
  • firewall-all_off|id|screen1080
  • firewall-all_off|it|desktop1280
  • firewall-all_off|it|phone480
  • firewall-all_off|it|screen1080
  • firewall-all_off|ja|desktop1280
  • firewall-all_off|ja|phone480
  • firewall-all_off|ja|screen1080
  • firewall-all_off|ko|desktop1280
  • firewall-all_off|ko|phone480
  • firewall-all_off|ko|screen1080
  • firewall-all_off|nb|desktop1280
  • firewall-all_off|nb|phone480
  • firewall-all_off|nb|screen1080
  • firewall-all_off|nl|desktop1280
  • firewall-all_off|nl|phone480
  • firewall-all_off|nl|screen1080
  • firewall-all_off|pl|desktop1280
  • firewall-all_off|pl|phone480
  • firewall-all_off|pl|screen1080
  • firewall-all_off|pt_PT|desktop1280
  • firewall-all_off|pt_PT|phone480
  • firewall-all_off|pt_PT|screen1080
  • firewall-all_off|pt|desktop1280
  • firewall-all_off|pt|phone480
  • firewall-all_off|pt|screen1080
  • firewall-all_off|ru|desktop1280
  • firewall-all_off|ru|phone480
  • firewall-all_off|ru|screen1080
  • firewall-all_off|sv|desktop1280
  • firewall-all_off|sv|phone480
  • firewall-all_off|sv|screen1080
  • firewall-all_off|th|desktop1280
  • firewall-all_off|th|phone480
  • firewall-all_off|th|screen1080
  • firewall-all_off|tr|desktop1280
  • firewall-all_off|tr|phone480
  • firewall-all_off|tr|screen1080
  • firewall-all_off|vi|desktop1280
  • firewall-all_off|vi|phone480
  • firewall-all_off|vi|screen1080
  • firewall-all_off|zh_TW|desktop1280
  • firewall-all_off|zh_TW|phone480
  • firewall-all_off|zh_TW|screen1080
  • firewall-all_off|zh|desktop1280
  • firewall-all_off|zh|phone480
  • firewall-all_off|zh|screen1080
  • firewall-all_on|ar|desktop1280
  • firewall-all_on|ar|phone480
  • firewall-all_on|ar|screen1080
  • firewall-all_on|da|desktop1280
  • firewall-all_on|da|phone480
  • firewall-all_on|da|screen1080
  • firewall-all_on|de|desktop1280
  • firewall-all_on|de|phone480
  • firewall-all_on|de|screen1080
  • firewall-all_on|el|desktop1280
  • firewall-all_on|el|phone480
  • firewall-all_on|el|screen1080
  • firewall-all_on|en|desktop1280
  • firewall-all_on|en|phone480
  • firewall-all_on|en|screen1080
  • firewall-all_on|es_AR|desktop1280
  • firewall-all_on|es_AR|phone480
  • firewall-all_on|es_AR|screen1080
  • firewall-all_on|es|desktop1280
  • firewall-all_on|es|phone480
  • firewall-all_on|es|screen1080
  • firewall-all_on|fi|desktop1280
  • firewall-all_on|fi|phone480
  • firewall-all_on|fi|screen1080
  • firewall-all_on|fr_CA|desktop1280
  • firewall-all_on|fr_CA|phone480
  • firewall-all_on|fr_CA|screen1080
  • firewall-all_on|fr|desktop1280
  • firewall-all_on|fr|phone480
  • firewall-all_on|fr|screen1080
  • firewall-all_on|id|desktop1280
  • firewall-all_on|id|phone480
  • firewall-all_on|id|screen1080
  • firewall-all_on|it|desktop1280
  • firewall-all_on|it|phone480
  • firewall-all_on|it|screen1080
  • firewall-all_on|ja|desktop1280
  • firewall-all_on|ja|phone480
  • firewall-all_on|ja|screen1080
  • firewall-all_on|ko|desktop1280
  • firewall-all_on|ko|phone480
  • firewall-all_on|ko|screen1080
  • firewall-all_on|nb|desktop1280
  • firewall-all_on|nb|phone480
  • firewall-all_on|nb|screen1080
  • firewall-all_on|nl|desktop1280
  • firewall-all_on|nl|phone480
  • firewall-all_on|nl|screen1080
  • firewall-all_on|pl|desktop1280
  • firewall-all_on|pl|phone480
  • firewall-all_on|pl|screen1080
  • firewall-all_on|pt_PT|desktop1280
  • firewall-all_on|pt_PT|phone480
  • firewall-all_on|pt_PT|screen1080
  • firewall-all_on|pt|desktop1280
  • firewall-all_on|pt|phone480
  • firewall-all_on|pt|screen1080
  • firewall-all_on|ru|desktop1280
  • firewall-all_on|ru|phone480
  • firewall-all_on|ru|screen1080
  • firewall-all_on|sv|desktop1280
  • firewall-all_on|sv|phone480
  • firewall-all_on|sv|screen1080
  • firewall-all_on|th|desktop1280
  • firewall-all_on|th|phone480
  • firewall-all_on|th|screen1080
  • firewall-all_on|tr|desktop1280
  • firewall-all_on|tr|phone480
  • firewall-all_on|tr|screen1080
  • firewall-all_on|vi|desktop1280
  • firewall-all_on|vi|phone480
  • firewall-all_on|vi|screen1080
  • … and 1020 more, see report

Suggested next step

Run Generate Golden (mode=baseline, branch=dev-2.7.3) after reviewing the PR #1680 renders in the report. It refreshes golden-ci PR #39; merging it should clear both findings.

Activity

  1. AustinChangLinksys commented on Oct 15, 2026

    @AustinChangLinksys
    Collaborator

    Classification: CI golden-verify report (not a product bug) — 2.x line (branch dev-2.7.3). The report's own verdicts: Finding 1 = baseline coverage gap, Finding 2 = intended re-render per PR #1680.

    Codebase findings:

    Blockers / open questions:

    • Resolution is a baseline regeneration (Generate Golden run, then merge of the baseline PR) — nothing for code changes. Please confirm the 7 new states are the intended set before accepting the baseline.

    Suggested roles: 2x-verify (baseline regen only; no dev role needed)

    Automated triage by gate.py. Dispatch requires Austin's authorization.

  2. added
    triagedAutomated diagnosis complete; root cause investigated (bug lane entry)
    on Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

2.xLabeled for 2.x versiontriagedAutomated diagnosis complete; root cause investigated (bug lane entry)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions