Repository navigation
Finish 2.9.0; genre frames, adult folded into romance, malformed themes refused - #36
Merged
Merged
Conversation
…t it Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FuCWyo4QX6dza8MxQQoZM
…themes refused, never thrown A look sets corners, edges and sides. TryParse no longer throws on half of a surrogate pair; a look refuses control characters and pieces with no width; an ASCII reader's field separator falls back to ': '. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FuCWyo4QX6dza8MxQQoZM
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FuCWyo4QX6dza8MxQQoZM
|
Warning Review paused — included plan limit reachedKeep your review moving with free on-demand reviews.
On-demand reviews are free for the next 3 days.
Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing. Promotion and pricing detailsOn-demand reviews are free for the next 3 days. After that, they cost $0.25 per reviewed file. Review limit detailsOr wait 25 minutes for your next included review. Limit details: You’ve used the included review currently available. Your 78 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Review configuration: ⚙️ Run configuration
📒 Files selected for processing (18)
Comment |
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The rest of #34, which merged with only its changelog commit.
Before: 2.9.0's API was still in
PublicAPI.Unshipped.txtwith package validation against 2.4.0. The genre themes differed mostly in colour and bullet, andadultandromancewere separate.ThemePalette.TryParsethrew on half of a surrogate pair (raw, or escaped as\ud800), and a look accepted control characters and zero-width pieces. An ASCII-only reader saw a genre's non-ASCII field separator.After: 2.9.0's API is Shipped and every package validates against 2.9.0 (
docs/releasing.mdsteps 2 and 4). Each genre has its own corners and edges (fantasy❖, horror a cracked heavy line between daggers, mystery dashed┄┆with◇, science-fiction▛▜▙▟, ...). There is noadultpreset;romanceserves MSSP's Adult as well. A malformed theme is refused with a reason, never thrown, and the field separator falls back to:in ASCII.How:
ThemeLookgainsTopLeft/TopRight/BottomLeft/BottomRight,EdgeandSide(JSONcorners,edge,side), validated one column wide; every look piece must be drawable (no control characters, some width, well-formed surrogates).TryParsealso catchesArgumentException/InvalidOperationException.MalformedThemeTestsrenders every block under hostile pieces at widths 1-120 in Unicode, ASCII and linear, and feeds ~35 malformed specs to the parser. 1020 tests pass.🤖 Generated with Claude Code
https://claude.ai/code/session_014FuCWyo4QX6dza8MxQQoZM
Generated by Claude Code