null
b47302d6b7
docs(readme): refresh daily question screenshots
2026-07-08 14:53:12 -05:00
null
5013c2cd09
docs: update standardization review to completed state
...
Records the applied standardizations (state collection, whole-data-layer
Tasks→await, version catalog, TS payload typing, 7/8 ViewModel-Firebase
extractions) and the four deliberately-scoped follow-ons (HomeViewModel metadata
listeners, color tokens, Functions v2, catch-unknown) with the reason each needs
its own verification loop rather than a broad sweep.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 22:19:33 -05:00
null
39fbd943ff
docs: standardization & modernization review
...
Grounded review of the Android app / functions / build with measured
inconsistencies, what was standardized this session (collectAsStateWithLifecycle;
Firebase Tasks→await subset), and risk-assessed recommendations for the larger
items (finish Tasks→await, version catalog, ViewModel Firebase extraction,
Functions v2, color tokens, TS types).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 21:36:59 -05:00
null
a79db9474b
docs(crypto): key-storage migration design (design-only, gated)
...
Design for moving off the deprecated androidx.security:security-crypto to
Tink Android-Keystore-backed storage, without ever losing the couple key.
Covers: the load-bearing hazard (SecurePreferencesFactory.reset() silently
WIPES the couple key on any read failure) which must be removed first;
lazy dual-read + re-wrap + verify-then-clean migration; fail-closed (recover,
never delete) failure matrix; consumer ordering (couple key last); staged RC
rollout + content-free telemetry; test plan; open questions for the owner.
No implementation ships until the owner approves this design (Batch 5.1 gate).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 21:08:52 -05:00
null
55699e17ed
feat: security hardening, CI, analytics, invite deep links, solo mode, weekly recap
...
Roadmap phases 0-3.1 (see plan). Verified: unit tests, functions tests,
firestore rules 119/119, live emulator smokes.
Security + CI:
- Move App Check debug token out of committed build.gradle.kts to
local.properties (secret() resolver: local.properties -> -P -> env);
admin service-account key relocated outside the repo.
- Add GitHub Actions (android unit/scan/gitleaks, backend functions +
rules emulator via emulators:exec) with a CI google-services.json stub
and a reviewed .gitleaksignore baseline.
- Fix firestore rules tests to the current deployed contract (was 108/118,
now 119/119).
Analytics + consent:
- FirebaseRetentionAnalytics behind a fail-safe composite sink, single-
sourced hashing (AnalyticsHashing), Settings -> Privacy opt-out toggle
gating Firebase + the sink, and the ~11 missing event call sites.
- NoPlaintextInAnalyticsTest guards the content-free rule at build time.
Funnel:
- Invite deep links (https App Link + closer:// fallback), JoinLink parser,
PendingJoinCodeStore, prefilled/already-paired pairing, richer share text.
- Solo pre-pairing: UnpairedLockedCard on Play, SoloAnswerMigrator + consent
dialog moving pre-pairing answers into Couple Lore.
Weekly recap:
- WeeklyRecapScreen driven by the existing generator from local answer data,
Home card rewired, content-free shareable card.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 20:33:38 -05:00
null
f68cab5cf2
feat: signup flow, age gate, user model updates, how well screen, game prompt banner
2026-07-02 02:42:55 -05:00
null
d49d67ecbd
docs: add reveal-ready brand art + screenshot
2026-07-01 02:55:24 -05:00
null
18490f990e
docs: update home screenshots (ready + your-turn states)
2026-07-01 02:19:57 -05:00
null
2ecff95c12
docs: update home-dark screenshot
2026-07-01 01:50:54 -05:00
null
7aa72532b7
docs: update home-dark screenshot
2026-07-01 00:21:54 -05:00
null
38eae8f915
docs: R25 coverage entries, instrumented test landmine warning, tokenized snapshot URL note
2026-06-30 23:33:54 -05:00
null
4773570745
docs: update ClaudeReport (R24-d/c) and Engineering_Reference_Manual (keybox phrase envelope)
2026-06-30 21:25:00 -05:00
null
1e9f8b97bc
docs: update Future.md, ClaudeQAPlan.md, ClaudeReport.md, ClaudeiOSPlan.md, Engineering_Reference_Manual.md for R24 backup/restore
2026-06-30 20:43:34 -05:00
null
968ab563a0
docs: add R23-DQ-001 entry to Engineering Reference Manual
2026-06-30 19:06:18 -05:00
null
1159d679b0
docs(date-memories): update glyph README with date_replay count
2026-06-30 18:15:09 -05:00
null
1ea447fcd0
docs(date-memories): add illustration_date_memories_empty source assets
2026-06-30 18:15:07 -05:00
null
d2ab0da87e
docs(date-memories): add glyph_date_replay source assets
2026-06-30 18:15:05 -05:00
null
2119792cca
Revert "feat(date-memories): add glyph_date_replay + illustration_date_memories_empty assets (batch 7/8)"
...
This reverts commit 067155c108 .
2026-06-30 18:13:00 -05:00
null
7cc2e78cfb
Revert "docs(date-memories): update QAPlan, Report, iOS parity plan, and glyph README (batch 8/8)"
...
This reverts commit 6179a46c96 .
2026-06-30 18:13:00 -05:00
null
6179a46c96
docs(date-memories): update QAPlan, Report, iOS parity plan, and glyph README (batch 8/8)
2026-06-30 16:52:09 -05:00
null
067155c108
feat(date-memories): add glyph_date_replay + illustration_date_memories_empty assets (batch 7/8)
2026-06-30 16:52:04 -05:00
null
2a5c40508e
feat(notifications): QuietHoursManager + NotificationSettingsScreen rewrite, Cloud Functions (streakReminder, quietHours, reengagement, gameRetention), UserRepository E2EE wiring, SettingsDataStore, firestore rules, wiring-scan
2026-06-30 00:38:06 -05:00
null
f6291e1f2e
feat(home): HomeScreen rewrite, HomePriorityEngine polish, CoupleRepository E2EE wiring, OutcomeCheckInDialog, YourProgress, MemoryLane, settings/pairing/paywall/play/wheel/question screens cleanup, brand illustrations, QA docs
2026-06-29 16:51:46 -05:00
null
912b8c8093
feat(onboarding): RecoveryKeyManager fix, OnboardingScreen polish, build.gradle bump, Future.md planning update
2026-06-29 13:01:08 -05:00
null
b5b8ad8df9
feat(games): GameSessionManager cleanup, QuestionSessionRepositoryImpl fixes, HomeViewModel game-state wiring, QA docs
2026-06-29 12:20:07 -05:00
null
f6885b5fa4
docs(readme): revamped screenshot grid (dark mode), updated tagline and badges
2026-06-29 11:18:02 -05:00
null
582aefcec2
feat(tools): capture_android_canonical_vectors.sh for paired-CI fixture filling; sync Engineering Manual for wrapReleaseKeyCallable + iOS Keychain
2026-06-28 17:31:30 -05:00
null
d404301579
brand: update glyph_connection_challenge preview PNG + contact sheet + ClaudeBrandingReview
2026-06-28 17:19:17 -05:00
null
5c64f69754
brand: SVG restructure of glyph_connection_challenge (g→paths, added rect)
2026-06-28 17:09:23 -05:00
null
4215563873
brand: update glyph_connection_challenge + add glyph_closer_heart_keyhole
2026-06-28 17:09:02 -05:00
null
2d77786254
brand: refresh dark-variant illustrations (couple_history, couple_onboarding, tonight_partner_prompt) + dark contact sheet
2026-06-28 16:48:37 -05:00
null
cdf84352d6
docs(screenshots): recapture 02-login.png on new emulator-5558
2026-06-28 16:35:20 -05:00
null
b9828b60c5
brand: refresh dark-variant illustrations (couple_paywall, partner_activation, together_empty) and dark contact sheet
2026-06-28 16:34:51 -05:00
null
736885c103
docs: update README and Engineering Manual — auth uses Credential Manager, iOS pairing blocked, add scripts/ layout, new screenshot placeholder
2026-06-28 12:55:24 -05:00
null
faa0d9007f
docs: consolidate Future backlog, update ClaudeQAPlan/ClaudeReport, note FUTURE.md removal in Engineering Manual
2026-06-28 12:45:54 -05:00
null
f927097d67
brand: update dark-theme illustration and pack-art night assets
2026-06-28 12:45:15 -05:00
null
954aab4cd2
brand: add generated glyph assets + illustration exports, allow generated-art in git
2026-06-28 11:30:12 -05:00
null
186b40546b
docs(manual): Batch 9 — fix TOC nesting, broken anchor, and stale iOS claim in repository layout
2026-06-28 11:14:37 -05:00
null
df2837dc06
docs(manual): Batch 8 — update theme landmine entry (C-ART-EDGE-002 closed, theme scanner mandatory)
2026-06-28 11:13:21 -05:00
null
eb78b920a4
docs(manual): Batch 7 — correct iOS E2EE gap details and ProGuard description
2026-06-28 11:12:15 -05:00
null
8ce99e197f
art
2026-06-28 11:10:46 -05:00
null
e4175ebb52
docs(manual): Batch 6 — correct Billing webhook flow, add CouplePremiumChecker, fix quiet-hours and notification_queue claims
2026-06-28 11:10:08 -05:00
null
74e46761f2
docs(manual): Batch 5 — correct Firestore rules per-collection notes (users premium, couples create/update shape, remove migration helpers)
2026-06-28 11:08:42 -05:00
null
d19f0f8eb8
docs(manual): Batch 4 — update Cloud Functions list, module responsibilities, webhook ack order, and schedule timezones
2026-06-28 11:07:24 -05:00
null
08368b3e01
docs(manual): Batch 3 — correct E2EE and Firestore data model (user fields, couple fields, date plans, preferences, bucket list, secure subdoc)
2026-06-28 11:06:20 -05:00
null
a6aa23eee2
docs(manual): Batch 2 — correct auth providers and couples model (no anonymous, no migration field, Google SDK not Credential Manager)
2026-06-28 11:04:15 -05:00
null
be710a0c9d
docs(manual): Batch 1 — correct repository layout paths (core/feature, QuestionDao, QuestionJsonParser)
2026-06-28 11:02:45 -05:00
null
4deed13845
feat: theme-scan.sh + improved Pass C scanner methodology (tier 1A-1G, tier 2, tier 3 roadmap)
2026-06-28 10:28:17 -05:00
null
fe3ea7715c
feat: add automated theme-mismatch scanner to Pass C methodology (Tier 1-3)
2026-06-28 10:20:41 -05:00
null
37ed7cebec
feat: quiet hours notifications, settings UI, game session updates, docs
2026-06-28 10:00:25 -05:00