Skip to content

feat(autopilot:fleet-overview-filters): phase 0 — default-actionable fleet filters#75

Merged
pacphi merged 4 commits into
developfrom
autopilot/fleet-overview-filters/phase-0
Jul 1, 2026
Merged

feat(autopilot:fleet-overview-filters): phase 0 — default-actionable fleet filters#75
pacphi merged 4 commits into
developfrom
autopilot/fleet-overview-filters/phase-0

Conversation

@pacphi

@pacphi pacphi commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Phase 0 — Default-actionable Fleet Overview (automated autopilot run)

Two independent, combinable client-side toggle filters on the Remediation Fleet Overview, both default ON, so operators land on the rows they can act on — with a distinct empty state when the active filters hide every row.

Deliverables

  • FleetOverview.tsx: onlyWithPrs + onlyEligible boolean states (both default true); derived filteredFleet applying the ACTIVE filters AND-combined over useFleetRemediation() rows (openPrCount > 0; eligible === true).
  • Two shadcn Switch + Label toggle controls above the table (mirrors PolicyEditor/RepositoryFilterSettings usage); toggling either widens the view.
  • Distinct filtered-empty branch (remediation:fleet.filters.noMatch) with a "Show all repositories" clear control — separate from the existing zero-repos remediation:fleet.empty state.
  • New EN i18n keys under remediation:fleet.filters (onlyWithPrs, onlyEligible, noMatch, clear, groupLabel).

DoD evidence (local gate — all green)

  • make test-frontend924 passed, 6 skipped (61 files); 13 FleetOverview.test.tsx specs incl. default hides 0-PR + ineligible; each filter revealed independently; toggle round-trip; single-toggle escape from empty; clear restores; revealed-row preview.
  • make lint-frontend (eslint + tsc) ✓ · make format-check (prettier) ✓ · pnpm --dir frontend type-check
  • grep onlyWithPrs in FleetOverview.tsx ✓ · fleet.filters.* keys in en/remediation.json ✓ · no TODO/FIXME
  • No backend/API change — purely client-side over already-fetched rows; loading/error/zero-repos branches unchanged.

Adversarial review signals

  • qe-code-reviewer: no correctness bugs; empty-state distinction airtight; clear-escape sound; both filters proven independently. 6 LOW/INFO findings (coverage + a11y) — all addressed (added 4 tests + role="group"/aria-label on the filter cluster + role="status" aria-live="polite" on the no-match state).
  • /code-review (high): 2 CONFIRMED findings, both working-as-designed per the phased spec — no code change:
    1. Both filters default ON → a quiet-period fleet (all eligible, zero open PRs) lands on the filtered-empty state on first load. This is the explicit spec (both default ON + distinct empty state + Show-all escape). ⚠️ Human reviewer: this is a deliberate UX tradeoff — flag if product intent differs.
    2. New keys only in en → 26 locales fall back to English. Deferred to phase 1 by design (phase 1 translates all 27 locales via ampel-i18n-builder).

Automated phase-0 run. Squash-merges into develop; the develop → main integration PR is opened by a human after all phases land.

@pacphi

pacphi commented Jul 1, 2026

Copy link
Copy Markdown
Owner Author

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

📊 Coverage Report

Component Coverage Status
Backend N/A%
Frontend N/A%
Overall N/A%

Coverage Thresholds

  • 🟢 Green: ≥ 80% (target)
  • 🟡 Yellow: 60-79% (acceptable)
  • 🔴 Red: < 60% (needs improvement)

Coverage reports generated by CI workflow

…t.filters into all 26 locales + regen types

CI's i18n 'missing' gate (ampel-i18n-builder -- missing) fails on any missing key
per PR, so EN-only keys couldn't merge. Translated the 5 new remediation.fleet.filters.*
keys across all 26 locales via ampel-i18n-builder (Google Tier-3 fallback; Systran 401),
regenerated frontend/src/i18n/types.ts, and hardened the EN source ('repositories'/'pull
requests' instead of 'repos'/'PRs') after the audit caught domain-noun mistranslations
(repos->pawnshop/repurchase/cure, PR->public relations).
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

🌐 Translation Coverage Report

Overall Coverage

Component Coverage Status
Backend (Rust) 100.0%
Frontend (React) 100%
Total Average 100.00%

Threshold: 95%
Supported Languages: 27


Backend Coverage Details

Translation Coverage Report

Overall Coverage: 100.0%

Source Keys: 955

Language Coverage

Language Coverage Translated Total Missing
ar ✅ 100.0% 955 955 0
cs ✅ 100.0% 955 955 0
da ✅ 100.0% 955 955 0
de ✅ 100.0% 955 955 0
en-GB ✅ 100.0% 955 955 0
es-ES ✅ 100.0% 955 955 0
es-MX ✅ 100.0% 955 955 0
fi ✅ 100.0% 955 955 0
fr ✅ 100.0% 955 955 0
he ✅ 100.0% 955 955 0
hi ✅ 100.0% 955 955 0
it ✅ 100.0% 955 955 0
ja ✅ 100.0% 955 955 0
ko ✅ 100.0% 955 955 0
nl ✅ 100.0% 955 955 0
no ✅ 100.0% 955 955 0
pl ✅ 100.0% 955 955 0
pt-BR ✅ 100.0% 955 955 0
ru ✅ 100.0% 955 955 0
sr ✅ 100.0% 955 955 0
sv ✅ 100.0% 955 955 0
th ✅ 100.0% 955 955 0
tr ✅ 100.0% 955 955 0
vi ✅ 100.0% 955 955 0
zh-CN ✅ 100.0% 955 955 0
zh-TW ✅ 100.0% 955 955 0

Frontend Coverage Details

Translation Coverage Report

Generated: 2026-07-01T20:11:52.135Z
Base Locale: en
Total Keys: 100
Overall Coverage: 100%

Coverage by Language

Language Coverage Translated Missing Empty Status
en 100% 100 0 0
es-ES 100% 100 0 0
es-MX 100% 100 0 0
fr 100% 100 0 0
de 100% 100 0 0
it 100% 100 0 0
pt-BR 100% 100 0 0
nl 100% 100 0 0
pl 100% 100 0 0
ru 100% 100 0 0
ja 100% 100 0 0
ko 100% 100 0 0
zh-CN 100% 100 0 0
zh-TW 100% 100 0 0
ar 100% 100 0 0
he 100% 100 0 0
hi 100% 100 0 0
th 100% 100 0 0
tr 100% 100 0 0
cs 100% 100 0 0
fi 100% 100 0 0
sv 100% 100 0 0
da 100% 100 0 0
no 100% 100 0 0
vi 100% 100 0 0
sr 100% 100 0 0
en-GB 100% 100 0 0

Missing Translations

✅ No missing translations


Updated: 2026-07-01T20:12:08.930Z

@pacphi pacphi merged commit 9ea5c91 into develop Jul 1, 2026
21 checks passed
@pacphi pacphi deleted the autopilot/fleet-overview-filters/phase-0 branch July 1, 2026 20:18
pacphi added a commit that referenced this pull request Jul 1, 2026
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