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

4.1 KiB

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 workflows — Allow the mobile app to trigger print jobs (e.g., reprint, on-demand encoding during field scans or enrollment). Closes the gap between mobile asset management and the Print pillar.
  • 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)