Files
jobtrackingapp/docs/redesign/phase-9/p9-requal-01/RD21_CLOSURE.md
T
cesnimda 1a1b7c8221
MariaDB persistence qualification / mariadb (push) Failing after 7s
test: prepare phase 9 requalification harness and blocker register
2026-10-24 13:20:47 +02:00

8.9 KiB

RD21 closure map and remaining limits

This map evaluates the unchanged six original closure clauses, rather than inventing a broader fix. Historical baseline: 549b2cba5a791862ba3f854312ea819a86dc42a0. Source/test inspection only in this register; fresh execution must be bound to the root-owned result ledger before final acceptance.

The SQLite remediation addendum recorded a repaired implementation but withheld RD21 because MariaDB had not run. The later MariaDB acceptance explicitly resolves the bounded MariaDB12.2.2 save/concurrency scope using32 real-provider cases and1 native browser journey. Historical raw case index retains actual reports/failures. These are historical results, not fresh P9-REQUAL-01 passes. Neither old report is edited.

Original required closure clause Existing concrete cases and source Evidence boundary / remaining limit
Independent concurrent clients editing different and same fields cannot silently overwrite an acknowledged save MariaDB Career tests: Independent_stale_snapshot_cannot_replace_acknowledged_career_edit; job tests: Stale_or_unversioned_snapshot_cannot_erase_an_acknowledged_job_edit, Related_text_save_cannot_silently_replace_a_newer_acknowledged_draft, Structured_tailored_cv_snapshot_cannot_replace_a_newer_approved_document, Write_that_overlaps_a_delayed_save_wins_without_partial_events_or_opportunity_changes. Parallel SQLite names in JobTrackerApi.Tests. Native A/B ordering: original two-session ordering case preserves each winner through immediate independent SQL reads, navigation and a new authenticated session. Historical qualified same-owner source snapshots and database interleavings; not exhaustive every-field/editor/order testing. Rejection is safe conflict, not silent merge. Native MariaDB journey directly covers Career, while job provider behavior is covered by real-provider controller/persistence cases.
Actual owner-and-revision preconditions on database write; simultaneous submissions and first saves Career Stale_tracked_entity_is_guarded_at_database_update_and_stale_restore_is_rejected, Competing_first_save_sources_have_one_acknowledged_winner; job delayed-save overlap and Versioned_job_save_cannot_cross_tenant_job_or_company_ownership. Save contract identifies Career Version and job EF token; final database predicate guards the interval after controller validation. Real provider contexts/connections, not a client-only comparison. Narrow lifecycle/background tracked writers advance job version. This does not make every narrow command ordering a full-editor merge contract. First canonical save is distinct from create-job intent idempotency.
SQLite and supported MariaDB runtime, including constraints, held readers/writers and partial failure SQLite Career / SQLite job. MariaDB startup/lock: Full_startup_creates_every_table_and_column_required_by_the_persisted_EF_model, Fresh_repeated_and_populated_startup_preserve_owned_data_and_complete_migrations, Rd21_additive_migration_preserves_existing_job_fields_and_backfills_revision_one, Open_reader_does_not_block_independent_usage_and_identity_writes. Job Held_writer_timeout_rolls_back_and_a_reviewed_save_recovers_after_release; Career Identity_failure_rolls_back_canonical_children_history_and_projection, Database_failure_after_deletion_restores_children_history_and_revision_and_clears_tracker; job Failed_job_transaction_cannot_acknowledge_or_leave_partial_data_for_a_later_save. Historical actual pinned Linux/amd64 MariaDB12.2.2, InnoDB and independent TCP readbacks. Identity/summarizer doubles in controller tests are disclosed. Version parity does not prove exact production image/configuration parity. Not MariaDB12.3, power-loss durability or production rollback. Hosted prerequisite failure remains separate from local provider proof; fresh hosted lane pending root results.
Conflicts preserve drafts and offer explicit current-data review/reload; account switch and stale session fail closed MariaDB browser: native Career conflict/network-failure/reviewed-retry case; remediation browser: native editor retention/recovery, missing-revision rejection, cross-origin committed header and successive Answers, fresh source after letter save. Account isolation: retained A request with B cookies/CSRF; missing/forged contexts; two-tab account switch and Back navigation. Controlled aborted request, actual API/SQL reads and session-boundary tests. Not physical device/reader acceptance. Unknown commit outcome requires deliberate read/review, never fetching a new token to authorize an old body. No automatic retry is claimed.
Imports, history restores, generic job updates, lifecycle/bulk and old callers follow agreed compatibility contract Career Replacement_restore_parse_and_import_fail_closed_without_valid_revision, Import_acceptance_requires_the_revision_shown_in_its_diff, Reviewed_import_commits_or_rolls_back_canonical_projection_and_application_metadata, Parsing_commits_or_rolls_back_its_entire_import_application; job missing/stale snapshot and related-text/tailored tests above. SAVE_CONTRACT inventories endpoints/statuses; related review inventories narrow lifecycle/background writers, extension/create consumers and already-guarded Dashboard/CV/email owners. MariaDB fixture delta retains old unversioned failure and explicit3 fixture repairs with original assertions. Source/caller review plus contract tests, not certification of every independent editor or mixed old/new deployment. Career missing precondition400; valid stale409; job missing/invalid/stale409. Old unversioned writers intentionally fail closed. Extension/bookmarklet is a create consumer. No compatibility alias removal.
Complete affected regression, frozen bytes and no unrelated Identity replay Historical addendum reports1109 backend,934 frontend/105 suites,362 ordinary,23 separate,56 sidecar and6 remediation cases, separate conforming volume3; explicit obsolete historical diagnostic failures retained. Later MariaDB acceptance reports1123 backend,32 provider,1 provider-browser, corrected diagnostics18 andvolume3. Frozen contracts and canonical/variant/null-as-inherit ownership remain independently mapped in preservation; original PDF oracle16/36 pages plus8/24 pages unchanged. Career transaction/Identity failure and read-only coherent snapshot tests cover projection boundary; identity-only endpoint keeps ownership. These are separate historical lanes, not added totals or fresh full regression. Root must obtain complete fresh successors and frozen-byte/PDF proof on final source. Do not treat database conflict pass as frozen-byte proof, print acceptance or release acceptance.

Creation-intent idempotency is explicitly a separate retained RD21 concern, not one of the stale-replacement repairs. No new duplicate-create reproduction or idempotency implementation is claimed. Record owner/domain follow-up with interrupted-create/replay semantics and a separate acceptance contract before changing it. Canonical first-save uniqueness is not create-intent idempotency.

Historical acknowledged edits lost before repair are not proven recoverable; no live records were inspected. Extraction discard/accept lifecycle concurrency was considered but not reproduced. Independent settings/company/contact records were source-reviewed without a newly reproduced shared RD21 defect; full multi-session acceptance of them is not implied. RELATED_REVIEW preserves these boundaries.

Current recommendation is therefore conditional on the exact decision: retain bounded save/concurrency closure from historical MariaDB evidence, require fresh source-bound successors for this requalification, retain separate idempotency and release limits, and let the root acceptance addendum issue the final RD21/Phase9/Phase10/production decisions. Do not reopen repaired stale loss merely because creation debt remains, and do not close creation debt merely because stale loss is repaired.