Skip to content

feat: merge-state column in PR tables#4

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

feat: merge-state column in PR tables#4
zombocoder merged 1 commit into
zombocoder:mainfrom
sashml:feat/merge-state-column

Conversation

@sashml

@sashml sashml commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a colorblind-safe State column to the All PRs / Inbox / per-repo tables,
showing GitHub's mergeable status (✓ ok / ✗ cf / ?).

See the before/after mockup and rationale in the issue.

Changes

  • queries: request mergeable + mergeStateStatus in search & repo PR queries
  • models: PullRequest.mergeable + merge_state_status (Option, #[serde(default)]
    so existing disk-cache entries still deserialize)
  • graphql: parse both fields; UNKNOWN/absent → None
  • ui: State column with theme colors, widths adjusted
  • tests: parse roundtrip, CONFLICTING, legacy-cache serde-default coverage

Note on mergeable

The search API computes mergeable lazily, so it is frequently UNKNOWN here (rendered
as a dim ?). The authoritative, freshly-computed value is delivered by the detail pane
in the stacked follow-up (#3).

Testing

cargo build, cargo test (all pass), cargo fmt --check, cargo clippy — clean
(no new warnings).

Closes #2
Part of #1

Add a colorblind-safe "State" column to the All PRs / Inbox / per-repo
tables showing GitHub's mergeable status (✓ ok / ✗ cf / ? unknown).

- queries: request mergeable + mergeStateStatus in search & repo PR queries
- models: PullRequest.mergeable + merge_state_status (Option, #[serde(default)]
  so older cache entries still deserialize)
- graphql: parse both fields; UNKNOWN/absent -> None (search API is lazy)
- ui: State column with theme colors, widths adjusted
- tests: parse roundtrip, CONFLICTING, and legacy-cache serde-default coverage

Refs: zombocoder#1, zombo-sash-eco-rpjg
@sashml

sashml commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

@zombocoder requesting your review 🙏 — this is task 1 of 2 (merge-state column). The stacked follow-up (detail pane) is coming as a separate cascade PR.

@zombocoder zombocoder merged commit 99bb4a4 into zombocoder:main Jul 1, 2026
3 of 4 checks passed
@sashml sashml deleted the feat/merge-state-column 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: merge-state column in PR tables

2 participants