docs release evidence p17 t04 lifecycle exit - AlexandreZanata/Abastevo GitHub Wiki
P17-T04 — Cross-platform lifecycle and privacy exit
Status: LOCAL_DONE on codex/phase-17-social-iphone-parity (phase
exit task; draft PR #59 open). Issue: #58. No backend change, no
migration, no existing screen redesigned, no new string resources.
Slice acceptance (frozen before coding)
- T04 (this commit) — Prove same-fixture account/social/media/ location flows through native boundaries: revoked sessions block writes without IO, ownership/erasure refusals carry fixed kinds, 24 h transient expiry and simulated-location denial hold, and diagnostics carry aliases/counts only. Tests first: shared 280/agreement vectors, revocation, erasure kinds, expiry boundary, location verdicts, no-PII diagnostics. Live transport/Keychain/background/device rows stay explicit Mac-gated limitations (never marked ready).
What changed
application/.../feedback/FeedbackLifecycleExitTest.kt(6) — same fixtures (280/281, 6666 bp, zero-votes nil), revoked session blocks comment/vote/report with zero gateway calls, NOT_AUTHOR/COMMENT_NOT_FOUND/STALE_REVISION kinds, 24 h expiry boundary, SIMULATED/DENIED verdicts with no claim, and alias/count diagnostics without@.iosApp/.../FeedbackLifecycleTests.swift(6) — 1:1 XCTest transcription (280/281, 6666/nil,.signInRequiredwith nil op id, fixed NOT_AUTHOR/NOT_FOUND/STALE labels, TTL-1/TTL expiry, SIMULATED/DENIED denial,@-free diagnostics).docs/mobile/p17-t04-lifecycle-exit.md— G17 exit matrix with supported Android/JVM results and explicit Mac-gated iPhone rows; no device claim.
RED → GREEN
- RED: new tests referenced the absent exit class/vectors
(
Unresolved reference FeedbackLifecycleExitTestJVM-side; XCTest bodies absent Swift-side). - GREEN (this host):
./gradlew :domain:test :application:test :data:testDebugUnitTest :app:testDebugUnitTest :app:assembleDebugBUILD SUCCESSFUL;check-mobile --static-onlyok (incl. no force-unwrap);diff --check/ secrets clean. Swift build/test stays BLOCKED until Mac access (same precedent as P12-T04), never claimed.
Validation (exact commands, this host)
./gradlew :domain:test :application:test :data:testDebugUnitTest :app:testDebugUnitTest :app:assembleDebug --no-daemon
bash scripts/check-mobile.sh --static-only
git diff --check
bash scripts/scan-secrets.sh
Outcome recorded after the run below. Mac gate (BLOCKED):
cd iosApp && swift build && swift test plus simulator run
with synthetic-server binding and lifecycle proof (P18/G18).
Limits (not claimed)
- Swift sources are IMPLEMENTED, NOT VERIFIED (no Xcode on
Linux); no
swift build/testevidence is claimed here. - No live-server, Keychain, background-outbox or device-matrix proof in this slice; G17 device rows stay open until the Mac run. Rollback: feedback flag OFF preserves existing free/offline behavior and compatible API.