Skip to content

fix(android): never count copied Journal answers without confirmation - #58

Closed
kvnloo wants to merge 5 commits into
qa/noop-pinned-origin-20261019from
fix/android-journal-confirm-carry-forward-20261019
Closed

kvnloo wants to merge 5 commits into
qa/noop-pinned-origin-20261019from
fix/android-journal-confirm-carry-forward-20261019

Conversation

@kvnloo

@kvnloo kvnloo commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

User-facing correctness issue

NOOP currently auto-writes yesterday's native Journal answers as today's real Yes/No rows when Insights opens on a blank day. Those fabricated observations can enter correlations and Personal Experiment adherence/effect views without the user observing or confirming anything.

Change (fork-only)

  • Replace automatic database writes on opening Insights with a Copy previous answers opt-in action.
  • Keep today's unanswered questions blank unless the user explicitly logs or confirms.
  • Re-read native today rows on confirmation; copy only missing questions so a delayed confirmation does not replace a newer manual answer.
  • Do not copy for backfills or tomorrow; preserve explicit No and imported source isolation.
  • Add five JVM regression tests, five Android locales and a short behavior/evidence spec.
  • No schema or effect algorithm changes.

Source: ryanbr/noop@8e4b0c1; fork commit f021af9. Changes are intentionally separate from fork #49 (explicit-No baseline selection); together they prevent two distinct kinds of false controls.

Verification: Not yet run; fork CI pending. No device/clinical evidence. Intended review path: after CI is scheduled, retarget from fork main to exact pinned sync/origin-20261018-8e4b0c1 to remove unrelated upstream-sync changes. Do not submit upstream without authorization and independent review.

Credit: Preserves NOOP authorship, data ownership, and PolyForm Noncommercial license.

2026-10-19 review hardening

Exact head 72b15a8aef6f65cd6086c5bbfbd9312609322bfd also protects existing imported WHOOP answers for today (not just native rows), and invalidates stale suggestions at midnight before any copy. Seven JVM tests now cover imported/current-day collisions. Fresh Android CI and i18n CI were queued, not passed when recorded. The draft was returned to pinned-sync base to keep its accurate 9-file diff.

Additional local verification (October 19): Exact helper Git blob 81ccab082a9ef33d1ba1f1f30d822688f9b32077 materialized with byte-for-byte git hash-object match, compiled using local kotlinc, and passed 5 pure copy/gating tests (9 total shared Kotlin smoke checks alongside #54). Not Android app/Gradle CI, lifecycle/race integration, or device validation.

@kvnloo
kvnloo changed the base branch from sync/origin-20261018-8e4b0c1 to main October 19, 2026 16:07
@kvnloo
kvnloo changed the base branch from main to sync/origin-20261018-8e4b0c1 October 19, 2026 16:08
kvnloo added a commit that referenced this pull request Oct 19, 2026
Preserve the hidden-question habit composer guard, and incorporate #58's opt-in, imported-row-safe, rollover-safe native Journal correction and tests. Fork-only review integration.
@kvnloo
kvnloo changed the base branch from sync/origin-20261018-8e4b0c1 to qa/noop-pinned-origin-20261019 October 19, 2026 21:43
@kvnloo

kvnloo commented Nov 7, 2026

Copy link
Copy Markdown
Owner Author

Superseded by #119: this stale-base copy's changed files are all covered by that branch on current main (verified by file-set comparison). Closing per RFC-0 #103 branch kinds; branch kept.

@kvnloo kvnloo closed this Nov 7, 2026
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