Repository navigation
Releases: darkliquid/LocalRPG
Releases · darkliquid/LocalRPG
Release list
LocalRPG v0.6.0
What's Changed
- feat(site): update website copy and screenshots for v0.5.0 by @darkliquid in #149
- Quality wave 6: a formatting and lint floor, and the board tooling fixed by @darkliquid in #214
- Refresh the measured stats and record wave 6 progress by @darkliquid in #215
- Enforce the campaign's image budget and approval policy by @darkliquid in #218
- Add staticcheck and work its 25 findings by @darkliquid in #217
- Correct the ask-mode sentence: it was true before I changed it by @darkliquid in #221
- Gate both test suites on a coverage floor by @darkliquid in #222
- Add Prettier and ESLint to the frontend, and gate on both by @darkliquid in #223
- Give every guide article a unique order by @darkliquid in #224
- Add a generated index to the guides, and point the README at the manual by @darkliquid in #225
- Split the GUI service into one file per domain by @darkliquid in #227
- Validate the registry's checksum and download scheme by @darkliquid in #229
- Close the path-injection and zipslip alerts by @darkliquid in #230
- Inline the registry guards so the scanner can see them by @darkliquid in #231
- Record what CodeQL needs from a guard in AGENTS.md by @darkliquid in #232
- Check the URL the request is actually built from by @darkliquid in #233
- Record that a green CodeQL check does not clear an alert by @darkliquid in #234
- chore: track work in Beads instead of a GitHub Project by @darkliquid in #236
- refactor(gui): split the game route handler by resource by @darkliquid in #235
- chore(ci): land the CodeQL configuration on main by @darkliquid in #238
- docs: record the decisions behind the CodeQL alert cluster by @darkliquid in #239
- fix(gui): answer a 500 when a response cannot be encoded by @darkliquid in #240
- refactor(gui): route every API error through one mapper by @darkliquid in #241
- refactor(cli): give every command one testable shape by @darkliquid in #242
- refactor(content): give Unpack and its neighbours their phases by @darkliquid in #243
- refactor(cli): give the commands their phases by @darkliquid in #244
- refactor(gui): split the world and turn route dispatchers by @darkliquid in #245
- refactor(gui): give the turn's build and stream their phases by @darkliquid in #246
- refactor(gui): give content import and the provider probes their phases by @darkliquid in #247
- refactor(gui): split the last ten pkg/gui service methods by @darkliquid in #248
- refactor(engine): give campaign creation, staging and streaming their phases by @darkliquid in #249
- refactor(harness): give retrieval, the budget and the router their phases by @darkliquid in #250
- refactor(provider): give every provider its phases by @darkliquid in #251
- refactor(export): give the render, the script and the bundle their phases by @darkliquid in #252
- refactor: give eight more long functions across the tree their phases by @darkliquid in #253
- refactor: give the final ten singles under a hundred lines their phases by @darkliquid in #254
- test: add function length gate test enforcing eighty-line budget by @darkliquid in #255
- test: guard entity field-list duplication across entity and storage by @darkliquid in #256
- chore: delete dead code, unreachable branches, and duplicate helpers by @darkliquid in #257
- docs(packages): document 12 core Go packages (RD-4) by @darkliquid in #258
- refactor(rules): explain and encapsulate panics in JS host bindings (RD-7) by @darkliquid in #259
- refactor(engine,rules): replace role and mode literals with constants (RD-8) by @darkliquid in #260
- fix(storage,engine): stop discarding errors in the write path (RD-6) by @darkliquid in #261
- Split the 987-line turn function into named phases (RD-3) by @darkliquid in #262
- Document the lower layers' exported symbols, and measure the rest (RD-5) by @darkliquid in #263
- Report a config file that does not parse by @darkliquid in #265
- Say what a coverage profile actually counts, and check the thing that is not layout-sensitive by @darkliquid in #266
- Document the GUI's exported surface by @darkliquid in #267
- Document the provider package's exported surface by @darkliquid in #268
- Document the configuration schema's exported surface by @darkliquid in #269
- Document the prompt and provider plumbing by @darkliquid in #270
- Document the media pipelines, the model manager and the encoders by @darkliquid in #271
- Document the last exported symbols, and make revive a gate by @darkliquid in #272
- Say why a turn has no illustration by @darkliquid in #273
- Spec: surface failures instead of logging them (FE-9) by @darkliquid in #274
- Add the one place a failure is shown by @darkliquid in #275
- Tell the player when a turn, a save or a generate failed by @darkliquid in #276
- Report a load that left the view incomplete by @darkliquid in #277
- Report the settings, campaign, recap and audio failures by @darkliquid in #278
- Report the last App.tsx failures, and finish the file by @darkliquid in #279
- Report a campaign settings failure instead of logging it by @darkliquid in #280
- Report a launcher failure instead of logging it by @darkliquid in #281
- Say why the voice input's four lines are not reported by @darkliquid in #282
- Report a studio, registry, campaign or docs failure by @darkliquid in #283
- Finish the failure sweep, and account for every console call by @darkliquid in #284
- Record how a frontend failure is surfaced by @darkliquid in #285
- Spec: replace any and the unsafe casts (FE-8) by @darkliquid in #286
- Type the two DTO state bags as unknown by @darkliquid in #287
- One errorMessage helper instead of three copies by @darkliquid in #288
- Drop the catch annotations that hid the error type by @darkliquid in #289
- Name the type the provider editors cast to by @darkliquid in #290
- Type the provider-test parameter, and make any an error by @darkliquid in #291
- Spec: unify the API client (FE-7) by @darkliquid in #292
- Route a failed response through errorFromResponse by @darkliquid in #293
- Put the schema request in the client, name the media one by @darkliquid in #294
- Remove the instance methods nothing called by @darkliquid in #295
- One modal shell that declares itself and holds focus by @darkliquid in #296
- Spec: the modal primitive (FE-2) by @darkliquid in #297
- Record the first pass over the modal surfaces by @darkliquid in #298
- Give a bespoke dialog the modal's focus behaviour by @darkliquid in #299
- Give the docs modal focus, and one Escape handler by @darkliquid in #300
*...
LocalRPG v0.5.0
What's Changed
- feat(project): add tasks to find and track development work by @darkliquid in #91
- docs: prefer modern Go and feature-branch commits in agent guidance by @darkliquid in #93
- Add frontend unit tests and a gated browser end-to-end suite by @darkliquid in #95
- build(deps): bump source-map-js from 1.2.1 to 1.2.2 in /frontend in the npm_and_yarn group across 1 directory by @dependabot[bot] in #94
- feat: provider depth, richer checks, and robust record handling by @darkliquid in #92
- Complete Wave 2: player-facing depth by @darkliquid in #96
- feat(embeddings): local ONNX encoder for semantic recall by @darkliquid in #98
- feat(embeddings): choose the embeddings system from the settings UI by @darkliquid in #99
- feat(oracle): make narrative-oracle a state-aware expert system by @darkliquid in #100
- feat: one-click fully-offline preset bundle (LF-4) by @darkliquid in #101
- docs: local-first onboarding page (LF-5) by @darkliquid in #102
- ci: cache dependencies and build the frontend once by @darkliquid in #103
- feat(content): content package format (PKG-1) by @darkliquid in #104
- feat(content): export and import content packages (PKG-2) by @darkliquid in #105
- feat(content): versioning, dependencies, and lockfile (PKG-3) by @darkliquid in #106
- feat: content provenance (checksums and signatures) by @darkliquid in #107
- feat: registry client by @darkliquid in #108
- fix: match registry UI types to the index schema by @darkliquid in #109
- docs: describe editing content outside the app by @darkliquid in #110
- feat: generate, review, and commit worlds with AI by @darkliquid in #111
- feat: AI system generation (epic #26) by @darkliquid in #112
- feat: ordered provider chains with selection rules (MP-4, #30) by @darkliquid in #113
- feat: procedural placeholder variety (epic #21) by @darkliquid in #115
- feat: opposed rolls resolve a check against an opponent (SYS-4, #40) by @darkliquid in #114
- feat: roll the dice at the table and argue the stakes (epic #19) by @darkliquid in #116
- feat(scenes): scene consistency and exporting by @darkliquid in #117
- feat(audio): authoritative playback ledger (RB-3) by @darkliquid in #118
- feat(engine): bounded malformed-response retry (RB-4) by @darkliquid in #119
- test(robustness): fuzz and property tests (RB-6) by @darkliquid in #120
- feat(theatre): effects, captions, and export improvements (epic #22) by @darkliquid in #121
- feat(editor): delete entities from the folder tree by @darkliquid in #134
- feat(registry): show and manage content registry sources by @darkliquid in #135
- fix(generation): stop failing on an unreadable model reply by @darkliquid in #136
- fix(rolls): stop roll mechanics appearing as narrative text by @darkliquid in #137
- fix(play): never show a broken portrait or a silent audio failure by @darkliquid in #138
- feat(studio): start from a base without overwriting, and document the sandbox by @darkliquid in #140
- feat(scene): match the characters, and illustrate only major changes by @darkliquid in #139
- feat(settings): collapse the limit fields behind an advanced disclosure by @darkliquid in #141
- feat(systems): a Tests tab that can define scenarios by @darkliquid in #142
- feat(studio): examples in the mechanics form, and usable creation prompts by @darkliquid in #143
- feat(launcher): render a system's own creation prompts by @darkliquid in #144
- Split the Settings Studio into panels with secondary tabs by @darkliquid in #145
- Stop a campaign reset serving the previous run's scene images by @darkliquid in #146
- feat: separate an entity's authored and current appearance by @darkliquid in #148
New Contributors
- @dependabot[bot] made their first contribution in #94
Full Changelog: v0.4.1...v0.5.0
LocalRPG v0.4.1
What's Changed
- Add a guided wizard for creating entities by @darkliquid in #13
- Restate the opening scene at the start of the first turn by @darkliquid in #14
- fix(gui): keep a campaign's artwork and voice when it restarts by @darkliquid in #15
Full Changelog: v0.4.0...v0.4.1
LocalRPG v0.4.0
What's Changed
- fix(tts): multi-speaker speech_metadata and batch grouping parity by @darkliquid in #11
- fix(security): resolve CodeQL alerts for path injection, zip slip, bounds, and XSS by @darkliquid in #12
- feat(content): a real editor and folder organisation by @darkliquid in #10
Full Changelog: v0.3.0...v0.4.0
LocalRPG v0.3.0
What's Changed
- feat: turn audio, persona attribution, portrait pipeline and desktop GUI polish by @darkliquid in #9
Full Changelog: v0.2.0...v0.3.0
Improved turn handling, TTS batching and new providers
What's Changed
- feat(tts): add Fish Audio S2 local provider via vLLM-Omni by @darkliquid in #3
- Make speech synthesis batched, multi-speaker and offline-capable by @darkliquid in #4
- docs(providers): add dedicated guides for local self-hosted engines by @darkliquid in #5
- feat(provider): add Cartesia TTS (Sonic) and STT (Ink Whisper) integration by @darkliquid in #7
- Add Inworld AI as an LLM, TTS and STT provider by @darkliquid in #6
- feat(engine): replace submit_turn with a progressive turn stream by @darkliquid in #8
Full Changelog: v0.1.0...v0.2.0
LocalRPG v0.1.0
Full Changelog: https://github.com/darkliquid/LocalRPG/commits/v0.1.0