67 lines
3.2 KiB
Markdown
67 lines
3.2 KiB
Markdown
# CURRENT AI WORKING SESSION — HANDOVER
|
|
|
|
**Active AI:** Gemini (Antigravity)
|
|
**Last Updated:** 2026-04-12
|
|
**Current Version:** v1.4.0
|
|
**Branch:** dev
|
|
|
|
---
|
|
|
|
## STATUS: 🟢 STABLE — BOX MANAGEMENT & LABEL PRINTING COMPLETE (v1.5.0)
|
|
|
|
The TFM aInventory v1.5.0 has been upgraded with a powerful local-first Box/Container management system. Users can now group items into boxes, identify them instantly via local OCR, and print physical Barcode/QR labels directly from the PWA.
|
|
|
|
---
|
|
|
|
## WHAT WAS DONE THIS SESSION
|
|
|
|
### 1. Box Management Architecture (Backend)
|
|
- **Database Schema** — Added `box_label` column to the `items` table.
|
|
- **Audit Integrity** — Updated `AuditLog` snapshots to capture `box_label` at the time of each transaction, ensuring immutable historical traceability even if items are moved.
|
|
- **API Support** — Exposed `box_label` in Pydantic schemas and item routers.
|
|
|
|
### 2. Intelligent Scanner Routing (Frontend)
|
|
- **Box Match Priority** — Rewrote the scanner's `onOCRMatch` logic to prioritize box labels.
|
|
- **Multi-Item Support** — Developed a "Box Contents" interstitial modal that handles containers with multiple distinct item types.
|
|
- **Token Matching** — Implemented a local fuzzy token-matching engine for generic box text recognition without AI costs.
|
|
|
|
### 3. Dependency-Free Label System
|
|
- **Native Generation** — Built a zero-dependency SVG engine for Code 128 Barcodes and QR Codes (`lib/labels.ts`).
|
|
- **Box Manager Dashboard** — Added a dedicated UI to view all existing boxes and trigger label generation.
|
|
- **Hybrid Printing** — Implemented CSS `@media print` for professional desktop printers and "Save as PNG" rasterization for portable Bluetooth printers on mobile.
|
|
|
|
### 4. UI/UX Excellence
|
|
- **Search Integration** — Integrated `box_label` into the global search filter.
|
|
- **Onboarding Support** — Added Box Label association to the AI-powered onboarding workflow with smart `datalist` suggestions.
|
|
- **Visual Polish** — Applied Lucide `Package` iconography and consistent branding to the new modules.
|
|
|
|
---
|
|
|
|
## WHAT THE NEXT AI MUST DO
|
|
|
|
1. **Database Encryption** — Consider implementing SQLite encryption at rest (SQLCipher) if requested.
|
|
2. **Persistent JWT** — If requested, move the `JWT_SECRET_KEY` to a `.env` file for session persistence across server restarts.
|
|
3. **Advanced Filtering** — Extend the Box Manager to allow bulk movements between boxes.
|
|
3. **LDAP Probe** — The "Test Connection" button may show "Partial Success" (handshake rejected) due to anonymous bind restrictions; login itself works fine.
|
|
4. **Monitoring** — If the rate limiter triggers too frequently for legitimate users, adjust the `slowapi` limit in `backend/routers/users.py`.
|
|
|
|
---
|
|
|
|
## SYSTEM STATE
|
|
|
|
**Active database:** `<project_root>/data/inventory.db`
|
|
**LDAP config:** `backend/config/ldap_config.json`
|
|
**Production Bundle:** `aInventory-PROD-v1.4.0.zip` (Clean)
|
|
|
|
**How to start:**
|
|
```bash
|
|
./start_server.sh
|
|
```
|
|
- Frontend: `https://<LOCAL_IP>:3003`
|
|
- Backend: `https://<LOCAL_IP>:3002`
|
|
|
|
**Environment variables set by start_server.sh:**
|
|
- `ALLOWED_ORIGINS` — auto-detected
|
|
- `DATA_DIR` — absolute path
|
|
- `JWT_SECRET_KEY` — ephemeral (regenerates on restart)
|