Skip to content

refactor(tui): share StyledGlyph across queue show/status renderers#1444

Open
jd wants to merge 1 commit into
devs/jd/worktree-rust-port/drop-stale-phase-x-y-doc-markers-one-inline-color--477e0985from
devs/jd/worktree-rust-port/share-styledglyph-across-queue-show-status--8ed9bb5f
Open

refactor(tui): share StyledGlyph across queue show/status renderers#1444
jd wants to merge 1 commit into
devs/jd/worktree-rust-port/drop-stale-phase-x-y-doc-markers-one-inline-color--477e0985from
devs/jd/worktree-rust-port/share-styledglyph-across-queue-show-status--8ed9bb5f

Conversation

@jd
Copy link
Copy Markdown
Member

@jd jd commented May 19, 2026

queue show and queue status both map an enum-ish state code to
an "(icon, ANSI style)" pair, but spelled the pairing two different
ways: show.rs::check_state_glyph returned (&'static str, Style),
while status.rs split it into separate status_icon /
batch_status_style functions. Same shape, different names, drifting
naturally as new states land.

Add a small StyledGlyph struct to mergify-tui and route both
callers through it. status.rs::status_icon + batch_status_style
collapse into a single batch_glyph(theme, code) -> StyledGlyph;
the early-return for the disabled-theme case is preserved (the
merged → green.dimmed() composition would otherwise emit a dim
escape when colors are off).

The third candidate — freeze/list.rs's active/scheduled coloring
— stays inline: it has no icon, just a two-arm color pick, and
forcing a StyledGlyph::new("", color) would add more noise than
it removes.

Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com

Depends-On: #1443

@jd
Copy link
Copy Markdown
Member Author

jd commented May 19, 2026

This pull request is part of a Mergify stack:

# Pull Request Link
1 test(skill): port the skill-references test to Rust #1414
2 test(freeze): add live smoke test for freeze list #1434
3 feat(rust): port freeze list to native Rust #1435
4 test(freeze): add live smoke test for freeze create/update/delete #1436
5 feat(rust): port freeze create/update/delete to native Rust #1437
6 refactor(rust): dedupe emit-helper boilerplate across command crates #1438
7 refactor(rust): share test scaffolding via mergify-test-support crate #1439
8 refactor(core): introduce CommandContext for the queue+freeze prelude #1441
9 refactor(ci): consolidate the CI-env scrubber into a shared testing module #1442
10 refactor: drop stale Phase X.Y doc markers and one inline color branch #1443
11 refactor(tui): share StyledGlyph across queue show/status renderers #1444 👈
12 refactor(queue): drop indexmap, group_by_scope returns a Vec<(K, V)> #1445
13 refactor(ci): swap uuid for getrandom in the GHA heredoc delimiter #1446
14 refactor(config): standardize the workspace on serde_yaml_ng for YAML parsing #1447

@mergify
Copy link
Copy Markdown
Contributor

mergify Bot commented May 19, 2026

Merge Protections

Your pull request matches the following merge protections and will not be merged until they are valid.

🔴 ⛓️ Depends-On Requirements

Waiting for

This rule is failing.

Requirement based on the presence of Depends-On in the body of the pull request

🔴 👀 Review Requirements

Waiting for

  • #approved-reviews-by>=2
This rule is failing.
  • any of:
    • #approved-reviews-by>=2
    • author = dependabot[bot]
    • author = mergify-ci-bot
    • author = renovate[bot]

🔴 🔎 Reviews

Waiting for

  • #review-requested = 0
This rule is failing.
  • #review-requested = 0
  • #changes-requested-reviews-by = 0
  • #review-threads-unresolved = 0

🟢 🤖 Continuous Integration

Wonderful, this rule succeeded.
  • all of:
    • check-success=ci-gate

🟢 Enforce conventional commit

Wonderful, this rule succeeded.

Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/

  • title ~= ^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert|ui)(?:\(.+\))?:

🟢 📕 PR description

Wonderful, this rule succeeded.
  • body ~= (?ms:.{48,})

sileht
sileht previously approved these changes May 20, 2026
@mergify mergify Bot requested a review from a team May 20, 2026 07:43
@jd jd force-pushed the devs/jd/worktree-rust-port/share-styledglyph-across-queue-show-status--8ed9bb5f branch from d729c8f to 66bd10c Compare May 20, 2026 08:42
@jd jd force-pushed the devs/jd/worktree-rust-port/drop-stale-phase-x-y-doc-markers-one-inline-color--477e0985 branch from e195107 to 1a26a25 Compare May 20, 2026 08:42
@jd jd temporarily deployed to func-tests-live May 20, 2026 08:42 — with GitHub Actions Inactive
@jd jd temporarily deployed to func-tests-live May 20, 2026 08:42 — with GitHub Actions Inactive
@jd
Copy link
Copy Markdown
Member Author

jd commented May 20, 2026

Revision history

# Type Changes Reason Date
1 initial d729c8f 2026-05-20 08:42 UTC
2 rebase d729c8f → 66bd10c (rebase only) 2026-05-20 08:42 UTC
3 rebase 66bd10c → c6ab109 (rebase only) 2026-05-20 09:05 UTC

@mergify mergify Bot dismissed sileht’s stale review May 20, 2026 08:43

Pull request has been modified.

@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 20, 2026 08:43 Failure
`queue show` and `queue status` both map an enum-ish state code to
an "(icon, ANSI style)" pair, but spelled the pairing two different
ways: `show.rs::check_state_glyph` returned `(&'static str, Style)`,
while `status.rs` split it into separate `status_icon` /
`batch_status_style` functions. Same shape, different names, drifting
naturally as new states land.

Add a small `StyledGlyph` struct to `mergify-tui` and route both
callers through it. `status.rs::status_icon` + `batch_status_style`
collapse into a single `batch_glyph(theme, code) -> StyledGlyph`;
the early-return for the disabled-theme case is preserved (the
`merged → green.dimmed()` composition would otherwise emit a dim
escape when colors are off).

The third candidate — `freeze/list.rs`'s active/scheduled coloring
— stays inline: it has no icon, just a two-arm color pick, and
forcing a `StyledGlyph::new("", color)` would add more noise than
it removes.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Change-Id: I8ed9bb5fffd46ecf75ff833df85b2ddf9812a4d8
@jd jd force-pushed the devs/jd/worktree-rust-port/share-styledglyph-across-queue-show-status--8ed9bb5f branch from 66bd10c to c6ab109 Compare May 20, 2026 09:05
@jd jd temporarily deployed to func-tests-live May 20, 2026 09:05 — with GitHub Actions Inactive
@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 20, 2026 09:06 Failure
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants