Replace em-dashes and en-dashes with hyphens across 789 shipped source files (py/xml/js/scss) so the delivered module reads as human-written; em-dashes had become a recognizable AI-generated tell. Internal .md dev notes are excluded. The WO-sticker mojibake strippers keep their dash search targets (now written — / –). No logic changes: comments and display strings only; validated with py_compile + lxml parse. Rewrite the 7 customer notification emails to be intake-neutral (ship-in / drop-off / pickup) and repair-aware, and fix the Shipped email documents line (packing slip vs bill of lading; certificate only when issued). Subjects use a hyphen separator. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright 2026 Nexa Systems Inc.
|
|
# License OPL-1
|
|
"""Post-migrate for 19.0.22.0.0 - Recipe-level cert suppression Booleans.
|
|
|
|
Backfills NULL -> TRUE on the five new requires_* columns on
|
|
fusion.plating.process.node (requires_coc, requires_thickness_report,
|
|
requires_nadcap_cert, requires_mill_test, requires_customer_specific).
|
|
|
|
Default TRUE = inherit current behaviour for every existing recipe
|
|
(zero migration surprises - every existing recipe keeps producing
|
|
the same cert set it produces today).
|
|
|
|
Idempotent: safe to re-run.
|
|
|
|
Spec: docs/superpowers/specs/2026-05-27-recipe-cert-toggles-design.md
|
|
"""
|
|
import logging
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
def migrate(cr, version):
|
|
if not version:
|
|
return
|
|
_logger.info(
|
|
'19.0.22.0.0 post-migrate: backfilling recipe cert-suppression '
|
|
'requires_* Booleans to TRUE on fusion.plating.process.node rows'
|
|
)
|
|
for col in (
|
|
'requires_coc',
|
|
'requires_thickness_report',
|
|
'requires_nadcap_cert',
|
|
'requires_mill_test',
|
|
'requires_customer_specific',
|
|
):
|
|
cr.execute(
|
|
"UPDATE fusion_plating_process_node SET %s = TRUE "
|
|
"WHERE %s IS NULL" % (col, col)
|
|
)
|
|
_logger.info(' %s: %d rows updated', col, cr.rowcount)
|