MEGAINFRA-WEBAPP/scripts
DEls 14be7e7e21 fix(dn): keep an operator's correction through the next run
Picking the right order did nothing. The route stored the corrected
number, the re-run rebuilt the candidate from its page reads, and
po_number_raw went back to the original misread — so the operator
answered the same question again, having been told it was saved.

Nothing in dn_batch_notes distinguished a value a person chose from one
the model read, so the runner could not tell a correction from stale OCR
and overwrote both. A manual_overrides field now records the decision,
and the runner applies it before resolving rather than after, so the
corrected number is what the PO is matched on.

Only fields a run rebuilds are recorded this way. Quantity, unit and the
masses survive on their own; page ranges are the assembler's answer and
are corrected through the assembly route, which keeps the whole batch
consistent. An override must carry a value — clearing a box is not a
decision that a document has no number.

Verified end to end on a slip whose order number was read with a zero for
the letter O: the correction survived the run, resolved the order, moved
the match from fuzzy to exact, and left the document ready to post.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 23:55:56 +02:00
..
migrations feat(clock): add clock_events PocketBase collection 2026-09-12 00:14:13 +02:00
build-icons.mjs feat(clock): replace icon with clock-on-cube design + OG share preview 2026-09-13 21:55:40 +02:00
build-og-image.mjs Add Open Graph image + social link preview metadata 2026-08-09 20:01:13 +02:00
compare-dn-pipelines.mts fix(dn): let staged ingestion run against the real PocketBase schema 2026-09-20 23:49:58 +02:00
download-all-delivery-notes.py fix(dn-pipeline): enhance product resolution by incorporating article numbers 2026-09-17 22:59:09 +02:00
generate-plant-hours-template.ts fix(plant-hours-template): ESM-safe __dirname + freeze note 2026-08-28 12:55:08 +02:00
migrate-delivery-notes-ocr.py feat(delivery-notes): enhance delivery note upload and processing 2026-08-26 15:33:30 +02:00
migrate-dn-item-units.py chore: final review polish (trailing newlines, JSDoc, changelog tense) 2026-09-17 12:49:37 +02:00
migrate-plant-hours-backfill-vehicle.py refactor(plant): enhance PlantPage and PlantView for fuel log integration 2026-09-02 12:36:10 +02:00
patch-next-dev-blocker.cjs Fix Coolify build: skip postinstall in deps stage 2026-08-09 02:29:48 +02:00
pb-add-dn-alias-keys.py fix(dn-pipeline): key aliases on what actually identifies a product 2026-09-17 22:47:55 +02:00
pb-add-dn-batch-uploaded-at.py fix(scripts): backfill uploaded_at from real sources, add a dry run 2026-09-17 21:25:33 +02:00
pb-add-dn-batches.py fix(dn-batches): heal created/updated fields on existing live collections 2026-09-17 15:17:17 +02:00
pb-add-dn-doc-type.py feat(dn-pipeline): classify document type instead of assuming delivery note 2026-09-17 21:45:08 +02:00
pb-add-dn-item-aliases.py feat(dn-pipeline): add the remembered product alias table 2026-09-17 21:34:37 +02:00
pb-add-dn-item-units.py feat(delivery-notes): add qty_raw/unit_raw/unit_converted to line items 2026-09-17 12:07:59 +02:00
pb-add-dn-note-dismissed.py feat(dn-batches): dismiss a single duplicate note, and stop erasing promoted counts 2026-09-18 00:44:57 +02:00
pb-add-dn-open-pages.py fix(delivery-notes): a stray page no longer condemns good notes 2026-09-17 21:49:16 +02:00
pb-add-dn-staged-ingestion.py fix(dn): keep an operator's correction through the next run 2026-09-20 23:55:56 +02:00
pb-add-fuel-prices.py feat(dashboard): enhance operations dashboard with rain outlook and coordinate support 2026-09-06 19:59:52 +02:00
pb-add-site-coordinates.py feat(dashboard): enhance operations dashboard with rain outlook and coordinate support 2026-09-06 19:59:52 +02:00
pb-add-site-job-start-date.py feat(dashboard): enhance operations dashboard with rain outlook and coordinate support 2026-09-06 19:59:52 +02:00
pb-backup-collection.py feat(dashboard): enhance operations dashboard with rain outlook and coordinate support 2026-09-06 19:59:52 +02:00
pb-bootstrap-schema.py feat(clock): add clock_events PocketBase collection 2026-09-12 00:14:13 +02:00
pb-delete-fixed-costs.py feat(dashboard): enhance operations dashboard with rain outlook and coordinate support 2026-09-06 19:59:52 +02:00
pb-enable-batch-api.py fix(dn): let staged ingestion run against the real PocketBase schema 2026-09-20 23:49:58 +02:00
pb-relax-dn-zero-fields.py fix(dn): let staged ingestion run against the real PocketBase schema 2026-09-20 23:49:58 +02:00
pb-relax-rules.py feat(clock): add clock_events PocketBase collection 2026-09-12 00:14:13 +02:00
pb-show-fixed-costs.py feat(dashboard): enhance operations dashboard with rain outlook and coordinate support 2026-09-06 19:59:52 +02:00
pb-show-sites.py feat(dashboard): enhance operations dashboard with rain outlook and coordinate support 2026-09-06 19:59:52 +02:00
pb_env.py feat(dashboard): enhance operations dashboard with rain outlook and coordinate support 2026-09-06 19:59:52 +02:00