120 lines
10 KiB
Markdown
120 lines
10 KiB
Markdown
# P9-REQUAL-01 — Phase9 requalification, 24 October 2026
|
||
|
||
**Final: RD21 RESOLVED in tested scope; hosted MariaDB BLOCKED; Phase9 NO-GO; Phase10 NO-GO; production NO-GO.** Historical acceptance records remain unchanged.
|
||
|
||
## Verified source and repairs
|
||
|
||
The dedicated branch is `fix/p9-ci-and-requalification`, descended from approved development
|
||
baseline `549b2cba5a791862ba3f854312ea819a86dc42a0` and RD21 repair
|
||
`0d16a691e0249fe1264bf960de5e59eaa9b87fed`. It does not start from production main.
|
||
Application repair checkpoint: `2b26953d6f3c3fdacdffefa2c0a696c9084f1afd`.
|
||
Hardened qualification checkpoint: `5ac11549b2caa27469aa9fb2b5b9ed402471a453`.
|
||
Both normal pushes and direct remote equality were verified. Local/remote main remains
|
||
`5f835e54a9b74e6b71418422e28431b2af06453f`.
|
||
|
||
The compatible Pkcs/Next/Zod security pins are recorded in [SECURITY.md](SECURITY.md).
|
||
The real MariaDB Documents UNION defect was reproduced by three cases, fixed only in read-only
|
||
name projections, and verified in the full35-case provider suite; see [provider repair](DOCUMENTS_PROVIDER_REPAIR.md).
|
||
No application API, migration, stored collation, database version or document-rendering contract changed.
|
||
Qualification cleanup/startup/serialization corrections and every superseded runtime attempt are
|
||
retained in [attempts and repairs](ATTEMPTS_AND_REPAIRS.md). [Independent source review](SOURCE_REVIEW.md)
|
||
records its actual findings and limits. No manual or release approval is inferred from that review.
|
||
|
||
## Fresh regression checkpoint
|
||
|
||
All results below are separate lanes. Focused RED/GREEN runs and earlier full-suite passes are
|
||
not added to successor totals. Accepted runtime results require native case membership, process
|
||
success, zero retries/skips and unchanged frozen inputs. Discovery-only empty results are not skips.
|
||
|
||
| Lane | Current actual result |
|
||
| --- | --- |
|
||
| Backend |1123 passed, zero failures/skips |
|
||
| Frontend |934 passed in105 suites, zero failures/pending/todo |
|
||
| MariaDB integration |35 passed, zero failures/skips, exact12.2.2, generated schemas and teardown |
|
||
| Ordinary browser |PASS:362 cases, exact discovery membership; shards98/87/88/89 |
|
||
| Six separate browser contracts |PASS:23 cases across six separate lanes |
|
||
| RD21 companions / corrected diagnostics |PASS:6 /18 cases |
|
||
| Volume / RD21 volume |PASS:3 /3 cases |
|
||
| MariaDB browser / HTTP durability |PASS:1 native recovery /2 HTTP cases; creation case is characterization only |
|
||
| AI sidecar |56 passed, model loading disabled; no model/inference qualification |
|
||
| Type checks / lint / static production build |PASS; Next16.4.1; local build, no deployment |
|
||
| Existing security helpers / secret scan / SBOM |PASS within stated scope; NuGet/npm report zero vulnerabilities |
|
||
| Locked Python advisory review |FINDINGS;49 pins,109 published alias groups across8 packages; coverage INCOMPLETE |
|
||
| Windows PDF oracles |PASS:16 fixtures/36 pages plus8 fixtures/24 pages; unchanged oracle, no input drift |
|
||
| Exclusive15-minute MariaDB workload |PASS:900006ms,3382 reads/zero failures,20 navigations, selected exact-state invariants; archived failed setup attempts excluded |
|
||
| Linux renderer producers |PASS:5 cases; owned API/network/schema teardown confirmed |
|
||
| Linux PDF oracles |FAIL:9/16 fidelity plus4/8 settings;65 exported versus60 expected pages |
|
||
| Affected Windows settings successor |PASS:4 cases; replaces affected fixture evidence, not added to362 |
|
||
|
||
Final native case indexes, process outcomes, source/report identities and detailed measurements
|
||
belong to [validation.json](validation.json). Large raw reports, traces, PDFs and screenshots are
|
||
retained locally under `.artifacts/p9-requal-01/`; separately archived attempts preserve failures.
|
||
|
||
## Hosted infrastructure and provider limits
|
||
|
||
Hosted run843 had no Docker CLI and executed no database tests. Read-only investigation found
|
||
Gitea1.26.0/act_runner0.4.1, runner5 `Live-Runner`, `ubuntu-latest` mapped to `node:20-bookworm`,
|
||
host networking and an existing merged host Docker-socket bind. That label does not prove a VM
|
||
or private isolation. The first-step guard prevents repository/test commands; runner preparation
|
||
still occurs before it. Inspected runs847 and849 confirm **BLOCKED**, with no MariaDB service/test
|
||
execution. A guard failure is not a hosted database-test failure or pass.
|
||
|
||
The [operator handoff](CI_OPERATOR_HANDOFF.md) requires a dedicated isolated nonproduction runner,
|
||
verified private job/service network, no job daemon socket/privilege/public DB port/persistent data,
|
||
and success/failure/cancel cleanup evidence before enabling native services and the restricted
|
||
CI-service transport. No runner or live deployment infrastructure was changed.
|
||
|
||
Local MariaDB uses official Linux/amd64
|
||
`mariadb:12.2.2@sha256:42a27baaba3e8f3f0159d16381d5a7156661aa91dcc65f663cabb6a6f9503c00`.
|
||
The actual server is12.2.2; this proves tested version parity, not equality with the owner's running
|
||
production image ID/configuration. That image ID is not a registry manifest digest. Local schemas
|
||
are disposable and credentials/volumes are separate from production. Existing SQLite fixtures
|
||
remain explicitly transitional and are never counted as MariaDB execution.
|
||
|
||
## Acceptance findings and human requirements
|
||
|
||
[FINDINGS.md](FINDINGS.md) and [findings.json](findings.json) register59 findings independently
|
||
against Phase9, Phase10, production and debt. All57 preservation groups and33 routes remain;
|
||
56 groups are PARTIAL and C11 DEFERRED. No source presence or passing tagged fixture promotes an
|
||
entire capability to PASS. Canonical/variant boundaries, null-as-inherit overrides and frozen
|
||
documents retain their specific contracts; no legacy alias or metadata was removed.
|
||
|
||
[M09-01–10 owner-test cards](MANUAL_ACCEPTANCE.md) specify prerequisites, exact actions, expected
|
||
results and required recordings. Genuine reader/keyboard/contrast/zoom, physical-device, natural
|
||
Bokmål, printing and provider checks remain NOT TESTED where the required human/environment is
|
||
absent. Automated axe and finite image inspection do not establish full accessibility compliance.
|
||
The original REQUEST§6 explicitly carries unfinished genuine human checks into release gates;
|
||
production-only storage/backup requirements do not independently veto isolated functional QA.
|
||
|
||
The open Python gate is different: published critical/high records affect dependencies with actual
|
||
upload-parser/model-loading call sites. Existing child/time/resource controls do not establish
|
||
advisory closure. Per-advisory reachability and compatible major parser/ML transition remain
|
||
unproven. REQUEST§§9/13/14 call for an individual risk disposition; they do not mechanically mandate
|
||
NO-GO for every advisory. This report's acceptance-risk judgment withholds closure for this
|
||
unassessed critical/high uncertainty pending validated remediation or an explicitly approved risk
|
||
disposition. C11/P5-13 remains withheld.
|
||
Duplicate reminder reads remain low documented debt; creation-intent idempotency remains a separate
|
||
open contract. No optimization, duplicate-create protocol or Phase10 cleanup was introduced.
|
||
|
||
## Final decisions and next action
|
||
|
||
| Gate | Decision | Reason |
|
||
| --- | --- | --- |
|
||
| RD21 |RESOLVED |Original six save/concurrency clauses satisfied within tested scope; separate creation debt retained |
|
||
| Hosted MariaDB CI |BLOCKED |Private service isolation/lifecycle unavailable; no hosted database tests ran |
|
||
| Phase9 |NO-GO |Confirmed Linux PDF output failure and unclosed critical/high Python advisory risk disposition |
|
||
| Phase10 readiness |NO-GO |Unwaived affected functionality/testpass failures; unused-code/route/inventory prerequisites unproven |
|
||
| Production |NO-GO |Task restrictions and independent release/security/recovery/manual gates remain |
|
||
|
||
The final collector deliberately exits1: `linux-pdf:FAIL`, `python-advisories:FINDINGS`; `automationComplete:false`. These are retained acceptance failures, not substituted passes. [Linux findings](LINUX_PDF.md) identify11 failed fixtures and observed font/browser differences without claiming a proven sole cause.
|
||
|
||
MariaDB local development configuration is READY within previously verified isolated persistent-startup scope; its persistent service/data are preserved and currently stopped. Local disposable integration testing is READY (35 real-provider cases plus isolated browser/workload lanes). Hosted CI is BLOCKED. Historical revision fixture repairs remain verified (18/18 and3/3 baseline evidence, fresh complete backend successor); assertions were not weakened. SQLite retirement is STAGED, not performed. MariaDB12.3 LTS migration readiness is PLAN ONLY, not qualified/executed. Production floating `latest` remains a pinning risk; use a separately approved exact version/registry digest with backup/restore/rollback evidence, never the running image ID as a manifest reference.
|
||
|
||
Source lineage is explicit: complete362 ordinary cases ran at5ac1154; the sole subsequent runtime-input change is the CV sibling preservation fixture at7092697. It takes an independent successful durable GET as its pre-action baseline and retains full strict after-body equality. Four affected Windows cases and five Linux producers passed afterward; no application/static/DLL source changed. [Source lineage](source-lineage.json) and both frozen input manifests record this distinction.
|
||
|
||
The next specific development action is a bounded Phase9 Linux document-rendering parity investigation using the retained failing corpus, alongside separately scoped Python parser/ML advisory assessment and validated remediation. An operator must provide the isolated runner described in CI_OPERATOR_HANDOFF.md before hosted execution can be enabled. Owners can complete prioritized M09 cards in parallel. These actions do not begin Phase10 cleanup.
|
||
Production remains NO-GO under the task restrictions. Live storage, independently verified off-disk
|
||
backup/restore/rollback, ingress/deployed identity, provider/model integrity and applicable human
|
||
release gates remain unverified. There was no merge, deployment, production database access,
|
||
SQLite retirement or MariaDB12.3 upgrade. The existing staged retirement/LTS plans remain plans.
|