Add semantic Echo workflows and scanner device UX #10

Merged
james.maes merged 14 commits from james.maes/echo-semantic-choices-review AGit into feature/mobile-scanner-host 2026-11-03 23:06:13 +00:00
Owner

Extends the scanner host with native Echo setup driven by the versioned semantic UI API: select a printer, media/document and copies once, then scan repeatedly while retaining those process choices. Preserves scan value, symbology and optional AIM/raw evidence through retries, and adds server-directed feedback and safe leave/navigation behavior. New runs clear the previous run’s scan feedback.

Adds managed company configuration, the company-profile generator and status wallpaper, plus the opt-in real Authentik device acceptance harness. This PR builds on the scanner foundation in #8. Companion server QRun-IO/qbit-mobile-scanners#7 is merged into develop after passing hosted CI3603.

Validation: application f72b90d passed hosted CI3480, 222 JVM tests, lint, 23 Node checks, APK builds and the 255-file standards gate; docs9cf789c passed CI3553. The final reset fix 2c7394a passes all 57 mobileapp JVM tests, zero-warning lint, debug assembly, standards and a secret scan. Its exact hosted checks are below (run3599). Disposable TC22 Echo acceptance passed ten stages/109 semantic requests with simulated scans/printing. The final debug APK is installed without clearing enrollment/login and visibly shows Echo setup, Copies 1 and Connected.

Release limits: real Authentik desktop acceptance passed, but native CA/PIN/callback acceptance, physical print count/rescan, photo/GPS/projection and applied company-profile checks remain open. Generation copies still needs canonical owner integration/publication. Production signing and distribution are deliberately deferred. Source integration is separate from completing the 1.0 release; docs/FINISH-1.0.md records the acceptance gates.

Extends the scanner host with native Echo setup driven by the versioned semantic UI API: select a printer, media/document and copies once, then scan repeatedly while retaining those process choices. Preserves scan value, symbology and optional AIM/raw evidence through retries, and adds server-directed feedback and safe leave/navigation behavior. New runs clear the previous run’s scan feedback. Adds managed company configuration, the company-profile generator and status wallpaper, plus the opt-in real Authentik device acceptance harness. This PR builds on the scanner foundation in #8. Companion server QRun-IO/qbit-mobile-scanners#7 is merged into develop after passing hosted CI3603. Validation: application f72b90d passed hosted CI3480, 222 JVM tests, lint, 23 Node checks, APK builds and the 255-file standards gate; docs9cf789c passed CI3553. The final reset fix 2c7394a passes all 57 mobileapp JVM tests, zero-warning lint, debug assembly, standards and a secret scan. Its exact hosted checks are below (run3599). Disposable TC22 Echo acceptance passed ten stages/109 semantic requests with simulated scans/printing. The final debug APK is installed without clearing enrollment/login and visibly shows Echo setup, Copies 1 and Connected. Release limits: real Authentik desktop acceptance passed, but native CA/PIN/callback acceptance, physical print count/rescan, photo/GPS/projection and applied company-profile checks remain open. Generation copies still needs canonical owner integration/publication. Production signing and distribution are deliberately deferred. Source integration is separate from completing the 1.0 release; docs/FINISH-1.0.md records the acceptance gates.
james.maes added 6 commits 2026-11-02 01:05:31 +00:00
Read optional bounded acknowledgmentLabel and Boolean manualEntryEnabled from SCANNER metadata. Existing servers retain Saved scan and manual entry; Echo can show Print queued and hide unsupported manual input. Hardware eligibility, receipt identity and lifecycle are unchanged.

Validation:167 JVM tests, strict Kotlin compilation, lint0errors/0warnings and debug assembly pass. Native Echo acceptance remains with the final real-server integration cohort.

Co-Authored-By: Codex <noreply@openai.com>
Describe the optional1.4 hints and unchanged receipt rules; correct the trusted EMDK path and avoid stale fixed demo-version claims.

Co-Authored-By: Codex <noreply@openai.com>
Record the167-case client checkpoint and actual installed About verification while keeping owner-adapter/native/physical gates explicit.

Co-Authored-By: GPT-6 Codex <noreply@openai.com>
Load named possible values through the published process API, honor dependent fields, discard stale responses and keep errors retryable. Add isolated native Echo coverage for setup, two accepted scans, recreation and Apps cancellation.

Validation: 169 JVM tests, zero-warning lint, 8 guard tests, source standards and real TC22 simulated Echo E2E pass; all 86 requests match the published semantic API. Physical printing remains pending.

Co-Authored-By: Claude <noreply@anthropic.com>
Run the eight fixture, device-identity and redaction guards in the existing verify lane without introducing device operations or additional dependencies.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-02 03:22:38 +00:00
james.maes added 1 commit 2026-11-02 13:10:06 +00:00
Derive Origin from each QQQ request URL after caller headers so strict same-origin servers accept session heartbeats and process actions. Verify 174 JVM tests, lint, APK build, and actual TC22 sign-in, Echo setup and cancellation without clearing data.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-02 13:56:56 +00:00
james.maes added 1 commit 2026-11-02 16:57:51 +00:00
Capture exact SDK bytes before callback return and submit them through the existing process API only after same-server mobile-scanners 1.5 discovery. Preserve legacy server payloads and pending event retries; redact capture string representations. Verify 185 JVM tests, zero lint errors or warnings, debug/E2E builds and QA test compilation. Hardware AIM extraction and native delivery qualification remain open; the operator installation is unchanged.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Codex <noreply@openai.com>
james.maes added 1 commit 2026-11-03 21:24:03 +00:00
feat(scanner): complete device UX and Authentik acceptance harness
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-9 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-10 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-13 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-14 (pull_request) Skipped
QRun-IO/ci-policy: ci / original-business (pull_request) Skipped
QRun-IO/ci-policy: ci / original-mcp (pull_request) Skipped
QRun-IO/ci-policy: ci / original-voyage (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 5s
QRun-IO/ci-policy: Shared Android CI / unit-test (pull_request) Successful in 4m25s
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (pull_request) Skipped
QRun-IO/ci-policy: Shared Android CI / android-test (pull_request) Successful in 9m50s
QRun-IO/ci-policy: Shared Android CI / secrets (pull_request) Successful in 19s
QRun-IO/ci-policy: Shared Android CI / package (pull_request) Successful in 13s
QRun-IO/ci-policy: Shared Android CI / gate (pull_request) Successful in 12s
QRun-IO/ci-policy: ci / android-0 (pull_request) Successful in 15m3s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 4s
f72b90d08c
Add scan value and symbology feedback, optional status wallpaper and managed server/orientation configuration, proven AIM profile readback, and administrator-controlled viewing UI. Extend native Echo acceptance for per-scan copies and add an opt-in real-provider Authentik harness isolated to the disposable test package.

Verified: 222 JVM tests, lint with zero errors/warnings, debug/E2E/test APK builds, 23 Node tests and source standards. Updated TC22 Echo acceptance passes ten stages with simulated input/printing. Actual Authentik desktop acceptance passes; native Authentik and physical trigger/print validation remain pending. Normal TC22 updated with the matching signer and data preserved.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-03 21:58:41 +00:00
docs: record verified scanner and server completion gates
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-9 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-10 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-13 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-14 (pull_request) Skipped
QRun-IO/ci-policy: ci / original-business (pull_request) Skipped
QRun-IO/ci-policy: ci / original-mcp (pull_request) Skipped
QRun-IO/ci-policy: ci / original-voyage (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 6s
QRun-IO/ci-policy: Shared Android CI / unit-test (pull_request) Successful in 4m29s
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (pull_request) Skipped
QRun-IO/ci-policy: Shared Android CI / android-test (pull_request) Successful in 10m40s
QRun-IO/ci-policy: Shared Android CI / secrets (pull_request) Successful in 18s
QRun-IO/ci-policy: Shared Android CI / package (pull_request) Successful in 12s
QRun-IO/ci-policy: Shared Android CI / gate (pull_request) Successful in 11s
QRun-IO/ci-policy: ci / android-0 (pull_request) Successful in 15m54s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 4s
4d11a9a626
Record the installed APK, passed primary Android CI and RC.21 consumer
verification. Keep owner publication, physical acceptance, native provider
qualification and deferred signing distinct from completed source work.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes changed title from WIP: Add semantic Echo process choices to the scanner to WIP: Add semantic Echo workflows and scanner device UX 2026-11-03 22:16:03 +00:00
james.maes added 1 commit 2026-11-03 22:21:18 +00:00
docs: align scanner setup with current forge and release policy
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-9 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-10 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-13 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-14 (pull_request) Skipped
QRun-IO/ci-policy: ci / original-business (pull_request) Skipped
QRun-IO/ci-policy: ci / original-mcp (pull_request) Skipped
QRun-IO/ci-policy: ci / original-voyage (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 5s
QRun-IO/ci-policy: Shared Android CI / unit-test (pull_request) Successful in 4m29s
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (pull_request) Skipped
QRun-IO/ci-policy: Shared Android CI / android-test (pull_request) Successful in 11m1s
QRun-IO/ci-policy: Shared Android CI / secrets (pull_request) Successful in 19s
QRun-IO/ci-policy: Shared Android CI / package (pull_request) Successful in 12s
QRun-IO/ci-policy: Shared Android CI / gate (pull_request) Successful in 12s
QRun-IO/ci-policy: ci / android-0 (pull_request) Successful in 16m16s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 5s
9cf789c5b1
Correct Java and QQQ requirements, distinguish Gitea checks from legacy
workflows, and retain the owner's deferred signing and distribution decision.
Documentation only; runtime code and installed APK are unchanged.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-03 22:47:10 +00:00
fix(android): clear scanner feedback when starting a new run
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-9 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-10 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-13 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-14 (pull_request) Skipped
QRun-IO/ci-policy: ci / original-business (pull_request) Skipped
QRun-IO/ci-policy: ci / original-mcp (pull_request) Skipped
QRun-IO/ci-policy: ci / original-voyage (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 5s
QRun-IO/ci-policy: Shared Android CI / unit-test (pull_request) Successful in 4m0s
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (pull_request) Skipped
QRun-IO/ci-policy: Shared Android CI / android-test (pull_request) Successful in 10m0s
QRun-IO/ci-policy: Shared Android CI / secrets (pull_request) Successful in 18s
QRun-IO/ci-policy: Shared Android CI / package (pull_request) Successful in 12s
QRun-IO/ci-policy: Shared Android CI / gate (pull_request) Successful in 11s
QRun-IO/ci-policy: ci / android-0 (pull_request) Successful in 14m44s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 4s
2c7394a62f
Reset per-process widget state with the rest of the process view model.
A regression proves that step transitions retain feedback while reset drops it.

Verified 57 mobileapp JVM tests, scanner lint, debug assembly and source standards.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes marked the pull request as ready for review 2026-11-03 22:59:34 +00:00
james.maes merged commit 1f5fd2ef95 into feature/mobile-scanner-host 2026-11-03 23:06:13 +00:00
Sign in to join this conversation.