Skip to content

feat: filter PRs by merge state + help/legend overlay#11

Merged
zombocoder merged 1 commit into
zombocoder:mainfrom
sashml:feat/merge-state-filter
Jul 1, 2026
Merged

feat: filter PRs by merge state + help/legend overlay#11
zombocoder merged 1 commit into
zombocoder:mainfrom
sashml:feat/merge-state-filter

Conversation

@sashml

@sashml sashml commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a merge-state filter (f) and a help overlay (?) with the State/CI glyph
legends — the final piece of the merge-state visibility epic (#1).

  • f cycles all → conflicting → clean; active filter shown in the table title and
    composes with / search.
  • ? opens a help overlay documenting every keybinding + both glyph legends (CI-5).

⚠️ Stacked on #7 (→ #5#4)

Last in the cascade. Until the earlier PRs merge, the diff shows all four commits;
review/merge after #4, #5, #7. Only the last commit belongs to this PR.

Changes

  • state: MergeFilter {All, Conflicting, Clean} applied in filtered_prs (one place →
    every view); help_open flag; Esc/h close overlays
  • event_loop: f → cycle filter, ? → toggle help
  • ui: table-title filter indicator; render_help_overlay; status-bar hints updated
  • tests: cycle order, help toggle, back-closes-help, filter selection + search composition

Testing

cargo build, cargo test (8 binaries; state_tests 38), cargo fmt --check,
cargo clippy — clean (no new warnings).

Closes #10
Part of #1

@sashml

sashml commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

@zombocoder requesting your review 🙏 — final piece (filter + help/legend). Cascades on #7 (→ #5#4); please review/merge last.

Rebased onto current main and reconciled with the git-log/diff overlay
rework (zombocoder#9): the filter + help are additive and independent of the per-PR
Overlay state.

- `f` cycles the merge filter: all -> conflicting -> clean; active filter
  shown in the table title. Composes with `/` search (applied in filtered_prs).
- `?` opens a help overlay documenting all keybindings (incl. l: log, d: diff)
  and the State/CI glyph legends (accessibility: glyphs are now documented).
- state: MergeFilter enum + merge_filter/help_open; Esc/h close help first.
- tests: cycle order, help toggle, back-closes-help, filter + search composition.

Refs: zombocoder#10, zombo-sash-eco-pp0u
@sashml sashml force-pushed the feat/merge-state-filter branch from e23f477 to 7876b30 Compare July 1, 2026 10:15
@sashml

sashml commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Rebased onto current main and reconciled with the git-log/diff overlay rework (#9). This branch is now a single commit on top of main:

  • f cycles the merge filter (all → conflicting → clean); composes with / search; active filter shown in the table title.
  • ? opens a help overlay documenting all keys (incl. l log / d diff) + the State/CI glyph legends.

The filter/help are additive and independent of the per-PR Overlay state, so no conflict with #9. Verified locally: cargo test (all pass), cargo fmt --check, and RUSTFLAGS=-Dwarnings cargo clippy all clean — the earlier Clippy failure (CI uses -Dwarnings) is resolved.

@zombocoder ready for another look 🙏

@zombocoder zombocoder merged commit fa375bb into zombocoder:main Jul 1, 2026
4 checks passed
@sashml sashml deleted the feat/merge-state-filter branch July 1, 2026 10:41
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.

feat: filter PRs by merge state + help/legend overlay

2 participants