Skip to content

Releases: darkpandawarrior/Gaddi

v2026.08.35.1.236

Choose a tag to compare

@github-actions github-actions released this 25 Aug 21:28
v2026.08.35.1.236
5a30c0c
  • fix: versionCode 2 on every published APK, plus the remaining channels (#93)
  • chore: bump kmp-toolkit to ef201aa (#75)

v2026.08.35.1.234

Choose a tag to compare

@github-actions github-actions released this 25 Aug 19:49
v2026.08.35.1.234
ec9edc0
  • fix(fdroid): make the no-proprietary-components claim actually true (#91)
  • feat(cli): headless client proving :engine is a real SDK (#89)

v2026.08.35.1.232

Choose a tag to compare

@github-actions github-actions released this 25 Aug 19:03
v2026.08.35.1.232
536bd4e
  • fix: package compose resources into the Android APK (#88)
  • chore: let GitHub detect the GPL licence (#86)

v2026.08.35.1.230

Choose a tag to compare

@github-actions github-actions released this 25 Aug 16:05
v2026.08.35.1.230
6f877f6
  • perf(fdroid): exclude MediaPipe LLM, trim locales (62.4MB->17.7MB) (#85)
  • docs(fastlane): add changelog for versionCode 229 (#83)

v2026.08.35.1.228

Choose a tag to compare

@github-actions github-actions released this 25 Aug 13:42
v2026.08.35.1.228
387cd32
  • fix: report skipped store deploys instead of silent green checks (#82)
  • fix(release): add the leak gate, stop masking build failure (#80)
  • chore: relicense to GPL-3.0-or-later, assets to CC BY-SA 4.0 (#78)
  • ci(screenshots): stop the baseline-refresh loop, it was one subpixel (#72)
  • chore: bump kmp-toolkit to 3bf91b9 (#70)
  • build: Kotlin 2.4.20-RC, CMP rc01, and advance the composite pointers (#69)
  • fix(detekt): scan every source set, not an enumerated five (#66)
  • fix(deps): pin ws to 8.21.0 via the wasm Yarn root resolution
  • chore(screenshots): refresh baselines for 965e377 (#63)
  • chore(screenshots): refresh baselines for a4965f4 (#54)
  • chore(screenshots): refresh baselines for e7fe000 (#53)
  • chore(screenshots): refresh baselines for f159f9e (#51)
  • chore: bump kmp-toolkit to 5594d83 (#52)
  • chore(screenshots): refresh baselines for adcc8d8 (#49)
  • chore(screenshots): refresh baselines for 0542aa5 (#47)
  • chore(deps): bump dev.detekt from 2.0.0-alpha.5 to 2.0.0-alpha.6 (#55)
  • chore(deps): bump actions/setup-java from 5.6.0 to 5.7.0 (#58)
  • chore(deps): bump gradle/actions from 6.2.0 to 6.3.0 (#57)
  • chore(deps): bump agp from 9.4.0-alpha07 to 9.4.0-alpha08
  • chore(deps): bump ch.qos.logback:logback-classic from 1.6.0 to 1.6.1 (#36)
  • chore(deps): bump actions/setup-java from 4 to 5.6.0 (#34)
  • chore(deps): bump peter-evans/create-pull-request from 7 to 8 (#35)
  • chore(deps): bump gradle/actions from 3 to 6.2.0 (#38)
  • chore(deps): bump the ktor group with 13 updates (#37)
  • chore(deps): bump com.google.firebase:firebase-bom (#39)
  • chore: ignore graphify-out/ code-graph output (#50)
  • ci(bump-toolkit): push as the PAT so bump PRs get real checks (#48)
  • ci(bump-toolkit): revert the PAT wiring, restore GITHUB_TOKEN (#46)
  • ci(bump-toolkit): push as the PAT when one exists, so bump PRs get checks (#44)
  • chore: bump kmp-toolkit to b7ffc80 (#40)
  • feat(i18n): externalize 265 user-facing strings + gate the wasm leg on bumps (#41)
  • perf(android): ship arm64+armeabi-v7a only — drop emulator x86/x86_64 (APK 108MB→~47MB) (#29)
  • chore(deps): bump ch.qos.logback:logback-classic from 1.5.38 to 1.6.0 (#31)
  • chore: align toolchain and bump toolkit pins (#33)
  • ci(release): build release-only APKs (drop debug variants — size hygiene)

v2026.07.30.1.190

Choose a tag to compare

@darkpandawarrior darkpandawarrior released this 24 Jul 14:48
39c3f50
  • fix(web): remove stray canvas that swallowed all pointer input
  • ci: cut redundant PR jobs, path-filter the macOS iOS leg
  • fix: address CodeRabbit review — cache runtime shaders, rethrow cancellation, fix felt gradient radius, test assertions, opponent grid height
  • docs(readme): rewrite around three-layer UX + Sarkari Noir overhaul
  • docs(gifs): restitch flow GIFs for the launch overhaul
  • feat(screenshots): phone-portrait captures for portfolio device-wall
  • docs(screenshots): regenerate baselines for the launch overhaul
  • feat(audio): SoundPlayer pipeline + CC0 SFX wired to game beats (soundEnabled-gated)
  • test(android): notification-channels unit test + junit test dependency
  • feat(designsystem): AGSL/Skia runtime-shader material layer (grain/vignette/bloom, fallback)
  • feat(ui): AAA polish — ANALYST board, Gazette, Darbar to the Sarkari Noir language
  • feat(ui): AAA polish — Results/Settings/Online/Profile to the Sarkari Noir language
  • feat(ui): AAA polish — Career/Leaderboard/Review + Home strips
  • feat(ui): AAA polish — Story/Gauntlet/Tutorial to the Sarkari Noir language
  • feat(ui): AAA polish — Home/Setup/Lobby to the Sarkari Noir language
  • docs+harness: design-language spec, experience-assets plan, phone-width FOCUS render fixture
  • fix(game): AAA FOCUS polish — full action labels, crafted pot, bottom-edge hand
  • feat(game): AAA FOCUS board rebuild — dissolve boxes into one lit table
  • docs(progress): Wave 1 core tracks landed + visual QA notes
  • feat(game): subtle warm key-light + vignette on felt
  • feat(game): spring-physics juice on card/coin/action transitions
  • feat(designsystem): wire real Rozha/Marcellus/DM Mono typefaces
  • feat(game): Munshi narration upgrades the headline in place (templated-first)
  • feat(ai): narration provider matrix (on-device/BYOK/templated) + Munshi narrator
  • feat(online): server-side beat-ack timeout so matches don't stall
  • docs(progress): Wave 0 + Wave 1 status and resumption note
  • feat(art): composeResources asset track + fallback loader (inert until wired)
  • feat(onboarding): DensityLayer graduation policy + first-run funnel routing
  • feat(onboarding): interactive mechanic-at-a-time tutorial
  • feat(game): tap-to-continue beat affordance + what's-happening headline
  • feat(game): gate board surfaces on DensityLayer (FOCUS/GUIDED clean board)
  • chore(l10n): scaffold compose string resources, migrate one call site
  • feat(designsystem): add KursiMotion spring/duration tokens
  • feat(game): beat-gate state machine (PendingBeat/ContinueBeat), ANALYST unchanged
  • refactor(game): extract auto-play from GameViewModel (relieve function ceiling)
  • refactor(game): extract HandoffGuard from GameScreen
  • refactor(game): extract Darbar from GameScreen
  • refactor(game): extract CoachInsights from GameScreen
  • refactor(game): extract GamePhase to its own file
  • refactor(game): extract GameLog from GameScreen
  • refactor(game): extract StatusSpine from GameScreen
  • refactor(game): extract ReactionDocks from GameScreen
  • refactor(game): extract ActionDocks from GameScreen
  • refactor(game): extract YourHand from GameScreen
  • refactor(game): extract OpponentArc from GameScreen
  • refactor(game): extract FeltTable from GameScreen
  • refactor(game): promote GameScreen top-level decls to internal + regen detekt baseline (pre-split)
  • fix(shared): correct SharingStarted import package in KursiApp (Task 1 wiring)
  • docs(plan): Task 5 — add detekt-baseline + private-type constraints from Phase A trial
  • docs(plan): Wave 0 Task 5 — GameScreen/GameViewModel decomposition (promote-then-split)
  • chore(lint): fix import ordering in KursiApp/OnlineHubScreen (ktlint 14.2.0)
  • chore(lint): fix pre-existing import ordering in MainActivity/Screenshots
  • docs: spec rev 3 (resources, licensing policy, free design tooling) + resources.md + plan gate fix
  • feat(game): add DensityLayer axis (FOCUS/GUIDED/ANALYST), ANALYST default
  • fix(readme): animate hero banner, fix dead SMIL animation
  • docs(plan): Wave 0 foundation — density layers, beat gate, motion tokens, l10n scaffold
  • docs(spec): rev 2 — full scope (online, l10n, store, AI launch art) + parallel-wave timeline
  • docs(spec): launch overhaul design — density layers, pacing, renderer, AI, a11y, platform polish
  • fix(release): use MAJOR.MINOR.BUILD version for Compose Desktop packages
  • feat(release): three-tier versioning + github-release + deployment correctness
  • ci(screenshots): propose baselines via bot-branch PR instead of pushing to main
  • fix(lint): restore ktlint import ordering in 4 files
  • chore(screenshots): refresh baselines [skip ci]
  • fix(ios): add CADisableMinimumFrameDurationOnPhone to Info.plist (launch crash) (#21)
  • chore(screenshots): refresh baselines [skip ci]
  • docs: conform README to house style + refresh stale facts
  • chore(screenshots): refresh baselines [skip ci]
  • refactor(engine): consume shared.purity convention (backlog #20)
  • chore(screenshots): refresh baselines [skip ci]
  • refactor: consume genericized :feedback (backlog #13)
  • refactor(network): consume :network LAN discovery (#17)
  • chore(screenshots): refresh baselines [skip ci]
  • docs: add TOC, why-kursi, roadmap, and tech table to README
  • chore(screenshots): refresh baselines [skip ci]
  • chore(deps): bump the kotlin group with 6 updates
  • chore(screenshots): refresh baselines [skip ci]
  • refactor(ai): consume :llm-chat from kmp-toolkit (#10)
  • chore(screenshots): refresh baselines [skip ci]
  • refactor(network): adopt kmp-build-logic + consume enhanced :network (#16)
  • chore(screenshots): refresh baselines [skip ci]
  • refactor(designsystem): consume :common easing primitives
  • chore(screenshots): refresh baselines [skip ci]
  • refactor(ai): consume toolkit :ai for on-device LLM (kill dead stubs)
  • chore(screenshots): refresh baselines [skip ci]
  • refactor(ai): consume :bots-policy from kmp-toolkit
  • chore(screenshots): refresh baselines [skip ci]
  • refactor(ai): invert ai->engine coupling behind generic Policy/GameRules
  • docs(readme): repoint kmp-mvi-core refs to the kmp-toolkit monorepo
  • build(deps): consume kmp-toolkit monorepo (was kmp-mvi-core + kmp-feedback)
  • build: consume kmp-feedback as composite build, drop in-app core/feedback
  • chore(screenshots): refresh baselines [skip ci]