v1.8.30
2026-06-12 All players. The biggest coach-quality jump since launch: the coach now grades its own accuracy after every match, repeats itself far less, remembers you across matches, notices when you act on its advice, and answers questions mid-match.
ADDED
- ▸ TRUTH-CHECKED badge on the Reckoning: after each match the coach grades every line it said during play against the live game state it was said under, and shows the verified count. The receipt no human coach can offer — and when it catches itself overstating something, it says so.
- ▸ Ask your coach mid-match: a chat bar on the live screen answers one question between fights in your coach's own voice, grounded in the current game state and remembering the conversation. Replies are rateable.
- ▸ Cross-match memory in the Reckoning: the post-match review can reference your recent arc — win/loss streaks, your K/D and ADR trend versus recent matches, and your record on the specific map — once a few matches are on record. It weaves in at most one such pattern and never invents a trend.
- ▸ The coach notices when you fix what it flagged: buy the armor or utility it called for, or finally spend a hoarded bank, and it acknowledges the correction the moment the next round goes live.
- ▸ Enemy pattern reads: freezetime calls surface repeated bomb-site hits and force-buy tendencies the coach has actually observed this half, framed as its own read and never extended past what it saw.
CHANGED
- ▸ Far less repetition — the most common complaint. The coach now sees its own recent calls before it speaks, so it shifts angle instead of restating the same buy with new adjectives, and a rejected line gets one pointed rewrite before any canned fallback ships.
- ▸ Lower boring-line rate overall: templated fallback lines fell from roughly half of coach calls at the low point toward about a fifth, with the retry-on-rejection engine converting many would-be fallbacks back into real coaching.
FIXED
- ▸ Pro subscribers are now correctly routed to the premium coaching model — a tier-mapping bug had been quietly normalizing every Pro license to the free tier, so Pro coaching was not actually running.
- ▸ The coach can no longer recommend buying armor or a helmet you already have: an enforced check now rejects the contradiction instead of only asking the model not to.
v1.8.12
2026-06-06 All players. Channel unification: stable and test now run the same build, so everyone gets the full 1.8 line at once, plus a structurally more honest coach and a roster change.
ADDED
- ▸ Fallback-cause instrumentation: every templated fallback line the coach ships is tagged with why it fired (rate limit, which quality check, repetition) so the boring-line rate is measurable per cause and fixable per cause.
- ▸ New coach quality checks built from real production failures: money-math phrasing like "$3950 down to 3950", invented map callouts after movement verbs ("Play Boma"), and raw telemetry vocabulary (frame counters, position deltas) can no longer ship.
CHANGED
- ▸ The coach can no longer cite a stat that was never captured. A match without a parsed demo has no real headshot percentage, ADR, or rating; the coach now says so instead of asserting zeros as fact, and a final check strips any uncaptured-stat claim from chat and post-match output before it stands.
- ▸ Reprimands respect the team save: when most of your visible teammates are also on light buys, the coach no longer scolds you for correct economic discipline.
- ▸ The Veteran is shelved. He was the least-picked coach by a wide margin and below the quality bar when picked; rather than ship a weak persona he is hidden (not deleted) until the map-knowledge system he is built for is filled with reviewed map data, and he returns as the coach who actually knows the maps. Anyone bound to him is paired with the Demon, now the default for new installs.
FIXED
- ▸ Privacy: 334 legacy feedback rows written before the 2026-06-04 backend fix carried a raw IP address, contradicting the published policy. All swept and verified by full re-scan: zero rows carry an IP. The policy is now true for every row we hold.
v1.8.5 - 1.8.11
2026-06-06 Test channel at release, promoted to all players in 1.8.12. Six releases in one night, driven by live tester sessions: the recording stutter verdict fixed, coach speech starting 3 to 5 times faster, post-match aim analysis, decision-first persona calls, and the overlay coverage complaints closed out.
ADDED
- ▸ Post-match aim analysis in the Reckoning (demo-backed matches): overflick rate and direction, plus a directional sensitivity read (too high / too low / dialed in). Honest by design: every finding carries its sample size, low-sample matches say "not enough engagements" instead of guessing, and it never prescribes a specific sensitivity number.
- ▸ Map-knowledge foundation: the coach can cite studio-reviewed map knowledge (timings, lineups, tendencies) in freezetime calls. The corpus starts empty and fills as real content passes human review, so nothing is invented.
- ▸ Coach diagnostics now record which transport served each call (streaming or buffered, with time to first token) so streaming performance is verifiable from real sessions.
CHANGED
- ▸ Live coaching text starts much sooner: true streaming transport puts first words on screen in roughly 0.3 to 0.6 seconds instead of 1.5 to 3. If the streaming path is unreachable the call falls back to the previous route automatically.
- ▸ Personas commit to the decision. Freezetime calls lead with the force/save/buy call through each coach's lens; generic buy-list endings are gone. On repeat deaths the coach rotates to a genuinely new angle, names equipment at most once per death sequence, and goes quiet on the third-plus same-mistake death instead of repeating itself.
- ▸ The visual coach captures frames directly from the graphics card via a small helper process (the same OS mechanism OBS uses). The game's render loop is never involved and a helper crash cannot take the app down. Same frames, same cadence, same opt-out.
- ▸ While recording, Game Demon runs itself at below-normal process priority so Windows always favors the game when both want CPU time.
- ▸ Visual Coach is labeled honestly: "Experimental, Free during beta". Visual calls do not spend cloud tokens during the beta; older copy claimed they did.
- ▸ Data-retention disclosure corrected to match the live privacy policy: coaching records up to 12 months, de-identified training archive up to 24, identifier hash still rotates every 90 days.
FIXED
- ▸ In-match stutter while recording ("unplayable" in live testing): a wake-word listener restart loop (measured at 1,171 engine restarts in one 26-minute match) now backs off and gives up cleanly after repeated failures, screen capture is capped at 1080p30, and the recorder prefers the GPU's hardware H.264 encoder.
- ▸ The in-game coach overlay no longer covers half the screen: long calls clamp to three lines at any text scale, the feed is bounded to about a quarter of screen height, and the panel only paints as tall as its content (on stretched 4:3 resolutions it used to fill half the display).
v1.8.2 - 1.8.4
2026-06-05 Test channel. Live-test fix batches from Pegal and Revn sessions, plus new feedback surfaces so more of what the coach says can be rated.
ADDED
- ▸ Post-match feedback asks on the Reckoning: one targeted question fired from specific in-match triggers, capped per session so it never nags.
- ▸ Thumbs ratings on the post-match narrative and Coach Chat replies (previously only live calls could be rated).
- ▸ "Open Captures" button in Settings reveals the visual-perception capture file.
CHANGED
- ▸ Text-size ceiling raised from 1.5x to 2.0x.
- ▸ System-audio (headset loopback) capture is now opt-in and OFF by default.
FIXED
- ▸ Rate-limited coach calls now degrade to a state-aware fallback line instead of erroring.
- ▸ Wake-word crash loop on machines where the speech service is unreachable now backs off exponentially instead of spinning ~25 times per second.
- ▸ Chat no longer hard-blocks on a transient token-spend failure; only a genuinely empty wallet blocks.
- ▸ The coach could attribute a push to your own team or assert a site hit it had no data for; enemy reads are now framed as tendencies, not certainties.
- ▸ Live calls are word-capped to overlay size (between-round 40, post-death 35), enforced in code.
v1.8.0
2026-05-29 All players. Comprehensive coaching capture: the data flywheel the adaptive coach is built on, with the privacy work done first.
ADDED
- ▸ Comprehensive auto-capture of coaching content: every live call, post-match analysis, Coach Chat and Ruby replies, and your own inputs are recorded to improve the coach and train future models. On by default, governed by Settings, Coach Feedback, Share My Coaching Data; turning it off stops capture at the source, and you can delete everything collected.
- ▸ Rotating per-quarter identifier hash: your Steam ID is HMAC-hashed with a server-held secret that rotates every 90 days before anything is stored. The plaintext ID is never written to our database, and records cannot be linked across quarters.
CHANGED
- ▸ First-launch disclosure, Settings privacy copy, and the published privacy policy rewritten to disclose comprehensive capture precisely. Corrects prior copy that stated chat messages were never uploaded.
v1.7.0 / 1.7.1
2026-05-28 All players. The two changes promised at launch, delivered: cloud coaching became the default (and then the only path, because it is simply better), and the six-signal feedback system graduated from the test channel.
ADDED
- ▸ Six-signal feedback on every live coach call, graduated from rc: Good call, Wrong call, Wrong timing, Wrong tone, Too generic, Not right now, with optional tone suggestion and freeform note.
- ▸ Settings, My Coach: a real window into what the coach has learned about you, with manual overrides.
- ▸ Audible tactile feedback on UI buttons: a short soft pluck (720Hz sine, not the old harsh click), gated on the same audio-cues toggle.
- ▸ The CS2 card now has two explicit buttons: ENTER (open the module without launching the game) and LAUNCH CS2 + ENTER. Clicking the card no longer auto-launches CS2 every time.
CHANGED
- ▸ Coaching is cloud-only for every tier. At launch we said local models would stay as an opt-in toggle; after measuring quality and the mouse-lag cost side by side, local inference was removed entirely. Base remains a one-time $14.99 purchase and now includes a monthly cloud-coaching allowance; Pro is unlimited.
- ▸ Skill-tier calibration across every coaching path: veterans never get fundamentals ("buy armor", "crosshair at head level"), noobs do. Previously only the mechanic-teach triggers were tier-aware.
FIXED
- ▸ Leetify parsing rewritten for the current public API shape; match lists and per-match metrics were silently empty.
- ▸ GSI-only stat honesty: ADR and headshot percentage do not exist in CS2's live data feed, so matches without a parsed demo now show those stats as unavailable instead of a misleading 0.
v1.7.0-rc1
2026-05-19 Test channel only. Rich feedback signals, per-user coach adaptation, and the foundation for the global training pipeline.
ADDED
- ▸ Six-signal feedback chip selector on every live coach call (Good call, Wrong call, Wrong timing, Wrong tone, Too generic, Not right now). Optional tone suggestion (sharper / softer / shorter / longer) and freeform note.
- ▸ Settings → My Coach: a real window into what the coach has learned about you. Per-persona tone bias, length bias, topic emphasis, suppressed cue list. Manual overrides stick until you reset.
- ▸ Preference aggregator: a "Refresh from recent feedback" button in Settings → My Coach turns repeated signals into the coaching prompt. Scheduled cadence (daily background tick) is the next iteration; today the user triggers it manually.
- ▸ First-launch data collection disclosure modal with a real opt-out at Settings → Coach Feedback.
- ▸ GDPR data request page at altrosstudios.games/privacy/data-request. Today the form opens a pre-filled email to support@altrosstudios.com (we fulfill manually within 7 days); the self-serve backend ships in the next release.
- ▸ Approach warnings on map callouts: T pushing into a common CT hold (Mirage Window from jungle, Dust2 Long A from spawn) gets a fact-grounded warning at freezetime.
- ▸ Player experience tier (noob / casual / veteran) in onboarding and Settings. Coach assumes the right level of mechanic literacy.
- ▸ Tier 0 mechanic teaches for noob and casual players: shift_walk, counter_strafe, no_run_shoot (noob only), crouch_cover, drop_bomb_safely. Three teaches max per match. Veteran tier suppresses entirely.
- ▸ Mechanics Learned section on the post-match Reckoning with Learn-more explainers. Lifetime review in Settings.
CHANGED
- ▸ Pro tier no longer warms the local 8B Ollama model at startup. Eliminates the mouse stutter from CPU spill when VRAM cannot fit the model. keep_alive=0 on every Ollama call so models unload immediately.
- ▸ HUD overlay coach calls hold for 15 seconds then fade over 3 seconds (was 5 minutes, was piling up and covering the game). Stack capped at 3 visible.
- ▸ Cross-map specificity validator: coach mentioning "banana" on Mirage (Inferno only) or "apartments" on Dust2 (Mirage / Inferno only) gets rejected before the call ships.
- ▸ Visual coach sample interval increased from 10 seconds to 30 seconds and frame width reduced from 1280 to 720 to cut GPU contention with CS2.
FIXED
- ▸ Leetify ingestion path was hitting /v2/profile/{id} and /v2/games/{id} URLs that do not exist on Leetify's public API. Every call silently 404'd. Rewritten against the documented v3 endpoints.
- ▸ primarySource value mismatch: onboarding wrote "both", Settings used "merge", orchestrator gated on "merge". Players who picked "both" in onboarding never got merge behavior. Unified on "both" across all surfaces.
- ▸ Post-match auto-route off the Live screen no longer fires when you are actively rating calls. Window also bumped to 120s for the off-screen case.
v1.4.3
2026-05-18 Coaching maturity push. Voice Q&A, the Tier 5 and Tier 6 surfaces (goals, weakness, tilt, career arc, curriculum, life context), per-persona coach quality tuning, and a batch of UI bug fixes from playtester feedback.
ADDED
- ▸ "Hey Ruby" wake word for voice questions to the chat persona.
- ▸ Push-to-talk voice Q&A with Ruby. AWS Polly neural voices for spoken responses.
- ▸ Per-player goal declaration: rank target, match volume target, skill target.
- ▸ Weakness profile aggregation per coaching category.
- ▸ In-match tilt detection: 3+ consecutive losses flips the coach into a softer delivery for the rest of the match. Per-persona softening sentence layered into every cue. Cue cadence unchanged — only the tone shifts.
- ▸ Career-arc timeline in the post-match Reckoning. Rank changes, milestone matches, comeback arcs.
- ▸ Auto-generated weekly curriculum based on your weakness profile.
- ▸ Life-context inputs (opt-in): stress and time-constraint adjustments.
- ▸ Tendency tracker observes opponent patterns mid-match.
- ▸ Strategy learner records outcomes across sessions for cross-match comparison.
- ▸ Team awareness: alive count, dead count, estimated team economy.
- ▸ nice_kill positive praise trigger when you win a duel cleanly.
- ▸ LLM dispatch budget per persona to control call frequency.
- ▸ Halftime shift trigger: explicit side-swap framing at the half.
- ▸ Internal quality dashboard for per-persona signal trends.
CHANGED
- ▸ Topic cooldown: the same theme of advice no longer fires across consecutive rounds.
- ▸ Variant rotation across fallback strings so templated lines do not repeat verbatim.
- ▸ Ruby push-to-talk hotkey is now configurable in Settings → Audio & Voice with conflict detection.
FIXED
- ▸ Leetify settings click no longer blanks the entire UI. ErrorBoundary now wraps every settings panel.
- ▸ Eco call no longer races buy phase. economy_decision fires on freezetime end so state is final when assessed.
- ▸ "How Demos Get Here" tutorial no longer plays twice.
- ▸ Match list now has explicit loading / empty / error states with retry.
- ▸ Prompt-leak root cause: removed ALL-CAPS section headers (GROUND TRUTH, VOICE TONE, RULES FOR THIS RESPONSE, etc.) from system prompts that the language model was echoing structurally into coaching output. The v1.2.3 prompt-leak validator stays as defense in depth.
v1.1.1
2026-05-16 Post-Steam-retirement direct-distribution stopgap. Valve retired the Steam page on 2026-05-15 on category-fit grounds; this is everything that had to ship the next day to keep the lights on.
ADDED
- ▸ Direct-distribution checkout via Stripe at altrosstudios.games.
- ▸ DynamoDB license storage with hardware binding.
- ▸ Magic-link JWT auth for the account portal.
- ▸ Self-service refund within 14 days or 2 hours of play.
- ▸ In-app updater via the Altros Studios Launcher.
- ▸ Customizable post-match Reckoning slot grid (five player-configured stats).
- ▸ Optional Leetify integration for richer post-match stats.
- ▸ Ruby companion: in-app navigation assistant with voice and chat.
CHANGED
- ▸ Post-match Reckoning page redesigned for readability: type scaling, slot grid as the centerpiece.
- ▸ Overlay default text scale reduced 15% per playtester feedback.
- ▸ Coaching persona accents desaturated 20% on the in-game overlay.
FIXED
- ▸ Profile video render failure on lobby and chat surfaces.
- ▸ Stat ID mismatch when Leetify fallback fires for unlinked players.
v1.0.5
2026-05-14 Final Steam submission. Initial public release. Distribution pivoted to direct-from-Altros on 2026-05-16 after Valve retired the Steam page on category-fit grounds.
ADDED
- ▸ Real-time AI coach for Counter-Strike 2 with four personas: Demon, Analyst, Veteran, Savant.
- ▸ Live in-match coaching pipeline via Game State Integration with sub-2-second latency.
- ▸ Post-match Reckoning narrative analysis.
- ▸ Voice in (push-to-talk question to Ruby) and out (AWS Polly neural).
- ▸ Validator chain: arithmetic, length, peek-blame, dedup, prompt-leak.
- ▸ Full Tier 1-4 coaching surfaces.