Skip to content

[3576 by Claude Opus 5.5] The review rating indicator in PR titles is sideways - #3577

Merged
integry merged 2 commits into
mainfrom
3576/claude-opus-5-5-the-review-rating-indicat-20261115-0928-klh
Nov 15, 2026
Merged

integry merged 2 commits into
mainfrom
3576/claude-opus-5-5-the-review-rating-indicat-20261115-0928-klh

Conversation

@propr-dev

@propr-dev propr-dev Bot commented Nov 15, 2026 •

Copy link
Copy Markdown
Contributor

AI Implementation Summary

Closes #3576

Branch: 3576/claude-opus-5-5-the-review-rating-indicat-20261115-0928-klh
Commits: ✅ Changes committed (d5e8dd3)


AI Processing Completed

Execution Details:

Summary:
I changed the review score in PR titles from the ①–⑩ circled digits to the Dingbats circled digits ➀–➉, so ⚠️⑥ [41 by …] is now written as ⚠️➅ [41 by …]. I couldn't reproduce the sideways ⑥ here, so I don't know yet whether this fixes it. This container only has DejaVu fonts, and they draw both versions upright. The sideways glyph probably comes from whatever font your system uses for ⑥; it's worth checking an updated title on the machine where you saw it.

What changed

  • Writing the score: packages/shared/src/prTitleStatusSlot.ts now writes ➀ (U+2780) to ➉ (U+2789). The sideways problem is one character in a different part of Unicode, so moving to another block avoids that font.
  • Existing titles: titles that already show ①–⑩ are still recognised. Their score switches to the new digit the next time ProPR renames the title, and they stay stripped from the ProPR UI and merge commit titles as before.
  • Tests and docs: I updated the expected digits in the shared, core, root, API and UI tests, and in docs/docs/features/pr-status.md, which now also explains the older digits. A new test checks that all 10 scores use the new digits and that old ①–⑩ titles are still read, stripped and replaced.

Tests

  • The shared slot test file passes (10 tests).
  • The core, root and API tests that touch titles pass (217 tests), and the shared package typechecks cleanly.
  • The UI title tests pass (42 tests).

Preview: there isn't one. The change only shows in GitHub PR titles, because the ProPR UI strips the score. The preview manifest instead suggests adding macOS or Windows fonts so a later capture could show the difference.

If ➅ still shows sideways on your system, the other options are a plain digit (⚠️6) or a different symbol for the score.

Sources:

Review digest

Risk-tiered paths

  • High risk: none
  • Normal risk (4 files)
    • packages/shared/src/prTitleStatusSlot.ts (+12/−7)
    • propr-ui/src/components/Dashboard/workTitle.ts (+1/−1)
    • propr-ui/src/components/TaskList/utils.tsx (+1/−1)
    • propr-ui/src/components/headerUtils.ts (+1/−1)
  • Low risk (10 files)
    • docs/docs/features/pr-status.md (+4/−4)
    • packages/api/test/mcpMergePreconditions.test.ts (+1/−1)
    • packages/core/test/pullRequestStatusTitle.test.ts (+9/−9)
    • packages/shared/test/prTitleStatusSlot.test.ts (+28/−15)
    • propr-ui/src/components/Dashboard/workTitle.test.ts (+1/−1)
    • propr-ui/src/components/TaskList/rowModel.test.ts (+1/−1)
    • propr-ui/src/components/TaskList/utils.statusSlot.test.ts (+1/−1)
    • test/autoMergeOperations.test.ts (+1/−1)
    • test/checkRunHandler.test.ts (+1/−1)
    • test/prTaskTitleHelpers.test.ts (+2/−2)

Validation evidence

  • No repository validation commands ran.

Diff size: 14 files changed, +64/−46 lines

Detailed Logs:

  • Conversation: 116 messages
  • Session: d8b8f853-d3cb-43ee-9872-51a7dff63e5a

Log files stored at:

  • conversation: /usr/src/app/logs/executions/issue-3576-2026-11-15T09-34-40-409Z-conversation.json
  • output: /usr/src/app/logs/executions/issue-3576-2026-11-15T09-34-40-409Z-output.txt
Latest Conversation Messages
ASSISTANT: [content unavailable]

ASSISTANT: I changed the review score in PR titles from the ①–⑩ circled digits to the Dingbats circled digits ➀–➉, so `⚠️⑥ [41 by …]` is now written as `⚠️➅ [41 by …]`. I couldn't reproduce the sideways ⑥ here, ...


This PR was created automatically by ProPR after processing issue #3576.


💡 Need changes?

Comment on this PR to request refinements — the AI agent monitors comments and will update the implementation based on your feedback. Keep iterating until you're satisfied!


Visual preview

Suggested agent tools

  • macOS/Windows system fonts (or a WebKit/Safari renderer with Apple fonts): The changed score glyph only appears in GitHub PR titles (the ProPR UI strips the slot), and the sideways ⑥ depends on platform font fallback; the Linux agent image has only DejaVu fonts, where both the old and new digits render upright, so a capture could not show the difference

…o the Dingbats circled digits ➀–➉, so `⚠️⑥ [41 by …]` is now written as `⚠️➅ [41 by …]`. I couldn't reproduce the sideways ⑥ here, so I don't know yet whether this fixes it. This container only has DejaVu fonts, and they draw both versions upright. The sideways glyph probably comes from whatever font your system uses for ⑥; it's worth checking an updated title on the machine where you saw it.

What changed
- Writing the score: `packages/shared/src/prTitleStatusSlot.ts` now writes ➀ (U+2780) to ➉ (U+2789). The sideways problem is one character in a different part of Unicode, so moving to another block avoids that font.
- Existing titles: titles that already show ①–⑩ are still recognised. Their score switches to the new digit the next time ProPR renames the title, and they stay stripped from the ProPR UI and merge commit titles as before.
- Tests and docs: I updated the expected digits in the shared, core, root, API and UI tests, and in `docs/docs/features/pr-status.md`, which now also explains the older digits. A new test checks that all 10 scores use the new digits and that old ①–⑩ titles are still read, stripped and replaced.

Tests
- The shared slot test file passes (10 tests).
- The core, root and API tests that touch titles pass (217 tests), and the shared package typechecks cleanly.
- The UI title tests pass (42 tests).

Preview: there isn't one. The change only shows in GitHub PR titles, because the ProPR UI strips the score. The preview manifest instead suggests adding macOS or Windows fonts so a later capture could show the difference.

If ➅ still shows sideways on your system, the other options are a plain digit (`⚠️6`) or a different symbol for the score.

Sources:
- [Unicode variation selectors chart (UFE00.pdf)](https://www.unicode.org/Public/draft/charts/PDF/UFE00.pdf)
- [Text vs Emoji Presentation Selectors](https://emojifyi.com/stories/text-vs-emoji-presentation/)
@propr-dev

propr-dev Bot commented Nov 15, 2026

Copy link
Copy Markdown
Contributor Author

CI failed: Full Test Suite Shard 3/4

Please investigate and fix this CI failure.

  • Check: Full Test Suite Shard 3/4
  • Result: failure
  • Commit: d5e8dd3e521b (d5e8dd3e521b9e3d42e8f19504ba8321b44692ea)
  • Details: View CI failure

Failure evidence

.github:11
Process completed with exit code 1.

.github:42254
Process completed with exit code 1.

.github:2
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@11d5960. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

@propr-dev

propr-dev Bot commented Nov 15, 2026 •

Copy link
Copy Markdown
Contributor Author

✅ Applied the requested follow-up changes in commit 6baa317

Summary of Changes

I fixed the Shard 3/4 failure. It was a real bug from this PR's ➀–➉ change.

Cause: the one failing test was apps/desktop/scripts/macos-window-chrome.test.mjs. The desktop renderer reads its bundle as Latin-1 instead of UTF-8, so the score digits in the title-matching regex become different characters. The old [①-⑩] range happened to stay valid after that. The new ➀-➉ range didn't: the last byte of ➀ turns into €, which sorts after â. The renderer then failed with Invalid regular expression … Range out of order in character class and never showed its first screen. That is the "Choose an instance" timeout in the log.

Fix: in packages/shared/src/prTitleStatusSlot.ts, the regex now uses \u escapes instead of literal characters. That covers both score ranges (\u2460-\u2469\u2780-\u2789) and the ⚠️ and ✅ emoji (\u26A0\uFE0F?, \u2705). It matches exactly the same titles, but no longer depends on how the file is read. A short comment explains why.

Verification:

  • The macOS window-chrome test fails on this branch with the same error as CI, and passes with the fix.
  • The other tests this branch touched all pass:
    • the shared slot tests (10)
    • the root and core title tests (48)
    • the UI title tests (42)

I didn't rerun the whole shard. The desktop test bundles the built copy of the shared package, so I rebuilt it locally before rerunning; CI rebuilds it on its own.

There's no preview, because nothing changes on screen.

Review digest

Risk-tiered paths

  • High risk: none
  • Normal risk (1 file)
    • packages/shared/src/prTitleStatusSlot.ts (+3/−1)
  • Low risk: none

Validation evidence

  • No repository validation commands ran.

Diff size: 1 file changed, +3/−1 lines


🤖 Implementation Details

  • Model: Claude Opus 5.5 (medium)
  • Requested By: @propr-dev[bot]
  • Time: 4m 29s
  • Tokens: 613,031 (609,115 in / 3,916 out)
  • Cost: $0.43

Undo Changes • View Task Execution


💡 ProPR Slash Commands
Command Description Example
/merge Merge target branch into this PR and resolve conflicts /merge
/review Request an AI code review /review or /review claude-sonnet
/fix Address review blockers, or blockers and suggestions with /fix all /fix, /fix all, or /fix F3 S5
/switch Change the AI model for this PR /switch claude-opus
/use Override the model for a single follow-up run /use claude-sonnet
/ultrafix Loop review→fix cycles until score goal is met /ultrafix or /ultrafix goal=8 max=10

🤖 Generated by ProPR
Processing comment ID: 6892573872✓

…PR's ➀–➉ change.

I fixed the Shard 3/4 failure. It was a real bug from this PR's ➀–➉ change.

**Cause:** the one failing test was `apps/desktop/scripts/macos-window-chrome.test.mjs`. The desktop renderer reads its bundle as Latin-1 instead of UTF-8, so the score digits in the title-matching regex become different characters. The old `[①-⑩]` range happened to stay valid after that. The new `➀-➉` range didn't: the last byte of ➀ turns into `€`, which sorts after `â`. The renderer then failed with `Invalid regular expression … Range out of order in character class` and never showed its first screen. That is the "Choose an instance" timeout in the log.

**Fix:** in `packages/shared/src/prTitleStatusSlot.ts`, the regex now uses `\u` escapes instead of literal characters. That covers both score ranges (`\u2460-\u2469\u2780-\u2789`) and the ⚠️ and ✅ emoji (`\u26A0\uFE0F?`, `\u2705`). It matches exactly the same titles, but no longer depends on how the file is read. A short comment explains why.

**Verification:**
- The macOS window-chrome test fails on this branch with the same error as CI, and passes with the fix.
- The other tests this branch touched all pass:
  - the shared slot tests (10)
  - the root and core title tests (48)
  - the UI title tests (42)

I didn't rerun the whole shard. The desktop test bundles the built copy of the shared package, so I rebuilt it locally before rerunning; CI rebuilds it on its own.

There's no preview, because nothing changes on screen.

PR: #3577
Comment by: @propr-dev[bot] (ID: 6892573872)
Model: Claude Opus 5.5
@propr-dev propr-dev Bot changed the title 🔨 [3576 by Claude Opus 5.5] The review rating indicator in PR titles is sideways ✅ [3576 by Claude Opus 5.5] The review rating indicator in PR titles is sideways Nov 15, 2026
@integry

integry commented Nov 15, 2026

Copy link
Copy Markdown
Owner

/review

@propr-dev propr-dev Bot changed the title ✅ [3576 by Claude Opus 5.5] The review rating indicator in PR titles is sideways 🔨 [3576 by Claude Opus 5.5] The review rating indicator in PR titles is sideways Nov 15, 2026
@propr-dev

propr-dev Bot commented Nov 15, 2026 •

Copy link
Copy Markdown
Contributor Author

✅ AI Code Review Complete requested by @integry

Posted 1 review:

View Task Details

@propr-dev

propr-dev Bot commented Nov 15, 2026

Copy link
Copy Markdown
Contributor Author

🔍 AI Code Review — codex:gpt-6-astra

Overall Evaluation

The PR replaces review-score characters with Dingbats circled digits while retaining support for existing titles. The change is focused and merge-ready within the reviewed code scope; whether it resolves the reported rendering issue on the affected system remains unverified.

✅ Backward-compatible parsing — The shared pattern accepts both digit ranges, and tests explicitly cover reading, stripping, and replacing legacy slots.

✅ Consistent consumers — UI title cleanup and merge-title generation use the shared parser. Updated tests cover the new representation across these paths without changing epic progress behavior.

The supplied current-head checks report 27 passed, 17 neutral/skipped, and no failures. This review used static analysis only.

Merge blockers

No merge blockers.

Suggestions

These are optional follow-ups and are not sent to /fix.

S1: 🟢 Confirm the affected rendering environment

Check ⚠️➅ in the browser and operating system where ⚠️⑥ appeared sideways. The tests establish character selection and parsing, but cannot establish font rendering. This is useful follow-up validation rather than a demonstrated code defect. Until confirmed, consider qualifying the font-cause claim in packages/shared/src/prTitleStatusSlot.ts as a suspected explanation.

Score

The implementation is small, backward-compatible, and supported by relevant tests and passing checks. The remaining uncertainty concerns the visual result on the originally affected system.

Score: 8/10


🤖 Review Details

  • Model: GPT-6 Astra
  • Time: 20s
  • Tokens: 56,477 (56,088 in / 389 out)
  • Cost: $0.47

View Task


💡 Next step: Comment /fix to address every F# merge blocker, /fix all for every pending blocker and suggestion, or name records explicitly, as in /fix F3 S5.
F# and S# IDs increment across review comments and remain permanent, so selectors such as /fix F3 F5 stay unambiguous across cycles. S# suggestions stay optional: they are implemented only when you name them or request /fix all, and they never relax a merge blocker.

Copy and edit to choose records from this review:

/fix S1

🤖 Review by ProPR

@propr-dev propr-dev Bot changed the title 🔨 [3576 by Claude Opus 5.5] The review rating indicator in PR titles is sideways ✅⑧ [3576 by Claude Opus 5.5] The review rating indicator in PR titles is sideways Nov 15, 2026
@integry
integry merged commit 90cdb32 into main Nov 15, 2026
44 checks passed
@integry
integry deleted the 3576/claude-opus-5-5-the-review-rating-indicat-20261115-0928-klh branch November 15, 2026 12:30
@propr-dev propr-dev Bot changed the title ✅⑧ [3576 by Claude Opus 5.5] The review rating indicator in PR titles is sideways [3576 by Claude Opus 5.5] The review rating indicator in PR titles is sideways Nov 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The review rating indicator in PR titles is sideways

1 participant