Skip to content

v0.8.0-rc1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Oct 16:48
· 30 commits to main since this release

This is a release candidate: an early-testing build. Try it, and report what breaks - problems found here are problems not shipped to everyone. UI/UX and copy work on this line is still in progress.

FerriteLib is a prerequisite library mod for Coahuilite mods that use its UI kit. It adds no game content of any kind - no Defs, no patches, no textures - and its entire payload is 1.6/Assemblies/FerriteLib.UiKit.dll.

Installing

  1. Unzip this archive directly into RimWorld/Mods/. It contains a top-level FerriteLib folder, so the result is Mods/FerriteLib/....
  2. Install the mod that needs it (currently Universal Squeaker) from its own releases page.
  3. Enable both in the mod list. RimWorld will warn if the consumer is enabled without this one.

Do not copy FerriteLib.UiKit.dll into another mod's folder. Exactly one carrier of that assembly may be installed; two of them bind by load order through the game's single global AssemblyResolve and the copy that loses has no way to find out.

Version identity

Package id coahuilite.ferritelib
Release v0.8.0-rc1
Game RimWorld 1.6
Built from commit a0b5b983c3c1
ZIP asset SHA-256 A49ED2BE0C98B4C0FCADB40004538C997F5D66ADC6C869BCA5A6B16A4E7C2660

The SHA-256 above identifies the downloaded FerriteLib-v0.8.0-rc1.zip archive, not the DLL inside it. The extracted version.txt separately records the payload DLL's SHA-256. The consumer repository links to this release instead of shipping another copy. The full source of this exact build is https://github.com/Coahuilite/FerriteLib at tag v0.8.0-rc1 (commit a0b5b983c3c1); the license terms travel inside the package as LICENSE.

Changes since v0.7.0-rc1

  • a0b5b98 fix: preserve runtime anonymity checks without identity environment
  • c3c3070 release: align 0.8 RC status and publication contract
  • 7eb8073 docs: point binding notification references at registry
  • f4a0691 fix: complete owned output release without corrupting sealed definitions
  • 62b582e refactor: unify help references and own option output lifetime
  • 45d102a docs: close explicit choice help migration and publication evidence
  • 18004ef fix: enforce borrowed execution and forwarded binding ownership contracts
  • 2c81146 docs: align stable retirement with approved post-publication major rule
  • d07d398 refactor: complete explicit native authors typed layout and full capability migration
  • 555d45e refactor: unify declarations capabilities and owner-scoped native execution
  • 4cba388 refactor: extract complete retained core and explicit execution vertical
  • fc010bd Seal readonly resolved property and adjacent collection views
  • 564f78b Close neutral page dependency boundary and record real source integrations
  • d7ecfb7 Close supported author dependencies and align confirmed 0.8 contracts
  • e4296b2 Add owned current-target keyed item bindings and immediate release
  • e0bf4fa Open finite per-metric appearance declarations and removal
  • 1147f1a Close editor end and composite takeover request boundaries
  • 79825a5 Capture resolved retained display facts and document RU3 recovery contracts
  • d3d0cde Separate failed branch recovery edges and retain safe default control paint
  • 2121f99 Implement managed reactive faults, owner recovery and view demand
  • 93e2a68 Align shared-column migration summary with RU2 results
  • 79c86c9 Preserve Verse stub copy surface for transitive font dependency
  • ae83fcf Complete RU2 wrapper inputs legacy conditions and author contracts
  • e5afb87 Implement scoped measure and local arrangement result reuse
  • a8275f4 Fix reactive list writes tracking their output
  • c3cff4c Complete RU1 bounded reads, current response inputs and author migration contracts
  • 355a795 Implement explicit reactive object and collection sources with real options and Repeat integration
  • 4553d13 fix: read live command qualification and prove default reactive pages
  • dd7ab63 fix: preserve legacy boundaries and schedule all reactive evaluations
  • 581ed76 feat: connect neutral reactive operations to host presentation lifetimes
  • d0e113b docs: checkpoint accepted reactive and neutral specification
  • 904404b fix(ui): follow committed background definitions and surface supplier failures
  • 1186077 docs(ui): distinguish aspect fallback from retained natural image measure
  • 7640bfe feat(ui): add shared image placement and standard window backgrounds
  • 0528ebd fix(ui): obstruct lower operations with unavailable configured controls
  • 9eece46 fix(ui): map child input to owning layer without merging identities
  • 1e5338e fix(ui): arbitrate current content layers before native input
  • 5ad210b fix(ui): name Metric Token correctly in missing-field diagnostic
  • 559b621 feat(ui): replace legacy theme bag with neutral semantic palette
  • c93c8f6 fix(ui): diagnose Stepper internal width without changing input geometry
  • a2fe62e Preserve complete runtime observation facts and explicit scope candidates
  • cd19fe6 Complete shared host integration and bounded runtime observation
  • fc8a8ee Complete immutable definition assembly and preserve live host appearance on updates
  • 80c5765 Resolve written appearance intent per property and complete labelled fields
  • c5ffea4 Move production containers and label groups onto neutral layout rules
  • 7e91963 Migrate editable chart points and descriptive wrappers to shared contracts
  • 82ba428 Separate explicit editor recovery attempts from automatic publication
  • e500006 Preserve actual editor publication history across Live return and failed takeover
  • 710305c Implement shared editing and numeric composition candidates
  • a29f095 Dispatch established boolean and tree requests before pure paint
  • d1be164 Keep popup ownership per instance and paint shared capture facts
  • 426f6e4 Name pointer retarget conditions by domain
  • ddd2388 Implement shared boolean selection expansion and migrate default wrappers
  • c461b2f Release consumed native pointer captures using raw event phase
  • d1323f5 Preserve another node capture when native ownership changes
  • 8c4cd17 Keep aborted hit passes atomic and suspend unreliable pointer input
  • 5acc9b9 Implement 0.8 S0/S1 shared properties and pointer behaviors
  • bc1f200 docs: streamline shared behavior evidence requirements
  • 6ef82d7 docs: correct pure-core acceptance case reference
  • 715bb9d docs: define 0.8 behavioral acceptance and test migration baseline
  • fe457ff docs: checkpoint authorized 0.7 archive and 0.8 design consolidation

Status

Supported stable contracts protect source, compiled consumers, XML vocabulary, behavior and legal use conditions within the same game/adapter target. After publication, breaking one requires a major release. Deprecation also retains the old contract through two complete subsequent published minors; that minimum does not permit a breaking minor removal, and a 1.x transition cannot shorten it. Experimental surface changes require explicit migration. Consumers still assert their tested API range in code, because RimWorld's modDependencies cannot express a version.

This build targets RimWorld 1.6. UI/UX integration and player-facing acceptance continue in the next stage. FerriteLib adds nothing to saves and stores no settings of its own; keep it installed while any consumer mod (currently Universal Squeaker) depends on it.

Testing status: current 0.8 technical evidence covers the complete engine-free core, retained controls and containers, editing/recovery protocols, public author paths and fixed-source consumer integration. This workflow runs the existing verification gates, including the Dev-only instrument, before building this fresh Release-configuration archive. Automated protocol/stub and source-integration results do not establish complete native gameplay acceptance. Headless game checks reported errors that the user accepted as non-blocking for this RC transition; they were not error-free. Native 1.6 font/IME/window/input/rendering acceptance and UI/UX remain open. A compiled/native 1.7 adapter is not delivered. Earlier 0.7 native checks do not accept this 0.8 package.