feat(manual-batch): canonical plate + manual mode as default
ci / smoke (push) Canceled after 0s

- canonical_plate (uppercase alnum, strips space/dot/hyphen) at all plate
  write sites; pretty_plate for render (history, XLSX, operator tile) so
  B 1234 XYZ and B1234XYZ are one plate everywhere
- group_dos_by_plate compares canonical plates -> no false mixed_plates
- warn-only (never blocking) plate format hint in operator + monitoring modals
- batch.default_mode: manual (auto merged truck loads when a sack sat in the
  counting ROI); operator banner explains plate -> start -> stop
- docs + AGENTS known-limitation note; 85 tests pass
This commit is contained in:
andrew committed 2026-10-05 09:36:32 +07:00
1 parent 7ad995d8d1
commit 6c5b1c8b30
11 files changed
+128 -32

No files matched your search

+1 -1
View File
@@ -41,7 +41,7 @@ def test_repo_config_loads_and_validates(repo_config_path):
def test_do_block_and_batch_default_mode(repo_config_path):
cfg = load_config(repo_config_path)
assert cfg.batch.default_mode == "auto"
assert cfg.batch.default_mode == "manual"
# timeout_seconds = sack-idle (pause); truck_gone_tolerance_seconds = finalize
assert cfg.batch.timeout_seconds == 20.0
assert cfg.batch.truck_gone_tolerance_seconds == 30.0