Repository navigation
Releases: Digitals06/kairos
Release list
v0.4.0
Kairos now sticks around while you grind.
The app keeps running in the tray: closing the window keeps it fresh, the tray icon restores it, and the menu has Launch KovaaK's for a one-click start. When a grind session ends (a 20-minute quiet gap in your CSVs), a toast sums it up: plays and personal bests, straight from local data.
New in this release:
- Tray mode with Show / Launch KovaaK's / Quit, plus settings for both behaviors
- Post-session summary toast: plays and PBs per session, local-only data
- Reconcile chip: the detail header tells you when local plays are newer than the last leaderboard sync, so you know to Sync Now
- Weak-spot strip: the next scenario to grind, always visible at the bottom of a benchmark page
- Keyboard navigation in the benchmark grid: arrows walk the cards, Enter opens, Esc backs out
- Favorites tick in place: the star settles your card order after a short pause instead of jumping the list mid-click
- The weekly recap drops the scored-minutes line
All grind-plan work from v0.3.2 is included, plus the chiseled temple-reticle icon.
v0.3.2
The grind coach got smarter about how each benchmark decides ranks.
Benchmarks that need N scenarios at a tier (the DOJO family, the REVENGE one-per-subcategory style) now get plans that go straight to the scenarios that still need to qualify, and never ask for more in a subcategory you already have. Mean-based benchmarks (Voltaic and friends) keep the spread plan: lots of small rung steps across scenarios instead of maxing a few. No plan should ask you to push a scenario to its maximum unless the ladder genuinely leaves no other way.
Also new: a GO button on every plan row launches that scenario in KovaaK's directly.
Fixes and polish:
- Titlebar dragging works again on the frameless window (resizing was fine, moving wasn't)
- Benchmarks already at their ladder top no longer show "Tier -> Tier" as next rank
- Grind panel spacing matches the rest; chart legend readable on dark themes; select menus follow the marble/basalt theme
- New app icon: a chiseled temple reticle in marble and torchlight gold, replacing the old neon one
Ships with the v0.3.1 fixes that landed after that release, all verified against live player data.
v0.3.1
Bug and UI fix pass over v0.3.0, thanks to everyone who reported things.
The main one: the grind coach now spreads its plan. What to grind next favors many small steps across your scenarios instead of pushing a few of them to their maximum score, so reaching the next rank should rarely ask you to max a scenario.
Fixes:
- Grind plans no longer demand max-rank scores; plans step through ladder rungs and avoid maxing any scenario whenever one can
- What to grind next panel now has matching padding
- Chart legend readable on dark themes
- Grind coach dropdown and all select menus follow the app theme
v0.3.0 — the Kairos identity
v0.3.0 — the Kairos identity
Kairos leaves the wireframe behind: marble and basalt, engraved stone controls, temple pediment — a look of its own, in the app and on every captured report.
Highlights
- New identity — marble (light) and basalt (dark) themes with an OS-follow option; per-theme chart palettes; frameless window with engraved minimize/maximize/close glyphs; stone scrollbars.
- Weekly plaque — torch day-strip, the Twelve-Steps level frieze, rank inscriptions and scored runs in one composite "This week" element.
- Analytics view — per-benchmark scenario breakdown with score history charts (local plays + sync snapshots, deduplicated), running high, 7-day average, 30-day improvement.
- Grind coach — pick a family and get the shortest path to the next tier: cheapest per-scenario targets (probed against the local rank engine) or a numbered step-by-step plan when no single run carries you; a "spread" tag shows how steady your recent runs are, and plateaued grinds are flagged so you can swap them.
- Detail pages — per-scenario charts, PB progression and what-to-grind-next targets on every difficulty.
- Faster everywhere — first paint went from ~11s to under 2s (the grid paints first, grind coach chips stream in after); the weekly recap compute dropped from ~84s worst-case to well under a second on the same data.
- Plain-English UX — "Deep Scan" → "Check everything at launch"; CV% → "spread" everywhere, with tooltips.
- Private by design — no accounts, no telemetry; public APIs only.
Notes
- The UI now scales with the window (rem-based cascade) — resize freely.
- Backup export still lives in the settings menu; one click writes your whole history as JSON to Documents.
Full changelog: v0.2.1...v0.3.0
v0.2.1
v0.2.1
Grind chips on the overview
Unroll any family card and every difficulty row now carries a status chip that tells you exactly what this benchmark is asking of you:
- ▶ N runs to next tier — the grind engine's own count for that difficulty: how many scenarios must improve to flip the rank to the next tier. Where single-scenario paths exist, it counts the cheapest set of those (the same list the What to grind next panel shows). When no single run can carry the rank, it counts the step-by-step plan moves instead. 0 means the tier is maxed or no reachable path exists.
plateaued— the difficulty is mid-progress but stopped improving: no scenario has set a new personal best in 3+ days. Swap the stalled grind for one that's still climbing. Max-rank difficulties never show this (they read complete, not plateaued).complete— every scenario is at its top rung for this difficulty; nothing left to gain here.
Weekly report — scored-min
27 scored-min-style chip next to plays/days: the sum of hit_count / avg_fps across your week's local plays — the actual time you were in-game alive per run, never guessed.
Scenario sort on deep pages
The Scenarios table gained a sort cycle: Sort: weakest / strongest / order — weakest-first computes rank tier ascending and then the score gap to each scenario's next tier, so the closest-to-flip grinds head the list; strongest-first inverts it to show your maxed scenarios first.
Also in this release
- Rank engine: benchmarks with under 50% scenario coverage are now honest Unranked (a single strong run can no longer fabricate a high tier), and the stale server rank is no longer used as a fallback tier.
156 offline tests · clippy clean · CI green.
Full Changelog: v0.2.0...v0.2.1
v0.2.0
v0.2.0
Dashboard merged into the overview
- One card per benchmark family: shows the hardest difficulty's rank (evxl difficulty order; falls back to the best rank achieved in easier difficulties), plus an xN chip when multiple difficulties are tracked. Click a family card to unroll every difficulty, each row showing its own tier badge and a colored tier-ladder progress bar — click a row to open that difficulty's detail page.
- The separate dashboard screen is gone; everything lives in one view.
Weekly report
- Week-at-a-glance strip: plays, days trained, streak, and benchmark rank-ups (e.g. Bronze → Silver). Session-cached — no reload grind when flipping between detail pages.
- Bare XP is now a lifetime level (Recruit → Bronze → … → Kairos → Kronos → Aion → Noumenon) with a gold progress bar into the next level. Personal-best improvements count; the first score on a novel scenario does not.
Deep pages (scenario detail)
- Selected-scenario PB progression on the chart (running-high step line) plus chips: progressing / PLATEAUED, PB count, days since PB, CV % consistency spread.
- "What to grind next" panel moved above the scenario stats.
Fixes
- Newly discovered benchmarks fully sync on their next Sync Now (no more bare cards without scenarios/scores).
- Overview family cards no longer show a phantom rank when snapshots carry no scores.
- 154 offline tests, clippy clean, CI green.
Full Changelog: v0.1.9...v0.2.0
Hotfix (re-patched in place)
- Steam profile URLs now connect: pasting
https://steamcommunity.com/id/<name>/
or aprofiles/<steamid64>link works — same asset, same version, fixed in place.
Full Changelog: v0.1.9...v0.2.0
Hotfix (re-patched in place)
- Benchmarks with under 50% scenario coverage now show Unranked (a single strong run no longer fabricates a high tier); the stale server rank is no longer used as a fallback tier.
v0.1.9
Kairos v0.1.9
Consistency & plateau detection
- The "What to grind next" panel now shows how reliable each scenario is: CV % (score spread over your recent plays — low = stable, high = still shaking) and a plateaued tag when no new personal best has landed for 3+ days. Judgment call: grind what's stable, swap out what's stalled.
- grind targets now also label how many ladder tiers a step spans ("2 tiers up") and lead with the cheapest single-tier wins.
From earlier: if you skipped v0.1.8
- 100% local rank coverage — every benchmark computes its rank from local data, no server fallback.
- One-click full backup export in the settings menu (JSON in Documents).
Full changelog: 3 commits since v0.1.8.
v0.1.8
Kairos v0.1.8
100% local rank coverage
- Every benchmark on the tracker now computes its rank fully client-side — no benchmark falls back to the server's stored rank anymore. Ranks stay exact and self-contained even when the public API disagrees.
Backup export
- One-click full backup: the settings menu gains an Export data… button that writes your entire history (snapshots, scenario scores, plays, favorites) as a single JSON file in your Documents folder — your data, portable at any time.
From earlier: if you skipped v0.1.7
- Grind-next targets capped at each scenario's ladder top, plus numbered step-by-step plans for floor/harmonic benchmarks.
- The evxl-accurate 12-tab benchmark type filter.
Full changelog: 3 commits since v0.1.7.
Full Changelog: v0.1.7...v0.1.8
v0.1.7
Kairos v0.1.7
Grind-next reachability fix
- Targets in the "What to grind next" panel are now capped at each scenario's ladder top — the best score a real player can actually set on that scenario. Before, rank methods that let a single outlier scenario flip the benchmark could suggest absurd numbers (up to ~98k on scenarios whose ladder tops out near 100); 61 of 384 live targets were unreachable.
- Scenarios already at their ladder top are skipped (no headroom).
- New: when no single scenario can flip the tier (floor/harmonic benchmarks), the panel now produces a numbered step-by-step plan — rung-by-rung targets that stay within each scenario's ladder and together reach the next rank. Probes also now track scenario tiers correctly for basic-family ranks, which previously made those paths invisible.
From v0.1.6 (if you skipped it)
- Benchmark type filter with evxl's exact 12-tab taxonomy and curated tag assignments.
- "What to grind next" panel: cheapest per-scenario scores to reach the next rank tier, probed against the local rank engine (exact for every method family).
Full changelog: 4 commits since v0.1.6.
Full Changelog: v0.1.6...v0.1.7
v0.1.6
Kairos v0.1.6
Benchmark type filters (evxl taxonomy)
- 12 filter tabs mirroring evxl: Mixed, Tracking, Static, Clicking, Ground, Precise, Smooth, Micro, Dynamic, Reactive, Evasive, Switching — combined with the name search, multi-select.
- Tag assignments match evxl's live filter exactly (Mixed 85, Tracking 14, Static 12, Clicking 6, Ground 5, Precise 3, Smooth 3, Micro 2, Dynamic 2, Reactive 2, Evasive 1, Switching 1), so e.g. the Static tab shows only genuinely static benchmarks (Deadman's, Static Clicking Suite, cA Static, Lemon, Dantes...) and Ground catches Jade Palace Ground, Ground Track DOJO, Aimbeast Ground, cA Ground Tracking, Peter Ground Technology.
- Benchmarks without a specialty show under Mixed, like evxl. Future registry additions fall back to keyword classification.
What to grind next
- New panel on the benchmark detail page: for each scenario, the minimal score that pushes the benchmark to the next rank tier (engine-probed by bisection, so it is exact for every rank method family).
- Targets are sorted cheapest-first, and when no single-scenario path exists (floor/harmonic families) the panel says so honestly instead of inventing targets.
- Completed ladders hide the panel entirely.
Under the hood
kovaaks-core::grind— probe-based target inversion over the 28-method rank engine.- Rank engine unchanged; targets are derived, never hand-tuned.
Full changelog: 7 commits since v0.1.5.