chore(plating): de-dash shipped code + intake-neutral customer emails

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>
This commit is contained in:
gsinghpal
2026-06-05 00:16:19 -04:00
parent c9eb61ee0c
commit 8c76a16366
789 changed files with 4692 additions and 4692 deletions

View File

@@ -1,4 +1,4 @@
# Battle test v2 re-verify after fixes for: bake-window override,
# Battle test v2 - re-verify after fixes for: bake-window override,
# duration overrun chatter, qty reconciliation, recompute-duration.
from datetime import timedelta
@@ -32,7 +32,7 @@ def make_job(po_suffix):
# ====================================================================== Fix 1
print('='*72)
print('FIX 1 Bake-window: missed_window blocks, manager override allowed + audited')
print('FIX 1 - Bake-window: missed_window blocks, manager override allowed + audited')
print('='*72)
BW = env['fusion.plating.bake.window']
Bath = env['fusion.plating.bath']
@@ -47,7 +47,7 @@ BW._cron_update_states()
expired.invalidate_recordset()
print(f' Window {expired.name} state: {expired.state}')
# Naive operator (no override) should fail
# Naive operator (no override) - should fail
try:
expired.action_start_bake()
print(f' ❌ start_bake worked without override')
@@ -67,7 +67,7 @@ except Exception as e:
# ====================================================================== Fix 2
print()
print('='*72)
print('FIX 2 Duration overrun: > 1.5x expected posts chatter warning')
print('FIX 2 - Duration overrun: > 1.5x expected posts chatter warning')
print('='*72)
job = make_job('F2-' + fields.Datetime.now().strftime('%H%M%S'))
step = job.step_ids.sorted('sequence')[0]
@@ -90,7 +90,7 @@ if overrun_msgs:
# ====================================================================== Fix 3
print()
print('='*72)
print('FIX 3 Qty reconciliation: job mark-done blocks if qty mismatch')
print('FIX 3 - Qty reconciliation: job mark-done blocks if qty mismatch')
print('='*72)
job = make_job('F3-' + fields.Datetime.now().strftime('%H%M%S'))
for s in job.step_ids.sorted('sequence'):
@@ -120,7 +120,7 @@ except Exception as e:
# ====================================================================== Fix 4
print()
print('='*72)
print('FIX 4 Supervisor edits timelog → Recompute Duration action picks it up')
print('FIX 4 - Supervisor edits timelog → Recompute Duration action picks it up')
print('='*72)
job = make_job('F4-' + fields.Datetime.now().strftime('%H%M%S'))
step = job.step_ids.sorted('sequence')[0]