Patch-Notes / v0.8.7

Patch-Notes v0.8.7

19.08.2026

Neu

  • Karten-Inventar Filter als ausklappbares Element - zwei Achsen Nutzung (Alle/genutzt/ungenutzt auf exaktem effect_key, ohne Sockel-frei-Gate; ui-228-Badge unveraendert) x Effekt-Familie (Gruppen Tower-Stats/Pakt-Karten), Kreuz-Zaehler, Kopf-Chips mit x je Achse + k von N, Open-State ct-cards-filter-open (Default zu), LS-Migration key->key+use, kein Mobile-Auto-Collapse; 18 Server-View- + Client-Tests, Live-Smoke Desktop 52px Kopf / Mobile 390
  • Profil-Rangpille zeigt zusaetzlich den Vorsprung nach unten ('v <Wert> vor Rang r+1' als Spiegel der Distanz nach oben, DTO nextLowerRankValue/leadOverNextLowerRank ohne zweiten Query, Rang 1 verliert Sonder-Ausstieg, Dense-Rank-Ties, keine neue CSS-Regel; 11+27 Tests, Live-Smoke inkl. Gleichstand)
  • Hochrisiko-Achievement misst Pakt-Prozent statt Kartenzahl (evalContribution pact_load_pct = round(100 x Summe pact_axis_mag), Schwellen 400/1200/2400/4680, Wave-Gate + updateMode max unveraendert, Claims grandfathered, 41 Tests + Anzeige-Gegenprobe)

Fix

  • Desktop-Panel 1080p - Attribut-Scrollbar flackerte seit ui-475 (Prod v0.8.6): Paket A = Reserve 84->64 + Gap 12->8 nur im zoom-1.0-Zweig, Rearm-small-Text 1-zeilig (Intent - gilt 1 Runde), pausiert-Subtext 1-zeilig (Pause bei Schritt N/M - Klick = weiter); @1920x944 von -39,6 auf +27,2 px Slack, alle 5 Template-Zustaende gleich hoch, 1440p-Geometrie unveraendert (Live-CDP 4 Viewports, AK6 Hovered live)
  • Upgrade-Vorschau der Karten-Sammlung - T5+ zeigte Weiss statt T1-Cyan (tierColor-Fallback), Credit-Icon fehlte (jetzt echtes SVG-Span statt rohem C), alle dynamischen Werte HTML-escaped (renderSymbolHTML/escapeHtml aus src/utils, XSS-Fix), 9 Tests + XSS-Probe, followups Bucket AG (pre-existing renderCardTile/animateMergeStep-Luecken)
  • Rearm-Requeue umging srv-154-Countdown-Reset - EIN Enqueue-Pfad _enqueueIntent() fuer routeJoin + _processRearmOnRunEnd (Rearm-Wiedereintritt = Erst-Beitritt seit letztem Flush -> Countdown 10:00), Direct-Stash traegt firstSeenAt, Client versteckt need>2 && endsAt=null statt 00:00 (5+2 Tests, Fiftys 4-Sofort-Szenario als Test, Live vorher/nachher)

Unter der Haube

  • CSS-Landminen-Guard - url()-Token-Zustand (unquoted url(...) startet keinen Kommentar, css-syntax-3) + Inline-<style>-Scan fuer web/src/**/*.js (extractStyleBlocks/remapLandmineToFile, Paarungsregel gegen Prosa-Fehltreffer, laengenerhaltende Interpolations-Maskierung, syntax-check Stufe 2b), 18 neue Tests, README
  • Review-Cleanup aus srv-151 - echte Test-Anker fuer SNAPSHOT_KB_WARN_REMIND_MS/CLEAR_FACTOR (Export statt Duplikat), Surrogate-sicherer Content-Cap in ops-alert.js (kein einsamer High-Surrogate am Schnitt), 16+14 Tests
  • TICK_MS-Doppel-Wahrheit aufgeloest - core/interpolate.js exportiert TICK_MS, mobile/main.js importiert statt lokaler Kopie (Touchpoint viewer_mobile.html seit P7 -> mobile/main.js), Anker-Test, review: skip
  • Loop-Hygiene - rm-worktree.ps1 Lock-Diagnose (Halter-Prozess per CommandLine/Port-Heuristik, Fremd-Worktree-Topf getrennt, kein Auto-Kill) + Orphan-Directory-Recovery nach Lock-Freigabe, find-worktree-leaks.ps1 + lib/worktree-leak-scan.ps1 (Read-only-Report, WorktreeHit-Normalisierung), Rollen-/Command-Doku Leak-Check statt harter Ports (3 Selbsttest-Zyklen, BOM/Parse-Check)
  • ptr-auto-bump schuetzt hand-redigierte Changelogs vor Ueberschreiben (autobump_hash sha256 im Frontmatter, fehlt/weicht ab = geschuetzt + Meldung, FORCE_CHANGELOG_OVERWRITE als Escape-Hatch; 29 neue Tests, Wiring-Test 21/21, DEPLOY.md/releasemanager.md/changelogs README)