# TallyFlow Scout Review (repo: tallyflow-assets-iot) **Product name:** TallyFlow Scout **Package:** `tallyflow_scout` **Version reviewed:** **0.6.2+14** (master `0e37633`, 2026-07-30) **Prior review:** 0.5.3+10 (`2c479fb`, 2026-07-27) **Tech stack:** Flutter (Material 3), `flutter_hardware_scanner` ^0.14 prerelease, camera barcode (ML Kit), `sgtin` (path), HTTP client to Edge ## Role in platform Handheld **Collect / Verify / Locate** app for **TallyFlow Edge**. **Not** a replacement for **TallyFlow Assets** (`tallyflow_mobile` → Core). ## Destinations 1. **Collect** (nav key still `navUpdate` in l10n → “Collect”) — scan list, submit to Edge remote reader API or export CSV 2. **Verify** — GS1 barcode identity vs RFID EPC encodings (`gs1_verify_match`); optional auto-confirm 3. **Locate** — offline seek-and-find / geiger (`locate_screen`, RSSI colors aligned with Assets pick-list palette); continuous hit indicator when any tags are in field ## Delta since 0.5.3 (marketing-relevant) | Area | Change | |------|--------| | **Edge optional** | Settings `useTallyFlowEdge` — when off, no health checks / submits; CSV & floor tools only (`edgeActive`) | | **Tag decode sheet** | Tap row → GS1 EPC-96 / SDG RAIN CIN / barcode GS1 AIs; RFID can open Locate | | **Collect list** | Overflow menu: clear list; sort by value or RSSI (plus default recent) | | **Locate UX** | Hit counter/lamp stays visible while tags are in the field (not only focused finds) | | **Audio** | `RfidBeepGate` serializes driver beep vs Locate geiger mute | | **Decode/filter** | SDG RAIN CIN filter fixed (`D3C4C753` EPC prefix) | | **Branding** | Simpler app icon / splash assets | | **Settings UX** | Sheet height capped (~80%); shorter help copy | | **Hardware** | Stronger URFID vs ATID AAR conflict handling note in tree | ## Integration - Client: `lib/services/tallyflow_iot_client.dart` → `{baseUrl}/api/v1/health`, `/reader/barcode`, `/reader/rfid` - Remote reader must exist on Edge (`type = remote`, enabled); reader name must match Settings - Offline / Edge-off: Collect + CSV + Locate without server; banner only when Edge enabled and unreachable / unconfigured ## Hardware - Android industrial devices via hardware scanner plugin (XR2, ATID AARs, SEUIC, URFID noted in tree) - Camera barcode fallback when no hardware scanner / init failure - Desktop: simulator always on - applicationId: `com.tallyflow.scout` ## Notable modules - `tag_decode_sheet.dart` — decode UI + `TagDecodeDetails.resolveRfid` / `resolveBarcode` - `epc_mask.dart`, `sdg_rain_decode.dart` — EPC type / Internal part decode (CIN filter fix) - `rfid_beep_gate.dart` — Locate mute vs inventory beep - `scan_csv_exporter.dart` / `scan_csv_export.dart` — CSV share/save - `rssi_display.dart` — shared RSSI presentation - `l10n` — English + Spanish - Tests: EPC mask, GS1 verify, locate finds, CSV, symbology, tag decode, useTallyFlowEdge, rfid beep gate, power slider ## Marketing guardrails - Say **Scout works with Edge**; **Assets works with Core** - Three sections only: Collect, Verify, Locate - Locate offline + optional Edge-off are real differentiators for floor find without Core - Decode sheet is operator convenience, not a full GS1 stack / compliance product - Do not claim full asset CRUD, zones, or scan-and-print in Scout ## Follow-ups (docs/code debt) - Repo README still under-lists Verify / decode / Edge toggle; version footer stale - `part_serial` assignment-match flags currently unused by decode path (reserved) - Cross-app symbology story still open (README technical debt section)