Files
jobtrackingapp/docs/redesign/phase-9/p9-sec-02/REPRODUCE.md
T
cesnimda b48f25c4ff
MariaDB persistence qualification / mariadb (push) Has been cancelled
test: qualify immutable models and Phase 9 regression
2026-10-25 13:43:50 +01:00

6.0 KiB

Reproduce the qualification

Run from the repository root on a dedicated development checkout. Preserve previous evidence directories and developer data. Use new attempt names/directories; the helpers refuse to overwrite evidence. All database credentials are development-only. Do not point these commands at production.

Runtime and artifacts

Use the exact local image identities in model/RUNTIME.json. They are local image IDs, not pullable registry manifest references. Verify them with docker image inspect. The source runtime build, exact installed inventory, native packages, lock SHA256 values and command outcomes are retained in the qualification records. A rebuild with different base/apt/bootstrap inputs requires a new image identity and qualification; this package does not claim a hermetic OS rebuild.

The application lock contains55 exact hash-checked Linux packages; the development lock retains all55 and adds6 exact test packages. The actual qualified test environment has63 distributions, including its2 separately inventoried bootstrap tools. Use pip --require-hashes and the official PyTorch CPU index, never an unrestricted upgrade. Qualification.Dockerfile adds only the6 locked test extras to the verified runtime; its retained build context is .artifacts/p9-sec-02/test-lock-patched/.

For the small fixtures, verify the retained capsule identity, copy only its manifest-listed members into new .artifacts/p9-sec-02/artifact/ and artifact-bin/ directories, and validate with verify_fixture against the committed manifest. The binary weights are intentionally absent from Git. A regenerated fixture with different bytes needs a new manifest and qualification.

For the original trained model, use:

python docs/redesign/phase-9/p9-sec-02/full-model/prepare.py NEW_NONPRODUCTION_DIRECTORY

The exact reviewed revision, Apache-2.0 declaration, HTTPS source paths, storage bound, file sizes and hashes are checked before loading. This prepares approximately1.23GB of artifact data. It does not change Ollama or an existing cache. Replay the actual retained full-model Docker command with that new directory as the read-only /fixture mount; retain --network none, offline flags, nonroot user, read-only root filesystem and resource limits. The command/probe/manifest/image identity and positive container cleanup are part of the result, not optional environment assumptions.

The six smaller/runtime lanes are individually replayable with unique attempt names:

python docs/redesign/phase-9/p9-sec-02/model/run.py sidecar NEW_SIDECAR_ATTEMPT
python docs/redesign/phase-9/p9-sec-02/model/run.py safetensors NEW_SAFETENSORS_ATTEMPT
python docs/redesign/phase-9/p9-sec-02/model/run.py weights-only NEW_WEIGHTS_ATTEMPT
python docs/redesign/phase-9/p9-sec-02/model/run.py cache NEW_CACHE_ATTEMPT
python docs/redesign/phase-9/p9-sec-02/model/run.py parsers NEW_PARSER_ATTEMPT
python docs/redesign/phase-9/p9-sec-02/model/run.py inventory NEW_INVENTORY_ATTEMPT

These use the exact qualified image and isolated test artifacts; no inference is mocked in the dedicated inference probes. The59-case sidecar suite includes controlled/model-disabled units separately, including real parser-child timeout, capacity release and process-tree termination tests. It does not establish application-level cancellation of in-flight model HTTP requests.

Application and database regression

Use C:/Users/Connor/.dotnet/dotnet.exe9.0.317 and the repository's installed locked Node dependencies. Actual commands, environment, timestamps, exit codes, TRX/JUnit/Playwright reports, discovery and input hashes are indexed by validation.json. Backend, frontend, four serial ordinary shards, six separate browser-contract lanes, RD21 companions, diagnostics and both volume lanes have separate totals. Disable Playwright retries; do not add focused or failed predecessor executions to the complete successor totals.

Use the existing MariaDB integration runner with the pinned official12.2.2 image and generated disposable schemas. The local database service has loopback-only port33308, tmpfs data and no persistent development volume. mariadb-lane.py retains browser recovery, independent HTTP observations and the paced15-minute workload. Run that workload alone, without model loads, builds, browser suites or rendering jobs. Keep current server/version/image and generated-schema ownership checks. Cleanup removes only owned disposable resources; never use down -v, broad prune or a production endpoint.

PDF and source preservation

linux-run.py reuses the original renderer lifecycle, verifies the local immutable image and API source lineage, and retains the unchanged fixture readiness token. The first guard-rejected attempt is preserved separately. The representative-linux attempt selects the existing2-document supplemental configuration; use a fresh evidence checkout if that reserved attempt already exists. Normal fidelity attempts take unique names.

Run the existing p9-requal-01/pdf-proof.py with the new fidelity/settings roots, output directory and explicit --platform windows or linux. Preserve the original scripts/verify-cv-fidelity.py hash 64f82e622cc11483c33307d987e969f6cf27f82ab6bdbd72c2aeb1bfbceade87. A renderer exit code alone cannot satisfy the24-fixture content/layout oracle. Physical printing and owner image review remain separate.

reconcile.py checks exact discovery membership, native reports, fixture supersession, image/artifact/input identities and positive cleanup. --collect-only records incomplete results honestly; its exit0 means collection succeeded, not acceptance. Normal reconciliation remains nonzero while required hosted automation is BLOCKED. verdicts.json makes the independently scoped development/entry/release decisions.