Repository navigation
Remove ImageSharp and Chorizite.Core while preserving image and PAK compatibility - #215
Merged
Merged
Conversation
ParityPeerHub started the in-process hub on the thread pool and went straight on to subscribe the arm and connect ParityPeerClient. When a client's first connect beat the hub's bind, the transport asked for a hub to be started; the parity client's startHub throws by design, so the transport stopped for good and the scenario timed out after 5 s waiting for a handshake that could never happen. On macOS this lost the race for most of the ten Peer* scenarios. The hub now probes its own endpoint until it accepts a connection (or fails, or 5 s pass) before anything subscribes. Claude-Session: https://claude.ai/code/session_014hCYK7XAeS88JWnMdEqgyb
macOS limits a Unix socket path to 104 characters, and its temp folder (/var/folders/.../T/) already takes about 50. The parity arms' data folder (acdream-parity/<arm>-<32 hex>/plugin-peers/hub.sock) and the launcher control tests' pipe names (CoreFxPipe_launcher-test-<32 hex>) went past it, so UnixDomainSocketEndPoint threw before any test logic ran. Both now use 12 hex characters and a short prefix. The real paths are unaffected: the peer hub lives under the cache folder and the launcher's pipe name is the caller's. Claude-Session: https://claude.ai/code/session_014hCYK7XAeS88JWnMdEqgyb
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.
Remove the existing ImageSharp dependency chain so normal builds no longer require either audit-warning suppression or an image-library license key. Image loading uses StbImageSharp, PNG writing uses StbImageWriteSharp, and the CLI tools preserve cropping, scaling, compositing and image comparisons. Replace the two Chorizite.Core mesh primitives with local equivalents while preserving the existing PAK layout and texture-format values. Keep Chorizite.DatReaderWriter. Update all tracked platform dependency locks, README, third-party notices and the client test plan. Validation: - Release solution builds with zero warnings and errors, with auditing enabled. - 21,478 portable tests and four installed-DAT checks passed. - Ten before/after CLI image outputs have identical decoded pixels; a pre-change mesh record round-trips byte-for-byte. - NuGet audit reports no known vulnerable packages across 43 projects. - Local client entered the world with MossTank; the maintainer confirmed the visual checks. - Private tests remain blocked by 25 compilation errors reproduced identically on unchanged main. Linux/macOS execution awaits this CI run. CI prerequisites: includes David Smith's unchanged PR #205 commits to fix macOS socket path limits and wait for the test hub to listen. Also makes both macOS CI jobs fail on native build/test errors, and replaces a one-second wall-clock assumption in the peer-cast test with bounds derived from actual elapsed time. These test and workflow changes do not alter client behavior. The affected local checks passed: 243 host-parity tests, 314 launcher tests and three workflow contract tests.
Further failures exposed by strict CI are fixed: retirement-ordering tests now use the existing controlled frame clock, and Intel macOS plugin validation binds the inode64 file-status symbol matching its structure layout. Added native Unix file/directory/symlink coverage and tightened the FIFO rejection assertion. Reference: https://github.com/apple-oss-distributions/xnu/blob/main/bsd/sys/cdefs.h . Release build remains warning-free; 19 retirement tests and 865 portable Launcher.Core tests pass locally. Native macOS confirmation is delegated to CI.