Major Systems
- Voir Dire Redesign. Jury selection has been rebuilt from the ground up. Jurors now carry a multi-axis personality (authority lean, punitiveness,
empathy target, analytical style, life-experience flags) instead of a single bias score. Mini-openings have been replaced by individual juror
questioning drawing from an 18-question bank across open-ended, background, case-specific, and hypothetical categories — with social-desirability gating
so jurors don't always answer honestly. Peremptory challenges are now asymmetric by charge class (felony 7/6, misdemeanor 4/3, infraction 3/3). Cause
challenges now require an articulable-bias score built from disclosed signals; the judge's willingness to sustain scales with both that score and your
standing with the bench.
- Speedy Trial Now Enforced. Previously you could march a case past the constitutional deadline and try it anyway. Now, when the speedy clock expires,
the case is automatically dismissed with prejudice, removed from your active load, and logged to your career dismissals. Attempting to start trial on an
expired case dispatches the dismissal instead.
- Holistic Team System. Brand new in-case panel for assigning your firm's staff to holistic-defense roles. The new Holistic Team Card lives in the case
workspace Resources tab. It lists all five roles (investigator, social worker, mitigation, immigration, reentry), shows current assignments with
one-click unassign, surfaces eligible firm staff as click-to-assign buttons, and enforces per-role concurrent-case caps (investigator 4, social worker
6, mitigation 4, immigration 5, reentry 8) with live load badges and over-cap explanations. No staff? The panel prompts you to hire.
- New Cinematic Splash Screen. A stellar field with parallax, mouse repel, shooting stars, full nebula lifecycle, binary systems, and stellar
cannibalism. Layered haze, bloom, mist, vignette, and grain over a cinematic pan for the title screen.
Tutorial Improvements
- Keyboard navigation is now gated to match the click allowlist — Tab/Enter/Space can no longer bypass tutorial step gating.
- Fixed the opening-statements softlock: the tutorial step no longer requires a non-existent 'police' theme; any theme satisfies it.
- Glossary tutorial no longer auto-starts mid-game when you hover a legal tooltip.
- Removed an auto-firing trial walkthrough that was launching a secondary tutorial during the main flow.
Bug Fixes
- Plea pressure no longer haunts settled cases. Cases that already pled out were still absorbing daily plea pressure ticks and triggering "pressure
spiking" log entries on a deal you'd already closed.
- Plea-accept blocks now explain themselves. Rule 1.2(a) correctly refuses to bind a client whose preference isn't accept/eager, but it used to silently
no-op. The day log now names the reason ("client undecided" / "against client wishes") so you know to counsel them first.
- Investigation no longer crashes on fresh or legacy saves. Discovering evidence on a case before its evidence array or investigation container was
initialized could lock you out of the case. Both are now defensively initialized.
- Employment path casing fix. A subtle mismatch (public_defender vs PUBLIC_DEFENDER) was silently breaking downstream PD-specific logic.
Stability, Build, and Hygiene
- Steam packaging: Now ships the correct 64-bit steam_api64.dll. Audio bundles are externalized from app.asar so they actually load on packaged builds.
- Build pipeline: Now stages from tmpdir to dodge Windows EPERM rename errors. React runtime is kept inside the react-vendor chunk for stable load
order.
- Code hardening: Completed a sweeping internal typing pass — over 1,500 unsafe type escapes removed across production and test code. Stronger
foundation for the upcoming 0.6.0 content drop.
- Security: Patched two upstream build-tool advisories (shell-quote, joi).
- Test suite: Restored to fully green (2,307 / 2,307).
