Repository navigation
docs mobile android developer preview key session
Scope: user request 2026-10-07; P37-T01/T02 and P36-T01/T03. Opened at ce04ba1 in an isolated checkout because maintained dev was occupied. Combined source preserves the existing UI commits through 4fa7298, rollout plan 523be92, upload-origin fix abfc9a6 and dependency/auth-test fix 60a3fd7; no edits were overwritten.
B-BR-DEV01: an explicit, default-off debug-only UI preview allows camera or gallery without location. The existing manually selected Home city is reused; typing a station name searches only that city and requires an explicit canonical UUID selection. A late normal nearby response cannot clear the manually selected development station; normal location loading is disabled while preview is active. Release controls are absent. No GPS is fabricated; import time is not verified shutter time. Private copies retain bounded size and 24h TTL.
The user subsequently required real local/server submission and explicitly authorized deployment, private S3 storage and a worker only in abastevo-temp. The server flag defaults OFF, is forbidden in production and foreign staging hosts, and expires automatically (initially configured for 24 hours, extended to seven days by the owner on 2026-10-08). Signed nonce/account/quota/owner/idempotency checks remain. Receipts persist a distinct photo-capture-ui-test-v1 provenance; normal policy refuses those receipts. Turning off debug mode/restoring into normal mode blocks their use.
BUC-DEV01: choose city on Home -> Community/contribute -> enable temporary developer mode -> search station by name and explicitly select it -> obtain signed development receipt -> camera/gallery -> existing OCR/crop/fuel review -> explicit submit -> durable signed outbox -> private S3 -> server status.
Deployment boundary: only abastevo-temp API, worker, storage and owned secret/ migration resources. No other namespace, global prune, shared edge change or other application's database/image is authorized. Keep previous API image and take an owned database backup before the append-only upgrade. No GitHub push.
B-BR-KEY01: one successful native credential confirmation authorizes reveal, copy, save and share for the same account during the app session. Never persist the grant or key. Cancellation, failed launches and late callbacks do not grant access. Closing the activity (except configuration recreation), process death, logout, deletion or changing account invalidates the grant. Backgrounding for the native credential dialog, file picker or share sheet does not invalidate it. Secure window, masking and clipboard expiry remain active.
BUC-KEY01: reveal -> authenticate once -> copy/export without another native prompt -> close/reopen or logout -> a new prompt is required.
B-BR-UI01: signup completion and retained login use the exact account-detail status/key/action components, spacing, surfaces, typography and buttons. Keep the signup Continue action and existing login/navigation/session behavior.
Status: LOCAL_DONE Validation: PASS
Behavior fingerprint (sorted changed/untracked non-doc paths + NUL + bytes +
NUL, SHA-256): acfbe9362ddc567f0e775c90fba7dcebdb94ac2e3724994d60efb16117bc7ff5
(48 behavior/test/contract files; parent ce04ba1).
B-BR-DEV01 duration amendment: the owner explicitly requested seven days on 2026-10-08 and confirmed this is a developer-only environment. The deadline is now 2026-10-15T11:45:50Z (2026-10-15 07:45:50 America/Cuiaba), seven days from the request verification. Only the existing owned secret deadline and Abastevo deployment restart were changed; no application source or quota policy changed. Photo retention and individual receipt limits remain 24 hours.
Before restart, owned secret/deployment snapshots and all five private objects were preserved privately. After restart, all object bytes/hash/MIME matched; the transient media copy was removed. API/worker/storage pod abastevo-temp-api-5b87fcdf79-k5fsb: 3/3 ready, zero restarts; public HTTPS health ready. Focused config race tests passed, including production/foreign host and more-than-seven-day refusal. A real signed loopback request accepted the no-GPS development receipt; normal capture still refused missing location. The public peer quota was preserved.
The already verified current-source APK (SHA-256 below) was reinstalled on the POCO through adb install -r and MainActivity reopened successfully. Account and app data were preserved. No APK rebuild was needed for this server-only configuration change. Native credential/gallery walkthrough remains owner QA. No GitHub publication or other VPS application change.
Behavior merge e26d546 retains maintained dev 60a3fd7 and the previously
validated UI/session/preview changes. A further negative upload-origin test
refuses a configured origin that differs from the signed proof before network
I/O. Current behavior/test fingerprint: 71 files,
9c7c4460d48c2fde18fb81091a6990934fa55cd2914181d2360f746f0773c82b.
Debug APK SHA-256:
cbda350bdcb0042151e1775201756b2ac7ba05c8a60ebd04c1aa23e9ec880a9f.
Affected origin build: debug APK/instrumentation APK and lint passed. The first release invocation had a wrong test-class filter; correcting it to ReleaseDevelopmentPhotoCaptureTest passed. Eight ContributionUploadHttpClient cases, release transport refusal, R8/size passed (BUILD SUCCESSFUL in 2m 43s, 126 tasks; 4,224,869 bytes). The combined focused evidence now covers 73 Android unit cases, with prior unchanged selections retained rather than repeated. Release DEX still excludes developer controls/evaluation activities. POCO reconnected with a new ADB transport: final APK installed with -r and the correct fully qualified AuthAccountContinuityDeviceTest passed (one test), without clearing user data. Native credential entry remains owner QA.
Backend dependency refresh: affected race suites and vet passed; key HTTP suite passed 20 repetitions and real PostGIS key login/parallel signup passed. Updated govulncheck: no vulnerabilities found. Mobile/security static checks, secret scan and diff whitespace checks passed. No aggregate or remote gate acceptance is inferred.
Actual commands (same serial/offline/JVM arguments recorded below):
./gradlew --offline --no-daemon --no-parallel --max-workers=1 \
-Dorg.gradle.jvmargs='-Xmx2g -XX:MaxMetaspaceSize=1024m -Dfile.encoding=UTF-8' \
-Pkotlin.compiler.execution.strategy=in-process \
:data:testDebugUnitTest --tests '*ContributionUploadHttpClientTest' \
:data:testReleaseUnitTest --tests '*ReleaseDevelopmentPhotoCaptureTest' \
:app:verifyReleaseApkSize --console=plain
# backend; ANPFUEL_TEST_DATABASE_URL names the disposable local PostGIS only
go test -race -count=20 ./internal/modules/account/adapters/http
go test -race -count=1 -tags=integration ./internal/modules/account/adapters \
-run 'TestPG(KeyAccountRoundTrip|ParallelKeySignupAdmitsExactlyOne)'
govulncheck ./...
go vet ./...Owned feature commit: 16f3a07. UI-preserving merge b2cad57 was tested after combining maintained dev 4fa7298; later 523be92 changes only the rollout plan. The behavior diff after retaining that plan is empty. Final Android invocation: serial/offline Gradle, 1GiB metaspace, selected 54 debug unit tests, debug APK, instrumentation APK, lint (zero errors), release availability test, R8 and size: BUILD SUCCESSFUL in 5m 40s (233 tasks), release 4,224,869 bytes. Unchanged data and backend evidence below remains applicable. Release DEX excludes developer UI and evaluation activities. Combined existing-behavior-file fingerprint: 4908b7475c5f15e93f98861d5b5820b8a001ad1e9a8b4ea930b12832385f3f7e (64 files; the removed placeholder card is recorded by b2cad57). Final debug APK SHA-256: 0d6dd80be65ccb0e2504c9058e7d7d721a0a88850771762a76d383f07a01c2a9.
Combined debug APK installed with adb install -r. Repeated only the affected
AuthAccountContinuityDeviceTest on POCO/API36: OK (1 test); no data/account wipe.
The earlier two synthetic media cases below are unchanged. Local disposable
PostGIS/MinIO fixtures and temporary local credential files were cleaned up;
authorized VPS sidecars remain available until operator teardown. The preview
flag still expires automatically at the recorded deadline.
- RED: the new backend flag/policy and Android APIs were absent before the change. The additional delayed-nearby test reproduced a lost manual station; guarding normal loading/results while preview is active made it GREEN.
- Final debug unit suites: CaptureOcrViewModelTest (27), AuthViewModelTest (23), KeyUnlockSessionTest (4); data PhotoCaptureHttpClientTest (3), DirectoryStationHttpClientTest (6). All passed, no skips. Debug APK and lint passed; Android lint has zero errors.
- Release variants: ReleaseDevelopmentCaptureTest and ReleaseDevelopmentPhotoCaptureTest passed (one each). The release transport cannot produce a development request even for the owned staging host. Final R8/APK/size passed (4,231,129 bytes). The combined invocation reported exhausted JVM metaspace before a reflected release Kotlin failure. A fresh serial release invocation with 1GiB metaspace passed in 3m 41s, without project memory/config changes. Release DEX contains no developer UI or evaluation activity class markers. Debug APK SHA-256: 18370517f0565a338028fccb1a9abb05f12faa5a4c3788baed2f0e7c76c89223.
- Backend: affected config/community application/HTTP/proxy/API tests passed with race detection. Production/foreign-host/expired flag, unknown station, missing proof, normal location requirement, owner/key/window/provenance, stale replay and immutable shared-photo bindings are covered.
- Disposable real PostGIS: development policy persistence, replay/owner/recovery and existing capture/shared-photo concurrency passed. Both ordinary media and development-capture API/worker process cases passed against real private S3. Development process: two reviewed fuel rows reached VALIDATED; foreign owners received 404. Synthetic JPEG bytes only.
- Always-active integration proxy test uses an isolated S3 protocol peer to check signed host/path/query/MIME/bytes and anonymous refusal without requiring a workstation port. Additional real MinIO PUT/GET/DELETE passed before the live HTTPS pipeline. No integration test is skipped or weakened.
-
sqlc generate,sqlc vet, affectedgo vet/staticcheck,bash scripts/check-mobile.sh --static-only,bash scripts/check-security.sh --static-only,git diff --checkandbash scripts/scan-secrets.shpassed. OpenAPI vacuum: zero errors, 62 existing warnings and 41 informs. No SDK/dependency addition, contributor GPS, production photo, private key/token or live secret enters Git/logs. - POCO 2311DRK48G / API 36: updated debug and instrumentation APKs with
adb install -r; no account/data wipe. Raw AndroidJUnitRunner withclearPackageData=falseran AuthAccountContinuityDeviceTest plus the controlled outside-station and synthetic private-age/pixel-bounds methods from PhotoReviewDeviceTest:OK (3 tests). Account test uses unique synthetic prefs and real isolated Keystore aliases and cleans only those aliases.
Exact Gradle selection (offline, serial, one worker, in-process Kotlin):
./gradlew --offline --no-daemon --no-parallel --max-workers=1 \
-Pkotlin.compiler.execution.strategy=in-process \
:data:testDebugUnitTest --tests '*PhotoCaptureHttpClientTest' \
--tests '*DirectoryStationHttpClientTest' \
:app:testDebugUnitTest --tests '*KeyUnlockSessionTest' \
--tests '*CaptureOcrViewModelTest' --tests '*AuthViewModelTest' \
:app:assembleDebug :app:lintDebug --console=plain
./gradlew --offline --no-daemon --no-parallel --max-workers=1 \
-Pkotlin.compiler.execution.strategy=in-process \
:app:assembleDebugAndroidTest --console=plain
./gradlew --offline --no-daemon --no-parallel --max-workers=1 \
-Pkotlin.compiler.execution.strategy=in-process \
:data:testReleaseUnitTest --tests '*ReleaseDevelopmentPhotoCaptureTest' \
:app:testReleaseUnitTest --tests '*ReleaseDevelopmentCaptureTest' \
:app:verifyReleaseApkSize --console=plain
# Final release repeat after the combined daemon exhausted metaspace:
./gradlew --offline --no-daemon --no-parallel --max-workers=1 \
-Dorg.gradle.jvmargs='-Xmx2g -XX:MaxMetaspaceSize=1024m -Dfile.encoding=UTF-8' \
-Pkotlin.compiler.execution.strategy=in-process \
:app:testReleaseUnitTest --tests '*ReleaseDevelopmentCaptureTest' \
:app:verifyReleaseApkSize --console=plain --stacktraceAffected Go selections (inside backend, Go 1.27.1; disposable database/storage provided through test environment variables, never a live DSN):
go test -race ./internal/platform/config \
./internal/modules/community/application \
./internal/modules/community/adapters/http ./internal/platform/httpapi \
./cmd/api ./cmd/worker
go test -race -count=1 -tags=integration \
./internal/modules/community/adapters -run 'Test(DevelopmentPhotoPreview|PhotoCapture|SharedPhoto)'
go test -race -count=1 -tags=integration \
./internal/platform/httpapi -run TestDevelopmentStorageSignedProxyRoundTrip
go test -race -count=1 -tags=integration \
./cmd/api -run TestPublicProcessDevelopmentPhotoPreview- Actual namespace: abastevo-temp; existing Deployment abastevo-temp-api now owns API + worker + private MinIO sidecars. Database, old API deployment and secret were backed up privately before append-only migrations 43–48.
- Owned origin: https://teste.abastevo.com.br. Private bucket abastevo-dev-photos is reachable only through signed S3 requests on this origin; MinIO binds loopback, console/browser disabled, anonymous denied, bucket-only app credentials, one-day object expiry. No edge/NodePort change.
- Automatic capture/submit cutoff: 2026-10-15T11:45:50Z (2026-10-15 07:45:50 America/Cuiaba; explicit seven-day extension). Defaults remain OFF elsewhere. Deadline expiry is a server refusal, not a claim that the sidecars remove themselves.
- Private media is temporary: 5GiB emptyDir, lost on pod replacement; no production durability/certification claim. After initial startup OOM, MinIO limit is 1GiB with GOMEMLIMIT=384MiB. Rollout maxSurge=0/maxUnavailable=1 respects the existing namespace CPU quota. Prior pod stayed ready for ten hours. Current dependency-refreshed pod: abastevo-temp-api-5b87fcdf79-k5fsb, 3/3 ready, zero restarts, HTTPS health ready.
- Initial images (revision label ce04ba1-dev-preview-20261007): API 80a423f225618ac743bba7a2b3f9763cddb76f7e2065a49d426134a927c23af2; worker 43948beaea782e28cd1bf6dd31f1fcb789edfff7454298a36751fce038034583; migrate 23f288048834f6b2f71702431eccda16e91edbaf52672443c19bdd6f307e8367; storage 359182bc95e9029cbf11886c20944f9f8173a93aed83faa226cb795adf711792.
- Current API/worker tags: dev-preview-20261008, revision e26d546-dev-preview-20261008, with corrected x/text/x/sync dependencies. API 4f1e525fb970c18b18c3de5abc0c09c813af9b6147d51160582fbb67a746dfdb; worker 455e96dbe1fb2779b424ad683a61b9365c1704f6479719e798ba02cba22398e3. Migration/storage images remain the above owned images. Before the rollout, the existing private object was copied into a mode-0700 owned backup; after rollout its bytes/hash/MIME were verified and the transient copy removed.
- Repeated smoke initially reused a content-addressed image already bound to a different session, triggering the existing duplicate-key refusal. Fresh random synthetic pixels avoided that fixture collision. Repeated signed status polling exhausted the public peer challenge quota (60/hour), which was preserved: the observed window renews 2026-10-08T12:00:00Z (08:00 Cuiaba). The updated runtime passed via an owned loopback API port-forward plus verified public HTTPS private media: READY, two fuel rows VALIDATED, idempotency, anonymous denial and normal location requirement. Public HTTPS health is ready; full public HTTPS pipeline evidence is the earlier run. No quota reset, edge/auth weakening or duplicate-policy change was made.
- Storage uses the existing project MinIO dependency (AGPLv3), cached RELEASE.2025-04-22T22-12-26Z because the project-pinned upstream image could not be pulled. Original notices preserved; no MinIO source change. Bounded nonproduction validation only; no claim of current production suitability.
- Real HTTPS smoke: signed synthetic contributor -> development receipt with no GPS -> JPEG PUT -> complete -> worker READY -> GASOLINE_REGULAR + ETHANOL VALIDATED. Idempotent retries retained the same facts. Anonymous media denied and a normal capture without location still refused. TLS verification stayed enabled. No production data was submitted.
- All VPS mutations targeted abastevo-temp and owned /opt/abastevo-temp paths. Peer snapshot: 40 non-Abastevo pods retained UID/restart counts; the alta-floresta API moved to another ReplicaSet concurrently. No operation in this task wrote that namespace, another app's image/config, global quota, firewall, shared edge or production database.
- Local-only VPS manifests/rollback notes are under .local/abastevo-temp/dev-preview-20261007 in the VPS repository. Secrets, database backup and live smoke remain private under the owned VPS path. Nothing from that repository is committed or pushed.
Choose Curitiba on Home, reopen contribution, enable temporary developer mode, type POSTO PENTEST TEMP, explicitly pick the canonical result, then choose camera or JPEG/PNG gallery and review/edit/crop the fuel rows before Send. This is the only station currently present in the temporary server catalog; typing does not silently create an unverified station. Other cities need their own actual server catalog entries.
Native device credential entry/biometric success is a human hardware action. The memory grant, cancellation/late-result/reset boundaries are unit tested; the actual one-prompt reveal/copy/export sequence remains for owner validation. Gallery provider selection and a complete Android-to-server visual walkthrough remain owner QA; local/backend/device results above must not impersonate them. The temporary staging deployment does not accept PC05/expanded PC06, G09, production release, public pilot, iOS, merge or wiki gates.
Integration: maintained dev was clean at 60a3fd7. Guarded local fast-forward completed to d95b189, preserving every existing UI/plan/upload/security commit. The checkout is locally integrated; main acceptance remains pending. Main integration remains INTEGRATION_PENDING. Subsequent publication must use protected dev -> main batch delivery. No GitHub push/PR/merge/wiki in this task.
- Home
- Roadmap
- docs-ADR_INDEX
- docs-AI_ENGINEERING_CONTRACT
- docs-CURRENT_STATE_AUDIT
- docs-MIGRATION_PLAN
- docs-README
- docs-adr-001-kotlin-compose-stack
- docs-adr-002-price-import-immutability
- docs-adr-003-nominatim-reverse-geocode
- docs-adr-004-backend-scope-and-governance
- docs-adr-005-modular-monolith-and-postgresql
- docs-adr-006-official-catalog-and-exact-contracts
- docs-adr-007-anonymous-proof-of-possession
- docs-adr-008-privacy-and-retention
- docs-adr-009-community-consensus-and-projections
- docs-adr-010-private-object-evidence
- docs-adr-011-operations-and-android-gate
- docs-adr-012-licensing-and-hosted-business
- docs-adr-013-fast-phase-delivery
- docs-adr-014-functional-app-before-production-release
- docs-adr-015-kotlin-multiplatform-shared-domain
- docs-adr-016-android-commercial-community-ios-deferred
- docs-adr-017-station-profile-and-verified-representation
- docs-adr-018-project-batch-delivery
- docs-adr-019-android-vps-integration-first
- docs-adr-020-maintained-dev-main-delivery
- docs-adr-021-community-first-contribution
- docs-architecture
- docs-assets-brand-README
- docs-assets-flags-ATTRIBUTION
- docs-assets-fuel-icons-README
- docs-assets-games-fuel-v1-README
- docs-assets-home-art-README
- docs-assets-home-icons-README
- docs-assets-landing-fleet-android-20261012-BRIEF
- docs-assets-landing-hero-20261011-BRIEF
- docs-assets-landing-illustrated-20261012-BRIEF
- docs-assets-landing-illustrated-20261012-README
- docs-assets-landing-minimal-20261012-BRIEF
- docs-assets-landing-redesign-20261011-PREPARATION_EVIDENCE
- docs-assets-landing-redesign-20261011-README
- docs-assets-landing-redesign-20261011-REFERENCE_BRIEF
- docs-assets-landing-sync-20261012-BRIEF
- docs-attribution
- docs-backend-ANDROID_INTEGRATION_GUIDE
- docs-backend-ANP_INGESTION
- docs-backend-API_PLAN
- docs-backend-CI_PR127_RECOVERY
- docs-backend-CI_PR128_PR129_RECOVERY
- docs-backend-COMMUNITY_FIRST_POLICY
- docs-backend-COMMUNITY_PRICING_SPEC
- docs-backend-DATA_MODEL
- docs-backend-DOMAIN_MODEL
- docs-backend-INFRASTRUCTURE_PLAN
- docs-backend-PHOTO_CAPTURE_CONTRACT
- docs-backend-PHOTO_SUBSET_SUBMISSION_CONTRACT
- docs-backend-PREMIUM_API_CONTRACT
- docs-backend-PREMIUM_BILLING_RUNBOOK
- docs-backend-PREMIUM_CLOUD_PROTOCOL
- docs-backend-PRIVACY_NOTICE
- docs-backend-REGISTRY_DAILY_SYNC
- docs-backend-RST_VPS_HARDENING
- docs-backend-STATION_RELIABILITY_AUDIT_20261013
- docs-backend-TARGET_ARCHITECTURE
- docs-backend-TEST_STRATEGY
- docs-backend-TOOLCHAIN
- docs-backend-evidence-community-safety-COMMUNITY_FINAL_SAFETY
- docs-backend-evidence-community-safety-COMMUNITY_HOME_CONSOLIDATION
- docs-backend-evidence-community-safety-CS00_AUDIT
- docs-backend-evidence-community-safety-CS01_HELPFULNESS_CONTRACT
- docs-backend-evidence-community-safety-CS02A_HELPFULNESS_STORE
- docs-backend-evidence-community-safety-CS02B_HELPFULNESS_HTTP
- docs-backend-evidence-community-safety-CS03A_HELPFULNESS_QUOTA
- docs-backend-evidence-community-safety-CS03B_LIMITER_ROTATION
- docs-backend-evidence-community-safety-CS04_FEED_PLANS
- docs-backend-evidence-community-safety-CS05A_CONTRIBUTION_MODERATION
- docs-backend-evidence-community-safety-CS05B_REVIEW_ANNOTATION
- docs-backend-evidence-community-safety-CS06_PROJECTIONS_ISOLATION
- docs-backend-evidence-community-safety-CS07A_BENCH_HARNESS
- docs-backend-evidence-community-safety-CS08A_HELPFULNESS_CLIENT
- docs-backend-evidence-community-safety-CS08B_HELPFULNESS_VIEW
- docs-backend-evidence-community-safety-CS09A_CONSENT_CONTRACT
- docs-backend-evidence-community-safety-CS09B_CONSENT_STORE
- docs-backend-evidence-community-safety-CS09C_CONSENT_HTTP
- docs-backend-evidence-community-safety-CS10A_PROMOTION_CONTRACT
- docs-backend-evidence-community-safety-CS10B_DERIVATIVE_STORE
- docs-backend-evidence-community-safety-CS10C_WORKER_PURGE_SOAK
- docs-backend-evidence-community-safety-CS10D_TRAINING_ERASURE
- docs-backend-evidence-community-safety-CS11A_CONSENT_CLIENT
- docs-backend-evidence-community-safety-CS11B_CONSENT_VIEW
- docs-backend-evidence-community-safety-CS11C_PHOTO_OPT_IN
- docs-backend-evidence-community-safety-CS12A_CONSENT_LIVE
- docs-backend-evidence-community-safety-PRM_COMMUNITY_FIRST
- docs-backend-evidence-community-safety-PRM_COMMUNITY_FIRST_ROLLOUT
- docs-backend-evidence-community-safety-RVA01_INGRESS_CONTRACT
- docs-backend-evidence-community-safety-RVA02_ADMISSION_CONTRACT
- docs-backend-evidence-community-safety-RVA03_ERASURE_RECOVERY
- docs-backend-evidence-community-safety-RVA04_CONSENT_FENCE
- docs-backend-evidence-community-safety-RVA05_OUTPUT_RECOVERY
- docs-backend-evidence-community-safety-RVA06_MINIMIZATION_GATE
- docs-backend-evidence-community-safety-RVA07_DEADLINE_ENFORCEMENT
- docs-backend-evidence-community-safety-RVA08_OWNER_CONSENT
- docs-backend-evidence-community-safety-RVA08_STAGING_ACCEPTANCE_2026-10-12
- docs-backend-evidence-community-safety-RVA09_JWKS_ADMISSION
- docs-backend-evidence-community-safety-RVA_BATCH_DELIVERY_2026-10-13
- docs-backend-evidence-community-safety-SEC01A_ADMISSION_REGRESSIONS
- docs-backend-evidence-community-safety-SEC01B_MAILBOX_BOUND
- docs-backend-evidence-community-safety-SEC01C_ATOMIC_ADMISSION
- docs-backend-evidence-community-safety-SEC01D_RETRY_ROLLBACK
- docs-backend-evidence-community-safety-SEC02A_PROXY_REGRESSIONS
- docs-backend-evidence-community-safety-SEC02B_TRUSTED_RESOLVER
- docs-backend-evidence-community-safety-SEC02C_BUDGET_SPLIT
- docs-backend-evidence-community-safety-SEC03A_ATOMIC_RESERVATION
- docs-backend-evidence-community-safety-SEC03B_TRANSFER_BOUNDARY
- docs-backend-evidence-community-safety-SEC03C_PROVIDER_MATRIX
- docs-backend-evidence-community-safety-SEC03D_NAMESPACE_MONITORING
- docs-backend-evidence-community-safety-SEC04A_ERASURE_INVENTORY
- docs-backend-evidence-community-safety-SEC04B_DELETION_LINKAGE
- docs-backend-evidence-community-safety-SEC04C_ATTRIBUTION_TRAINING
- docs-backend-evidence-community-safety-SEC04D_REPLAY_LOCAL_CLEANUP
- docs-backend-evidence-community-safety-SEC05A_OVERDUE_ORIGINALS
- docs-backend-evidence-community-safety-SEC05B_SCHEDULING_CATCHUP
- docs-backend-evidence-community-safety-SEC05C_TRANSIENT_CACHE
- docs-backend-evidence-community-safety-SEC05D_BACKUP_ASSESSMENT
- docs-backend-evidence-community-safety-SEC05E_EVERY_COPY_SOAK
- docs-backend-evidence-community-safety-SEC06A_SOURCE_BOUNDS
- docs-backend-evidence-community-safety-SEC06B_XLSX_CEILINGS
- docs-backend-evidence-community-safety-SEC06C_OUTBOX_BOUNDS
- docs-backend-evidence-community-safety-SEC06D_RETRY_BUDGETS
- docs-backend-evidence-community-safety-SEC06E_MEASURED_HISTORIES
- docs-backend-evidence-community-safety-SEC07A_REFRESH_REUSE
- docs-backend-evidence-community-safety-SEC07B_JWKS_EXPIRY
- docs-backend-evidence-community-safety-SEC07C_ANDROID_REFRESH
- docs-backend-evidence-community-safety-SEC08A_LOCATION_ASSURANCE
- docs-backend-evidence-community-safety-SEC08B_ADVERSARIAL_CLIENT
- docs-backend-evidence-community-safety-SEC08C_ATTESTATION_DECISION
- docs-backend-evidence-community-safety-SEC08D_PHONE_MATRIX
- docs-backend-evidence-community-safety-SEC09A_CURRENT_HEAD_REVIEW
- docs-backend-evidence-community-safety-SEC09B_DEPENDENCY_SCANS
- docs-backend-evidence-community-safety-SEC09C_INTEGRATION_FAULT
- docs-backend-evidence-community-safety-SEC09D_STAGING_RUNBOOK
- docs-backend-evidence-community-safety-SEC09E_PROTECTED_DELIVERY
- docs-backend-evidence-community-safety-rva08-staging-20261012-README
- docs-backend-evidence-premium-PRM08_T05_GATE_MATRIX
- docs-backend-evidence-premium-PRM_FIRST_TEN
- docs-backend-evidence-premium-PRM_NEXT_TEN
- docs-brand-APP_ICONS
- docs-brand-IDENTITY
- docs-commit-conventions
- docs-data-sources
- docs-glossary
- docs-license
- docs-local-build
- docs-mobile-KOTLIN_MULTIPLATFORM_AUDIT
- docs-mobile-android-developer-preview-key-session
- docs-mobile-bottom-tab-base-navigation
- docs-mobile-evidence-games-v1-README
- docs-mobile-games-mvp
- docs-mobile-games-polish-emulator
- docs-mobile-p12-t01-toolchain-baseline
- docs-mobile-p12-t02-portable-domain
- docs-mobile-p12-t03-application-ports
- docs-mobile-p12-t04-swift-shell
- docs-mobile-p12-t05-foundation-acceptance
- docs-mobile-p13-t05a-shared-auth
- docs-mobile-p13-t05b-android-adapters
- docs-mobile-p13-t05c-auth-screens
- docs-mobile-p17-t04-lifecycle-exit
- docs-mobile-p18-t01-acceptance-matrix
- docs-mobile-p19-t01-baseline
- docs-mobile-p19-t02-information-architecture
- docs-mobile-p20-t01-discovery-contract
- docs-mobile-p20-t02-explore-journey
- docs-mobile-p20-t03-station-detail
- docs-mobile-p20-t04-discovery-acceptance
- docs-mobile-p21-t01-contribution-contract
- docs-mobile-p21-t02-capture-review
- docs-mobile-p21-t03-outbox-status
- docs-mobile-p21-t04-storage-expiry
- docs-mobile-p22-t01-account-journey
- docs-mobile-p22-t02-ratings-comments-votes
- docs-mobile-p22-t03-moderation-support
- docs-mobile-p22-t04-abuse-acceptance
- docs-mobile-p23-city-community-feed
- docs-mobile-p23-t01-return-flows
- docs-mobile-p23-t02-onboarding-rules
- docs-mobile-p23-t03-metrics-operations
- docs-mobile-p23-t04-community-rehearsal
- docs-mobile-p24-t01-device-matrix
- docs-mobile-p24-t02-usability-accessibility
- docs-mobile-p24-t03-performance-memory
- docs-mobile-p24-t04-security-signoff
- docs-mobile-p32-home-commercial
- docs-mobile-p32-home-minimal
- docs-mobile-p32-icon-monochrome
- docs-mobile-p32-t01-public-profile
- docs-mobile-p32-t02-claim-export-import
- docs-mobile-p32-t03-management
- docs-mobile-p32-t04-offline-acceptance
- docs-mobile-p32-ui-completion
- docs-mobile-p34-t01-staging-inventory
- docs-mobile-p34-t02-environment
- docs-mobile-p34-t03-test-catalog
- docs-mobile-p35-station-page
- docs-mobile-p35-t01-directory-ports
- docs-mobile-p35-t02-explore-detail
- docs-mobile-p35-t03-search-regression
- docs-mobile-p36-account-continuity
- docs-mobile-p36-secure-storage-keyboard-integration
- docs-mobile-p36-secure-storage-keyboard
- docs-mobile-p36-t01-staging-accounts
- docs-mobile-p36-t02-feedback-screens
- docs-mobile-p36-t03-activity-rights
- docs-mobile-p37-camera-review
- docs-mobile-p37-image-ocr
- docs-mobile-p37-ocr-expanded-validation
- docs-mobile-p37-owner-scope-expiry
- docs-mobile-p37-photo-capture-eligibility
- docs-mobile-p37-photo-subset-android
- docs-mobile-p37-photo-subset-backend
- docs-mobile-p37-send-feedback-recovery
- docs-mobile-p37-split-price-ocr
- docs-mobile-p37-t01-contextual-capture
- docs-mobile-p37-t02-upload-outbox
- docs-mobile-p37-t03-storage-expiry
- docs-mobile-p38-t01-code-regression
- docs-mobile-p38-t02-manual-matrix
- docs-mobile-p38-t03-candidate-handoff
- docs-mobile-premium-fuel-category
- docs-mobile-stations-auto-sync-20261013
- docs-operator-access
- docs-operator-backup
- docs-operator-deploy
- docs-operator-dou-editions
- docs-operator-edge-cache
- docs-operator-feedback-moderation
- docs-operator-monitoring
- docs-operator-pilot-city
- docs-operator-profile-review
- docs-operator-recovery
- docs-operator-registry-runs
- docs-operator-retention
- docs-planning-ANDROID_VPS_PLAN
- docs-planning-ANDROID_VPS_PLAN_VALIDATION
- docs-planning-BASELINE_VALIDATION
- docs-planning-CI_PLAN
- docs-planning-COMMERCIAL_COMMUNITY_PLAN
- docs-planning-COMMUNITY_SAFETY_EXECUTION_PLAN
- docs-planning-COMMUNITY_SAFETY_EXECUTION_PROMPT
- docs-planning-CONTINUE_ANDROID_VPS_PROMPT
- docs-planning-DECISIONS
- docs-planning-DELIVERY_WORKFLOW
- docs-planning-DOCUMENT_VALIDATION
- docs-planning-FAST_EXECUTION
- docs-planning-GAMES_OFFLINE_PLAN
- docs-planning-LANDING_REDESIGN_EXECUTION_PLAN
- docs-planning-LANDING_REDESIGN_EXECUTION_PROMPT
- docs-planning-MOBILE_DELIVERY_PLAN
- docs-planning-OFFLINE_CAPABILITY_INVENTORY
- docs-planning-OFFLINE_DECISION_FREEZE_CS15B1
- docs-planning-PHOTO_PRICE_CONTRIBUTION_PLAN
- docs-planning-PREMIUM_BACKEND_APP_PLAN
- docs-planning-PREMIUM_PLAN_VALIDATION
- docs-planning-PRM_COMMUNITY_FIRST_PROMPT
- docs-planning-PRM_COMMUNITY_FIRST_VALIDATION
- docs-planning-PROGRESS
- docs-planning-PROJECT_BATCH_FLOW_VALIDATION
- docs-planning-REQUIREMENTS_TRACEABILITY
- docs-planning-RISKS
- docs-planning-RST21_BUNDLE
- docs-planning-RUST_STATION_BENCHMARK_PLAN
- docs-planning-RUST_STATION_INGESTION_PLAN
- docs-planning-RUST_STATION_INGESTION_PROMPT
- docs-planning-RUST_STATION_INGESTION_RST00
- docs-planning-RUST_STATION_INGESTION_RST01
- docs-planning-RUST_STATION_INGESTION_RST02
- docs-planning-RUST_STATION_INGESTION_RST03
- docs-planning-RUST_STATION_INGESTION_RST04
- docs-planning-RUST_STATION_INGESTION_RST05
- docs-planning-RUST_STATION_INGESTION_RST06
- docs-planning-RUST_STATION_INGESTION_RST07
- docs-planning-RUST_STATION_INGESTION_RST08
- docs-planning-RUST_STATION_INGESTION_RST09
- docs-planning-RUST_STATION_INGESTION_RST10
- docs-planning-RUST_STATION_INGESTION_RST11
- docs-planning-RUST_STATION_INGESTION_RST12
- docs-planning-RUST_STATION_INGESTION_RST13
- docs-planning-RUST_STATION_INGESTION_RST14
- docs-planning-RUST_STATION_INGESTION_RST15
- docs-planning-RUST_STATION_INGESTION_RST16
- docs-planning-RUST_STATION_INGESTION_RST17
- docs-planning-RUST_STATION_INGESTION_RST18
- docs-planning-RUST_STATION_INGESTION_RST19
- docs-planning-RUST_STATION_INGESTION_RST20
- docs-planning-SEC00A_REPRODUCTION_RECORD
- docs-planning-SEC00B_ROUTE_INVENTORY
- docs-planning-SEC00C_BUDGET_FREEZE
- docs-planning-SECURITY_OFFLINE_CORRECTION_PLAN_2026-10-11
- docs-planning-SECURITY_REMEDIATION_PLAN_2026-10-11
- docs-planning-SKELETON_LOADING_PLAN
- docs-planning-STATIC_LANDING_PLAN
- docs-planning-STATION_CATALOG_PLAN
- docs-planning-STATION_PROFILE_PLAN
- docs-planning-WIKI_HOME_ADOPTION
- docs-planning-WORKFLOW_PLAN_VALIDATION
- docs-planning-archive-IOS_DEFERRED
- docs-planning-history-CONSOLIDATION_OPENING_20261006
- docs-planning-history-P01_FOUNDATION_EVIDENCE
- docs-planning-history-P01_P09_PROGRESS_20260930
- docs-planning-history-P09_LOCAL_PROGRESS_20260930
- docs-planning-history-P14_PROGRESS_20260930
- docs-planning-history-P15_PROGRESS_20260930
- docs-planning-history-P18_AND_BRAND_PROGRESS_20261001
- docs-planning-history-P32_UI_OPENING_20261005
- docs-planning-history-ROADMAP_BEFORE_MULTIPLATFORM_20260930
- docs-planning-history-WIKI_HOME_BEFORE_20261001
- docs-planning-history-reconciliation-20261013-README
- docs-planning-repository-consolidation-20261006
- docs-planning-repository-reconciliation-20261013
- docs-planning-templates-PHASE_PR
- docs-planning-templates-PHASE_RECORD
- docs-planning-templates-TASK_ISSUE
- docs-play-store-listing
- docs-privacy-policy
- docs-product-COMMUNITY_EXPERIENCE
- docs-product-COMMUNITY_METRICS
- docs-product-COMMUNITY_MODERATION
- docs-product-COMMUNITY_PRIVACY_TERMS_PT_BR
- docs-product-LANDING_CONTENT_CONTRACT
- docs-product-LANDING_GUIDES_CONTRACT
- docs-product-LANDING_MOBILE_TUTORIAL_CATALOG
- docs-product-NOTIFICATION_CONTENT_CONTRACT
- docs-product-OPEN_SOURCE_BUSINESS
- docs-product-PREMIUM_FINANCIAL_METHOD
- docs-product-PREMIUM_PRODUCT_CONTRACT
- docs-product-PREMIUM_SOURCE_POLICY
- docs-product-PRODUCT_CONTRACT
- docs-product-REGISTRY_SOURCES
- docs-product-STATION_CATALOG
- docs-product-STATION_FUEL_FEEDBACK
- docs-product-STATION_PROFILE_CONTRACT_FREEZE
- docs-product-STATION_PROFILE_REPRESENTATION
- docs-product-pilot-plan
- docs-release-build
- docs-release-evidence-G09
- docs-release-evidence-batch-p32-p33-closure
- docs-release-evidence-g09-historical-4ce5aaf
- docs-release-evidence-landing-redesign
- docs-release-evidence-p00-app-icons-commercial-plan
- docs-release-evidence-p00-brand-publication
- docs-release-evidence-p08-t04-restore-drill
- docs-release-evidence-p08-t07-load
- docs-release-evidence-p08-t08-security
- docs-release-evidence-p09-g09-scoped-release
- docs-release-evidence-p09-local-runtime-validation
- docs-release-evidence-p09-t01-rehearsal
- docs-release-evidence-p09-t02-compatibility
- docs-release-evidence-p09-t04-functional-planning
- docs-release-evidence-p09-t05-wiki-overview
- docs-release-evidence-p10-t01-contract-harness
- docs-release-evidence-p10-t02-community-read-cache
- docs-release-evidence-p10-t03-device-keys
- docs-release-evidence-p10-t04-capture-ocr
- docs-release-evidence-p10-t05-outbox-media
- docs-release-evidence-p10-t06-price-ui
- docs-release-evidence-p10-t07-confirm-dispute
- docs-release-evidence-p10-t08-offline-release
- docs-release-evidence-p10-t09-temp-smoke
- docs-release-evidence-p13-t01-account-rules
- docs-release-evidence-p13-t02a-account-service
- docs-release-evidence-p13-t02b-pgstore
- docs-release-evidence-p13-t02c-transport
- docs-release-evidence-p13-t03a-oidc-verifier
- docs-release-evidence-p13-t03b-provider-links
- docs-release-evidence-p13-t03c-transport
- docs-release-evidence-p13-t04a-status-lifecycle
- docs-release-evidence-p13-t04b-binding
- docs-release-evidence-p13-t04c-transport-prover
- docs-release-evidence-p13-t04d-write-gate
- docs-release-evidence-p14-t01-feedback-domain
- docs-release-evidence-p14-t02-ratings
- docs-release-evidence-p14-t03-comments
- docs-release-evidence-p14-t04-votes
- docs-release-evidence-p14-t05a-reports-visibility
- docs-release-evidence-p14-t05b-export-erase
- docs-release-evidence-p15-t01-media-budgets
- docs-release-evidence-p15-t02a-portable-photo
- docs-release-evidence-p15-t02b-android-cache
- docs-release-evidence-p15-t03-backend-processing
- docs-release-evidence-p15-t04-expiry-restore
- docs-release-evidence-p15-t05-privacy-acceptance
- docs-release-evidence-p16-t01-location-risk
- docs-release-evidence-p16-t02-native-adapters
- docs-release-evidence-p16-t03a-server-verification
- docs-release-evidence-p16-t03b-intake-wiring
- docs-release-evidence-p16-t04-device-recovery
- docs-release-evidence-p17-t01-feedback-usecases
- docs-release-evidence-p17-t02-social-flows
- docs-release-evidence-p17-t03-iphone-integration
- docs-release-evidence-p17-t04-lifecycle-exit
- docs-release-evidence-p18-local-integration-exit
- docs-release-evidence-p18-t01-feature-matrix
- docs-release-evidence-p18-t02-performance-baselines
- docs-release-evidence-p18-t03-security-signoff
- docs-release-evidence-p24-g24-user-acceptance
- docs-release-evidence-p25-registry-exit
- docs-release-evidence-p25-static-landing
- docs-release-evidence-p25-t01-source-contracts
- docs-release-evidence-p25-t02-csv-staging
- docs-release-evidence-p25-t03-api-discovery
- docs-release-evidence-p25-t04-reconciliation
- docs-release-evidence-p25-t05-jobs-acceptance
- docs-release-evidence-p26-landing-guides
- docs-release-evidence-p26-regulatory-exit
- docs-release-evidence-p26-t01-edition-access
- docs-release-evidence-p26-t02-act-reconciliation
- docs-release-evidence-p26-t03-review-catchup
- docs-release-evidence-p27-intake-exit
- docs-release-evidence-p27-t01-signed-intake
- docs-release-evidence-p27-t02-verified-decisions
- docs-release-evidence-p27-t03-catalog-cache
- docs-release-evidence-p27-t04-suggest-journey
- docs-release-evidence-p27-t05-abuse-privacy
- docs-release-evidence-p29-catalog-exit
- docs-release-evidence-p29-t01-capacity
- docs-release-evidence-p29-t02-lifecycle
- docs-release-evidence-p29-t03-candidate
- docs-release-evidence-p30-profile-exit
- docs-release-evidence-p30-t01-contract-freeze
- docs-release-evidence-p30-t02-operator-profile
- docs-release-evidence-p30-t03-claims
- docs-release-evidence-p30-t04-proof-intake
- docs-release-evidence-p31-t01-signature-verify
- docs-release-evidence-p31-t02-authority
- docs-release-evidence-p31-t03-review-grants
- docs-release-evidence-p31-t04-manage-replies
- docs-release-evidence-p33-t01-adversarial
- docs-release-evidence-p33-t02-lifecycle
- docs-release-evidence-p33-t03-candidate
- docs-release-evidence-p34-vps-connection-exit
- docs-release-evidence-p35-live-discovery-exit
- docs-release-evidence-p36-live-community-exit
- docs-release-evidence-p37-live-contributions-exit
- docs-release-evidence-p38-app-acceptance-exit
- docs-releases-v1.0.0
- docs-releases-v2.0.0
- docs-releases-v3.0.0
- docs-releases-v3.1.0
- docs-screenshots-v2-README
- docs-screenshots-v3-README
- docs-security-AI_TRAINING_IMAGE_CONSENT_PLAN
- docs-security-FREE_ACCOUNT_ACCESS
- docs-security-LOCAL_MEDIA_LOCATION_POLICY
- docs-security-SECURITY_AUDIT_2026-10-11
- docs-security-SECURITY_OFFLINE_REASSESSMENT_2026-10-11
- docs-security-SECURITY_PRIVACY
- docs-security-evidence-audit-2026-10-11-README
- docs-security-evidence-reassessment-2026-10-11-README
- docs-security-identity-profile
- docs-tech-stack
- docs-use-cases-backend-use-cases
- docs-use-cases-uc-001-sync-price-tables
- docs-use-cases-uc-002-onboarding
- docs-use-cases-uc-003-select-location
- docs-use-cases-uc-004-search-municipality
- docs-use-cases-uc-005-view-municipality-prices
- docs-use-cases-uc-006-view-price-history
- docs-use-cases-uc-007-view-station-prices
- docs-use-cases-uc-008-manage-settings
- docs-use-cases-uc-009-select-survey-week
- docs-use-cases-uc-010-manage-vehicles
- docs-use-cases-uc-011-estimate-tank-fill-cost
- docs-use-cases-uc-012-resolve-location-from-device
- docs-use-cases-uc-013-navigate-to-station
- docs-use-cases-uc-014-fuel-price-drop-alerts
- docs-use-cases-uc-015-find-nearest-best-price-station
- docs-user-business-logic
Source: AlexandreZanata/brazil-fuel-prices @ 08a54dc49c2e43a85aba56a7b56ae96d692cec61