Add semantic mobile scan context and Echo scan-to-print example #7

Merged
james.maes merged 41 commits from feature/echo-example into develop 2026-11-03 22:53:50 +00:00
Owner

Adds the server side of QQQ's native scanner workflow through the versioned semantic UI API and registered extensions: device enrollment/approval, named devices and session administration, scan value/symbology context, live activity/viewing and the optional Record Files photo bridge. Record and bulk approval, revocation and session-ending actions use the same guarded QQQ processes.

Echo asks once for a printer, paper/label media, document and optional copies per scan (default 1, range 1-100). Each scan preserves its value and supported barcode type and submits one retained server-side render/print job with the chosen copies. Retries retain event/job identity; an uncertain result does not silently create another print. The scanner client does not communicate with the printer.

Validation at c0e27b3: 377 tests across Generation/Printing bridge/scanner/demo/Record Files/Echo module runs, plus 15 real admin-browser E2E cases, passed. All 182 owned scanner-consumer tests use public QQQ RC.21; other owner qbits remain qualified private inputs, and the separate Printing-bridge tests retain three private transitive QQQ libraries. This is not a fully public artifact cohort. Native Echo acceptance passed ten stages/109 semantic requests with simulated scans and printing.

Publication gates: hosted run3527 failed before compilation because the shared Google Maven mirror could not resolve the published RC.21 BOM; the existing shared CI fallback rollout owns that fix. Generation copies commit aac68907 is published and acknowledged for canonical owner integration, with no public artifact yet. Physical label quantity/fidelity, native provider/device acceptance and production release remain open. The existing local demo remains available; see docs/SESSION-STATE.md and the Android docs/FINISH-1.0.md for current evidence.

Adds the server side of QQQ's native scanner workflow through the versioned semantic UI API and registered extensions: device enrollment/approval, named devices and session administration, scan value/symbology context, live activity/viewing and the optional Record Files photo bridge. Record and bulk approval, revocation and session-ending actions use the same guarded QQQ processes. Echo asks once for a printer, paper/label media, document and optional copies per scan (default 1, range 1-100). Each scan preserves its value and supported barcode type and submits one retained server-side render/print job with the chosen copies. Retries retain event/job identity; an uncertain result does not silently create another print. The scanner client does not communicate with the printer. Validation at c0e27b3: 377 tests across Generation/Printing bridge/scanner/demo/Record Files/Echo module runs, plus 15 real admin-browser E2E cases, passed. All 182 owned scanner-consumer tests use public QQQ RC.21; other owner qbits remain qualified private inputs, and the separate Printing-bridge tests retain three private transitive QQQ libraries. This is not a fully public artifact cohort. Native Echo acceptance passed ten stages/109 semantic requests with simulated scans and printing. Publication gates: hosted run3527 failed before compilation because the shared Google Maven mirror could not resolve the published RC.21 BOM; the existing shared CI fallback rollout owns that fix. Generation copies commit aac68907 is published and acknowledged for canonical owner integration, with no public artifact yet. Physical label quantity/fidelity, native provider/device acceptance and production release remain open. The existing local demo remains available; see docs/SESSION-STATE.md and the Android docs/FINISH-1.0.md for current evidence.
james.maes added 26 commits 2026-11-01 23:34:18 +00:00
Co-Authored-By: OpenAI GPT-6 (Codex) <noreply@openai.com>
Co-Authored-By: OpenAI GPT-6 (Codex) <noreply@openai.com>
Co-Authored-By: OpenAI GPT-6 (Codex) <noreply@openai.com>
Co-Authored-By: OpenAI GPT-6 (Codex) <noreply@openai.com>
Add native device profiles, presence and location, session activity and screen viewing, and record/bulk session termination. Include the optional Record Files bridge and isolated HTTP contract evidence; final authorization-guard adoption and production qualification remain documented gates.

Co-Authored-By: OpenAI GPT-6 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Adopt the frozen Record Files operation guard, including expected desktop absence. Verify actual retained registration, association and receipt commits against concurrent device revocation/session termination and injected rollback.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Verify a browser administrator can issue viewing demand consumed by the Android heartbeat, and assert the real widget response shape.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Exercise the actual demo main in a non-UTC child JVM across the presence expiry window, and record the current guarded integration and TC22 acceptance boundaries.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Check device approval before observing heartbeat activity, including the
trailing-slash route accepted by Javalin. Rejected heartbeats cannot create
sessions or advance device and session presence. Keep approval-state reads
available to the enrolled device.

Both failures were reproduced before correction. Validation: 37 root tests
and four demo tests pass, including real HTTP pending/revoked assertions,
unchanged presence, trailing-slash handling and standalone file-H2 presence.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Adopt the explicitly verified 0515 bundle in its own isolated cache, including
the matched core logging correction. Preserve earlier candidates and evidence.
Retain runtime/source hashes and fresh 37-base/18-integration test results,
document Jobs migration boundaries and the unpublished dependency CI gate.

Validation: Checkstyle, runtime duplicate checks, path/junction regression,
PowerShell parsing, staged whitespace and secret scanning pass. This does not
publish upstream dependencies or upgrade an operator runtime.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Set the migration session to UTC in the canonical H2 schema before converting
legacy zoned timestamps. Direct schema consumers and the demo initializer now
share the same policy without depending on the workstation time zone.

Add a file-backed America/Chicago child-JVM regression across DST and unusual
offsets, checking all migrated timestamp fields, repeated initialization,
password hashes, approval and exact barcode strings. The old SQL reproduces
the timestamp shift in an isolated shadow resource.

Validation: fresh root/demo reactor verifies 37 plus 5 tests and Checkstyle,
without installing artifacts or restarting the operator runtime.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Import the QQQ BOM in the demo so qqq.version controls transitive core,
Javalin and OpenAPI versions as well as the direct RDBMS dependency.
The installed scanner POM retains its own default property; a consumer's
command-line override alone does not change that transitive model.

Strict private runtime verification caught the mixed RC.20/new-core
classpath and older Guava. XML and diff checks pass; fresh consumer
tests, runtime provenance and browser acceptance are pending.
No shared Maven artifacts or operator runtime were changed.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
The demo's explicit Jupiter 5.11.4 aggregate pulled an older test API
while the QQQ BOM selected engine 6.0.2, preventing test discovery.
Use the managed engine directly so its API and platform remain aligned
with the selected core, matching the core project's dependency pattern.

XML and diff checks pass; fresh consumer verification and runtime
provenance remain required. No tests or BOM controls are disabled.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Document the exact source tuple, runtime provenance and fifteen passing
record/bulk browser cases. Correct the scope summary for implemented
fleet/session/location and optional camera integration features.
Retain actual provider, hardware and immutable release limitations.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Advertise optional APP_CONTENT and DEVICE_SCREEN modes in extension1.2.
Bind session, viewer demand, lease and frame modes; clear prior pixels
and demand on mode changes. Preserve omitted-mode app-content defaults,
approval, administrator authorization, replay checks and resource limits.

Pass39 server and six real-HTTP demo tests with normal Checkstyle.
Historical1.0/1.1 API baselines and qualified core JAR hashes remain
unchanged. Independent source review found no introduced security issue.
Android consent/projection acceptance remains a separate device gate.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Record exact API1.9/mobile1.2 consumer and published source evidence,
physical scanner and screen-consent limits, current hosted login test
follow-up, optional Record Files compatibility and deferred signing.
Preserve earlier checkpoints as history instead of current release claims.

Documentation only; diff checks and staged secret scanning pass.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Record the verified source and operator runtime separately, including current CI, trusted scanning and transitional upload qualification. Retain pending real-provider, device, immutable dependency and final distribution requirements.

Co-Authored-By: Codex <noreply@openai.com>
Record the final signed core dependency cohort, fresh scanner/demo/upload/browser results and exhaustive artifact comparison. Preserve the separate files-owner release, production dependency adoption and physical-device gates.

Co-Authored-By: Codex <noreply@openai.com>
Complete copyright and source layout corrections, analyze optional PowerShell tools, add privacy-safe structured failure diagnostics, and close a test-stream ownership gap.

Validation: enabled Checkstyle and clean compilation with 39 server, 6 HTTP demo and 18 optional Record Files cases passing in an isolated coherent API1.10 snapshot. Production and physical acceptance gates remain explicit.

Co-Authored-By: Codex <noreply@openai.com>
feat(scans): expose authoritative per-scan process context
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: ci / node-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-5 (pull_request) Skipped
Demo acceptance / Check Windows demo helpers (pull_request) Canceled after 0s
Demo acceptance / Verify demo HTTP contract (pull_request) Canceled after 0s
QBit CodeQL / Analyze branch source (pull_request) Canceled after 0s
CodeQL / analyze (pull_request) Canceled after 0s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Failing after 51s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Successful in 15s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Failing after 10s
QRun-IO/ci-policy: ci / java-maven-2 (pull_request) Failing after 22m51s
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 5s
b156ab7c50
Publish additive mobile extension1.3 scanContext with exact decoder type, value, event and server-derived attribution for downstream actions. Consume transient inputs to prevent inherited types, require reopening pre1.3 saved processes, and reject changed type/source/app/process retries.

Add a narrow verified capture facade for host applications such as Echo. Validation:44root,7HTTPdemo,18optionalfiles and2contract-generation cases pass with Checkstyle; released baselines unchanged. Echo implementation remains uncommitted and separate.

Co-Authored-By: Codex <noreply@openai.com>
Add ordinary QQQ printer/media setup and sequential scan-to-accepted-print loop with protected run identity, canonical event idempotency, read-only uncertainty recovery and explicit cancel behavior.

Validation:15 real QQQ/H2 state/process tests, Checkstyle0, strict compilation and packaged license/schema byte checks pass. Production rendering/printer adapters remain explicitly pending the owning qbits qualified pinned-revision/media/receipt handoffs; no physical output is claimed.

Co-Authored-By: Codex <noreply@openai.com>
Add optional extension1.4 acknowledgmentLabel and manualEntryEnabled metadata with existing defaults. Echo declares Print queued and hides manual input without changing hardware capture or receipt predicates.

Validation:69 server/demo/files cases plus2 canonical contract cases pass; released baselines unchanged. Echo15 strict tests pass with the qualified1.4 scanner companion, and Android167 JVM/lint/debug checks pass. Actual owner adapters and physical printing remain pending.

Co-Authored-By: GPT-6 Codex <noreply@openai.com>
Allow current operators to read their own Echo scan sources after capture ends while retaining approved-device checks for capture and process actions. Preserve retry identity across stored timestamp precision and add an isolated semantic HTTP fixture.

Validated exact source manifest: 18 tests, zero failures, strict Java compilation and Checkstyle. Native Echo setup and physical printing remain open.

Co-Authored-By: GPT-6 Codex <noreply@openai.com>
Simplify verification hashtable expressions and report each analyzed file while preserving fatal analysis errors. All six scripts pass PSScriptAnalyzer 1.25.0 with zero findings; parser and isolated path regression pass.

Co-Authored-By: Claude <noreply@anthropic.com>
Preserve verified session identity across repeated capture while rechecking current approval, binding, session reference and authority before returning. Reject changed credential ceilings or grants, including mutations during real table hooks.

Validation: full scanner 49 and demo HTTP 7 tests pass with zero Checkstyle violations against the private process-identity core. Strict files-owner finalize acceptance remains pending.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
fix(scanner): compare effective security key membership
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Successful in 10s
QRun-IO/ci-policy: ci / java-maven-2 (pull_request) Successful in 20m44s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 4s
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Successful in 1m48s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Successful in 16s
707e1ab8ba
Initialize Collaboration keys during authentication before verified device capture. Preserve rejection of actual authority changes. Verified scanner50, demo7 and native Record Files18 with Checkstyle.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-02 00:33:59 +00:00
feat(echo): compose retained scan-to-print application
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Failing after 19s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Successful in 1m38s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Failing after 9s
QRun-IO/ci-policy: ci / java-maven-2 (pull_request) Failing after 3m47s
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 3s
4bc88a404a
Use owner printer/media, generation, retained-file and cold renderer contracts. Add runnable local host and authenticated native HTTP acceptance for two scans, retained outputs, accepted jobs, idempotent retry and leaving the process. Preserve actor locks and direct-write denial while supporting core READ probes.

Verified Echo33 and full demo22 with Checkstyle; physical output and public dependency/CI release gates remain open.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-02 01:46:31 +00:00
fix(echo): preserve print receipts and safely retry unpinned scans
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Failing after 15s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Successful in 1m25s
QRun-IO/ci-policy: ci / ci-result (pull_request) Canceled after 0s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Canceled after 8s
QRun-IO/ci-policy: ci / java-maven-2 (pull_request) Canceled after 1m35s
912040dfbc
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-02 01:48:05 +00:00
docs(echo): record verified tests and remaining physical gate
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Failing after 13s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Successful in 1m22s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Failing after 9s
QRun-IO/ci-policy: ci / java-maven-2 (pull_request) Failing after 1m33s
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 3s
a1e1cd47f1
james.maes added 1 commit 2026-11-02 02:36:25 +00:00
fix(mobile): scope device binding to the requesting extension
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Failing after 17s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Successful in 1m31s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Failing after 10s
QRun-IO/ci-policy: ci / java-maven-2 (pull_request) Failing after 1m43s
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 4s
101efc846b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-02 03:15:09 +00:00
feat(echo): select and retain a document for each scan run
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Failing after 16s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Successful in 1m34s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Failing after 8s
QRun-IO/ci-policy: ci / java-maven-2 (pull_request) Failing after 1m44s
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 5s
8da274e52b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-02 03:24:55 +00:00
docs(echo): record native document-choice acceptance
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Failing after 20s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Successful in 1m51s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Failing after 13s
QRun-IO/ci-policy: ci / java-maven-2 (pull_request) Failing after 5m22s
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 6s
16755f68cb
james.maes added 1 commit 2026-11-02 12:56:21 +00:00
fix(echo): run composed qbits in the local scanner server
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 / 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 / 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: Shared Java Maven CI / secrets (pull_request) Failing after 15s
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: native / native-result (pull_request) Successful in 5s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Successful in 1m20s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Failing after 8s
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Failing after 1m30s
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 3s
ca6e4dd20c
Reuse the existing local development database without resetting accounts or device approval. Accept valid loopback ports forwarded over USB while retaining origin and cross-site checks. Verify 27 demo tests and live forwarded-host acceptance.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-02 13:58:10 +00:00
docs: distinguish ready Echo setup from remaining release 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 / 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 / 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 3s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Failing after 4m18s
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 Java Maven CI / verify (pull_request) Successful in 5m47s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Failing after 10s
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Failing after 5m58s
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 4s
f0f4731cc0
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-02 14:08:57 +00:00
test(echo): generate inert credentials for demo fixtures
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 / 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 / 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: Shared Java Maven CI / secrets (pull_request) Successful in 21s
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 7s
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 Java Maven CI / verify (pull_request) Successful in 1m48s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Successful in 10s
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Successful in 2m11s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 4s
b337d01eac
Replace five synthetic token literals with generated test values and retain exact historical Gitleaks fingerprints without broad exclusions. Production validation is unchanged. Verified redacted history and staged scans plus all27 composed demo tests.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-02 15:04:59 +00:00
docs(echo): record verified barcode rendering and test images
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 / 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 / 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 4s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Successful in 1m18s
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 Java Maven CI / secrets (pull_request) Successful in 4m18s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Successful in 11s
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Successful in 4m36s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 4s
341b058725
Record real renderer output and independent pixel decoding for the published 4x1 template. Physical print acceptance and release gates remain open.

Co-Authored-By: Codex <noreply@openai.com>
james.maes added 1 commit 2026-11-02 16:00:02 +00:00
fix(echo): align generation and renderer output limits
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 / 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 / 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 7s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Successful in 19s
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 Java Maven CI / verify (pull_request) Successful in 1m20s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Successful in 9s
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Successful in 1m32s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 4s
e3b775ec3f
Propagate each demo renderer cap into Generation so requests do not exceed the bridge limit. Bound the composed acceptance renderer and verify a nondefault cap. Old wiring reproduces three failures; all 74 library/demo tests pass with the fix. A real local synthetic Echo event reached the Windows spooler; physical trigger, paper output and rescan remain unconfirmed.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

Co-Authored-By: Codex <noreply@openai.com>
james.maes added 1 commit 2026-11-02 16:57:48 +00:00
feat(scanners): preserve raw scan metadata in semantic context
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 / 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 / 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 4s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Successful in 14s
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 Java Maven CI / verify (pull_request) Successful in 1m44s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Successful in 9s
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Successful in 1m55s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 4s
e2ebc21ab2
Add optional AIM and canonical raw-byte fields to mobile-scanners 1.5 with nullable H2 storage, exact event retry binding, input consumption and generated backward-compatible schemas. Preserve barcode text and server-derived attribution. Verify 135 scanner, native HTTP, Echo and composed demo tests with Checkstyle. Correct stale demo status without claiming physical output or full barcode qualification.

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 20:58:42 +00:00
feat(echo): add per-scan copies and photo capture
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 / 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 / android-0 (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 3s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Successful in 14s
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 Java Maven CI / verify (pull_request) Successful in 1m25s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Successful in 9s
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Successful in 1m36s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 4s
45f9cbddb1
Ask for an optional copy quantity at setup, defaulting to one, and bind it to every scan and retry through document generation and printing. Preserve barcode symbology/AIM context, add scanner-fidelity document support, and compose authorized Echo scan photo capture.

Verified against the qualified dependency cohort: 377 unique server/owner tests across module runs. Native TC22 Echo acceptance passed ten stages and 116 semantic requests with simulated input and printing. Public dependency publication and physical output validation remain open.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-03 21:57:58 +00:00
build: adopt published QQQ RC.21 across scanner modules
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 / 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 / android-0 (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 9s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Successful in 28s
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 Java Maven CI / verify (pull_request) Failing after 44s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Failing after 15s
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Failing after 1m0s
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 6s
c0e27b36fd
Align the optional Record Files tests with BOM-managed JUnit engine and
parameterized support, avoiding the older API/newer engine mismatch.

Verified 182 scanner/demo/files/Echo tests with public QQQ dependencies,
179 Generation tests and 16 bridge tests with qualified owner inputs,
and all 15 real admin browser scenarios. Owner QBit release inputs and
physical acceptance remain open as documented.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-03 22:21:39 +00:00
docs: correct scanner and Echo setup instructions
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 / 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 / android-0 (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: Shared Java Maven CI / secrets (pull_request) Successful in 15s
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: native / native-result (pull_request) Successful in 5s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Successful in 1m43s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Successful in 11s
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Successful in 1m59s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 4s
090e3c1135
Describe EMDK and optional AIM evidence, public QQQ RC.21 with qualified
owner inputs, current Gitea review links, and implemented profile tooling.
Remove stale test counts while retaining the physical acceptance limits.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes closed this pull request 2026-11-03 22:47:52 +00:00
james.maes reopened this pull request 2026-11-03 22:48:33 +00:00
james.maes merged commit 795a0a2a74 into develop 2026-11-03 22:53:50 +00:00
Sign in to join this conversation.