Murder Phone
Crack open a murder victim's phone โ and catch the killer hiding in the contacts.
Murder Phone drops a dead stranger's phone in your hands โ real texts, real contacts, real secrets. Scroll their threads, pick the replies that crack a suspect, and follow the evidence until someone confesses. Every case is a different phone, a different victim, and a different killer hiding in the contact list. No typing, no dice rolls โ just you, the messages, and the truth.
Dev log //
A text-message crime story where the interface is the constraint. Dense history because branching dialogue means every change touches more of the script than it looks like it should.
- Add the licensing key, bump to versionCode 2, cut the upload candidate
- Correct the client test count in the release records
- Ship the ad-removal purchase and put the store claim back
- Translate the twelve case entries that were silently falling back to English
- Do the KO/JA review; pull a false IAP claim from the store listings
- Record the real candidate; replace the stale todo list
- Close the six code gates left from the round-3 audit
- Add the offline recap narration audio (EN/KO/JA, 21 tracks)
- Wire up recap narration, ad-id hardening, and the round-3 audit fixes
- Implement bug-fix phases 1-3
- Add the Play Console answer sheet; record the real content rating
- Correct the privacy-policy claim: no change was needed
- Score off evidence found, not attempts; pin it with a test
- Fix the four device-log bugs; add versionCode policy and a capture script
- Route CrashReporter to Crashlytics; replace the 16 KB check it invalidated
- Rename to com.crystllabs.murderphone, bump to AGP 9, ship ads
- Sign the release bundle with the existing Crystl key; add the JA listing
- Drive the store icon from the launcher vector instead of hand-tuned fractions
- Drive the last three story cases on a physical device; fix a placeholder node
- Art pass: icon, feature graphic, avatars, and a look for the evidence photos
- Add TODO.md; archive the old lowercase todo.md
- Ship prep: SDK 36, no backend in 1.0, store kit, 3 bug fixes
- Repoint hardcoded dev paths from C:\Users\ace\Documents\Crystl to D:\Crystl
- Ignore local UI-dump debug artifacts
- Fix cross-case tutorial PIN leak (for real) + per-case phone identity
- Variety v2: channel registry, 3 new apps, multi-photo, generator v2, all 7 cases rebuilt + sweep round 2
- Bug sweep (Part 1): fix trust-drop, clue-set race, Settings detach crash
- Batch: case-switch persistence, Change Case button, transcript label, podcast voice + in-progress branch work
- Fix two tutorial bugs: bank PIN and home-tile label wrapping
- Untrack client/.gradle build artifacts (covered by .gitignore)
- L.10: pre-release lint pass โ 52 errors + 125 warnings to zero
- L.9: localize CaseRequest spinners + ColdOpen narrative
- L.6: JA overlays for silicon_heist, prairie_vanishing, sky_king โ JA complete
- L.6: JA overlays for the_gilded_promise + the_nightingale_deception
- L.6: JA overlays for tutorial_case + the_empty_sleeve
- L.3: full Japanese UI translation (values-ja/strings.xml)
- L.5: KO overlay for the_sky_king_s_ransom โ KO case pass complete
- L.5: KO overlay for the_silicon_prairie_vanishing
- L.5: KO overlay for the_silicon_heist
- L.5: KO overlay for the_nightingale_deception
Showing the 40 most recent of 92 logged changes.
Every line above is a real commit from this app's repository, on the date it was made. Build chores and merge commits are filtered out.