Commit Graph

43 Commits

Author SHA1 Message Date
cc6b55ec0f fix: reorder hooks to resolve handleSync declaration order 2026-04-19 14:22:26 +03:00
6dfc76ad92 refactor: extract useSync hook from page.tsx 2026-04-19 12:24:25 +03:00
f5441a7ca7 refactor: extract useStockAdjustment hook from page.tsx 2026-04-19 12:23:06 +03:00
5b8c6039ef refactor: extract useScanner hook from page.tsx 2026-04-19 12:21:15 +03:00
ffb56c030d style: step 2-3 - uniform text tokens in login+main page, fix tsconfig build exclusions 2026-04-19 11:46:44 +03:00
6b5e7adde2 test: add data-testid to mode buttons, admin button, and quantity controls 2026-04-19 09:37:29 +03:00
4f4822c0cb test: add data-testid attributes to main page for E2E tests 2026-04-19 09:31:17 +03:00
903e924f73 chore: update service worker cache version 2026-04-17 13:29:26 +03:00
185ce7b987 improve: increase footer visibility on main page
- Changed opacity-30 → opacity-70 (70% visible, still subtle)
- Increased font sizes (text-xs → text-sm, text-[11px] → text-xs)
- Changed text color to text-secondary for better contrast (8.8:1)
- Enhanced divider visibility with bg-slate-700/60 and increased width
- Maintains subtle aesthetic while ensuring readability
2026-04-17 13:25:26 +03:00
9611b991b6 refactor(design): implement improved OLED dark palette and typography system
- Upgraded color palette with enhanced contrast (5.2:1 to 15:1 ratios)
- Replaced all text-slate-* utilities with semantic color tokens
- Added Fira Code + Fira Sans typography stack
- Converted CSS variables from SCSS to direct hex values
- Updated 26 components with improved color semantics
- Added cursor-pointer and focus states (accessibility phase 1)
- Added aria-labels to 35+ icon-only buttons
- Added prefers-reduced-motion support in globals.css

WCAG AA compliance verified across all text color combinations.
Fixes invisible text issues (slate-500 4.2:1 → muted 5.2:1).
2026-04-17 13:14:09 +03:00
da83c91a5b feat: add side-by-side item comparison for duplicate Part Numbers
New Component: ItemComparisonModal.tsx
- Shows existing vs new item side-by-side
- Highlights fields that are different (in yellow)
- Options to Update item or Skip (local-only save)
- Shows existing item ID and comparison details

Backend Changes:
- Updated error message to say 'Part Number' not 'barcode'
- 409 response includes existing item data for comparison
- Clear, user-friendly conflict messaging

Frontend Changes:
- New state for comparison modal (newItem, existingItem, existingId)
- handleOnboardingComplete() shows modal on 409 conflict
- handleComparisonUpdate() calls updateItem() API
- handleComparisonSkip() saves locally without syncing
- Better error handling distinguishes 409 from other failures

Workflow:
1. User imports item with Part Number that already exists
2. System shows comparison modal
3. User can:
   - Update (merges new data into existing)
   - Skip (saves locally, doesn't sync to cloud)
2026-04-17 12:35:42 +03:00
ade8dcde78 fix: prevent duplicate item creation with barcode conflict detection
Backend:
- Added UNIQUE constraint check on barcode before item creation
- Returns 409 Conflict with user-friendly message if duplicate exists
- Prevents sqlite3.IntegrityError crashes

Frontend:
- Improved error handling for cloud sync failures
- Detects 409 status code (duplicate barcode)
- Shows specific error message to user
- Gracefully falls back to local-only save

Example error message: 'Item already exists. Item with barcode P66093-002 already exists (ID: 42). Update it instead or use a different barcode.'
2026-04-17 12:29:53 +03:00
9baa5612de fix: resolve onboarding network error by using authenticated user context
Issue: createItem was using hardcoded userId: 1 without checking if currentUser was authenticated. Backend requires Bearer token from authenticated user, not userId parameter.

Changes:
- Use currentUser.id instead of hardcoded 1
- Check currentUser exists before attempting cloud sync
- Add error handling for cloud sync failures
- Graceful fallback to local-only save if not authenticated

Resolves 'Network Error' during onboarding item creation.
2026-04-17 12:28:44 +03:00
26b38ea27c feat: enhance OCR matching with fuzzy logic and refined AI prompt
AI Prompt Improvements:
- Standardized Item name format: [size] type vendor connector part_number
- Clear examples: '5m Patchcord LC-LC', '256GB SSD Samsung SAS', '128GB DDR4 Hynix'
- OCR key format: uppercase, space-separated tokens, includes variations/abbreviations
- Excludes diameter/mm measurements from Item field
- Allows 'HP'/'HPE', 'DDR'/'DDR4', 'NVMe'/'NVME' variations in OCR keys

OCR Matching Logic:
- Implemented Levenshtein distance fuzzy matching (allows 1-2 char differences)
- Priority 0: Exact OCR key match (1000pts) + fuzzy match fallback (800pts)
- Priority 2: Part number exact (200pts) + fuzzy match (150pts)
- Priority 3: Token-based with fuzzy tolerance (50pts exact, 30pts fuzzy)
- Removes whitespace for comparison (e.g., 'LCLC' matches 'LC-LC')

Resolves OCR identification failures from minor text variations.
2026-04-17 12:12:26 +03:00
91e986b32c refactor(ux): simplify jargon and improve feature discoverability
Addressed P3 design opportunities from critique:

1. Technical Jargon Simplification
   - "Optical Assist" → "Smart Scan" (clearer scanning intent)
   - "Protocol Detected" → "Text Found" (plain language)
   - "OCR Matching Key" → "Item ID or Code" (concrete terminology)
   - "Select identity from label matrix" → "Tap any text to use it"
   - Removed cryptic "Cycle" terminology, added countdown seconds

2. Feature Discoverability
   - Added helpful descriptions to Admin manager sections
   - Scanner status message now hints at zoom and tap features
   - Concrete examples in input placeholders

3. Help & Documentation
   - User Management: "Create accounts and control access"
   - Category Groups: "Organize items by type or location"
   - Sign Out: clearer procedure description

Build: passes with zero errors
2026-04-17 11:10:10 +03:00
439a7fc266 refactor: comprehensive polish pass - accessibility and color tokenization
POLISH IMPROVEMENTS:
- Add focus-visible indicators to 40+ previously missing buttons in admin managers
- Add aria-labels to all interactive elements for screen readers
- Remove debug console.log from page.tsx OCR preload (line 126)

COLOR TOKENIZATION:
- Replace all hard-coded indigo brand colors with primary token across admin managers:
  - IdentityManager, DatabaseManager, AiManager, CategoryManager, LdapManager
  - Indigo (#818cf8) → primary blue (#3b82f6)
- Replace hard-coded purple with primary
- Standardize destructive action color: red-500 → rose-500 for consistency
- Update all hover states and focus rings to use primary token

FORM IMPROVEMENTS:
- Add focus-visible indicators to input fields in DatabaseManager
- Consistent primary token usage in form focus states

ACCESSIBILITY GAINS:
- 15+ new aria-labels added to icon buttons
- 40+ buttons now have keyboard focus indicators
- All form inputs have proper focus styling
- Complete WCAG AA compliance for keyboard navigation

TECHNICAL DEBT:
- Zero hard-coded brand colors remaining in admin managers
- Centralized color token system fully implemented
- No debug logging in production code
2026-04-17 10:59:45 +03:00
b6a48f1249 refactor(frontend): eliminate backdrop-blur throughout codebase
Remove all instances of backdrop-blur effect (14+ occurrences) to simplify visual design
and eliminate signature 2023-2024 AI aesthetic tell. Components now use solid backgrounds
and borders for hierarchy and affordance instead of decorative blur.

Affected:
- BottomNav: solid bg-slate-950, clean border
- AdminOverlay: removed overlay blur
- Admin managers (Identity, Database, AI, Category, LDAP): removed glass-card aesthetic
- Modals (IdentityCheck, Scanner, AIOnboarding): removed decorative blur
- Page layouts (home, inventory, logs): removed modal backdrop blur
- globals.css: removed glass-card utility

Build: passes with zero errors. Bundle sizes unchanged.

Simplification improves: clarity, perceived intentionality, removes AI aesthetic tells.
2026-04-17 10:26:39 +03:00
572422b677 Build [v1.10.11] 2026-04-15 20:57:01 +03:00
99ad87f994 Build [v1.10.10] 2026-04-15 20:26:30 +03:00
49d50e0849 Build [v1.10.9] 2026-04-15 19:57:06 +03:00
757e9a7aa7 Build [v1.10.8] 2026-04-15 19:48:31 +03:00
79e3152ce8 Build [v1.10.7] 2026-04-15 19:40:00 +03:00
019b941bdb Build [v1.10.5] 2026-04-15 19:21:20 +03:00
2d162ff3c0 Build [v1.10.4] 2026-04-15 18:10:04 +03:00
Daniel Bedeleanu
6c57b1b0c2 blabla 2026-04-14 22:54:19 +03:00
Daniel Bedeleanu
1ea5e90bc4 Fix: resolve Unterminated regexp literal build error in page.tsx 2026-04-14 20:48:53 +03:00
Daniel Bedeleanu
00ee4cf9c5 Build [v1.9.19] 2026-04-14 20:44:01 +03:00
Daniel Bedeleanu
fcb187974e Build [v1.9.18] 2026-04-13 23:43:52 +03:00
Daniel Bedeleanu
946f1787c7 Build [v1.8.8] (Complete Frontend Build Cleaned & Verified) 2026-04-13 20:24:21 +03:00
Daniel Bedeleanu
3069a921e7 Build [v1.8.6] (TypeScript unknown catch type fix) 2026-04-13 19:56:27 +03:00
Daniel Bedeleanu
55e3cf5042 Build [v1.8.5] (Self-contained Frontend Build) 2026-04-13 19:50:28 +03:00
Daniel Bedeleanu
994920bda2 Build [v1.7.0] - GitGuard - Infrastructure Hardening 2026-04-12 22:45:27 +03:00
Daniel Bedeleanu
2e5c666cc8 Build [v1.5.0] - Box Management & Label Printing 2026-04-12 21:30:50 +03:00
Daniel Bedeleanu
50ae3671c9 Build [v1.4.1] - Security hardening, PWA and UI refinements 2026-04-12 10:45:57 +03:00
Daniel Bedeleanu
f3d861b1a2 Build [v1.4.0] - Audit Dashboard & LDAP Restoration 2026-04-12 09:39:17 +03:00
Daniel Bedeleanu
704934165f Build [v.1.3.6] 2026-04-11 17:14:22 +03:00
Daniel Bedeleanu
96fe655f72 fix: add missing icon imports v1.2.6 2026-04-11 11:49:31 +03:00
Daniel Bedeleanu
a4cea4ce07 feat: offline ldap support and ui polish v1.2.4 2026-04-11 11:41:39 +03:00
Daniel Bedeleanu
4136d49936 style: ui readability refactor v1.2.2 (removed uppercase, tracking, increased font sizes) 2026-04-11 11:22:40 +03:00
Daniel Bedeleanu
9c76c0cbf5 UI: Implement dynamic versioning from VERSION.json 2026-04-10 21:56:33 +03:00
Daniel Bedeleanu
80af77f81a UI: Sync version strings to 1.2.1 2026-04-10 21:55:32 +03:00
Daniel Bedeleanu
8a3783c7e9 Infrastructure: Implement master/dev/vX branching, save git path, and fix username casing 2026-04-10 21:51:22 +03:00
Daniel Bedeleanu
7f8b24aabb feat: frontend PWA scaffolding with React and Tailwind 2026-04-10 14:05:50 +03:00