14 Commits
Author SHA1 Message Date
andrew 5e190daaf6 feat(ui): hide DO-manual, OCR engine, require-plat on office page
ci / smoke (push) Canceled after 0s
display:none only — element IDs, JS handlers and endpoints stay intact,
so re-enabling is dropping three inline styles. Default batch mode is
manual for the POC, so operators shouldn't see DO/OCR controls.
2026-10-05 16:47:41 +07:00
andrew 4bacf90e25 rebrand: Karung.AI / Karung Counter -> Feedmill Counting Platform
ci / smoke (push) Canceled after 0s
Brand strings only:
- UI page titles (base/monitoring/history/analytics), header logo, footer
- predict.py argparse description, systemd unit Description fields
- README + AGENTS headings, CHANGELOG entry
- header CSS shrinks below 640px so the longer name fits phone screens

Operational names intentionally unchanged (data/history continuity):
OBJECT_LABEL, DB paths, service unit filenames, repo/remote, Indonesian
UI/log strings (karung/truk).
2026-10-05 10:10:06 +07:00
andrew 6c5b1c8b30 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
2026-10-05 09:36:32 +07:00
andrew 7ad995d8d1 feat(manual-batch): require plate number at manual mode start
ci / smoke (push) Canceled after 0s
Legacy manual batch start locked until plate entered:
- POST /api/batch/start manual branch returns 400 missing_plate when
  plate empty (strip + uppercase, no format regex)
- operator + monitoring start modals gain required plate input,
  confirm button disabled until filled
- operator plate tile also shows for manual batches (was do_manual only)
- do_manual unchanged (plate from DOs)
2026-10-02 15:10:13 +07:00
andrew f621ae86fb fix(auto-batch): truck presence needs 50% polygon overlap, config-authoritative timers
ci / smoke (push) Canceled after 0s
Big docked truck bbox rests 1-2px past detection_polygon bottom edge, so
100%-containment made truck_in_area flicker False -> batch 15 split (6+276)
on 2026-09-29 while the truck never left. v4-best.engine detected it at
conf 0.92-0.97 in every replayed frame (no model miss, no retraining).

- truck gate: frac_inside >= 0.5 instead of contains(bbox)
- batch.truck_gone_tolerance_seconds (new, 30) authoritative; drop the
  hardcoded batch_mgr._truck_gone_tolerance = 30.0 override;
  batch.timeout_seconds documented as sack-idle pause only
- [TRUCK] truck_in_area transition debug log
2026-09-30 09:40:15 +07:00
andrew 12f921f81c feat: async clip jobs, Siap-unduh state, cross-page ready toast
ci / smoke (push) Canceled after 0s
2026-09-29 09:28:51 +07:00
andrew 14f5ed4aac fix: clip pad ±3s + OSD-clock alignment at cut points (single-frame OCR)
ci / smoke (push) Canceled after 0s
2026-09-28 16:33:49 +07:00
andrew 110d557dbf feat: batch clip download from motionEye (trim+concat, history Klip button) 2026-09-28 15:39:33 +07:00
andrew d3357fccef fix: gross-based batch discard, direction-correct event logs, wire CSV logger
ci / smoke (push) Canceled after 0s
2026-09-28 12:08:37 +07:00
andrew fbba169507 feat: RapidOCR default OCR engine, office-only ocr_engine, drop operator toggle
ci / smoke (push) Canceled after 0s
2026-09-25 16:18:41 +07:00
andrew 4a6b121eaf docs: root ERD.md (SQLite ERD, Mermaid), merge docs/do-erd.md
ci / smoke (push) Canceled after 0s
2026-09-25 14:22:25 +07:00
andrew 0efcfa45b8 feat: DO-gated manual batch mode (auto default, office-only switches)
ci / smoke (push) Canceled after 0s
2026-09-24 15:45:12 +07:00
andrew 735e0c7594 config: tune sack conf to 0.30 and update changelog
ci / smoke (push) Canceled after 0s
2026-09-18 16:36:44 +07:00
andrew 0467e0ce68 docs: add CHANGELOG.md, sync all guides with config.yaml migration
ci / smoke (push) Canceled after 0s
- CHANGELOG.md (Keep-a-Changelog, dated entries from git history)
- README: production pipeline framing, config table, layout, flags, changelog link
- configuration.md: legacy env overrides, zones geometry-only, archive paths
- scripts.md: current flags, correct archive/ paths, tracked vs ignored weights
- deployment.md: config.yaml in sync list, model_mode location, /api/model-modes
- models.md + architecture.md: config.yaml pointers, deprecated src/config.py
2026-09-17 12:04:56 +07:00