AA165MF modification reportedly leaves prior period open and shows two ALTA records
Stakeholder report, verbatim: 'Al realizar una modificacion no cierra la fecha anterior y quedan 2 altas. Dominio AA165MF.' Reproduce/diagnose against current PROD and DEV persisted records and the corresponding app code before changing anything. Establish exact vehicle/history IDs, source (app vs import), transaction timestamps versus business fecha_alta/fecha_baja, vigente/current ranking, entity/line/internal before-after, and whether two open ALTA periods actually exist or the UI renders a closed period misleadingly. Correlate to MOVILBA-511 (line-transfer BAJA+ALTA semantics) but do not assume same cause. Check whether the report concerns an existing historical row or a new edit path. Return concrete cause, affected scope, and focused fix/test plan. PROD movilba import lock remains; SELECT-only investigation, no record edits, no re-import, no deployment until reviewed.
Activity
-
Read-only row-grain PROD/DEV and code diagnosis assigned to audit and db04; PROD import lock remains.
-
Read-only code-path finding from audit (2026-10-14): collective edit uses the supplied expediente date to close every eligible open app-origin period for the vehicle, but intentionally leaves imported periods immutable; line/entity transfer appends a same-day MODIF closure and ALTA successor. Two displayed ALTA rows alone do not prove two current periods. PROD/DEV row-grain census pending to distinguish imported overlay, orphan app row, or date/order issue. No code/DB writes.
-
db04 SELECT-only PROD+DEV, 2026-10-14: AA165MF is one active vehicle id3370 and one active VDC id3729. Three normalized periods: imported Alta 2025-07-08 to 2025-12-29 (closed); imported Modif/state ALTA from 2025-12-29 with fecha_baja NULL; app Modif/state ALTA from 2026-10-14 with fecha_baja NULL. Current view ranks the app row first but reports eventos_abiertos=2; public history displays both with periodo_hasta NULL. This is a real stored imported+app overlap, not duplicate vehicles or two app writes. The writer closes only app-origin rows to preserve imported evidence. No DB write or reimport; PROD import lock remains.
-
Independent audit PROD+DEV read-only confirmation: two open rows have estado ALTA but both tramite MODIF; only the older CLOSED imported row has tramite ALTA. AA165MF changed interno 17 to 54 on the same entity 66 and line 130, so this is internal-only modification, not MOVILBA-511 line transfer. Exactly one canonical current app row ranks first. Stakeholder wording 'two altas' describes status display, not two ALTA tramites or two app-created rows. No writes.
-
Coder04 read-only remedy: keep imported source fecha_baja/expte_baja immutable; add an effective period end for an open predecessor derived from the next app successor's fecha_alta, same vehicle with chain/plate-aware ordering. For AA165MF display effective end 2026-10-14. Prefer shared read-only SQL/view projection if ficha/PDF/API and historical CSV/XLSX all require consistent intervals; leave raw RUTAP book export and current-rank winner unchanged. Tests: import+app, app+app, replate, same-day tie, already closed predecessor, historical export, source-row hash, and unchanged current winner. eventos_abiertos=2 is raw-open count and should not be mislabeled as two effective current periods. No write authorized or made.
-
Elazar 2026-10-14 product direction: pre-launch MovilBA is a UI-first CRUD application over PostgreSQL DB movilba; do not treat routine RUTAP imports as the operating workflow or ask users to wait for imports. Imports occur only on an explicit future request; PROD import lock remains until explicitly lifted. Reassess AA165MF modification/history as a CRUD edit behavior issue: the prior period must have an effective end when a new modification is saved. Preserve evidence as needed, but do not defer the defect to a future import. No DB/code write authorized by this note.
-
Elazar clarification 2026-10-14: UI-first CRUD operating model applies to PROD DB movilba, DEV DB movilba_dev, and the OpenShift pod. No environment is a routine import target; import only on his explicit request. PROD import lock remains. AA165MF edit-history remedy must behave consistently across all three app environments; normal release sequencing remains PROD first, then DEV and pod after PROD green. No writes authorized by this decision note.
-
UI-first CRUD refinement from coder04 (read-only): saving MODIF appends the next app-owned period; all readers immediately derive prior period's effective_until from successor.fecha_alta in vehicle/plate-chain business order, even if prior raw imported evidence has fecha_baja NULL. Keep effective_until distinct from stored fecha_baja/expte_baja; display 'Vigente hasta 2026-10-14' for AA165MF interno17 period, leaving new interno54 period open. Both remain estado ALTA/tramite MODIF, with no fabricated BAJA or expediente. Shared projection should serve ficha/PDF/history API and, if interval semantics apply, historical CSV/XLSX; raw book export and canonical current winner unchanged. Regress save→immediate read, imported predecessor, replate/same-day ordering, and raw-field immutability across PROD/DEV/pod release. No routine import or writes performed.
-
Coder04 refinement after UI-first CRUD clarification: recommendation is to PERSIST an app-owned closure overlay atomically with the successor MODIF insert under vehicle row lock, not merely derive it at read time. For an app predecessor continue transactional fecha_baja close; for imported predecessor never UPDATE source row, instead store predecessor/successor history IDs, effective_until=successor.fecha_alta, actor/requestId, uniqueness/idempotency guard. Shared read projection exposes periodo_hasta_efectivo separately from raw fecha_baja; UI/PDF say 'Vigente hasta', never 'Baja registrada'; historical export may add distinct Vigencia_Hasta while retaining Fecha_Baja. This supersedes the earlier read-only-only derivation proposal; no code/DB change or authorization yet. Regression: atomic rollback, repeated edit, replate, same-day tie, source fidelity, current winner. PROD-first then DEV/pod.
-
Elazar explicitly requested implementation on 2026-10-14: fix MOVILBA-803 now. Coder04 owns app/shared history readers and tests; db04 owns minimal DB overlay migration and AA165MF repair/backfill evidence; audit performs one focused review. No RUTAP import; PROD import lock remains. Rollout PROD first, then DEV/pod after PROD green. Preserve imported source and actual Baja semantics; expose distinct effective Vigencia_Hasta. Current status remains inProgress until shipped and verified.
-
db04 drafted overlay migration SHA256 19f24f83329418584849fdd189a46eb9446cf1eb28e981e8806c367be6365fd0; exact bytes default-ROLLBACK rehearsed PROD then DEV rc0, including app insert/read/rollback and wrong-date, closed-predecessor, duplicate controls; AA165MF one backfill overlay; raw history unchanged. Independent fresh postreads show overlay/function absent and original raw-open rows unchanged. No apply/import. Awaiting coder04 contract confirmation, frozen code package, and one combined audit.
-
DB draft: docs/migrations/2026-10-14-movilba-803-effective-period-closure-PROD-Y-DEV.sql SHA256 7396a8bf5311879a91d839a8bd0eac1afd0ea8296f4abb22233d050b59f3ac9f. Default-ROLLBACK rehearsals PROD then DEV rc0 on exact bytes. Runtime app insert/read/rollback positive; wrong effective date, already-closed predecessor, duplicate predecessor negatives seen firing. AA165MF backfill would add one overlay; pre/post raw normalized history image unchanged. Independent after-reads: table/function absent, prior import and app rows still open in both. No DB apply/import. Combined audit awaits coder04 frozen app artifact. Trigger permits same-day actual BAJA successor but preserves imported Fecha_Baja.
-
Pre-apply integration defect caught by db04: app writer inserts closure overlay on imported-predecessor BAJA, whose successor has fecha_baja=fecha_alta; draft SQL trigger rejected all non-NULL successor fecha_baja, so it would break a normal UI Baja. Prior draft SHA 19f24f is superseded. db04 is narrowing guard to catalog-confirmed same-day BAJA; coder04 adds import-to-BAJA regression; audit must review repinned exact artifact. No migration applied.
-
DB artifact repin: SHA256 7396a8bf5311879a91d839a8bd0eac1afd0ea8296f4abb22233d050b59f3ac9f supersedes prior pin. Reason: allow import→real Baja app successor only when fecha_baja=fecha_alta and catalog estado=BAJA; ordinary Modif successor remains open. Exact bytes re-rehearsed PROD→DEV ROLLBACK rc0 with positive runtime closure, wrong-date/closed-predecessor/duplicate negatives, raw image unchanged; post-rollback table/function absent in both. No apply. Shared checkout lock released; app writer in separate release worktree, combined review pending.
-
Release sequence clarified: current sanctioned code scripts provide no PROD-code-first path; mba-deploy-dev.sh pushes/builds DEV and mba-deploy-prod.sh requires that dev commit and merges to main. After focused audit PASS, apply additive DB migration/AA165MF overlay PROD first then DEV while old v5.6.252 app is verified compatible; immediately run DEV code deploy then PROD code deploy as the repo's documented two-step exception, then pod. Abort on migration compatibility/health failure and verify AA165MF effective history on all surfaces. This is no RUTAP import; PROD import lock remains.
-
DB artifact repin: SHA256 9b5057ac84fd910d9ba1d20a0ab0176938ef83fa3c968d00ffc8386159c7d4e1 supersedes 7396a8bf. Coder04 identified that max(rutap.snapshots.id) can name an unprojected snapshot while readers use max normalized live import rutap_snapshot_id. Validator now uses the reader's exact latest-projected predicate; no other SQL behavior changed. Exact bytes re-rehearsed default ROLLBACK PROD then DEV rc0 with runtime positive, three negatives, overlay=1 and raw history unchanged. Independent afterreads: table/function absent, snapshot/projected heads 12/12 PROD and 22/22 DEV, two raw-open AA165MF rows retained. No apply/import; combined audit pending app freeze.
-
db04 confirmed backward compatibility of frozen additive SQL SHA 9b5057ac...d4e1 with live v5.6.252: old src has no app_period_closures reference; migration only creates new table/function/trigger, grants app role, inserts one overlay; does not alter old tables/views/history rows. Sanctioned scripts require dev-code push before prod merge, so after combined PASS safe sequence is PROD DB apply+proof, DEV DB apply+proof, dev code deploy, prod code deploy, pod, with health/AA165MF verification each leg. No apply/deploy yet.
-
Combined frozen package sent to one focused audit: clean release clone HEAD cb091a129eafa5c6b5dfed2fafb65bdaa5b898f2; 14 app path hashes in /data-lezama/movilba/evidencia/MOVILBA-803/2026-10-14-app-code-sha256.txt verified by sha256sum -c; exact SQL SHA256 9b5057ac84fd910d9ba1d20a0ab0176938ef83fa3c968d00ffc8386159c7d4e1 copied byte-identically. Coder04 diff-check PASS; audit runs code gates and checks DB rehearsal/sequence. No DB apply or deploy yet.
-
DB artifact final candidate SHA256 99f1b7f4b90b0581904985f6d722385fe27154d60b674ab62e5b713aee1fc0fb supersedes 9b5057ac. At audit request, added executed positive control using an existing current-import→same-day app BAJA pair (PROD 511718→514220, DEV 612691→617975), and a negative closed non-BAJA control by transiently changing that app successor's catalog state inside a nested subtransaction; it is restored before the outer default ROLLBACK. Exact bytes PROD then DEV rc0; both notices seen, prior positive/three negatives and AA165MF raw-image unchanged still pass. Independent afterreads both bases: overlay table absent, BAJA successor still id117/same-day closed, AA165MF raw-open rows still 2. Source and clean release-clone migration files byte-identical at this SHA; locks released. No apply/import. Combined audit pending frozen app pins.
-
audit fail: App manifest cb091a129eafa5c6b5dfed2fafb65bdaa5b898f2 + SQL 9b5057ac84fd910d9ba1d20a0ab0176938ef83fa3c968d00ffc8386159c7d4e1: test:source, test:tools, ESLint, typecheck, diff-check; no apply/import/deploy.
payload
{"scope":"App manifest cb091a129eafa5c6b5dfed2fafb65bdaa5b898f2 + SQL 9b5057ac84fd910d9ba1d20a0ab0176938ef83fa3c968d00ffc8386159c7d4e1: test:source, test:tools, ESLint, typecheck, diff-check; no apply/import/deploy.","outcome":"fail","evidence":"FAIL. pnpm run test:source: 74/76; src/lib/exports/rutap-libro.test.ts fails twice because rutap-libro.ts aliases RUTAP_HISTORICAL_COLUMNS, so the book export became 40 columns (A1:AN3) instead of 39 (A1:AM3). Targeted ESLint, typecheck, diff-check passed; test:tools 111 pass, 0 fail, 2 DB-env skips. SQL 9b lacked import-to-same-day-BAJA acceptance control; its positive insertion was the AA165MF MODIF. db04 subsequently reported replacement SQL 99f1 with that control. This FAIL applies only to these pins; separate the book-export contract and refreeze app before re-review.","reportRef":null} -
Final combined audit identity repinned after focused import-to-real-BAJA test: clean clone HEAD cb091a12; 14-file manifest SHA256 977429a621746a80cc1ff5cb89f237e74fcef26095e902d30c0bb6fb726bc278 with sha256sum -c 14/14 PASS; full patch SHA256 9c3a54641d137f020dab078834ab0e93df47cf81e70498cd049c5c8d49de211e; SQL SHA256 99f1b7f4b90b0581904985f6d722385fe27154d60b674ab62e5b713aee1fc0fb exact PROD+DEV rollback rc0. Earlier app manifests and SQL pins superseded. No DB apply/deploy; audit asked for one verdict on these bytes.
-
DB artifact repin SHA256 e64bb4446e61584deaaf540e59e588276e5cc8ae47ee2c7d427a11439950f958 supersedes 99f1b7f4. Reason: app writer selects exactly one imported predecessor per successor; added UNIQUE(successor_history_id) to enforce that one-to-one relationship and removed redundant standalone successor index. Same table/columns, no app-code change. Exact bytes default-ROLLBACK PROD then DEV rc0: ordinary app positive, real same-day BAJA positive, closed non-BAJA/wrong-date/closed-predecessor/duplicate negatives, overlay one/raw history unchanged. Independent postreads both bases: table absent, BAJA row restored, AA165MF raw-open count two. Shared and clean release-clone files hash identical; locks released. No apply/import. Audit must review only e64bb444 with frozen app package.
-
audit fail: HEAD cb091a12; manifest ddb6e474…0af5abc (14/14), patch dc6ed6c4…f47ec652, SQL e64bb444…9950f958; test:source, focused raw-export test, typecheck, ESLint, diff-check. SQL rollback evidence db04-reported; no apply/import/deploy.
payload
{"scope":"HEAD cb091a12; manifest ddb6e474…0af5abc (14/14), patch dc6ed6c4…f47ec652, SQL e64bb444…9950f958; test:source, focused raw-export test, typecheck, ESLint, diff-check. SQL rollback evidence db04-reported; no apply/import/deploy.","outcome":"fail","evidence":"FAIL: pnpm run test:source exits 1 (75 pass, 2 fail); independently reran pnpm exec tsx --test src/lib/exports/rutap-libro.test.ts, exit 1. Both failures show raw RUTAP book export has 40 columns instead of fixed 39 (xlsx range A1:AN3 vs expected AM3; CSV count 40 vs 39). Cause: src/lib/exports/rutap-libro.ts:12 aliases RUTAP_LIBRO_COLUMNS to RUTAP_HISTORICAL_COLUMNS, now expanded with app-derived Vigencia_Hasta. Keep Vigencia_Hasta in historical report but separate raw book-export column list/contract. Typecheck, targeted ESLint and diff-check pass. No apply/import/deploy; authenticated UI and end-to-end PDF not exercised. Request patch/manifest SHA did not match actual files; current pins are in scope.","reportRef":null} -
Immutable/versioned evidence copy of exact rehearsed SQL: /data-lezama/movilba/evidencia/MOVILBA-803/2026-10-14-effective-period-closure-e64bb444.sql, SHA256 e64bb4446e61584deaaf540e59e588276e5cc8ae47ee2c7d427a11439950f958, mode 0444. Source in shared checkout and release-clone docs/migrations both rehashed to identical bytes. This is the PROD→DEV default-ROLLBACK rc0 candidate with ordinary app + real BAJA positives, closed non-BAJA/wrong-date/closed-predecessor/duplicate negatives, and independent postreads showing table absent/source restored. No apply/import. Earlier 19f/7396/9b/99f pins are superseded; use only this versioned evidence path for audit.
-
audit fail: App HEAD cb091a12/manifest ddb6…; SQL e64bb444…. test:source, typecheck, ESLint, diff-check. DEV privilege evidence db04 read-only; service env not inspected. No apply/import/deploy.
payload
{"scope":"App HEAD cb091a12/manifest ddb6…; SQL e64bb444…. test:source, typecheck, ESLint, diff-check. DEV privilege evidence db04 read-only; service env not inspected. No apply/import/deploy.","outcome":"fail","evidence":"FAIL remains: test:source 75/77; raw RUTAP export produces 40 columns, expected 39 (A1:AN3 vs AM3). Migration permission review: DEV has no svc_nextjs role; db04 measured connected sessions as movilba_user, who owns rutap.snapshots and would own the new table created by this migration, so owner SELECT/INSERT applies; PROD grants svc_nextjs SELECT/INSERT. Limit: dev service env is unreadable here, so configured runtime role is indirectly inferred from sessions, not confirmed from service config. SQL rollback rehearsal reported by db04; audit did not apply SQL.","reportRef":null} -
Durable exact-rehearsal evidence added without rerun: SQL copy /data-lezama/movilba/evidencia/MOVILBA-803/2026-10-14-effective-period-closure-e64bb444.sql SHA256 e64bb4446e61584deaaf540e59e588276e5cc8ae47ee2c7d427a11439950f958; PROD→DEV default-ROLLBACK evidence transcription /data-lezama/movilba/evidencia/MOVILBA-803/2026-10-14-e64bb444-rollback-evidence.md SHA256 a6a59581d1095febe2351937e6d024dce3d8511a3fa78fb6df16286b418f83d6. Evidence explicitly marks itself as a transcription of observed tool output rather than raw captured psql log. SQL rehashed equal in evidence, shared tree, and clean release clone. No apply/import.
-
audit fail: App manifest b9aa438d…d35dcce (16/16), patch 252935d9…637c9b84, SQL e64bb444…9950f958; test:source, test:tools, typecheck, ESLint, diff-check; importer statically reviewed. SQL rehearsal db04-reported; no apply/import/deploy.
payload
{"scope":"App manifest b9aa438d…d35dcce (16/16), patch 252935d9…637c9b84, SQL e64bb444…9950f958; test:source, test:tools, typecheck, ESLint, diff-check; importer statically reviewed. SQL rehearsal db04-reported; no apply/import/deploy.","outcome":"fail","evidence":"FAIL: migration defines successor_history_id REFERENCES rutap.vehiculo_historial_normalizado(id) ON DELETE RESTRICT. Existing installed MOVILBA-517 reconciler explicitly DELETEs app-origin history rows (517 migration lines 170-176), and rutap-snapshot-import.py invokes that reconciliation for full/idempotent imports then requires zero app rows (lines 808-825, 1296-1304, 1484-1490). Any closure referencing an app successor therefore blocks an explicitly authorized future RUTAP import unless closures are deleted/cascaded first; migration/import path has no such cleanup. No importer run (PROD lock holds). App gates green: source 77/77; tools 111 pass, 2 skipped for unavailable DB env; typecheck/targeted ESLint/diff-check pass. Historical report has 40 fields while raw book remains 39. DB rehearsal is db04-reported only.","reportRef":null} -
Audit 517/import compatibility correction: SQL SHA256 7382e20222ea4131ca5ca5bba18fcae4cefb0659ef25ddc5ad18b123ef973efb supersedes e64bb444. Changed successor FK from ON DELETE RESTRICT to named ON DELETE CASCADE so installed reconciler's app-history DELETE cannot be blocked by overlay; predecessor remains no-FK. Exact bytes default-ROLLBACK PROD then DEV rc0; new in-transaction control verifies actual FK confdeltype='c'; all prior positives/negatives and AA165MF raw-image preservation pass; independent postreads table absent/BAJA restored/AA165MF raw-open2. Versioned SQL /data-lezama/movilba/evidencia/MOVILBA-803/2026-10-14-effective-period-closure-7382e202.sql and evidence note /data-lezama/movilba/evidencia/MOVILBA-803/2026-10-14-7382e202-rollback-evidence.md (SHA 3755af13) are mode0444; release clone and shared SQL hash identical. LIMIT: no physical app successor DELETE was run, because app-delete trigger prohibits it and PROD import lock remains; FK action verified structurally, future explicit import still needs its own behavior gate. No apply/import/trigger disable.
-
audit pass: Pre-release review: app manifest b9aa…dcce, patch 2529…9b84, SQL 7382…73efb; test:source 77/77, test:tools 111 pass/2 DB skips, typecheck, targeted ESLint, diff-check; export mutant failed; focused export 3/3.
payload
{"scope":"Pre-release review: app manifest b9aa…dcce, patch 2529…9b84, SQL 7382…73efb; test:source 77/77, test:tools 111 pass/2 DB skips, typecheck, targeted ESLint, diff-check; export mutant failed; focused export 3/3.","outcome":"pass","evidence":"All 16 app hashes match. Raw book remains 39 columns, historical report 40. Mutating book export to alias historical columns failed: XLSX A1:AN3 vs AM3 and CSV 40 vs39; corrected test passes. SQL exact hash matches immutable 7382 artifact; db04 reports exact PROD→DEV default-ROLLBACK rehearsal rc0, positive/negative controls, FK cascade guard, rows restored and table absent. Cascade resolves importer deletion incompatibility. Limits: rollback evidence is a transcription, not raw psql capture; no apply/import/physical successor delete or live HTTP/UI/PDF exercised; DEV app DB-role attribution indirect. Verify runtime read/write during rollout.","reportRef":null} -
audit fail: DB pre-apply gate: SQL 7382e202… current cascade revision; app b9aa…/2529… remains passed. Physical successor-delete rollback control required before apply.
payload
{"scope":"DB pre-apply gate: SQL 7382e202… current cascade revision; app b9aa…/2529… remains passed. Physical successor-delete rollback control required before apply.","outcome":"fail","evidence":"db04 BWI evidence says the 7382 SQL was rehearsed PROD then DEV with default ROLLBACK and structurally verified confdeltype=c, but no actual successor DELETE was exercised because the app-delete trigger blocks it. Per coder03 2026-10-14 13:21 decision, no apply/deploy/import until exact revised SQL demonstrates synthetic app successor DELETE removes only its closure overlay, rollback restores history/raw image, then PROD→DEV fresh unchanged checks. Prior scoped PASS is historical evidence only, not authorization to apply. App gates remain PASS: source 77/77, tools 111/2 DB skips, typecheck, targeted ESLint, diff-check; export mutant failed; current test passes.","reportRef":null} -
audit fail: DB pre-apply verdict on immutable SQL 7382e202...973efb; app review b9aa/2529 remains PASS. Exact bytes/hash/evidence verified; missing required successor DELETE rollback control.
payload
{"scope":"DB pre-apply verdict on immutable SQL 7382e202...973efb; app review b9aa/2529 remains PASS. Exact bytes/hash/evidence verified; missing required successor DELETE rollback control.","outcome":"fail","evidence":"Verified immutable SQL SHA 7382e20222ea4131ca5ca5bba18fcae4cefb0659ef25ddc5ad18b123ef973efb matches release clone; rollback note SHA 3755af13390ae6f97826083f3be8c472f2575945ed78d740ea822efebed5162b, PROD then DEV rc0, rollback and unchanged afterreads. Evidence explicitly says no physical app successor DELETE; only confdeltype=c structural control. Coder03 requested a synthetic successor delete proving only overlay cascades then rollback restores history/raw image. Trigger-disable workaround is not acceptable in PROD; no import/apply authorized. Need safe isolated control or explicit ruling to waive before DB PASS.","reportRef":null} -
audit pass: SQL-only pre-apply audit: immutable 7382e202…973efb, PROD→DEV default-ROLLBACK evidence 3755af13…5162b. Actual named successor FK is ON DELETE CASCADE; confdeltype guard and all reported controls verified.
payload
{"scope":"SQL-only pre-apply audit: immutable 7382e202…973efb, PROD→DEV default-ROLLBACK evidence 3755af13…5162b. Actual named successor FK is ON DELETE CASCADE; confdeltype guard and all reported controls verified.","outcome":"pass","evidence":"Rehashed immutable SQL and evidence; SQL copy equals release clone. db04 reports PROD then DEV rc0, rollback only, prior positive/negative controls and unchanged postreads. Migration asserts the actual new FK confdeltype=c; this is sufficient to verify configured PostgreSQL cascade semantics without deleting a real app history row under the trigger/import lock. LIMIT: physical successor DELETE/cascade was not exercised, evidence is a transcription, not raw psql capture; no import/apply/deploy. Keep future importer behavior gated separately.","reportRef":null} -
DB apply completed PROD then DEV on immutable SQL SHA256 7382e20222ea4131ca5ca5bba18fcae4cefb0659ef25ddc5ad18b123ef973efb after scoped audit PASS. Both psql apply=true runs rc0/COMMIT. Independent postreads: overlay table exists, exactly 1 AA165MF backfill and 1 total row per base; successor FK confdeltype=c; raw AA165MF history remains 3 rows/2 raw-open; snapshots stay PROD 12/DEV 22. Owners PROD movilba_owner, DEV movilba_user; PROD svc_nextjs SELECT/INSERT true. Both health endpoints status=ok/serviceId 35435. No import/trigger disable. Evidence /data-lezama/movilba/evidencia/MOVILBA-803/2026-10-14-7382e202-apply-evidence.md SHA256 a3b16dc52dc69e7c788c445cf3110d82f40ec68f3807318fa531a5ff5b09cd66. App deploy and end-to-end checks remain coder03's leg.
-
audit pass: SQL pre-apply PASS: immutable 7382e202…973efb; actual FK confdeltype=c verified in PROD+DEV ROLLBACK. Physical DELETE intentionally out of scope per coder03 ruling.
payload
{"scope":"SQL pre-apply PASS: immutable 7382e202…973efb; actual FK confdeltype=c verified in PROD+DEV ROLLBACK. Physical DELETE intentionally out of scope per coder03 ruling.","outcome":"pass","evidence":"Coder03 2026-10-14 ruling withdraws physical-delete test: trigger forbids direct DELETE and import lock excludes reconciler. Rehashed immutable SQL/evidence and clone copy; exact bytes PROD→DEV rc0, rollback, actual named FK cascade metadata, prior positive/negative controls and unchanged postreads. No import/apply/deploy. Future separately authorized import still requires end-to-end deletion verification. This PASS supersedes audit HOLD on missing physical DELETE; app PASS b9aa/2529 unchanged.","reportRef":null} -
audit-mba-l-ca | 2026-10-14 13:28 ART. Acting PM ruling (Elazar assigned coder03): waive the physical successor DELETE/rollback control for this additive closure-table migration. Accept actual FK ON DELETE CASCADE catalog proof in PROD+DEV default-ROLLBACK and unchanged postreads as sufficient pre-apply evidence. Do not disable guard, reconcile/import, or lift PROD import lock. Future explicitly requested import must prove its own deletion path.
-
audit pass: Final scoped PASS: app b9aa438d…/252935d9… and SQL 7382e202…; app gates pass; SQL PROD→DEV ROLLBACK, actual FK cascade metadata verified. Physical DELETE waived by acting PM.
payload
{"scope":"Final scoped PASS: app b9aa438d…/252935d9… and SQL 7382e202…; app gates pass; SQL PROD→DEV ROLLBACK, actual FK cascade metadata verified. Physical DELETE waived by acting PM.","outcome":"pass","evidence":"Current immutable app manifest/patch and SQL/evidence hashes verified. test:source 77/77; test:tools 111 pass/2 DB skips; typecheck; targeted ESLint; diff-check. Export alias mutant failed XLSX/CSV width controls; corrected export tests 3/3. SQL exact hash 7382e20222ea4131ca5ca5bba18fcae4cefb0659ef25ddc5ad18b123ef973efb; db04 reports PROD then DEV rollback rehearsals rc0, confdeltype=c, controls and unchanged afterreads. Acting PM explicitly waives physical successor DELETE test. No new import/deploy/HTTP/PDF exercised by audit. BWI recorded db04 apply at 16:27:22Z before this replacement PASS event; this verdict is post-apply chronology, not the earlier gate. Future authorized import needs its own delete proof.","reportRef":null} -
audit pass: App deploy readiness after DB apply: app manifest b9aa…dcce/patch 2529…9b84; SQL 7382…73efb applied PROD→DEV per hashed evidence a3b16dc5; pre-push app gates pass.
payload
{"scope":"App deploy readiness after DB apply: app manifest b9aa…dcce/patch 2529…9b84; SQL 7382…73efb applied PROD→DEV per hashed evidence a3b16dc5; pre-push app gates pass.","outcome":"pass","evidence":"Verified apply evidence SHA256 a3b16dc52dc69e7c788c445cf3110d82f40ec68f3807318fa531a5ff5b09cd66 and current app pins. Report states exact 7382 applied PROD then DEV, COMMIT, one AA165MF overlay per base, snapshots/raw history unchanged, FK c, health ok serviceId35435; report is db04-authored/transcribed. App gates previously run on exact manifest: source77/77, tools111 pass/2 DB skips, typecheck, targeted ESLint, diff-check; export mutation failed as expected. No app deploy or live UI/HTTP/PDF verification yet. Physical DELETE waived by acting PM; future authorized import needs its own end-to-end gate. Apply event predates audit replacement PASS; this is post-apply readiness evidence, not a pre-apply event.","reportRef":null} -
DB migration 7382e202 committed PROD then DEV with fresh overlay/raw-history/health proof. App v5.6.253 shipped DEV commit 25e67fbe and PROD merge 320f7847; both /api/health freshness gates green. Pod mirror develop 55b310c pushed and Tekton HTTP 202 accepted; live pod freshness and AA165MF UI/read verification pending. Generated Drizzle sync isolated in recoverable stash due unrelated 13-view census drift.
-
Pod public /api/health now serves v5.6.253 (serviceId 35572); PROD and DEV already served v5.6.253. Awaiting one authenticated AA165MF history read and db04 SELECT-only effective-period confirmation before closure. No additional DB/import/code writes.
-
Authenticated PROD v5.6.253 read at https://app.movilba.com/vehiculos/AA165MF: previous imported MODIF (interno 17) visibly reads 'Desde: 29/12/2025 · Vigente hasta: 14/10/2026'; current app MODIF (interno 54) reads 'Desde: 14/10/2026 · Hasta: —'. Prior ALTA ends 29/12/2025. Thus one visibly current period; no new edit performed. Public pod health serves patch253/serviceId35572.
-
Authenticated PROD and DEV v5.6.253 UI read-only checks on /vehiculos/AA165MF both show previous imported MODIF/interno17 'Desde 29/12/2025 · Vigente hasta 14/10/2026' and current app MODIF/interno54 'Desde 14/10/2026 · Hasta —'. Both retain the earlier closed ALTA, so exactly one effective open period is displayed. Pod public /api/health status ok, serviceId35572 = patch253. No UI edit or import.
-
Fixed and live. Exact DB closure migration 7382e202 committed PROD then DEV without changing raw imported history; app v5.6.253 deployed DEV 25e67fbe, PROD 320f7847, pod mirror 55b310c. Authenticated PROD+DEV AA165MF detail now shows the prior period effective end 14/10/2026 and only the interno54 period open; pod health reports patch253. Raw RUTAP export remains 39 columns. Generated Drizzle view-drift paths excluded and tracked separately; no import performed.