Releases: electricsheephq/WorldOS
v1.0.5-rc3 — measurement-unblock + mech fidelity + scorer robustness
Test-proven checkpoint on rc2. #1036 authored-campaign measurement unblocked (#1037 — structural_completeness WARN not FATAL-cap for authored runs, dual-corpus proven). Mech fidelity (#1038 — Champion expanded crit-range + War Caster concentration advantage; 3042 engine tests green). Scorer robustness (#1039 — timeout-guard the lens claude -p). NOT a GA — the GLM re-measure under the current ruler is deferred (scorer hangs on combat-sprint transcripts, #1040). Numbers ruler-fenced (SCORING.md §0). Full notes: CHANGELOG [1.0.5-rc3].
v1.0.5-rc2 — combat fidelity + ruler annotation
Checkpoint on top of rc1. Combat fidelity (#1033): turn-anchor the Guiding Bolt advantage marker (SRD 5.2 duration bug) + Battle Master maneuver cue — found by running the combat-sprint, proven RED→GREEN, adversarial review caught + fixed a dead-caster leak. Scoring-ruler annotation (#1034): scores are fenced by ruler version; current numbers read lower than historic by design. NOT a GA — mech still below 4.5; story BG-caliber + satisfaction green. Full notes: CHANGELOG [1.0.5-rc2].
v1.0.5-rc1 — system-hardening RC
Honest system-hardening RC, NOT a GA. Hardens the measurement (the behavioral gate stops false-capping good play — the ~30% cap was self-inflicted, model-agnostic; a same-SHA 1-v-1 now shows 0/5 RED) and the model architecture (clean GLM↔Claude switching, no leaks; GLM measured comparable, latency the real cost), plus timing instrumentation + the arc-smoke. The RRI gameplay gates (story ≥4.3, mech ≥4.5) are not yet met — gameplay work continues on this honest signal. Full notes: CHANGELOG.md [1.0.5-rc1].
WorldOS v1.0.4-rc5 — the living relationship engine + two golden spines
Companions, camp, and quests that actually engage — proven end-to-end on two golden spines.
A read-the-played-story pass found the craft was BG3-caliber but the engine's companion/quest machinery never engaged in real play (companions narrated not gauged; quests resolved in prose, never evolved) — and nothing scored that as failure. rc5 closes the loop:
- The window (#956/#958) —
story_readout.pyrenders any playtest as a readable adventure + a structural-coverage stamp. - Relationship-engine cues (#961) —
persist_beatreturns an obligations digest every beat (frozen companion / overdue camp / resolvable quest); a SKILL step-6b acts on it; a FATALstructural_completenessgate. - Full-circle scorecard (#963) — scorecards now track + show acts/recruit/camp/approval/quest-resolve+evolve, so a system-skipping run can't look healthy.
- Two golden spines (#962/#964) — Brother Toll (Embergloom) + a new BG spine "The Ledger of Mercy" (Sergeant Ondine Marsh, a real betrayal fork), with full approval vocabularies + multi-gate arcs.
- Harness robustness (#965) — run_duo survives transient API 500s; readout/camp refinements.
Proven: two 24-beat validations — approval climbed (Toll 0→47, Ondine 0→80), arc gates unlocked, camp ran, companion + main quests resolved+evolved, structural_completeness PASSED, story-craft 4.8 on both (bar 4.3). Every system dead in every prior run is alive.
Pre-release checkpoint.
WorldOS v1.0.4-rc4 — felt quality + measurement fidelity
Felt quality + measurement fidelity.
- Planning/theorycraft layer (#951) — half-caster slot trust, market priced-first, camp spell-prep, a feat browser. All wire-up of existing engine machinery (the build-optimizer persona's gaps were reachability, not missing features).
- Story-craft directives (#960) — a running clock must be felt not named; never re-narrate the player's own action; planted texture must pay off.
- QA-harness reliability (#966) — gate fidelity + #623 recovery (adversarially verified; a gate-weakening was caught and closed before merge): a player-process crash is re-measure not a quality fail;
party_traveledno longer false-caps a complete single-scene drama; the Mac-handoff deadline outlasts the cold-open; #623 silent-drop/hang closed. The measurement gates now correctly distinguish harness failures from product quality — so future quality changes can be validated honestly.
Pre-release checkpoint. Full notes in CHANGELOG.md.
WorldOS v1.0.4-rc3 — autonomy unblock + honest Beta baseline
The autonomy unblock — popup P0 fixes + an honest Beta baseline.
Fixed — the macOS prompts that blocked every shell-launched GUI run
- #945 — keychain/codesign prompt on every build.
build_and_run.shad-hoc signs by default; never auto-searches the keychain (a baresecurity find-identityscanned every keychain in the search list, incl. an unrelated product's keychain on a removable volume → keychain-password + removable-volume prompts every build). Stable-cdhash signing opt-in viaWORLDOS_SIGN_IDENTITY. - #946 — removable-volume prompt + "Viewer did not become ready" on shell launch. The
.appmerged its full inherited env into every child;GBRAIN_SKILLS_DIR=/Volumes/…(from~/.zshenv, inherited viaopen -n) made a child enumerate the removable volume → a modal TCC prompt that stalled viewer startup. One root cause, both symptoms. Now strips/Volumes-prefixed inherited vars before spawning children (own roots preserved); QA harness mirrors it. Verified popup-free.
Honest Beta baseline (clean same-SHA 5-persona VM sweep)
- 4 of 5 personas Beta-quality: newbie 8, veteran 7, adversarial 7, narrative 8.
- Engine re-validated SRD-correct — the build-optimizer's "critical" Lv-10 Paladin spell-slot bug is a half-caster-rules false alarm.
- The one real feature gap is the planning/theorycraft layer (spell-prep UI, market catalogue, level-up planner) — the next milestone toward Beta.
Pre-release checkpoint; not yet at the Beta bar. Full notes in CHANGELOG.md.
WorldOS v1.0.4-rc2 — the felt bundle (battle, atlas, companion soul)
The first felt-quality wave on rc1's playable foundation — companions that react, a battle that looks like one, a coherent map, and a measurement-integrity fix that had been silently tanking every score.
What landed
- Companions react to your choices (#940, #941) —
approval_tagsonrecord_decision/persist_beatmoves a present companion's approval when a choice matches their content-authored likes/dislikes (DM tags the cause, engine owns the number). Surfaced onscene_contextevery beat. All 7 BG origins carry a shared snake-case approval vocabulary, so one tag ripples across the party and turns arc gates. Brings the previously-dead likes/dislikes read to life. - Combat looks like a battle (#937) — location scene-art backdrop + condition chips on tokens, atop the already-complete SRD 5.2 turn engine.
- A coherent world map (#939) — geographic axial-hex coordinates for the Baldur's Gate locations (+ ingestion wiring +
map_kind:hex), replacing the force-sim scatter. - Behavioral-gate false-cap killed (#938) —
persist_beattolerates a barecampaign_id; validated live (behavioral RED→GREEN). A single bare model-slip had been RED-capping every lens to 2.5. - Seated hero stays correct (#935) — the live active-hero correction uses the authoritative
kind=playerresolver, notparty[0].
Additive throughout; old snapshots round-trip; engine remains the sole writer.
Pre-release — not GA. The full 5-persona VM RRI sweep + a party-run companion playtest gate the v1.0.4 Beta.
WorldOS v1.0.4-rc1 — Player-Ready Beta candidate
Playability checkpoint — the first genuinely independent, resumable game.
WorldOS can now be cold-opened, played, quit, and resumed as a real independent game on the production path (play.sh + the OpenWorlds viewer — the exact path the native .app runs). Cut as a save-checkpoint for scoring/comparison as we build toward the v1.0.4 Player-Ready Beta.
What landed
- State isolation + Resume re-attach (#933) — isolated per-user saves; the launcher surfaces them as resumable;
play.shre-attaches viaWORLDOS_RESUME_CAMPAIGN(move sink preserved). - Authoritative active hero (#932, #935) — the seated PC is the engine's
kind=playeractor on both the initial seed and the live correction; fixes the "ACTIVE ASTARION / Lvl 1 Adventurer" mis-seat. - Scripted provider hermetic vs injected state dir (#934) — the part-A native gate mints a live
can_act:truesurface under the app's state-dir injection.
Proven
Real claude DM, headless production path: cold-open seated a proper PC (Rolan, Tiefling Wizard 3 Evoker), live surface, a real player move resolved, save persisted, quit → catalog shows it resumable → resume re-attached the same campaign live. Scripted part-A native gate PASSES on the real built .app.
Known
The literal .app GUI cold-open fires a one-time per-build macOS Keychain prompt (ad-hoc signature); claude setup-token → ~/.worldos/claude-token makes it popup-free.
Pre-release — not GA. The v1.0.4 Beta tag follows once the deterministic gates + an honest RRI + a real .app dogfood clear the bar.
v1.0.3 — WorldOS
WorldOS v1.0.3 — the rename release
ClawDnD is now WorldOS — simulate living, AI-generated worlds and play epic D&D 5e inside them.
Shipped as four phased, CI-green PRs so nothing broke mid-flight:
- Identity (#296): plugin id
worldos, macOS appWorldOS.app, repoelectricsheephq/WorldOS(the old100yenadmin/ClawDnDURL redirects). - Code + docs (#299): ClawDnD → WorldOS across source and documentation; zero ClawDnD references remain in
servers/engine. - Env compatibility (#300, non-breaking):
WORLDOS_*environment variables now resolve, with the legacyCLAWDND_*retained as a deprecated fallback (one-time warning);~/.worldospreferred with~/.clawdndfallback. Both names still work — no migration required. - Version + notes (#301): this cut.
Intentionally unchanged wire contracts (they migrate in their own dedicated releases): the MCP server ids (clawdnd-engine/rules/voice/player) and the dev.clawdnd.app bundle id.
Also folded in since 1.0.2 — OpenWorlds UI-audit fixes: platform-aware title bar (#260), Browse-spellbook CTA + modal (#268), the 12-slot canonical paper-doll (#271), the camp rest action (#282), and the canon-NPC reverse-picker — axe-core 0 across 18 screens. Player-bind correctness: the PC is now always a real canon NPC (load_canon_character(kind="player")), never invented, with the kind="player" ⇒ in-party engine invariant (#162).
Engine 1511 + viewer 146 + voice 17 + rules 16 + axe 0 + license-check green; SwiftPM build clean.
Full details in CHANGELOG.md.
ClawDnD v1.0.2 — OpenWorlds graphics-release burndown
Internal release. Drives the page-by-page OpenWorlds UI audit (epic #242, Phase 5) into the product.
Highlights
- Accessibility: axe-core 11 → 0 across all 16 screens (focusable scroll regions #291 + seed textarea label #292); health-check
--axebaseline locked at 0. - Item art that silently 404'd now renders — Character/Forge/Merchant used an undefined
window.slug; defined it + wired the Character equipped block (#270). - Title-bar/nav-rail overlap fixed on every screen (#260, platform-aware).
- Demo-world leaks removed — Bestiary "THE MARCHES"→"Sword Coast" (#262/#263), Forge ledger (#264); Create race/class/portrait art wired (#265).
- Engine play-loop fixes —
kind="player"always in party (invariant);update_characterskills/expertisealiases; auto-hit spells viacast_spell. - Proactive QA gates —
no_rejected_tool_calls+xp_awarded_on_progression(FATAL) +caster_has_spellbook+quest_objectives_progress(WARN). Combat-fidelity 3.0→3.7.
Engine 1435 + viewer 86 + axe 0 + license-check green. Native app builds clean + codesign valid. Full notes in CHANGELOG.md.