Repository navigation
v0.7.0-rc1
Pre-releaseThis 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
- Unzip this archive directly into
RimWorld/Mods/. It contains a top-levelFerriteLibfolder, so the result isMods/FerriteLib/.... - Install the mod that needs it (currently Universal Squeaker) from its own releases page.
- 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.7.0-rc1 |
| Game | RimWorld 1.6 |
| Built from commit | 6a628c6c3cb2 |
| Asset SHA-256 | C4390E92414B6FDA47C53A2F07B37EB5FA4FD606F04D033704BD6AE3DC8C42C7 |
The consumer repository links to this release instead of shipping its own copy, so the SHA-256 above is the one true digest of FerriteLib.UiKit.dll for this version. The full source of this exact build is https://github.com/Coahuilite/FerriteLib at tag v0.7.0-rc1 (commit 6a628c6c3cb2); the license terms travel inside the package as LICENSE.
Changes since v0.4.0-rc1
- 6a628c6 Merge branch '0.7.x' into main for v0.7.0-rc1
- 76575e0 release: state the native-Dev acceptance versus the CI Release build in the RC notes
- 5080793 docs(memory): record the RC publication decision, identity acceptance and exemption boundary
- cc66168 release: state the RC scope and the publication state for the first 0.7 trial
- 82367d6 privacy: accept the exact worker@localhost automation placeholder
- afcbecf docs(archive): drop the stray trailing blank line introduced by the compaction
- bdd7a31 docs(memory): record the accepted 2026-10-09 in-game pass and compact the pending-pass wording
- bce057d docs(memory): record the accepted interaction slices and compact the ledger
- d5af4d8 Let a shell own its cancel policy and state the two keys apart
- 1d86ff8 Correct the FL-IC2 public-surface count in the 0.7 contract
- 84d1504 Carry an edit through to one commit and answer Cancel one layer at a time
- 11f1603 Correct FL-IC1 wheel sign, end ownership and lane accounting
- 8dad3d5 Route popup, chart and menu input through one receive-eligibility rule
- bb64c01 docs(memory): separate standing instructions from incident lessons
- 4d67b70 chore: align full-history pre-push privacy gates
- 3399abb Support consumer production-path harness type loading
- 8ec57ee Size scroll viewports from measured visible rows
- 069195d Fix developer geometry coverage and completed shell capture
- 5ed3dfd Clarify held package and appearance source status
- c080855 Add selector appearance and independent geometry outlines
- 0181268 fix: expose unexpected reload diagnostic publication failures
- 0aca59e docs: record frozen playtest and concise development handoff
- b31e2c3 test: provide ModSettings base for production consumer diagnostics
- c1b38d1 Add shared image and tree row composition for playtest checkpoint
- ab95c32 Checkpoint appearance, geometry diagnostics and typed choice controls
- 0b744f5 docs(memory): the frozen carrier's identity cannot live in a file, and the rules that follow (0.7.x, T32)
- e70ed3a docs(memory): the 2026-09-25 delivery, with the carrier hash quoted against its inputs (0.7.x, T32)
- 4d66cf7 fix(harness): the two halves of the width convention are compared, and the injection count is corrected (0.7.x, T31)
- 1d53ae7 feat(evidence): a log carries its own identity, in the consumer's footer shape (0.7.x, T31)
- 20fce1f docs(0.7): the NGS impact report's second entry line, in the line README
- 3888aaf docs(consumers): give the NGS 0.7.0 impact report a delivery channel
- 1236567 docs(0.7): NGS 0.7.0 消费者影响报告(只读取证、UNRUN 已标注)+ 交付前身份复核
- 41ad08d docs(memory): the harness text convention, and why a fixture never takes its size from the instrument (0.7.x, T29)
- ebb1a76 fix(harness): the wrap lane's fixture takes its size from its claim, and gains the negative control that can see a dead ruler (0.7.x, T29)
- 312f9b7 fix(harness): the Verse stub measures height by wrapping, not by a constant (0.7.x, T29)
- 1c05b0f docs(memory): 'derivable' means rebuildable, and only three of eleven cases have it by another name (0.7.x, task-19)
- eee6207 docs(memory): input records cover only what a log cannot derive (0.7.x, task-19)
- 1c2afb7 fix(tools): the driver carrier is recorded as an input, not only watched (0.7.x, task-19)
- e7f2215 fix(tools): M10 watches every payload a cross-repo run can damage (0.7.x, task-19)
- c6498d2 docs(memory): M11 - the log pins the generator's own identity (0.7.x, task-19)
- b5e3701 feat(tools): the log pins the generator's own identity, and every red says why it is one (0.7.x, task-19)
- d0ed64b docs(memory): the tracked mutation battery, and the consumer half's structural risk (0.7.x, task-15)
- 080ebb9 fix(tools): the battery names its two carriers, labels every outcome, and baselines the artifact (0.7.x, task-15)
- d1c0ef7 fix(tools): the battery's command scripts keep CRLF, because cmd.exe parses line endings (0.7.x, task-15)
- 967aa83 feat(tools): a tracked, self-testing mutation battery (0.7.x, task-15)
- d1b5796 docs(memory): the tier lane's blind spot, the LineChartWidget disposition, and the Mouse.IsOver difference (0.7.x, task-9)
- be5e2ef fix(verify): the covered lane measures its mechanism, the stub guard closes its sets (0.7.x, task-12)
- 1092e20 docs(memory): the task-2 guards, the carrier-writer correction, and the tier-reason gap (0.7.x)
- 90ebb6e fix(verify): gate 6's licence guard becomes self-contained and two-sided (0.7.x, task-2)
- 2873739 docs(0.7): no gate writes the compatibility carrier - correct two pre-isolation claims
- f56e675 test(contract): the stub tree's published paths and assembly names get a local guard (0.7.x, task-2)
- 247d621 fix(contract): the visual-core boundary guard rejects UiPopup too (0.7.x, task-2)
- 2f9b127 test(instrument): a lane drives the covered verdict, and gate 10 carries it (0.7.x, task-2)
- 21f0cbe fix(verify): gate 10's floor measures a quantity that can move (0.7.x, task-2)
- 545fe01 docs(0.7): correct the UiChartPointChange tier citation, and record the LineChartWidget disposition
- d01664a docs(0.7): tier-reason review, the dependable-surface template, and the 2026-09-24 boundaries
- 2e9c94e Align library memory with the next-stage development handbook
- 07f3c40 Make Dev diagnostics reproducible with isolated build artifacts
- a9d9732 docs(memory): a handoff signpost - the files, the library-held dev mode, and what is open
- 9938121 feat(verify): gate 10 - the dev instrument's half really runs, and it is proven to
- 807e014 feat(diagnostics): the development-only geometry instrument on the existing audit surface
- 06ff1c2 docs(memory): carrier identity as history, and why a tracked file must not pin it
- 553fc53 chore(pack): candidate-then-commit staging, plus carrier identity, transport and delivery-build memory
- e668344 docs(0.7): hash vs mtime, the --no-build freshness criterion, the S6-3 citation resolved, and a theming trap (0.7.x)
- 876750a fix(widgets): section/header's divider becomes declarable - Chrome=none (0.7.x, task-10)
- 490d4f0 feat(layout): Height=MatchContent, and an unknown scope name is attributed to its element (0.7.x, task-9)
- b05f58d docs(rules): no lane reads additions - the version-axis exemption needs no re-cut (0.7.x)
- a1a8bbd docs(rules): a public addition does not bump the minor on 0.7.x (maintainer ruling 2026-09-22)
- b997f3a docs(gates): classify hints by what they write - the harness hint writes too (0.7.x)
- b68b4f5 docs(gates): a red gate's retry hint is a build command, not a repair (0.7.x)
- d1f2c50 docs(agents): verify-local and the harness are both writers of the shared carrier (0.7.x)
- 5052440 docs(0.7): B1 follow-up - correct the live scoped-set enumeration, point the 0.5 record forward (0.7.x)
- e929fa1 fix(layout): SelectedKey joins the item-scope table - a row's answer, not the page's (0.7.x, B1)
- f105504 docs(agents): add the shared-payload rules and an evidence-discipline section
- 5ab35cc docs(memory): restore the dropped provenance marker on the archived MEMORY block
- 9c23e0d docs(memory): archive the pre-compaction TODO.md history, and restore a line commit 1 clipped
- 6db8ce8 docs(memory): reduce TODO.md to the current action surface (805 -> 302 lines)
- e9d5cd7 docs(memory): compact MEMORY.md to durable facts plus pointers (2313 -> 827 lines)
- db6dfc1 docs(memory): archive the pre-0.7 body of MEMORY.md into OBLIVIONIS verbatim
- bce1ba4 feat(0.7): typed UiOption display/value pairs on the dropdown, second attempt with the order proven
- 26c8ac0 feat(0.7): report binding element-type mismatches on the fail-soft channel (FL-23)
- b3957dc feat(0.7): button PayloadKey (G2) and Chrome=none/Auto height (G3); withdraw the UiOption pair attempt
- 3df7bf5 feat(0.7): P1-E batch 1 - WideHidden, WidthKey, SelectedKey, banner roles, and the overflow/saturation wording
- ad7aac1 docs(0.7): P1-E capability disposition table - one row per raised item, awaiting the batched ruling
- 26bace0 test(P1-B): mutation-proven dispositions for X-21 / FL-3 / FL-1 / FL-2, and FL-4 REJECTED with its citation
- 52f66bc docs(consumers): FL-8 migration section, FL-11 authoritative payload, FL-12 count corrected to seventeen (P1-A)
- c898a6b fix(scripts): name the sibling verification script in the carrier-lock diagnostic
- b98c683 fix(scripts): fail fast when the shared carrier is held, and record the build-identity finding (0.7.x)
- ee387f1 fix(layout): a container can declare Tab - the contract stops forbidding what the engine already does (0.7.x)
- 64af720 feat(help): element-level HelpKey, option help generalized to the dropdown, localized mode-row labels
- fcc6a18 feat(widgets): per-option hover help on input/mode-row, and a fresh CI payload build (0.7.x)
- d687032 feat(widgets): B7 - input/text-field, the identity-bearing string field (0.7.x addition)
- 88c32ad fix(widgets): B8 - a mode-row's Auto width stops measuring unpainted descriptions (0.7.x)
- d1e97e3 docs(0.7): the axis stays 0.7.0 through the consumer's first live pass, as coordinated in-flight development
- 2784c83 docs(memory): the stale PDB beside the carrier recurs after every gate run; carrier rebuilt at HEAD
- 33cd276 docs(0.7): consumer-doc drift fixed, CP-0 fallback scope stated precisely, and the sibling-consumer build-order lesson recorded
- d82a3ca docs(0.7): independent verification of Batch 1, the stale architecture map fixed, and one wrong sentence of mine corrected
- 95c3465 feat(layout)!: Batch 1 - placement vocabulary, density reach, tone/accent tightening (0.7.x)
- 427047d docs(0.7): all six Step-1 decisions settled; Batch 1 scope fixed
- 805d3d6 docs(0.7): Step-1 decision write-up - D1 approved, recommendations recorded for D2/D3/D4/D6/D7, CP-7 registered
- 81a9c95 docs(0.7): D5 resolved as (a); CP-4 closed; CP-6 unblocked with D6/D7 open
- 36ac03b docs(0.7): D5 sharpened - vocabulary and meaning in code, mapping and colour in data
- 8370cb9 docs(0.7): CP-4 revised - the role-move half is withdrawn, D5 and CP-6 registered
- b272095 feat(theme)!: two peer palettes with an unpainted constructor bag; the style types join the visual-core guard
- f5b62e2 docs(0.7): CP-1's amendment obligation also names the version-contract comment
- e8b7568 docs(0.7): the placement/alignment plan stays on the 0.7.x line - no minor move, the axis keeps 0.7.0
- 1e6515c docs(arch): the four questions, the complete gap inventory and three architecture probes; memory protocol repaired to four files
- c82eeaa docs(0.7): D - execution record, verification provenance with per-item mutation evidence, the 0.7.0 consumer onboarding with the measured dev artefact identity, TODO pointer closing the 0.6 follow-up, MEMORY durable entry
- 88095fb feat(theme): C - new UiTheme() is the vanilla-aligned yellow-accent default; DarkGold freezes the full 0.6 palette as explicit values, breaking the new() coupling; freeze lane written and green BEFORE the move, clone/isolation/two-window/role-resolution lanes added, provenance classes labeled
- 83a183c feat(authoring): B - the ordinary-settings recipe as compile-checked public-only harness fixture plus the author guide; eight lanes cover geometry-free authoring, shared binding both directions, paint/measure/structure invalidation, show/hide, narrow+scroll, and close/reopen subscription arithmetic
- 88f1c77 fix(bindings): A5 - a key registered as a value where options are required says so and names BindOptions; five direct cases plus the real host-creation path; lane fails on baseline
- c8fe06e fix(dropdown): A4 - exact bound value wins over the display-text fallback in two ordered passes; the plan's static-pairs case also exposed a null ValueN crash, fixed null-safe; lane fails on baseline
- e30af94 fix(contract): A2+A3 - Height is validated at creation (widgets, containers, reload candidates) and Cols/NarrowCols are refused as inert outside Wrap; lanes fail on the baseline and pass on the fix
- 21a81cd fix(layout): A1 - a Row Auto child with no measurable label joins the unsized distribution instead of the 1-unit stub; lanes prove both halves
- 8fe3026 chore(0.7): open the line at 0.7.0 on all three axes and record the supported contract before behavior changes
- 12d0dbb docs(memory): record the 0.6.x first push and its pre-push history rewrite, and pin the push discipline
- 2545346 docs(consumers): permanent consumer onboarding for 0.6.0 and record the R06-fixed package and zip
- a902da4 docs(0.6): disposition of the independent review R06-1..R06-7 and the two risk items
- 702eeab docs(verify): R06-F complete - reviewer probe all-signatures-gone, own defects for every fix, artefact attacks, demo package verified at 587bf160
- 5f8b0e1 docs(0.6): T5b-4 AFTER half - R06-1/R06-2 closed by the outside probe
- 8b3cded docs(verify): R06-F FL half at 7b62416 - reviewer probe all-signatures-gone, own defects, re-pack check (demo half pending)
- 1f77fb9 docs(0.6): T5b-4 reachability and reopen probe - R06-1/R06-2 reproduced before the fixes
- e0273e0 test(0.6): R06 risk 1 - pin the mid-pass manual Reload boundary and document it
- 75f2286 fix(0.6): R06-2 Attach consumes a pending file signal and resolves the newest valid content
- d24177d docs(0.6): record the R06 close-in-attach reproduction, guard and mutations
- 42847d7 fix(0.6): do not draw a page host an announcement handler already closed
- 5465863 docs(verify): R06-1..R06-7 independent reproduction with own fixtures at the pre-fix baseline
- d6b1149 docs(0.6): record the final integrated pass and reconcile the package label with the tip
- b61d761 docs(verify): T5c final integrated verification at e246aa4 - gates, lanes, privacy, T1b re-plant, demo and dev package
- 80c2b9e docs(0.6): the dev package, its hashes and the exact revision it was staged from
- 266005c docs(0.6): the round's verification record, the durable facts, and the round index
- acf6ea0 docs(0.6): T5b-3 demo package, demo-to-carrier link and the in-game checklist
- 0174683 docs(0.6): T5b-2 external probe over the landed T1/T2/T3 surface
- 4a228d1 docs(0.6): record the T1b activation lane, its mutations and the verifier measured guard numbers
- 6401fb3 test(0.6): pin the activation path against a second HostAttached announcement
- 764b9c8 docs(0.6): record the XML vocabulary traps a real integrator hit, and file the dropdown diagnostic follow-up
- 7c6ea6b docs(0.6): consumer usage and handoff for the 0.6 surface, incl. the host-source-is-scope trap
- 0d5a3a0 docs(verify): T5a independent adversarial verification of T1/T2/T3 at 84537fc - 23 own defects, three NOT PINNED findings
- 45bdeeb docs(0.6): T2 reload-scheduling evidence record
- 9101423 feat(0.6): T2 automatic reload scheduling with a testable clock
- b829b46 docs(0.6): record the T1 lane evidence, the mutation campaign and the gaps
- c21fc15 feat(0.6): implement the T1 notification adapter and page lifecycle door
- e6e12f2 docs(0.6): drop the machine-absolute path the privacy audit caught in the T4 scope line
- 4b554cc T3 follow-up: record the two lock paths as a declared boundary, not a defect
- 3c2ad3a T3: implement the widget description surface (catalogue, descriptor copies, registry accessor)
- 4f788d9 docs(0.6): T5b-1 probe baseline - three axes, dev-package content, outside probe skeleton
- d5ebca0 docs(verify): T5a-1 baseline reproduction at 02a6aea - ten gates, 32/32 lanes, R1 and R7 plantings
- 180c0c9 docs(todo): open the 0.6.x round and correct the stale 0.5 delivery tip
- d88bae5 feat(0.6): fork 0.6.x, freeze the MVVM/reload/catalogue contract, and land the version bump
- 354d90a docs(0.5): soften the R3 reachability claim, record the hardened slot and the aborted-close edge
- 3b43520 docs(verify): post-hardening verification of R3 at a0d2c89 - both shapes closed, both new assertions mutation-proven
- 38dbb4f docs(memory): close the review round and record what it cost
- a4a7dd8 docs(0.5): register the final delivery candidate and close out the review round
- d6b3f6e merge(0.5): R7 guard hardened, behavioural size/BOM lanes, and a scoped failure-version reset
- a2fbd0e test(kernel): task-21 sound single-read guard, behavioural R7 lanes and the dedup contract
- a0d2c89 merge(0.5): R3 latent edge - pending-close set, survivor skip, and the hand-off chain lane
- 2a0379a fix(kernel): keep the active target across interleaved closes
- 3015f99 docs(0.5): correct the R3 classification - latent edge, reachability unproven
- 8035ba8 docs(0.5): R3 correction - single-slot pre-close record is latent, reachability unproven
- c3a5d34 docs(0.5): the seven probes ran; R3 has a second must-fix shape
- a580ac9 docs(0.5): probe results - six pass, R3 two-closes-in-one-frame DEFECT (must-fix)
- 9901f5a docs(0.5): follow-up addendum - second R1-R7 sweep and the seven probe dispositions
- 969d91a docs(0.5): R1-R6 independently planted; R7 guard shown lexical in both directions
- a1f8a49 docs(0.5): addendum - R1-R6 planted reds and the second R7 falsification
- e32bfe7 docs(0.5): repair the advisory paragraph and state the partial-depth verification
- b75cfc0 docs(0.5): adopt the addendum - R7's source-text lane downgraded, nits fixed, gaps named
- 9796499 docs(0.5): post-fix addendum - R1 seal and R7 source-text guard measured; advisories recorded
- 0032334 docs(memory): record the review outcome, the two extra defects and the honest residue
- 0622679 docs(0.5): register the post-review delivery candidate and mark the earlier packages obsolete
- 14b29ae docs(0.5): confirm every review fix has an in-repo guard, and record the unfinished independent sweep
- 04e2c1e docs(0.5): post-fix verification numbers and the still-open verification items
- 9c28c09 docs(0.5): post-fix verification at 0d1f38b - gate, probe, invariants
- c1c8b48 docs(0.5): record the fix evidence per review finding and the leftover advisories
- 0d1f38b merge(0.5): the window double rests on the game's own field defaults
- aa56eff test(stubs): rest the window double on the game's own field defaults
- 1efe226 merge(0.5): an absent bound key on the wrapped atom reports instead of staying silent
- c0c76e6 R-extra-2 (task-19): the wrapped-text atom reports an unresolvable bound key instead of drawing empty in silence
- 991b646 docs(tiers): record the ParseFile decision the R7 fix forced
- 693d145 docs(0.5): R1/R2/R3/R5/R6/R7 fixed and confirmed by the external probe
- 3ad65af merge(0.5): R3 - active target hands over on close, and one pointer space
- 20ee6d4 merge(0.5): R1/R2/R5/R6/R7 - two-phase commit, LKG on a missing file, validated first attach, rebind release, single-snapshot read
- a8ceb0d fix(kernel): hand the active target over on close, and use one pointer space
- 8556975 merge(0.5): R-extra - item-local reads are fail-soft and never silent
- 4edb8e0 docs(0.5): R4 fixed and confirmed by the external probe
- 41941c0 fix(kernel): P4 R1/R2/R5/R6/R7 hot-reload correctness from the external review
- 178600e R-extra (task-18): one item-local binding contract - the collection kinds are fail-soft
- bbb63b3 merge(0.5): R4 - a diagnostic scope carries its own host ruler
- 763249e R4: measure each host with its own ruler, not one process-wide slot
- 51dd603 docs(memory): record the external review and what a green gate suite does not cover
- 0af24a2 docs(0.5): record the external Request-changes review and correct the delivery conclusion
- 17266ae docs(0.5): fix the handoff contradiction and the unverified byte-identity claim
- 0117c01 docs(0.5): register the delivery package built at 7ac991c
- 7ac991c docs(0.5): adopt the verified wording for the missing interleaved-host lane
- b812dfc test(FL): the lane-registration guard catches a duplicated Program.cs registration
- 561918d docs(0.5): dispose of the final integrated verification findings F1-F8
- 8718579 docs(0.5): final report addendum - corrected cross-package LANE 1 and the ItemKey finding
- e72fcd1 docs(0.5): final integrated verification at 1769e37
- 1769e37 docs(0.5): state the dev-package label against the docs-only delta
- ae68a0e docs(0.5): register the delivery package and sync the ledgers
- ef133b3 docs(0.5): final status, consumer availability and the remaining-items register
- 85c5fcc merge(0.5): reachable host on the generic page shell for per-page diagnostics
- 0629bd4 feat(kernel): expose the generic page shell's host so an XML-only page can subscribe
- 23c5a33 merge(0.5): P3 keyed repeater template engine plus checkbox, progress and tree kinds
- bb90907 P3: keyed repeater (item-local scope, key reuse, removal cleanup) + checkbox/progress/tree
- 2112679 merge(0.5): route shell chrome and notice fit findings to the owning host subscription
- 00e0fd4 fix(kernel): route shell chrome and notice fit findings to the owning host
- 1f24fcb docs(0.5): rewrite the page-level refusal record against the measured facts
- 5cfc46e docs(0.5): P4c adversarial verification at 9078812
- 6fa495c docs(0.5): disabled guard covers interaction not appearance; correct the dirty-flag premise
- 8981068 merge(0.5): P2c disabled guard on the remaining primitives and a pinned dirty-flag lane
- 2e63720 docs(0.5): P5 merged; route the shell chrome-channel gap to task-13
- 76ff07b P2c: reach the remaining interactive primitives with the disabled guard, and pin the dirty flag
- def7465 merge(0.5): P5 per-host diagnostics isolation with attributed events
- 9078812 docs(0.5): record the P4c page-level refusal, its cost and the baseline residual
- 9714b0a merge(0.5): P4c non-vacuous style pre-check and documented baseline residual
- 8b6508f fix(kernel): P4c make the style pre-check non-vacuous and pin the baseline residual
- a09d6e6 P5: pin per-subscriber dedup with a stable-finding lane
- c0af9f6 P5: per-host/per-session diagnostics isolation with attributed reload/fit/recovery/timing events
- 76c6174 docs(0.5): P2/P2b adversarial verification at 0ee55b6
- 93ff375 docs(0.5): P4b adversarial verification at 6e0781a
- ca52371 docs(0.5): dispose of the P2 adversarial findings - tier wording, consumer limits, mutation count
- 5e12430 docs(0.5): register the first delivered dev package (0.5.0-dev at de5a565)
- de5a565 docs(0.5): land the minimal usable interface - API guide, consumer handoff, results
- 0ee55b6 merge(0.5): P2 per-key notification, invalidation classes, command state and visibility; P2b node prune
- 369400f P2: reuse a widget instance under a reused identity, and state what the marking buys
- 4a50f58 merge(0.5): P1 hardening - pin the exact-type rule, name the dedup break
- eca4675 test(kernel): pin the double's exact-type rule and name the dedup break
- 6e0781a merge(0.5): P4b watcher re-arm, atomic style batches and gated theme baseline
- fb2e5d7 docs(0.5): dispose of the P1 adversarial findings and record two must-document limits
- 4c84836 docs(0.5): P1 adversarial verification at 688cb5d
- 46a15c1 P2: pin the deferred boundary a draw-pass notification commits at
- 079aa5e fix(kernel): P4b watcher re-arm, atomic style batches and a gated theme baseline
- 2ecba20 Merge branch '0.5.x' into feat/0.5-core
- 0ab9015 P2: per-key binding announcement, invalidation classes, command state, conditional visibility
- 688cb5d docs(0.5): P1 merge status, concrete in-game steps, and the reload theme caveat
- 7cc8b41 merge(0.5): P1 keyed window instances, focus policy and generic XML page shell
- e7bd591 docs(0.5): P4 adversarial verification at 85faab0
- b6b621d test(FL): guard the dead-lane trap - a *Tests.cs lane Program.cs never invokes
- 2b37d3d test(kernel): pin the activation focus call and the no-reorder fact
- 715ba66 feat(kernel): keyed window instances, a generic page shell and the active target
- be3b121 test(stubs): make the Verse window double carry the 0.5 window contract
- 85faab0 merge(0.5): P4 document sources, dependency tracking and atomic hot reload
- bd2e04c feat(kernel): P4 document sources, dependency tracking, atomic hot reload and last-known-good
- 9eeb86d docs(0.5): pin the commit-identity rule the privacy gate enforces
- 4e8c074 P2a: allow Visible/VisibleKey as engine-wide visibility vocabulary
- 8098ca0 fix(0.5): dispose of the independent wave-A audit findings
- 8d4bdb0 docs(0.5): P6 wave-A -- baseline reproduction, W0 doc audit, P1/P2/P4/P5 falsification plans
- 99acc5f docs(0.5): open the 0.5.x round - contract, packages, ownership, version axis
- c53bd37 docs(memory): the rc1 ref state after the dev-line push
- 5971cfd docs(memory): record the v0.4.0-rc1 cut and the fully pushed ref state
Status
Pre-1.0: the public API is still provisional and a minor bump is a breaking change. The supported range a consumer asserts lives in its own code, because RimWorld's modDependencies cannot express a version at all.
This build targets RimWorld 1.6 and is a testing RC: UI/UX and copy work on the library surface continues after this trial, and this page does not claim complete compatibility coverage. 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: the accepted native checks (seven interaction scenarios, the diagnostics checks and a quick kernel smoke) ran on the local development (Dev) build of this line; this archive is a fresh CI build of the Release configuration from the same accepted product source (plus release plumbing/docs) and has not been independently repeated in native gameplay.