Files
obsidian/TallyFlow/Product/Code Reviews/tallyflow-print.md
T

88 lines
4.1 KiB
Markdown

# tallyflow-print Review
**Tech Stack:** Rust (Cargo)
## Purpose
Backend print service for TallyFlow Print. Handles label generation, RFID encoding, print job queuing/orchestration, and optional registration of printed assets into TallyFlow Core.
## Current Capabilities (post git pull - Jun 2026)
- Label config system with templates (simple_text, simple_text_2_5x1_25, datamatrix, etc.) and field_registry
- Parent/child label support
- Category names on tags
- orgsettings integration from TallyFlow
- Printing queue with enhanced orchestration and worker logic
- API endpoints for job submission and status
- Windows installation scripts and release support
- Updates to simple tag printing including RFID
## Key Components
- **api**: Main API service (port 8040)
- **orchestrator**: Proxies categories/zones and runs "print then register" flows (port 8041)
- **printing**: Core label generation and ZPL handling
- **worker**: Pulls jobs and sends to Zebra and compatible ZPL printers (raw TCP 9100)
- **label_configs**: Template definitions and manifest
- **web**: Web interface elements
## Architecture (from USER_GUIDE)
Operator → TallyFlow Print app → Print API → Print worker → Zebra printer
└── (optional) Orchestrator → TallyFlow Core
## Relevance
- Backend for the TallyFlow Print ingestion method (new tag assignment + optional data association)
- Works alongside tallyflow-print-ui (Flutter frontend)
- Supports all tag ingestion paths that involve printing/encoding
*Last updated: 2026-06-05 by Hermes Agent (after git pull using hermes_agent_ed25519 key)*
## Recent Changes (Jun 17, 2026 pull)
**Major theme:** GS1-128 / Case Label support + FSMA204 label templates + Windows reliability
**Key additions:**
- New `printing/src/gs1_trade_item.rs` for GS1 handling
- New `docs/CUSTOM_LABEL.md` documentation
- New FSMA204 300dpi label config + sample ZPL template
- Support for multiple case types (0=each, 1-8=fixed qty, 9=variable)
- GTIN-14 now treated as case label (starts with '1')
- Bug fix: GS1-128 serial AI (21) now properly included
- Voice pick algorithm correction (CRC-16)
- Enhanced Windows install/bundle scripts
**Files changed:** 29 files, +1249 insertions
*Last updated: 2026-06-17 by Hermes Agent (after git pull using hermes_agent_ed25519 key)*
## Enhancement Suggestions (from clarification - Jun 2026)
**RFID Encoding Scope**
- Currently limited to EPC memory bank only
- Suggested: Add support for TID, User Memory banks
- Suggested: Add password protection / lock bits support
**Serialization & Numbering**
- Currently customer-managed via policy (different starting serials per printer instance)
- Suggested improvement: Allow per-printer serial number **range configuration** in Settings
- Range should **wrap around** when the end is reached
- Local serial tracking + increment already exists
**Multi-Printer & Orchestration**
- UI already supports multiple printers
- Core returns error on duplicate asset registration attempts (good safeguard)
*Source: Direct clarification from Todd B*
## Roadmap / Integration Opportunities
- ~~**Mobile (Assets) integration** for Scan-and-Print~~ — **Shipped:** mobile can trigger print jobs (reprint, on-demand encoding during field scans or enrollment).
- **IoT integration** — Expose print job status/events and printer health to TallyFlow IoT for unified dashboards and alerts.
## Recent Changes (develop branch pull - July 2026)
**Major theme:** CSV import for batch printing, GS1 Sunrise dual-carrier retail tags, custom field registration, internal profile standardization.
**Key additions from develop:**
- Add import and database lookup via a CSV file for a list of parts and quantities to print (supports batch workflows).
- Initial support for retail GS1 Sunrise dual-carrier tags.
- Custom field registration support (bumped versions to 0.8.0 / 1.3.0).
- Add org custom fields to TallyFlow registration UI.
- Update profile name and id from 'simple' to 'internal'.
- Additional bug fixes and profile enhancements.
*Last updated: 2026-07-17 by Hermes Agent (after develop pull using hermes_agent_ed25519 key)*