Skip to content

v2.5: API 36 target + review mode (draft) - #4

Draft
HighviewOne wants to merge 6 commits into
masterfrom
claude/v2.5
Draft

HighviewOne wants to merge 6 commits into
masterfrom
claude/v2.5

Conversation

@HighviewOne

Copy link
Copy Markdown
Owner

What does this PR do?

Work toward v2.5. This is a draft; Play-store assets and the version bump will follow on this branch.

  • API 36 (Android 16) target. Google Play has required it since 2026-08-31. AGP 8.7.3 → 8.13.2, Gradle 8.11.1 → 8.13, compile and target SDK 35 → 36. The bundled native library is confirmed to be 16 KB page-aligned.
  • Review mode. Questions you get wrong go into a review queue; answering them correctly clears them. Reviews can be opened from the "⟲ N" chip on the quest map or from "Review N mistakes" on the result screen. Reviews award no XP, so they can't be farmed.
  • Database v2 via a Room auto-migration, with a test that migrates a real v1 database containing progress and checks that the progress survives.

Type of change

  • Bug fix
  • New topic / content addition
  • UI / animation enhancement
  • Refactor (no behavior change)
  • Build / tooling

Checklist

  • ./gradlew assembleDebug builds without errors
  • ./gradlew detekt passes with no new violations
  • New topic follows *Content.kt format (n/a)
  • No hardcoded colors: the new chip and button use CqGold and LocalCqPalette
  • No new @Preview composables left in production files

🤖 Generated with Claude Code

HighviewOne and others added 6 commits October 4, 2026 20:54
…-08-31)

AGP 8.7.3 -> 8.13.2, Gradle 8.11.1 -> 8.13, compileSdk/targetSdk 35 -> 36.
Native lib (androidx.graphics.path) verified 16 KB page-aligned.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Wrong answers queue a question in a new missed_questions table; a correct
  answer (in a quiz or a review) clears it. Keyed by (topicId, questionId)
  because question ids are only unique per topic.
- Review reuses QuizScreen/QuizViewModel via route review/{topicId}
  (topicId "all" = every topic). Awards no XP and records no attempt, so
  it can't be farmed; stale queue entries (removed content) are skipped.
- Entry points: gold "⟲ N" chip on the quest map when anything is queued;
  "Review N mistakes" on the result screen.
- Review screens: "Review · Question x of N" title, no leave dialog
  (answers save as you go), "Nothing to review" when the queue is empty.
- Room v2 via AutoMigration(1 -> 2); schema 2.json exported. MigrationTest
  builds a real v1 database with progress, migrates, validates, and checks
  progress survives and the new table works.
- Tests: repository record/clear/scope, ViewModel review loading across
  topics + stale skipping + per-topic recording + no-XP completion, home
  chip, review UI flow clearing the queue, empty review.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…eenshots

- scripts/build-play-bundle.sh: bundleRelease + jarsigner with the release
  key as upload key; verified bundle signs with cert 0fcd73f2….
- play-store/README.md: step-by-step Play Console guide (account, app
  signing choice, listing, App content answers incl. data safety/content
  rating/target audience, 12-tester/14-day closed test, production).
- play-store/listing/*.txt + check-listing.py (Play length limits).
- play-store/graphics: 512 icon rendered from the launcher vector, 1024x500
  feature graphic in the app's cockpit style with bundled fonts.
- StoreScreenshots + screenshots.yml: generates store screenshots on a
  1080x1920 emulator with seeded progress (quest map, lesson, quiz
  feedback, result, review, blueprint); excluded from the normal
  instrumented run.
- privacy.html: lists the review queue; explains Android system backup
  (allowBackup) instead of claiming data never leaves the device.
  Verified release manifest requests no INTERNET/AD_ID permissions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
API.md (MissedQuestion, MissedQuestionDao, repository/ViewModel review
API, REVIEW route, screen params, DB v2 + MigrationTest), README features
and toolchain, RELEASE_NOTES Unreleased, DEPLOYMENT (target 36, Play
bundle), TESTING (migration + screenshot exclusion), documentation site
(review route, toolchain), TROUBLESHOOTING system image.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n full

Both found in the first generated store screenshots (pre-existing bugs):
- LessonScreen HeroCard had a fixed 210dp height, so two-line subtitles
  (e.g. AC Circuits) pushed the "~N min · questions · XP" pills out of
  the card. Now heightIn(min = 210.dp).
- XpBar labels were CqTextDim over the bright gradient fill; now CqText
  with a soft dark shadow, readable on the track and the fill.
- screenshots.yml also runs when UI sources change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…esh steps

Six 1080x1794 screenshots from the Store Screenshots workflow (run
37267202805): quest map, lesson, quiz feedback, result, review, blueprint.
Converted RGBA -> RGB (alpha was fully opaque) since Play rejects alpha.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant