Skip to content

Add semantic Android scanner host, native authentication and device controls - #8

Draft
KofTwentyTwo wants to merge 26 commits into
mainfrom
feature/mobile-scanner-host
Draft

KofTwentyTwo wants to merge 26 commits into
mainfrom
feature/mobile-scanner-host

Conversation

@KofTwentyTwo

@KofTwentyTwo KofTwentyTwo commented Oct 29, 2026 •

Copy link
Copy Markdown
Member

Adds a shared Android scanner host that renders QQQ-defined apps, processes and forms through the versioned semantic UI API. Includes approved enrollment, server-driven branding, navigation and guarded exit, portrait defaults, diagnostics, trusted Zebra EMDK input, session controls, optional consent-based whole-device viewing and optional Record Files photos.

Native OAuth follows the configured provider through AppAuth. The new client requires API1.10, the original-nonce validation capability and REQUIRED metadata. Separately advertised company sign-out uses state-bound RP logout. TABLE login remains supported; ordinary scanner sign-out remains QQQ-only pending policy.

Validation at signed checkpoint 1c766bf06296bc10aa009995e5d1d8b5b3d7acc9:

  • 151 JVM tests, zero-error/zero-warning debug lint, debug APK and native-test APK builds pass.
  • All 28 selected OAuth2 login/logout and authentication-lifecycle native tests pass on the TC22 in the disposable sample app. These use synthetic provider adapters; real Authentik/browser acceptance is separate.
  • Independent review of all 26 files in the latest authentication patch found no security candidates. This does not extend historical audits to all unchanged source.
  • Prior physical EMDK Code128 capture and portrait default are verified. The new development APK was installed in place with matching signer and private backup; app data, login and enrollment are preserved. Hardware acceptance on these bytes remains pending.
  • Core32/scanner1a3 coherent consumers pass 39 scanner, six demo HTTP, 18 optional Record Files and 15 record/bulk browser cases. The paired API1.10 server remains under qualification.

Preceding checkpoint8d8 passed all eleven hosted checks; fresh checks must qualify this head. Remaining release gates include paired server/current API contracts, real Authentik operator switching and exported native callback, current QR/retry/navigation walkthrough, actual camera/GPS/projection, coherent optional dependency adoption and final release reconciliation.

Normal demo remains API1.9/mobile1.1. Source publication and the development install are not a production release. Signing/distribution remains deferred to the owner's final decision. Keep this PR draft.

@KofTwentyTwo KofTwentyTwo changed the title Add approved-device scanner host and scanner CI Add branded scanner host with live connection diagnostics Oct 29, 2026
@KofTwentyTwo
KofTwentyTwo marked this pull request as ready for review October 29, 2026 20:22
KofTwentyTwo and others added 3 commits October 29, 2026 15:43
Co-Authored-By: OpenAI GPT-6 (Codex) <noreply@openai.com>
Co-Authored-By: OpenAI GPT-6 (Codex) <noreply@openai.com>
Discover compatible API versions, client channels and mobile extensions before login. Follow server process completion, metadata updates, form rules and cancellation, with isolated native OpenAPI conformance coverage.

Co-Authored-By: OpenAI GPT-6 (Codex) <noreply@openai.com>
@KofTwentyTwo KofTwentyTwo changed the title Add branded scanner host with live connection diagnostics Add branded Android scanner host using the versioned semantic UI API Oct 30, 2026
@KofTwentyTwo
KofTwentyTwo marked this pull request as draft October 31, 2026 12:19
Add semantic session monitoring and leased app-screen viewing, optional record
photo capture, device orientation, native navigation guards and TC22 acceptance.
Bundle verified dependency and native notices with fail-closed packaging checks.

Co-Authored-By: GPT-6.1 Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
@KofTwentyTwo KofTwentyTwo changed the title Add branded Android scanner host using the versioned semantic UI API Add semantic Android host with sessions, record photos and guarded navigation Oct 31, 2026
Use one hamburger drawer for apps, Settings and Diagnostics while preserving
guarded process Back, account access and approval restrictions.

Negotiate native OAuth2 login through the explicit UI API 1.9 capability,
server-advertised issuer/callback/prompt policy and AppAuth PKCE. Exchange
codes through QQQ with deferred cookie adoption and bounded cleanup of known
abandoned sessions. Keep TABLE_BASED and shared Auth0 behavior intact.

Add protocol and native regressions, retain bundled AppAuth attribution,
and pin the companion server heartbeat revocation correction in CI.

Co-Authored-By: GPT-6.1 Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
@KofTwentyTwo KofTwentyTwo changed the title Add semantic Android host with sessions, record photos and guarded navigation Add semantic Android host with browser login, sessions and record photos Oct 31, 2026
KofTwentyTwo and others added 5 commits October 31, 2026 15:33
Consume Back when the drawer targets Open so a quick hardware press does not
exit the signed-out activity. Settle the native navigation test before Back
and retain the successful TC22 rerun: all 20 selected cases passed, including
seven synthetic AppAuth scenarios. Actual provider acceptance stays pending.

Co-Authored-By: GPT-6.1 Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Replace the permanent settled-scan navigation block with an explicit warning.
Keep the original retry identity through failed cancellation, and provide a
separate Leave anyway choice only after cancellation fails. In-flight work,
pending photos and complete receipt checks remain protected.

Add JVM and native regressions for lost or malformed acknowledgments, Stay,
cancel retries and explicit local exit without replaying a scan.

Co-Authored-By: GPT-6.1 Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Replace the older official bootstrap with the checksum-verified8.7 JAR,
keeping the configured distribution version and hash unchanged. Record
upstream provenance and the distinction from a complete binary audit.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Bind password and legacy Auth0 responses to their initiating origin,
metadata and generation. Defer cookie adoption, consume exchanges once,
and revoke known abandoned sessions at their original server. Make
local logout independent of provider callbacks and idempotent across
overlapping calls, delayed storage and screen remounts.

Exclude sample session storage from backup and transfer, and restrict
sample cleartext environments to debug builds. Document the remaining
trusted-scanner input finding and the real-provider acceptance boundary.

Validation:109 JVM tests and scanner lint pass;32 selected TC22 native
tests pass, including ten new authentication lifecycle regressions.
Packaged unsigned sample release denies cleartext and backup, with all
ten cloud/device-transfer exclusions. Operator installation is unchanged.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Use the optional device-provided EMDK service for normal scanner input,
with exact compile-only SDK provenance and no shipped vendor classes.
Keep synthetic scan broadcasts confined to the disposable E2E variant.
Pause input behind overlays and lost focus, and share live drawer-first
Back routing across every process/application handler and toolbar arrow.

Replace inherited Auth0/Coil prereleases with reviewed stable versions.
Invalidate standard generated notices on dependency graph changes and
retain strict runtime/license checks. Pin hosted acceptance to the
source-qualified API 1.9 core/server tuple with runtime provenance.

Validation: 127 JVM tests, 34 TC22 shared native cases, eight-overlay
native regression, and ordinary-UID/distinct-signer injection rejection
pass. Eight forged broadcasts cause no process/record mutation; a real
manual positive control saves through the API. All package/lint gates,
four-APK notice/DEX/native/manifest inspection, focused independent
source review, workflow syntax and staged secret checks pass.

Actual hardware triggers, configured provider, optional files deployment
and final signing/distribution remain separate documented release gates.
No normal operator installation or data was changed by these tests.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
@KofTwentyTwo KofTwentyTwo changed the title Add semantic Android host with browser login, sessions and record photos Add semantic Android scanner host with trusted Zebra input Nov 1, 2026
KofTwentyTwo and others added 4 commits October 31, 2026 20:50
Map accepted control values to compile-time QA/E2E package literals
before constructing broadcasts. Unknown targets still return before any
send, and marker validation/actions/permissions/counts remain unchanged.
This makes the existing allowlist boundary explicit to static analysis
without suppressing CodeQL or forwarding the caller's target string.

Probe build/lint and the distinct-signer ordinary-UID device acceptance
pass: eight forged broadcasts create no extra process steps or records,
and the manual positive control saves. Production APKs are unchanged.
Static triage and fresh hosted analysis remain separate evidence.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Report bounded own-window flags, focused-owner category, and network
dialog visibility when the existing five-second focus guard fails.
Keep real Back injection and its focus requirement unchanged.

Sample instrumentation compilation passes. CircleCI's three failures
remain unresolved pending a fresh diagnostic run. Record the completed
data-preserving local API1.9 upgrade and unverified physical scan attempt.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Add an optional nonexported MediaProjection foreground service, one-time
operator consent and session/lease/mode-bound frame upload. Preserve
legacy app-content defaults and stop capture on bounded lifetime or
host/session loss. Clarify physical scan polling deadline failures.

Initial gates pass135 JVM tests, lint and all package builds. Paired
server39 tests and six real-HTTP cases pass with historical API baselines
preserved. Changed-client static review found no reportable findings.
Actual consent/device acceptance and frame/UI refinements remain open;
this is a source checkpoint, not a production release.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Drain ImageReader continuously while retaining only one latest image,
release replaced buffers, snapshot acquisition time before encoding,
and keep Share disabled until service binding finishes. Pin hosted
acceptance to the verified additive server1.2 source1041693.

Pass137 JVM tests, lint/all package builds, fresh APK inspection and
TC22 ordinary-UID forged-input rejection. Independent follow-up review
found no concrete issue. Paired server consumer/provenance and all15
browser cases pass. Actual OS consent/device capture remains unverified.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
@KofTwentyTwo KofTwentyTwo changed the title Add semantic Android scanner host with trusted Zebra input Add semantic Android scanner host and device session controls Nov 1, 2026
KofTwentyTwo and others added 3 commits November 1, 2026 04:24
Wait for applied landscape configuration before explicit recreation and
assert the barcode draft after both transitions. Retain focused unlocked
input requirements while allowing brief physical-test focus changes.

Add a manual-only QA device-screen acceptance path with three actual OS
consent rounds, real Home-frame comparison, Stop, lease expiry and forced
logout. Protect existing app IDs/ports and compile QA tests in CI.
Use non-streaming physical installs and actionable timeout diagnostics.

QA and E2E packages compile, runner syntax/actionlint and opt-in/protected
port negative controls pass. Actual screen consent and synchronized
native scenario execution remain pending; no production code changed.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Wait for the final signed-out message and enabled login action before
clicking once. Retain fresh-login and new-session assertions in the
real-server session scenario and opt-in device-screen acceptance.

The previous PR native run passed all seven scenarios; its duplicate
push run timed out after clicking the logout label. This test-readiness
correction is independently reviewed and both native test packages
compile. New hosted execution is required; no product fix is claimed.

Record the independent release-automation review, external configuration
gaps and current operator upgrade/projection acceptance boundaries.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Use Portrait when no valid orientation preference is saved; preserve all
explicit user choices, including System default. Cover missing, invalid,
explicit and platform orientation behavior in four focused tests.

Focused tests, debug lint (zero errors/warnings) and debug assembly pass.
A matching-signer in-place TC22 update preserved login/enrollment and
Android reports the normal activity requested portrait. Record exact
physical Code128 evidence and fully green prior native CI separately.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
KofTwentyTwo and others added 3 commits November 1, 2026 06:27
Co-Authored-By: Codex <noreply@openai.com>
Record passing portrait-default CI and physical Code128 evidence separately from pending provider, QR, camera and device acceptance. Preserve historical checkpoints and explicit dependency adoption limits.

Co-Authored-By: Codex <noreply@openai.com>
Require negotiated original-nonce validation for native OAuth and add optional state-bound AppAuth provider logout. Preserve TABLE login and local QQQ sign-out. Verified 151 JVM tests, lint, APK builds and 28 disposable TC22 native tests; real-provider and paired-server acceptance remain pending.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
@KofTwentyTwo KofTwentyTwo changed the title Add semantic Android scanner host and device session controls Add semantic Android scanner host, native authentication and device controls Nov 1, 2026
KofTwentyTwo and others added 3 commits November 1, 2026 10:29
Replace the raw log dialog with readable full-screen status/activity, filtering and copy/share controls. Persist explicit location choices and request Android permission once for default-on foreground reporting. Verified 159 JVM tests, zero-warning lint, APK builds and the focused TC22 diagnostics interaction test; actual GPS fix and real-provider acceptance remain pending.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Include diagnostics UI acceptance in the hosted suite. Pregrant location only for disposable E2E scenarios and preserve session-monitor denied telemetry with explicit revocation and a handled-request marker. Production and QA permissions are untouched; the actual Android prompt remains separate acceptance.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Preserve ownership notices, replace wildcard imports, document source contracts, enforce source checks and strict Kotlin warnings, and apply the repository native formatter policy. Correct typed widget state and callback registration with regression coverage.

Add bundled Query artwork, public Dogfooding and Query links, version and license access under Settings About. Validation:163 JVM cases,46 TC22 sample native cases, QA compilation, APK builds and lint0errors/0warnings. Full formatter CI and actual external-provider Android acceptance remain explicit.

Co-Authored-By: Codex <noreply@openai.com>
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.

2 participants