Skip to content

[3338 by GPT-6.1 Sol] Skill card: source path breaks mid-word and size shows raw bytes - #3346

Merged
integry merged 1 commit into
mainfrom
3338/gpt-6.1-sol-skill-card-source-path-br-20261024-2038-nv4
Oct 24, 2026
Merged

integry merged 1 commit into
mainfrom
3338/gpt-6.1-sol-skill-card-source-path-br-20261024-2038-nv4

Conversation

@propr-dev

@propr-dev propr-dev Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

AI Implementation Summary

Closes #3338

Branch: 3338/gpt-6.1-sol-skill-card-source-path-br-20261024-2038-nv4
Commits: ✅ Changes committed (d3a45b4)


AI Processing Completed

Execution Details:

Summary:
Implemented #3338:

  • Source paths wrap at slash boundaries, keeping words intact, with the full source in a tooltip.
  • Sizes display readable units such as 11.0 KiB, with exact bytes in a tooltip.
  • Captured desktop and mobile previews.

Verified: lint, TypeScript, production build, and all 5 extension browser tests pass.

Detailed Logs:

  • Conversation: 46 messages
  • Session: 01a16fa9-827d-7682-8d97-ae81fc36afc0

Log files stored at:

  • conversation: /usr/src/app/logs/executions/issue-3338-2026-10-24T20-49-07-102Z-conversation.json
  • output: /usr/src/app/logs/executions/issue-3338-2026-10-24T20-49-07-102Z-output.txt
Latest Conversation Messages

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


💡 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

Validated skill card (desktop)

Validated skill card (desktop)

Readable binary bundle size and source path segments kept together, with exact size and full provenance available in tooltips.

Original unavailable: managed storage is unavailable or the upload has expired.

Validated skill card (mobile)

Validated skill card (mobile)

Readable binary bundle size and source path segments kept together, with exact size and full provenance available in tooltips.

Original unavailable: managed storage is unavailable or the upload has expired.

…d and size s

Implemented by ProPR AI using gpt-6.1-sol model.

Implementation completed successfully.
@integry

integry commented Oct 24, 2026

Copy link
Copy Markdown
Owner

/ultrafix

@propr-dev propr-dev Bot added the ultrafix label Oct 24, 2026
@propr-dev

propr-dev Bot commented Oct 24, 2026

Copy link
Copy Markdown
Contributor Author

🔄 Ultrafix loop started (goal: 8/10, max cycles: 10)

First action: /review

💡 Tip: Remove the ultrafix label from this PR to stop further ultrafix cycles.

@propr-dev

propr-dev Bot commented Oct 24, 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 Oct 24, 2026

Copy link
Copy Markdown
Contributor Author

🔍 AI Code Review — claude:claude-opus-5-5

Overall Evaluation

The PR fixes both display problems from issue #3338 in AgentExtensionsSection.tsx:

  • Size: a new formatSkillSize helper shows the bundle size in binary units. The exact byte count stays in a title.
  • Source path: the source label is now rendered as one atomic span per / segment. Wrapping can therefore happen only at separators, not inside a word.

The change is small and stays within scope. CI is fully green, and the e2e assertion was updated to match the new output. The PR is ready to merge. I found no blockers, only optional polish.

✅ Correct binary-unit formatting — formatSkillSize keeps values under 1024 as bytes (with a singular case). It computes the exponent from log2(bytes)/10 and labels with KiB/MiB/…, so 8120 becomes 7.9 KiB and the issue's 11240 becomes 11.0 KiB. Bundles are capped at 4 MiB, so the TiB clamp is never reached in practice.

✅ Break opportunities only at separators — In SkillSource, each segment keeps its trailing / inside an inline-block whitespace-pre span. A line can therefore break after a slash but never inside incident-runbook. The full label is kept on the <p title>, which the issue explicitly allows.

✅ Exact bytes still discoverable and tested — agent-extensions.pw.ts checks both the visible 7.9 KiB text and title="8120 bytes". The sub-1 KiB cases elsewhere in the file (120 bytes) still match unchanged, confirming the boundary behaves the same as before.

Merge blockers

No merge blockers.

Suggestions

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

S1: 🟢 Commit SHA can be hidden on narrow screens

The GitHub label repo @ <40-char commit> / dir splits so that one segment is skills @ d66d…a6 (about 60 characters, kept on one line by whitespace-pre). On narrow cards, such as mobile settings, max-w-full truncate cuts this segment with an ellipsis and hides part of the pinned commit. Before this PR, break-all always showed the whole SHA. The title fallback is not reachable on touch devices. Two fixes would keep provenance fully visible:

  • render the commit in its own break-all span instead of a whitespace-pre segment; or
  • allow whitespace-normal inside a segment so it can still break at spaces.

This is optional because the issue permits truncation with a title, and desktop widths are unaffected.

S2: 🟢 Rounding edge near unit boundaries

Values just under a power-of-1024 boundary, such as 1,048,575 bytes, get exponent 1. toFixed(1) then rounds them up to 1024.0 KiB instead of 1.0 MiB. Clamping or re-checking after rounding would avoid this. It is purely cosmetic and only occurs within about 50 bytes of each boundary, so it is not a blocker.

S3: 🟢 Cover source-path wrapping and formatter edges

No test exercises the new SkillSource rendering. For example, a test could assert that a GitHub card shows /-terminated segments and the full title at a narrow viewport. Similarly, no unit test covers formatSkillSize at 1023, 1024 and 4 MiB. Adding these would protect the layout fix against regressions. They are optional because the behaviour is simple and was traced statically.

Score

The PR meets both acceptance criteria with a small, contained change, updated e2e coverage and green checks. The remaining items are cosmetic or optional hardening.

Score: 8/10


🤖 Review Details

  • Model: Claude Opus 5.5
  • Time: 33s
  • Tokens: 45,030 (42,152 in / 2,878 out)
  • Cost: $0.27

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 S2 S3

🤖 Review by ProPR

@propr-dev propr-dev Bot removed the ultrafix label Oct 24, 2026
@integry
integry merged commit 2820c73 into main Oct 24, 2026
60 checks passed
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.

Skill card: source path breaks mid-word and size shows raw bytes

1 participant