Skip to content

9.0.0-beta.2

Pre-release
Pre-release

Choose a tag to compare

@Griefed Griefed released this 23 Sep 03:04
· 0 commits to main since this release

✂️ Refactor

  • apply the five Qodana style notes that were actually improvements (5194af2)
  • api: give the versionmeta snapshot locals speaking names (2b4228b)
  • app: fold the four-site stdin test into ConsolePromptTest (351a264)
  • app: read the home directory through ConsolePrompt (7d09c22)
  • app: return whether a headless verb did what it was asked (4fcb499)
  • clientside: let a guard see which client a fetcher got (69c1584)
  • grinder: drop what the configuration extraction left behind (5d5435e)
  • grinder: give the snapshot cache a window it does not yet use (05fed81)

⏩ Performance

  • grinder: derive the report's selection once per store change (d0c0e5a)
  • grinder: page with subList instead of copying the tail (b533afc)
  • grinder: stop the report walking the whole store per request (8bfa261)

📔 Docs

  • audit the Qodana-817 remediation (2f7c47e)
  • close B39 and half of B38, and open B40 for the baseline (c7a2e37)
  • close B40, and record why it landed by other means (2f1ef98)
  • close the analysis findings, and retract one of them (ecc6234)
  • close the Qodana-817 audit findings (bc39f0b)
  • close two audit findings on the 2026-09-19/20 commits (710c2f7)
  • correct three test counts, and record what the KDoc defect teaches (a3a149b)
  • describe updating a server pack as a feature you can rely on (2dafb32)
  • keep the hand-written 9.0.0-beta.1 release notes in the repo (a88c08a)
  • reattach four KDoc blocks that had come loose from their declarations (60ab1f5)
  • reattach or retire fourteen more KDoc blocks that had come loose (dae6834)
  • reattach the two orphaned blocks the new guard found (a6ec920)
  • record M4 closed, with the mutation that proves each new guard (52074eb)
  • record that the root-level documents have two generated copies (6414f91)
  • record the Qodana verdicts and the scan's blind spot as B38 and B39 (47a1603)
  • the READMEs speak the six verdicts, not the deleted confidence scale (57434cb)
  • app: record the ConsolePrompt landmine and why it exists (f689fa4)
  • app: record the exit-code contract and its landmine (82f28d5)
  • app: say what run with no subcommand actually does (8a6fa73)
  • ci: make the awk escaping comment readable (762ec50)
  • ci: record the two undeclared limits the release notes outgrew (37f4e43)
  • clientside: landmine the per-instance HttpClient, and correct the count (34fff82)
  • clientside: restore the two arguments a deleted doc copy took with it (9c76272)
  • grinder: name the firewall rule that was never there (d4fecb0)
  • grinder: record what the report cached and what it quietly did not (c80ba52)
  • grinder: record why the report stopped answering (eadf345)
  • grinder: the report was never wedged, and the docs said it was (1239418)
  • readme: document generating a server pack from the commandline (9de625c)

📦 Other

  • qodana: encode the twelve standing won't-fix verdicts (8784620)
  • qodana: refuse the eleven style notes that were wrong or worse (6b91956)

🦊 CI/CD

  • qodana: generate the sources the scan cannot see (2d2a2d6)

🧪 Tests

  • api: close the update mechanism's remaining test debt (2f37954)
  • api: pin that no KDoc block comes loose from its declaration (5410807)
  • api: pin what regenerating over an existing server pack does today (65071b6)
  • api: red pin for a first generation losing the local variables.txt (b57efd7)
  • api: red pin for a list-setting overwriting its own default (942382d)
  • api: red pins for lazy mode ignoring protection and reporting nothing (f5ef805)
  • api: red pins for what an update must guarantee (960e186)
  • app: pin ConsolePrompt (RED) (3d024a3)
  • app: pin that a path argument is reported, never thrown (RED) (4a44b38)
  • app: pin that an interactive prompt leaves System.in open (RED) (f2c0d3a)
  • app: pin that lang accepts the locale it displayed (RED) (2f38d92)
  • app: pin the headless outcomes (one RED) (f4df200)
  • clientside: red pin for a new HttpClient per fetcher (c7906d6)
  • grinder: red pins for the three ways the report scales with the store (bfae849)

🚀 Features

  • api: make updating an existing server pack safe for a running server (ee629eb)
  • app: implement ConsolePrompt (80df991)
  • app: take Update Server Packs out of its experimental state (006e46a)
  • build: name the AppImage _experimental, and stop spelling that name twice (74a73b3)
  • grinder: serve the report through the cache, on a configurable pool (148ccb3)

🛠 Fixes

  • api: decide preservation once, and stop lazy mode ignoring it (5bc4e27)
  • api: keep server.properties and variables.txt in an updated pack's archive (6ac06c3)
  • api: stop a list-setting from overwriting its own shipped default (011af4f)
  • app: ask for a config file, not a home directory (b2cd0ab)
  • app: exit non-zero when a one-shot run failed (caa24ed)
  • app: offer the locales lang actually accepts (0b58755)
  • app: report a bad path to a headless verb instead of throwing (c539cfd)
  • app: report a configs-directory that cannot be read (43e649e)
  • app: say "directory" when cgen rejects a non-directory (b6dd98b)
  • app: stop the interactive prompts closing System.in (b4c8e41)
  • build: package the api javadoc jar during build, not just generate it (4e58c66)
  • build: publish the library, not just its javadoc (5229508)
  • ci: cap the mirrored GitHub release body at 125,000 characters (e4f1c53)
  • ci: escape the changelog version where awk cannot undo it (7b5b3a3)
  • ci: skip assets the Forgejo release already carries (02dd499)
  • ci: stop curl -sf hiding why a release step failed (f889895)
  • ci: the release body travels in a file, never in curl's argv (ae3102c)
  • clientside: share one HttpClient instead of one per fetcher (5f78389)

VirusTotal