Skip to content

chore: release main#175

Open
r6e-release-please[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main
Open

chore: release main#175
r6e-release-please[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main

Conversation

@r6e-release-please

@r6e-release-please r6e-release-please Bot commented May 15, 2026

Copy link
Copy Markdown

🤖 I have created a release beep boop

paksmith-bench: 0.0.1

Dependencies

  • The following workspace dependencies were updated
    • dev-dependencies
      • paksmith-core bumped from 0.1 to 0.2.0
      • paksmith-fixture-gen bumped from 0.0.0 to 0.0.1
0.2.0

0.2.0 (2026-06-19)

⚠ BREAKING CHANGES

  • export: add FormatHandler trait + class-name dispatch (#467)

Features

  • asset: add Usmap::from_path constructor (#409) (e03f954)
  • asset: close Phase 2a audit gaps — Asset enum + FName resolution + docs (#202) (fb5b68b)
  • asset: wire property iterator into Package + reshape per-export Serialize (#283) (f80175a)
  • cli: add --mappings flag for unversioned asset inspection (#334) (ea5c8e8)
  • cli: add extract subcommand (Phase 4a) (#586) (d45904b)
  • cli: add inspect selection, schema_version, and table view (Phase 4b) (#587) (afecd97)
  • cli: add inspect subcommand emitting Package JSON (#193) (b2f3c9c)
  • cli: add search command (Phase 4c, completes Phase 4) (#588) (97c7600)
  • export: add FormatHandler trait + class-name dispatch (#467) (996d780)

Bug Fixes

  • asset: wire-format correctness corrections vs CUE4Parse (#224) (804bcb5)
  • release: revert phantom 0.2.0 version bump back to 0.1.0 (#475) (054d418)

Performance Improvements

  • cli: buffer paksmith inspect stdout to collapse per-value syscalls (#427) (51deaca)

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • paksmith-core bumped from 0.1 to 0.2.0
0.2.0

0.2.0 (2026-06-19)

⚠ BREAKING CHANGES

  • export: add FormatHandler trait + class-name dispatch (#467)

Features

  • asset: add .uexp companion stitching to Package::read_from (#316) (656f803)
  • asset: add Asset::DataTable variant + DataTable error variants (#497) (3f20ad8)
  • asset: add core readers — PropertyTag + primitives + FText + iterator (#279) (cfd0e6c)
  • asset: add fixture-gen with tagged properties + integration tests + proptest (#286) (e28f9c9)
  • asset: add FReferenceSkeleton reader + SkeletalMesh scaffolding (Phase 3h PR1) (#543) (9ba21dc)
  • asset: add FSkelMeshSection cooked render-section reader (Phase 3h PR3) (#546) (b92a867)
  • asset: add NameTable — FName pool with dual CityHash16 trailer (Phase 2a Task 6) (#162) (a70d976)
  • asset: add ObjectExport + ExportTable for UE 4.21–UE 5.x (Phase 2a Task 8) (#176) (26c9062)
  • asset: add ObjectImport + ImportTable for UE 4.21–UE 5.x (Phase 2a Task 7) (#170) (f175952)
  • asset: add Package::read_from orchestrator + AssetContext (#182) (a1f53cf)
  • asset: add PackageSummary — FPackageFileSummary orchestrator + cooked-only enforcement (Phase 2a Task 9) (#177) (442071c)
  • asset: add phase 2b foundation — error variants + property/ submodule (#274) (d0d5b8a)
  • asset: add PropertyBag::{as_tree, is_tree, iter_properties} helpers (#407) (a9011be)
  • asset: add PropertyBag::Opaque + MAX_PROPERTY_DEPTH (Phase 2a Task 10) (#178) (ba40798)
  • asset: add Usmap::from_path constructor (#409) (e03f954)
  • asset: close Phase 2a audit gaps — Asset enum + FName resolution + docs (#202) (fb5b68b)
  • asset: decode bVariableBonesPerVertex skin weights (Phase 3h) (#572) (92f41e3)
  • asset: decode inline-payload bulk-LOD skeletal geometry (#563) (#576) (52fba8d)
  • asset: iterate all inlined skeletal LODs (Phase 3h PR5b) (#552) (9ed4903)
  • asset: look up .uexp and detect .ubulk companion files in read_from_pak (#317) (f4825c0)
  • asset: parse inlined skeletal LOD-0 streamed buffers (Phase 3h PR5a) (#551) (41dc5cd)
  • asset: parse non-inlined (bulk) skeletal LODs (Phase 3h PR5c) (#553) (c911035)
  • asset: parse UStaticMesh render-data geometry (Phase 3g) (#541) (d060587)
  • asset: parse UStaticMesh through the Deserialize-level fields (3g1) (#539) (1940594)
  • asset: render-data error scaffolding + tangent decoders (3g) (#540) (dd631ac)
  • asset: support non-empty FSkinWeightProfilesData (skip via BuffersSize seek) (#573) (30dcbbf)
  • asset: top-level re-exports + Deserialize for round-trippable types (#410) (519aee7)
  • asset: wire BulkDataResolver into Package::read_from_pak (#484) (6a9c383)
  • asset: wire cooked FStaticLODModel LOD-0 into USkeletalMesh (Phase 3h PR4) (#547) (c0e287e)
  • asset: wire per-export bulk records into Package for lazy resolution (3e-3b) (#509) (55b8efe)
  • asset: wire property iterator into Package + reshape per-export Serialize (#283) (f80175a)
  • asset: wire USkeletalMesh dispatch + parse segment-2 prefix (Phase 3h PR2) (#544) (f5a4e9c)
  • audio: consume USoundWave DummyCompressionName (3f) (#528) (370a1bd)
  • audio: parse USoundWave non-cooked RawData path (#532) (3ba5070)
  • audio: parse USoundWave non-streaming platform data (3f-3) (#529) (5e17839)
  • audio: parse USoundWave streaming platform data (3f-4) (#530) (a6ada8b)
  • audio: route USoundWave to a typed reader (3f-1) (#526) (f898c93)
  • audio: USoundWave Flags/bCooked + bStreaming resolution (3f-2) (#527) (461d09b)
  • audio: USoundWave streaming-flip retry (3f-5) (#531) (bf61d4b)
  • bulk-data: add BulkDataFlags bitfield wrapper (3b Task 2) (#478) (25a3ab6)
  • bulk-data: add BulkDataResolver with tier dispatch + zlib decompression (#483) (e99e110)
  • bulk-data: add FByteBulkData::read_from wire-format parser (#480) (021a5de)
  • bulk-data: widen BulkData stub to fields-bearing payload (#481) (d218867)
  • cli: add --mappings flag for unversioned asset inspection (#334) (ea5c8e8)
  • cli: add extract subcommand (Phase 4a) (#586) (d45904b)
  • core: add PakReader::from_reader + from_bytes entry points (#254) (feea191)
  • data-table: read_from parser + DataTable class-name dispatch (#498) (4187d7a)
  • error: add ArrayOfStructHeaderMissing fault + VER_UE4_INNER_ARRAY_TAG_INFO (#336) (3e674cf)
  • error: add AssetParseFault + AssetWireField variants for extended properties (#304) (23f5591)
  • error: add bulk-data fault variants + caps + BulkDataTier (#476) (0bd18ea)
  • error: add MappingsParseFault + replace UnversionedPropertiesUnsupported (#326) (98dd3e9)
  • error: add MissingCompanionFile + CompanionFileKind for companion-file parsing (#314) (b164220)
  • error: add typed error variants for container property parsing (#293) (948f9c9)
  • error: use precise field tags for FPropertyTag boolVal/has_guid/guid bytes (#290) (dc5181c)
  • export: add FormatHandler trait + class-name dispatch (#467) (996d780)
  • export: add GltfSkeletalMeshHandler for skinned glTF (Phase 3h PR6) (#555) (753552e)
  • export: add OggHandler for USoundWave Ogg-Vorbis passthrough (#533) (81f5e0d)
  • export: add UStaticMesh glTF (.glb) export handler (Phase 3g2) (#542) (e556e8c)
  • export: add WavHandler for USoundWave PCM/ADPCM passthrough (#534) (12b801b)
  • export: DataTableCsvHandler + register both handlers (CSV-first) (#500) (67a8f9b)
  • export: DataTableJsonHandler emits Asset::DataTable as JSON (#499) (e115439)
  • export: decode IMA/DVI ADPCM to PCM in WavHandler (#535) (5fade9f)
  • export: decode Microsoft ADPCM to PCM in WavHandler (#536) (b8c2875)
  • export: decode Ogg-Vorbis to PCM in VorbisHandler (#537) (39c41fd)
  • export: make PNG texture-export compression configurable (#581) (e973b41)
  • export: surface undecoded audio codecs via RawSoundHandler (#538) (1f40c39)
  • fixture-gen: synthetic UE 4.27 uasset + unreal_asset cross-validation (#185) (0ffd20e)
  • fixture: add split-asset fixture with unreal_asset oracle cross-validation (#318) (1ace391)
  • mappings: add Usmap parser with None/ZStd/Brotli compression support (#327) (2eee26a)
  • mesh: decode FStaticMeshRenderData per-LOD distance-field volume (#568) (f112421)
  • mesh: decode pre-UE4.23 legacy static-mesh LODs (UNVERIFIED) (#570) (53ec92e)
  • mesh: export UE5 16-bit skin weights as glTF UNSIGNED_SHORT (#567) (3c9762b)
  • mesh: export UE5.0-5.3 static meshes (geometry-only classic LOD) (#566) (5a455be)
  • mesh: resolve non-inlined static-mesh LOD geometry from .ubulk (#569) (34b82c4)
  • property: add Array/Struct/Map/Set variants + MapEntry (#294) (1f4a6a5)
  • property: add FUnversionedHeader and read_unversioned_properties (#330) (b68b7b6)
  • property: add read_array_value for ArrayProperty decoding (#296) (5ced66e)
  • property: add read_element_value for primitive container elements (#295) (e3da5fd)
  • property: add read_map_value + read_set_value for container decoding (#298) (48f232f)
  • property: add read_soft_path_payload and direct Soft/Object property reads (#306) (e5210d1)
  • property: add read_struct_value for StructProperty decoding (#297) (4c9a25d)
  • property: add SoftObjectPath, SoftClassPath, Object variants (#305) (5fc6fcd)
  • property: decode Array<Struct> via inner-array-tag-info header (#340) (85d511f)
  • property: decode ByteProperty and EnumProperty as collection elements (#307) (d798770)
  • property: decode Map<*, Struct> and Map<Struct, *> entries via collection-level bail (#341) (26916e6)
  • property: decode Set<Struct> elements via collection-level bail (#343) (43972db)
  • property: decode Soft*/ObjectProperty as collection elements + finalize is_handled_element_type (#309) (3a08bcd)
  • property: decode TextProperty as collection element with Unknown-history guard (#308) (673e5e6)
  • property: dispatch registered typed structs in read_container_value (#495) (5a2e808)
  • property: resolve ObjectProperty package index to name (#315) (da3298b)
  • property: wire read_container_value into read_properties (#299) (84c8e63)
  • structs: add FBox + FBox2D decoders composing nested vectors (#492) (54a00fe)
  • structs: add FBoxSphereBounds binary decoder (unregistered building block) (#494) (3c47a76)
  • structs: add FColor + FLinearColor decoders (#491) (f11bc33)
  • structs: add FQuat decoder + collapse per-struct EOF variants (#490) (144ddcc)
  • structs: add FRotator decoder + lift LWC helpers to mod.rs (#489) (1b941e0)
  • structs: add FTransform binary decoder (unregistered building block) (#493) (1208c76)
  • structs: add FVector decoder with UE4 f32 / UE5 LWC f64 dispatch (#487) (ebd0ac1)
  • structs: add FVector2D + FVector4 decoders sharing LWC dispatch (#488) (967b286)
  • structs: add TypedStructValue enum + decoder registry skeleton (#486) (aaa771e)
  • testing: add minimal UE 4.27 uasset builder under __test_utils (Phase 2a Task 10b) (#179) (9ed788b)
  • texture: add Asset::Texture2D variant, segment-1 reader, dispatch (#502) (eaf4b13)
  • texture: add ASTC + ETC decoders via texture2ddecoder (3e-6) (#512) (3375eab)
  • texture: add BC1-BC7 block decoders via bcdec_rs (3e-5) (#511) (6e97fef)
  • texture: add HDR decoders (BC6H + FloatRGB/RGBA, ACES tone-map) (3e-7) (#513) (3e1a31b)
  • texture: add PngHandler exporting UTexture2D to PNG (3e-8) (#514) (3b10dd3)
  • texture: detect virtual textures via the bIsVirtual gate (3e-VT-a) (#521) (cc662bb)
  • texture: EPixelFormat enum + uncompressed RGBA8 decoders (3e-4) (#510) (3f3baf9)
  • texture: finish FTexturePlatformData header — OptData/CPUCopy/mips (3e-2b) (#505) (91ffd12)
  • texture: flatten UE5 virtual textures to PNG (3e-VT-c2) (#525) (140f6c1)
  • texture: parse FTexturePlatformData header start — prefix, dims, format (3e-2a) (#504) (c921e75)
  • texture: parse FVirtualTextureBuiltData structure (3e-VT-b1) (#522) (988520e)
  • texture: parse FVirtualTextureDataChunk chunks + bulk routing (3e-VT-b2) (#523) (8a00f54)
  • texture: port virtual-texture GetTileData tile-address resolution (#524) (0a17fc2)
  • texture: read FTexture2DMipMap per-mip records into bulk tuple (3e-3a) (#506) (480f1d4)

Bug Fixes

  • asset: cap .usmap schema property expansion to bound DoS heap (#398) (f85bf81)
  • asset: cap ArrayProperty nesting depth in read_mapped_type (#446) (85e7226)
  • asset: case-insensitive .uasset suffix in derive_companion_path (#395) (8ec53ae)
  • asset: close Phase 2a second-pass audit findings (#207) (ffabad4)
  • asset: correct .usmap wire-format reads against CUE4Parse spec (#389) (f967856)
  • asset: correct FEditorObjectVersion culture-invariant gate to 32 (off-by-one) (#545) (f3c9e41)
  • asset: drive unversioned property loop by wire-declared schema_index (#393) (70fe2f6)
  • asset: drop BoundsExceeded from recoverable-element predicate (#400) (03bd919)
  • asset: gate FText bHasCultureInvariantString on FEditorObjectVersion + stabilize AssetContext (#396) (b6cb7da)
  • asset: gate texture UE4.20 wire diffs on is_ue4_20_or_later (not a floor raise) (#508) (469030e)
  • asset: mark PropertyTag/Property string fields pub(crate) + add accessors (#406) (e981dd8)
  • asset: mask licensee-version high bit in EngineVersion display (#234) (a34a850)
  • asset: persist .usmap mappings on Package so context() returns them (#394) (6c7f800)
  • asset: read FText bHasCultureInvariantString as u32 (#388) (85b8b51)
  • asset: reject Array<Struct> inline header with wrong type_name (#401) (f94f839)
  • asset: treat Array<Struct> inner_header.size as TOTAL per CUE4Parse spec (#390) (3eab9bc)
  • asset: typed NameIndexOutOfRange variant for usmap name lookups (#423) (a2c3d34)
  • asset: typed-reader failure degrades export instead of aborting package (#503) (1498cc1)
  • asset: unversioned inheritance offset (child-first concat per CUE4Parse) (#412) (74999a6)
  • asset: unversioned zero_mask_idx drift on sparse-schema iteration (#415) (10b860c)
  • asset: usmap parser residual DoS amplification (#397 A+B+C) (#416) (d296dd7)
  • asset: validate usmap prop_count against serial_count + max(schema_index) (#421) (2837bdd)
  • asset: version-gate searchable_names_offset + preload_dependency_* in PackageSummary (#230) (9ee2b34)
  • asset: wire-format correctness corrections vs CUE4Parse (#224) (804bcb5)
  • core: add MAX_FLAT_INDEX_ENTRIES hard cap (v3-v9 #128 follow-up) (#226) (70a4de5)
  • core: add PHI/FDI cross-validation at open time (#201) (39e4876)
  • core: address Phase 3 correctness-audit findings (B1-B5) (#579) (019dbba)
  • core: cap encoded compressed_size symmetrically for multi-block (#225) (9e8f342)
  • core: cap single-block encoded compressed_size (#187) (c3d7993)
  • core: cap v10+ main-index allocation with MAX_INDEX_SIZE (#180) (0cd7891)
  • core: footer + FName + allocation discipline hardening (#190) (7e77c51)
  • core: pre-validate v10+ FDI/PHI region bounds against file_size (#183) (4977aa5)
  • core: reject out-of-order compression blocks (#184) (e019394)
  • error: mark PaksmithError #[non_exhaustive] (#404) (053c86d)
  • pak: tighten ENTRY_MIN_RECORD_BYTES to 58 (was 54) (#403) (a6d812c)
  • release: revert phantom 0.2.0 version bump back to 0.1.0 (#475) (054d418)
  • security: harden phase 3 decode against allocation and cpu-time dos (#583) (8915e69)
  • security: parser hardening — embedded NULs + symlink awareness (#239) (08c4a33)
  • test: gate property/container proptests on __test_utils feature (#435) (486ce14)
  • texture: decode UTexture/UTexture2D segment-2 entry + platform-data key (#507) (12a7f58)

Performance Improvements

  • asset: Arc-wrap Package's name/import/export tables (#433) (e04e20f)
  • asset: cache flattened-property list per class in Usmap (#444) (78064ea)
  • asset: eliminate per-export Vec alloc + memcpy in read_payloads (#426) (a2ba53b)
  • asset: propagate Arc<str> from FName through PropertyTag/PropertyValue (#449) (99f74a9)
  • asset: reorder property dispatch match arms by real-world frequency (#429) (64a96c5)
  • asset: skip Unknown property bytes via io::copy + io::sink (#428) (000b258)
  • asset: skip_asset_fstring helper for read-and-discard FString sites (#431) (3ba38b2)
  • export: fold mesh finiteness preflight + pre-size audio reassembly (#582) (f783514)
  • pak: hoist per-block compressed/block_out Vecs out of stream_zlib_to loop (#430) (e84afae)
paksmith-core-tests: 0.0.1

Dependencies

  • The following workspace dependencies were updated
    • dev-dependencies
      • paksmith-core bumped from 0.1 to 0.2.0
paksmith-fixture-gen: 0.0.1

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • paksmith-core bumped from 0.1 to 0.2.0
0.2.0

0.2.0 (2026-06-19)

⚠ BREAKING CHANGES

  • export: add FormatHandler trait + class-name dispatch (#467)

Features

  • export: add FormatHandler trait + class-name dispatch (#467) (996d780)

Bug Fixes

  • release: revert phantom 0.2.0 version bump back to 0.1.0 (#475) (054d418)

This PR was generated with Release Please. See documentation.

@r6e-release-please r6e-release-please Bot force-pushed the release-please--branches--main branch 16 times, most recently from 8d0f9aa to a603b9c Compare May 16, 2026 19:42
r6e added a commit that referenced this pull request May 17, 2026
The release-please PR (#175) was failing the Spell check job
because the CHANGELOG.md entries it generates contain short
SHA-1 commit prefixes that collide with English-word heuristics
in crate-ci/typos's default dictionary:

  error: `ba` should be `by`, `be`
   ╭▸ ./crates/paksmith-core/CHANGELOG.md:13:133
   │
13 │ … Task 10) ([#178](.../issues/178)) ([ba40798](.../commit/ba40798…
   ╰╴

`ba40798` is a valid git short-hash, not a typo. The failure
recurs on every release-please regeneration because the CHANGELOG
grows monotonically — any hex prefix starting with a sequence
typos recognizes as a near-English word would re-trigger.

Fix: add `CHANGELOG.md` and `**/CHANGELOG.md` to typos'
`[files] extend-exclude`. Auto-generated content shouldn't be
spell-checked — the underlying commit messages are already
validated at PR-title time, and CHANGELOGs are derived
mechanically from those.

Per-file regex exclusions (`extend-ignore-re` for hash-shaped
strings) would be more surgical but also more fragile (release-
please could change link format). Excluding the whole file is
cleaner and unblocks the release pipeline immediately.

The companion Title-validator failure on #175 is unrelated and
should resolve when release-please regenerates the PR after this
fix lands on main — the current PR title (`chore: release main`)
already passes the validator's lowercase-first-letter rule;
earlier auto-generated titles likely didn't.

Verified locally: `typos .` from repo root exits clean with the
new config.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@r6e-release-please r6e-release-please Bot force-pushed the release-please--branches--main branch 11 times, most recently from 1e21908 to f3f5ec2 Compare May 18, 2026 00:55
@r6e-release-please r6e-release-please Bot force-pushed the release-please--branches--main branch 28 times, most recently from c70523f to e9d2dc8 Compare May 23, 2026 03:05
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.

0 participants