✔ D5.3.18.3 keeps the first company response immutable and requires later presentations in history (0.161458ms) ✔ D5.3.18 exposes one server-side office workflow for the finding dossier (1.062935ms) ✔ D5.3.18 preserves administrative and operational dates as independent fields (0.146354ms) ✔ D5.3.19 adds one searchable common name without replacing technical identity (0.96859ms) ✔ D5.3.19 stores the administrative response rule and its immutable base (0.157261ms) ✔ D5.3.19 exposes company area inspector and date filters across operational lists (10.894213ms) ✔ F1.1 supersedes the historical single-act rule while retaining the D5.3.19 filters (0.173546ms) ✔ D5.3.19 does not introduce the contextual finding catalog before its office definition (0.159896ms) ✔ D5.3.20/F4 freezes one report from each sealed act and generates its Word artifact (1.005486ms) ✔ D5.3.20 stores an integrity-checked Word artifact without changing the frozen source snapshot (0.230793ms) ✔ D5.3.20 builds OOXML Word from the frozen act snapshot without external document dependencies (0.191692ms) ✔ F4 keeps report generation act-scoped while findings and inspection lifecycle remain independent (0.170591ms) ✔ D5.3.21/F4 stores configurable recipients without hardcoding addresses and retires Director delivery (0.983504ms) ✔ D5.3.21 creates an immutable act PDF and separates its delivery from the editable INF Word (0.203541ms) ✔ D5.3.21 keeps an auditable retryable outbox with explicit waiting states (0.138111ms) ✔ F4 SMTP can be administered in database while retaining environment fallback (0.12396ms) ✔ D5.3.21/F4 delivery stays act-scoped after multiple acts per inspection (0.218966ms) ✔ D5.3.22 revision ledger is retained as historical INF versioning (0.927897ms) ✔ F4 explicitly retires Director review approval and final-signature state (0.168476ms) ✔ F4 removes active Director endpoints but preserves historical signature evidence (0.412401ms) ✔ F4 replaces Director approval with editable INF then immutable GEDO IF officialization (0.09829ms) ✔ F4 delivery has no Director recipient while preserving company office and inspector copies (0.069296ms) ✔ F4 Director-retirement rollback reconstructs schema and RBAC contract without inventing deleted data (0.077719ms) ✔ F4 document workflow changes do not reopen acts or mutate finding history (0.077809ms) ✔ D5.3.23 records field discoveries as auditable provisional inventory records (1.016363ms) ✔ D5.3.23 only lets a mobile assigned inspector create during an active visit (0.280198ms) ✔ F1.1 preserves D5.3.23 field discovery while linking only to the current draft act (0.200816ms) ✔ D5.3.23 office review can approve match or reject without deleting historical objects (0.270164ms) ✔ D5.3.23 preserves immutable inspection history when matching an existing inventory object (0.226917ms) ✔ D5.3.24 stores parent area and operator as explicit non-overlapping temporal context (1.103897ms) ✔ D5.3.24 reconstructs previous context from immutable asset versions during migration (0.122026ms) ✔ D5.3.24 separates ordinary editing from an audited context transfer (0.11763ms) ✔ D5.3.24 closes the previous interval and appends the replacement without deleting history (0.269442ms) ✔ D5.3.24 temporal reconstruction resolves context by effective validity at the requested instant (0.129819ms) ✔ D5.3.25 creates an append-only verification event ledger and reconstructs prior history (1.196569ms) ✔ D5.3.25 records every office control-date change without replacing historical events (0.17022ms) ✔ D5.3.25 makes one field result immutable and appends its result event (0.086182ms) ✔ D5.3.25 preserves successive verification visits as separate historical attempts (0.092762ms) ✔ D5.3.25 exposes the complete verification history through finding detail and a dedicated endpoint (0.109166ms) ✔ D5.3.3 separates operational state from data quality and adds registry structures (9.655508ms) ✔ D5.3.3 keeps physical hierarchy separate from legal and organizational relations (3.844175ms) ✔ D5.3.3 only accepts OPERATOR relations for exclusive asset assignment (3.084865ms) ✔ D5.4.1 exports controller-visible selection views so Nest declaration build can name them (0.70733ms) ✔ D5.4 models type applicability and concrete Inventory exceptions separately (0.843799ms) ✔ D5.4 exposes only applicable catalog items and enforces the same rule on field creation (0.168838ms) ✔ D5.4 stores suggested and actual severity independently on the 1 to 10 scale (0.118412ms) ✔ D5.4 turns OTHER into an office proposal without rewriting the original finding (0.103848ms) ✔ D5.4 keeps contextual catalog administration in office permissions and audited routes (0.195849ms) ✔ D5.5 stores explicit Area and Operator context plus append-only checklist generations (1.653117ms) ✔ D5.5 exposes Area then active OPERATOR choices and a server-generated planning checklist (0.332439ms) ✔ D5.5 classifies antecedents overdue items and next controls while adding actionable assets automatically (0.355633ms) ✔ D5.5 treats manual additions as preventive and requires an auditable reason for exclusions (0.651075ms) ✔ D5.5/F4 keeps verification visits inside the Area Operator contract and start remains APK-only (0.247578ms) ✔ D5.5/F4 requires a current checklist before planning or start and keeps start under mobile policy (0.206656ms) ✔ D5.6.1 exposes controlled administrative password reset with the existing user-update permission (1.765679ms) ✔ D5.6.1 resets lockout revokes sessions and audits without persisting the password value (0.264375ms) ✔ D5.6.4/F4 generates inspection codes server-side with an annual transactional sequence (1.132672ms) ✔ D5.6.4/F4 creates one inspection from Area Operator, start and lead inspector without legacy title or end date (0.436959ms) ✔ D5.6.4 assigns the lead inspector and generates the checklist in the same creation transaction (0.199996ms) ✔ D5.6.4/F4 uses the same inspection numbering and start-only planning for verification visits (0.852903ms) ✔ D5.6 immutable act closure survives F4 as LOCKED then SEALED (1.343665ms) ✔ D5.6 preserves findings responses evidence and verification history as non destructive follow-up (0.435025ms) ✔ D5.6 keeps Inventory temporal context and contextual finding applicability independent and historical (0.562509ms) ✔ F4 preserves reviewed web planning and APK-only inspection execution (0.273248ms) ✔ D5.6 report generation remains attached to sealing each act (0.225394ms) ✔ F4 replaces Director approval with editable INF then immutable GEDO IF officialization (0.247869ms) ✔ F4 keeps auditable delivery, removes Director recipient and makes SMTP administrable (0.161727ms) ✔ D5.6 remains a historical closure baseline while Phase F introduces explicit migrations (2.099449ms) ✔ F1.1/F4 allows many acts per inspection while keeping only one draft at a time (1.622771ms) ✔ F1.1/F4 preserves exactly one frozen report per act instead of per inspection (0.250141ms) ✔ F4 seals one act without closing its parent inspection (0.418901ms) ✔ F4 closes an inspection only after every non-cancelled act is sealed (0.537631ms) ✔ F4 requires exactly one terminal company outcome before an act can be sealed (0.408925ms) ✔ F1.1/F4 keeps field-created Inventory linked only to the current draft act (0.293198ms) ✔ F1.2 stores one append-only administrative deadline ledger per Act (0.932916ms) ✔ F1.2 preserves ambiguous historical finding deadlines instead of collapsing them (0.152404ms) ✔ F1.2 stores company responses and protected PDF metadata at Act level (0.10449ms) ✔ F1.2 deadline and company response DTOs reject invalid office input (5.608733ms) ✔ F1.2 derives administrative queues from Acts instead of replacing finding history (0.14442ms) ✔ F1.3 agrupa pendientes de campo por Acta y Hallazgo (0.703044ms) ✔ F1.3 expone el briefing para una inspección planificada (0.212475ms) ✔ F1.3 no usa el plazo del Hallazgo como plazo administrativo (0.149637ms) ✔ F4 removes the Survey execution controller from the active API (1.005647ms) ✔ F4 removes Survey execution and review permissions from active authorization (0.237302ms) ✔ F4 removes Survey execution DTOs together with the retired endpoint surface (2.881515ms) ✔ F4 drops Survey report tables without CASCADE so unexpected dependencies stop migration (0.735014ms) ✔ F4 rollback can reconstruct the historical Survey report integrity rules (0.201046ms) ✔ F4 removes Survey planning controllers from the active API (0.873175ms) ✔ F4 removes Survey planning permissions and their role bindings (0.188489ms) ✔ F4 rollback retains the former role-permission map only as a reversible migration path (0.112521ms) ✔ F4 removes Survey planning DTOs from the active code surface (0.731228ms) ✔ F4 drops Survey planning tables after removing their permissions (0.260538ms) ✔ F4 rollback can reconstruct historical Survey planning dates and asset references (0.128436ms) ✔ TokenService issues and verifies access tokens (13.584956ms) ✔ TokenService rotates opaque refresh credentials without storing plaintext (1.237984ms) ℹ tests 434 ℹ suites 0 ℹ pass 434 ℹ fail 0 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 67173.662293 ========== BUILD WEB CANDIDATA ========== #0 building with "default" instance using docker driver #1 [internal] load build definition from Dockerfile #1 transferring dockerfile: 334B done #1 DONE 0.0s #2 [internal] load metadata for docker.io/library/nginx:alpine #2 ... #3 [internal] load metadata for docker.io/library/node:24-alpine #3 DONE 0.5s #2 [internal] load metadata for docker.io/library/nginx:alpine #2 DONE 0.9s #4 [internal] load .dockerignore #4 transferring context: 75B done #4 DONE 0.0s #5 [internal] load build context #5 DONE 0.0s #6 [stage-1 1/3] FROM docker.io/library/nginx:alpine@sha256:72ba65eb42c10344912a84ff42408db7d34f2feb642204570ab8fc5ffd29f1d3 #6 resolve docker.io/library/nginx:alpine@sha256:72ba65eb42c10344912a84ff42408db7d34f2feb642204570ab8fc5ffd29f1d3 0.1s done #6 DONE 0.1s #7 [builder 1/7] FROM docker.io/library/node:24-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81 #7 resolve docker.io/library/node:24-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81 #7 resolve docker.io/library/node:24-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81 0.1s done #7 DONE 0.1s #5 [internal] load build context #5 transferring context: 1.22MB 0.1s done #5 DONE 0.1s #8 [builder 2/7] WORKDIR /app #8 CACHED #9 [builder 3/7] COPY package*.json ./ #9 CACHED #10 [builder 4/7] RUN npm ci #10 CACHED #11 [builder 5/7] COPY tsconfig*.json vite.config.ts index.html ./ #11 CACHED #12 [builder 6/7] COPY src ./src #12 DONE 0.1s #13 [builder 7/7] RUN npm run build #13 0.564 #13 0.564 > dhv2-web@0.23.0-1 build #13 0.564 > tsc -b && vite build #13 0.564 #13 13.16 vite v7.3.6 building client environment for production... #13 13.23 transforming... #13 18.53 ✓ 191 modules transformed. #13 18.90 rendering chunks... #13 19.31 computing gzip size... #13 19.38 dist/index.html 0.47 kB │ gzip: 0.30 kB #13 19.38 dist/assets/index-D3d9fQZe.css 223.75 kB │ gzip: 34.16 kB #13 19.38 dist/assets/MapPage-fFGe48Cf.js 7.36 kB │ gzip: 2.63 kB #13 19.38 dist/assets/AssetGeometryEditor-D9XjD3R7.js 7.69 kB │ gzip: 3.15 kB #13 19.38 dist/assets/DocumentDeliveryPage-xn_hD-eL.js 10.60 kB │ gzip: 3.41 kB #13 19.38 dist/assets/index-dmYQP2OE.js 694.64 kB │ gzip: 180.62 kB #13 19.38 dist/assets/maplibre-gl-D8_spFpn.js 938.81 kB │ gzip: 245.97 kB #13 19.38 #13 19.38 (!) Some chunks are larger than 500 kB after minification. Consider: #13 19.38 - Using dynamic import() to code-split the application #13 19.38 - Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks #13 19.38 - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. #13 19.38 ✓ built in 6.20s #13 DONE 19.5s #14 [stage-1 2/3] COPY nginx/default.conf /etc/nginx/conf.d/default.conf #14 CACHED #15 [stage-1 3/3] COPY --from=builder /app/dist /usr/share/nginx/html #15 DONE 0.1s #16 exporting to image #16 exporting layers #16 exporting layers 0.2s done #16 exporting manifest sha256:a70faffc0296806a3fc8532f6c827c26681a8a132ace86b9171712e37bf08929 0.0s done #16 exporting config sha256:eac9073ee82187e82d6a228b20351afcc2f4395b277a3d02ff13185de6419a95 0.0s done #16 exporting attestation manifest sha256:040412ccd624c62365c76c114028b9dbe5d135e6a34b1dcda7c74f6d532cecda 0.0s done #16 exporting manifest list sha256:0a6656d51dc09186c1c500a02c7cb0485bbc7351c5e408174b935a3da2454443 0.0s done #16 naming to docker.io/library/dhv2-web:gitea-20260913_185923 done #16 unpacking to docker.io/library/dhv2-web:gitea-20260913_185923 #16 unpacking to docker.io/library/dhv2-web:gitea-20260913_185923 0.1s done #16 DONE 0.4s ========== BACKUP PRE ========== database-before.dump: OK source-before.tar.gz: OK .env: OK previous.sha: OK target.sha: OK docker-before.txt: OK ========== FAST-FORWARD ========== e55684b fix(web): compact installation parent checkbox options Updating ddf3b15..e55684b Fast-forward .../src/pages/AuthoritativeInventoryConfigPage.tsx | 10 ++--- web-v2/src/styles.css | 52 ++++++++++++++++++++++ 2 files changed, 57 insertions(+), 5 deletions(-) ========== BUILD PRODUCCIÓN ========== Image dhv2-api Building Image dhv2-web Building Image dhv2-migrate Building #1 [internal] load local bake definitions #1 reading from stdin 1.35kB done #1 DONE 0.0s #2 [migrate internal] load build definition from Dockerfile #2 transferring dockerfile: 595B done #2 DONE 0.1s #3 [web internal] load build definition from Dockerfile #3 transferring dockerfile: 407B done #3 DONE 0.1s #4 [web internal] load metadata for docker.io/library/node:24-alpine #4 DONE 0.2s #5 [web internal] load metadata for docker.io/library/nginx:alpine #5 DONE 0.2s #6 [migrate internal] load .dockerignore #6 transferring context: 147B done #6 DONE 0.0s #7 [web internal] load .dockerignore #7 transferring context: 148B done #7 DONE 0.0s #8 [migrate internal] load build context #8 DONE 0.0s #9 [web internal] load build context #9 DONE 0.0s #10 [api builder 1/7] FROM docker.io/library/node:24-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81 #10 resolve docker.io/library/node:24-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81 0.1s done #10 resolve docker.io/library/node:24-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81 0.1s done #10 DONE 0.1s #11 [web stage-1 1/3] FROM docker.io/library/nginx:alpine@sha256:72ba65eb42c10344912a84ff42408db7d34f2feb642204570ab8fc5ffd29f1d3 #11 resolve docker.io/library/nginx:alpine@sha256:72ba65eb42c10344912a84ff42408db7d34f2feb642204570ab8fc5ffd29f1d3 0.1s done #11 DONE 0.1s #9 [web internal] load build context #9 transferring context: 1.23MB 0.0s done #9 DONE 0.1s #12 [web builder 4/7] RUN npm ci #12 CACHED #13 [web builder 2/7] WORKDIR /app #13 CACHED #14 [web builder 3/7] COPY package*.json ./ #14 CACHED #15 [web builder 5/7] COPY tsconfig*.json vite.config.ts index.html ./ #15 CACHED #8 [migrate internal] load build context #8 transferring context: 2.61MB 0.1s done #8 DONE 0.2s #13 [migrate builder 2/7] WORKDIR /app #13 CACHED #16 [migrate runner 2/7] RUN apk add --no-cache unzip #16 CACHED #17 [migrate builder 4/7] RUN npm ci #17 CACHED #18 [migrate runner 3/7] WORKDIR /app #18 CACHED #19 [migrate builder 3/7] COPY package*.json ./ #19 CACHED #20 [migrate builder 7/7] RUN npm run build #20 CACHED #21 [migrate runner 4/7] COPY package*.json ./ #21 CACHED #22 [migrate builder 5/7] COPY nest-cli.json tsconfig.json ./ #22 CACHED #23 [migrate builder 6/7] COPY src ./src #23 CACHED #24 [migrate runner 6/7] COPY --from=builder /app/dist ./dist #24 CACHED #25 [migrate runner 5/7] RUN npm ci --omit=dev && npm cache clean --force #25 CACHED #26 [migrate runner 7/7] RUN mkdir -p /app/storage/asset-media/imports && chown -R node:node /app/storage #26 CACHED #22 [api builder 5/7] COPY nest-cli.json tsconfig.json ./ #22 CACHED #19 [api builder 3/7] COPY package*.json ./ #19 CACHED #18 [api runner 3/7] WORKDIR /app #18 CACHED #25 [api runner 5/7] RUN npm ci --omit=dev && npm cache clean --force #25 CACHED #20 [api builder 7/7] RUN npm run build #20 CACHED #21 [api runner 4/7] COPY package*.json ./ #21 CACHED #17 [api builder 4/7] RUN npm ci #17 CACHED #16 [api runner 2/7] RUN apk add --no-cache unzip #16 CACHED #13 [api builder 2/7] WORKDIR /app #13 CACHED #23 [api builder 6/7] COPY src ./src #23 CACHED #24 [api runner 6/7] COPY --from=builder /app/dist ./dist #24 CACHED #27 [web builder 6/7] COPY src ./src #27 DONE 0.1s #28 [migrate] exporting to image #28 exporting layers done #28 exporting manifest sha256:dda9ac2cc47bc829b260cba0a3aa922b97c0844f8ac4016b2ebfdfe16f3e09c5 done #28 exporting config sha256:b29ca23c1122602fd3c54f5ae8ed8524ba695ac9fcb570b66a32a949c81112ef done #28 exporting attestation manifest sha256:a0b02a3fc1a40bb454c957f583b9f9e867243da006487b5825b2e5d551094230 0.1s done #28 exporting manifest list sha256:4efb669ad6b704ee9c652b592559eb8e05759f82aa47782bb6fcaf45cac3de2c #28 exporting manifest list sha256:4efb669ad6b704ee9c652b592559eb8e05759f82aa47782bb6fcaf45cac3de2c 0.0s done #28 naming to docker.io/library/dhv2-migrate:latest done #28 unpacking to docker.io/library/dhv2-migrate:latest 0.0s done #28 DONE 0.3s #29 [api] exporting to image #29 exporting layers 0.0s done #29 exporting manifest sha256:48892ee5e869c415e40817cf40cee98bf723d367b6c1684c32f0d145cff20912 done #29 exporting config sha256:20abde41b55a5c9256479d9cd219a899254dc8a4862776f0d959e004ec175878 done #29 exporting attestation manifest sha256:5fab95d3c89be13124d848fb7079ab5e9b252190386e6098ecffac53e3f90811 0.1s done #29 exporting manifest list sha256:dff25acba19b06af5b577d833ea602c68bd0b156f07afbe75ece0b79061f83a2 0.0s done #29 naming to docker.io/library/dhv2-api:latest done #29 unpacking to docker.io/library/dhv2-api:latest 0.1s done #29 DONE 0.3s #30 [web builder 7/7] RUN npm run build #30 ... #31 [api] resolving provenance for metadata file #31 DONE 0.1s #32 [migrate] resolving provenance for metadata file #32 DONE 0.1s #30 [web builder 7/7] RUN npm run build #30 0.708 #30 0.708 > dhv2-web@0.23.0-1 build #30 0.708 > tsc -b && vite build #30 0.708 #30 14.06 vite v7.3.6 building client environment for production... #30 14.15 transforming... #30 19.94 ✓ 191 modules transformed. #30 20.42 rendering chunks... #30 21.01 computing gzip size... #30 21.24 dist/index.html 0.47 kB │ gzip: 0.30 kB #30 21.24 dist/assets/index-D3d9fQZe.css 223.75 kB │ gzip: 34.16 kB #30 21.24 dist/assets/MapPage-fFGe48Cf.js 7.36 kB │ gzip: 2.63 kB #30 21.24 dist/assets/AssetGeometryEditor-D9XjD3R7.js 7.69 kB │ gzip: 3.15 kB #30 21.24 dist/assets/DocumentDeliveryPage-xn_hD-eL.js 10.60 kB │ gzip: 3.41 kB #30 21.24 dist/assets/index-dmYQP2OE.js 694.64 kB │ gzip: 180.62 kB #30 21.24 dist/assets/maplibre-gl-D8_spFpn.js 938.81 kB │ gzip: 245.97 kB #30 21.24 #30 21.24 (!) Some chunks are larger than 500 kB after minification. Consider: #30 21.24 - Using dynamic import() to code-split the application #30 21.24 - Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks #30 21.24 - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. #30 21.24 ✓ built in 7.13s #30 DONE 21.6s #33 [web stage-1 2/3] COPY nginx/default.conf /etc/nginx/conf.d/default.conf #33 CACHED #34 [web stage-1 3/3] COPY --from=builder /app/dist /usr/share/nginx/html #34 DONE 0.1s #35 [web] exporting to image #35 exporting layers 0.1s done #35 exporting manifest sha256:c3b1baf7e3ff4a5e031e21e02c64c0d79410c335d9fc370c0ad913f50ac35114 0.0s done #35 exporting config sha256:c84bd6dc8002c95b50f5c487cb4aee449116e131be52a6bd6d488c2e72714dfb 0.0s done #35 exporting attestation manifest sha256:55716e07d0afef07cec138e9dff0c5992bbddcb3b77c443bb820c5c8426bb326 0.0s done #35 exporting manifest list sha256:bf1bd572ec9ba94e21f2d8f2a7851977d2b1b2385b21782ca2fb31a8bd2acdc4 0.0s done #35 naming to docker.io/library/dhv2-web:latest done #35 unpacking to docker.io/library/dhv2-web:latest 0.1s done #35 DONE 0.3s #36 [web] resolving provenance for metadata file #36 DONE 0.1s Image dhv2-api Built Image dhv2-migrate Built Image dhv2-web Built ========== MIGRACIONES ========== Container dhv2-db Running Container dhv2-db Waiting Container dhv2-db Healthy Container dhv2-migrate-run-a029e998a235 Creating Container dhv2-migrate-run-a029e998a235 Created > dhv2-api@0.29.0-1 migration:run > node dist/database/migration-cli.js run Applied migrations: 0 npm notice npm notice New major version of npm available! 11.19.0 -> 12.0.2 npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.0.2 npm notice To update run: npm install -g npm@12.0.2 npm notice Container dhv2-db Running Container dhv2-db Waiting Container dhv2-db Healthy Container dhv2-migrate-run-ceca7f2f16c2 Creating Container dhv2-migrate-run-ceca7f2f16c2 Created > dhv2-api@0.29.0-1 migration:show > node dist/database/migration-cli.js show Pending migrations: no npm notice npm notice New major version of npm available! 11.19.0 -> 12.0.2 npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.0.2 npm notice To update run: npm install -g npm@12.0.2 npm notice ========== RECREATE API + WEB ========== Container dhv2-api Recreate Container dhv2-api Recreated Container dhv2-web Recreate Container dhv2-web Recreated Container dhv2-api Starting Container dhv2-api Started Container dhv2-web Starting Container dhv2-web Started ========== HEALTH ========== {"status":"ok","service":"dhv2-api","api":"v3","version":"0.29.0-1","phase":"F6.1","database":"ok","time":"2026-09-13T22:01:43.539Z","latencyMs":1} ========== VERIFICACIÓN FINAL ========== NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS dhv2-api dhv2-api "docker-entrypoint.s…" api 4 seconds ago Up 2 seconds 127.0.0.1:3101->3000/tcp dhv2-db postgis/postgis:16-3.5 "docker-entrypoint.s…" db 4 weeks ago Up 4 weeks (healthy) 5432/tcp dhv2-web dhv2-web "/docker-entrypoint.…" web 3 seconds ago Up 2 seconds 127.0.0.1:8182->80/tcp Servicios críticos: OK database-before.dump: OK source-before.tar.gz: OK .env: OK previous.sha: OK target.sha: OK docker-before.txt: OK database-after.dump: OK deployed.sha: OK deployed-versions.txt: OK health.json: OK migrations.txt: OK docker-after.txt: OK ============================================================ DH V2 · DEPLOY OK ============================================================ Commit: e55684bf4fe55200dcfa093ee519c819501ef871 API: 0.29.0-1 WEB: 0.23.0-1 Backup: /root/DH_V2_BACKUPS/GITEA_DEPLOY_20260913_185923 ============================================================