Repository navigation
Take ktsu.RunCommand 1.9.5 so git output is read to EOF [patch] - #198
Merged
Merged
Conversation
RunCommand 1.5.0 stopped reading when the process exited and made one final read, so output still in the pipe after it was dropped. Git output over ~8 KiB came back cut at 8,192 characters a few percent of the time, and Patch(), Log(), Status() and Diff() returned partial results without an error. RunCommand 1.8.0 reads to EOF (ktsu-dev/RunCommand#87). RunCommand 1.9.x needs ktsu.Semantics 5.x, so Semantics.Paths and Semantics.Strings move from 3.0.1 to 5.11.2 with it. The resolved graph is otherwise unchanged: Testably.Abstractions.FileSystem.Interface still resolves 10.0.0 and System.Text.Json's compile asset is still the framework placeholder on net9.0 and net10.0, so the KTSU0006 pins hold. The new test writes 60,000 characters in one burst and exits, 100 times, and asserts each run returns all of it. It fails on the first run with 1.5.0. Fixes #127 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01TJeQu4i8WTCDpvC4TN4Rjw
|
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.



Fixes #127
Before
ktsu.RunCommand1.5.0 stopped reading when the process exited, then did one final read. Anything still in the pipe after that read was dropped. A few percent of git outputs over ~8 KiB came back cut at 8,192 characters, soPatch(),Log(),Status()andDiff()sometimes returned partial results with no error.After
ktsu.RunCommand1.5.0 → 1.9.5. 1.8.0+ reads to EOF (Read each output stream to end of stream, not just until exit RunCommand#87).ktsu.Semantics.Paths/ktsu.Semantics.Strings3.0.1 → 5.11.2. RunCommand 1.9.x requires them; otherwise restore fails with NU1109.KTSU0006 /
VersionOverridecheck (per CLAUDE.md)I compared
project.assets.jsonbefore and after the bump:Microsoft.Bcl.AsyncInterfaces, which is no longer resolved.Testably.Abstractions.FileSystem.Interfacestill resolves 10.0.0, so the existingVersionOverridestill matches whatktsu.Essentials2.0.0 pins.System.Text.Jsonstill resolves 9.0.13 with thelib/net9.0/_._placeholder as its compile asset on both net9.0 and net10.0. The framework still wins.Test
CapturesAllOutputWrittenJustBeforeTheProcessExitsAsyncwrites 60,000 characters in one burst and exits immediately. It does this 100 times and asserts that every run returns all of the output, byte for byte. With RunCommand 1.5.0 it fails on run 0. With 1.9.5 it passes. On Windows it usespowershell, following the platform switch the neighbouring environment test uses.Full suite: 765/765 pass.
Not included
The issue's optional hardening, a hunk-count check in
GitPatchParser, is left for a separate change so this PR stays a dependency fix.🤖 Generated with Claude Code
https://claude.ai/code/session_01TJeQu4i8WTCDpvC4TN4Rjw
Generated by Claude Code