Repository navigation
release: 0.3.0 - #56
Merged
Merged
Conversation
A minor bump because conversion output changes, and because a stylesheet the
caller passes is now bounded in time and in what it may read.
Conversion output changes: a paragraph indented with four or more tabs is no
longer turned into a code block (#38), an interrupted numbered list keeps
its numbering (#39), and a non-numeric w:ilvl degrades rather than aborting
the conversion (#37).
--stylesheet now runs under a regular-expression time limit and a resource
policy (#48). Reads are confined to the stylesheet's own directory, so a
stylesheet that read elsewhere on the disk is refused where it was allowed
before. A blown limit or a refused read exits 2, the usage code.
--regex-timeout <seconds> is the new flag that moves that limit. Ten seconds
by default; "none" removes it.
PhoenixmlDb.Xslt 2.5.1 -> 2.9.0, taken for GHSA-5697-c8qg-472f (high), which
names the engine 0.2.5 shipped and is patched in 2.8.0. A shadow attribute
read the real process environment while the stylesheet compiled. Output is
byte-identical over the corpus on both bumps.
Verified before tagging, all nine steps
restore --locked-mode exit 0
build Release 0 warnings, 0 errors
test, perf gate excluded 394 total, 393 pass, 1 skip
performance gate alone 1 test
pack Docmd.Cli.0.3.0.nupkg
install from the package ok
the installed tool runs reports 0.3.0
embedded stylesheet parses ok
installed tool converts 76,154 words, 0 lost, 61 s
The lock files move with the version: a ProjectReference is recorded there as a
version range, so [0.2.5, ) becomes [0.3.0, ) and --locked-mode refuses the old
file. Regenerated with --force-evaluate in this commit.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018wZEgtuzaZPswykiGEBxbz
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.
0.3.0, dated and ready to tag.
A minor bump, not a patch, because conversion output changes. A paragraph indented with four
or more tabs is no longer turned into a code block (#38), an interrupted numbered list keeps its
numbering (#39), and a non-numeric
w:ilvldegrades rather than aborting the conversion (#37).CONTRIBUTING.mdreserves the minor bump for exactly this, and 0.2.0 was made minor for the samereason.
It also narrows
--stylesheet, which is the other reason a patch number would have beenwrong. Every transform now runs under a regular-expression time limit and a resource policy
(#48): reads are confined to the stylesheet's own directory, so a stylesheet that read elsewhere
on the disk is refused where it was allowed before. A blown limit or a refused read exits 2, the
usage code.
--regex-timeout <seconds>moves the limit; ten seconds by default,noneremovesit.
And it answers a high-severity advisory against the engine 0.2.5 shipped.
GHSA-5697-c8qg-472fnames everyPhoenixmlDb.Xsltup to 2.7.0 and is patched in 2.8.0; thisrelease pins 2.9.0. Output is byte-identical over the corpus on both engine bumps.
Contents
Directory.Build.props--<Version>0.2.5 -> 0.3.0.CHANGELOG.md-- theUnreleasedentries moved into## [0.3.0] — 2026-10-15, the twoFixedsections merged into one, and a lead paragraph saying why the bump is minor.ProjectReferenceas a version range, regenerated with--force-evaluate.--locked-moderefuses the old files after a version bump.Verified before tagging, all nine steps
restore --locked-modebuild -c ReleasepackDocmd.Cli.0.3.0.nupkg0.3.0The one skip is the corpus audit, which is opt-in through
DOCMD_CORPUSand never runs in CI.After this merges,
v0.3.0goes on the merge commit and the release workflow publishes tonuget.org. That push is public and cannot be taken back -- a published version can only be
unlisted.
🤖 Generated with Claude Code
https://claude.ai/code/session_018wZEgtuzaZPswykiGEBxbz