Skip to content

Latest commit

 

History

History
219 lines (179 loc) · 14.9 KB

CHANGELOG.md

File metadata and controls

219 lines (179 loc) · 14.9 KB

Changelog

All notable changes to FormEase are documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


✨ [v4.9.0.0] - 2026-10-19

🚀 Added

  • Universal Ambient Breathing Glow Border Feedback (Zero-Slop Recompression Indicators):
    • Engineered dynamic, color-coded ambient glowing border transitions (border-2 ring-4 shadow-[...] animate-pulse duration-300) across all slots, cards, and batch controls during real-time recompression.
    • Color-harmonized by domain: Emerald (PhotoSlotCard), Blue (SignatureSlotCard), Amber (DocumentSlotCard), and Emerald (SandboxQueueView Grid/List & GlobalBatchBar).
    • Zero obstructive overlay badges, banners, or layout shifts — pure hardware-accelerated CSS feedback.
  • Ultra-Responsive Mobile & Small-Width Screen Overhaul:
    • Re-architected all queue cards (PhotoSlotCard, SignatureSlotCard, DocumentSlotCard) with high-efficiency collapsible accordion panels for advanced controls.
    • Refactored all modals (DossierExportModal, DiffViewer, CustomPresetModal) with responsive stacked layouts (flex-col sm:flex-row), scroll containment (data-lenis-prevent), and zero horizontal overflow on 320px–375px devices.
    • Adaptive scrubber controls and touch-target padding in SizeCeilingController, PixelDimensionController, ByteCounter, GlobalBatchBar, ModeTabBar, and PresetSelector.
    • Responsive hero typography, edge-to-edge container margins, and wrapped footer navigation in App.tsx and Footer.tsx.
  • FormEase Logo Light-Theme Typography Fix:
    • Sanitized brand typography in FormEaseLogo.tsx with dynamic theme contrast, eliminating washed-out text on bright backgrounds.
  • Universal Input Focus Sanitization:
    • Sanitized harsh browser default rectangular focus rings in index.css with clean :focus-visible offset rings.
  • Deployxa Cloud Host & Worker Configuration:
    • Configured vite.config.ts with host: true, allowedHosts: true, and ES module worker formatting for zero-friction containerized deployment.

✨ [v4.5.0.0] - 2026-10-18

🚀 Added

  • Zero Layout Shift (0px CLS) Floating Explainer Tooltips:
    • Extracted layout-shifting inline alerts into a floating popover system (ResolutionLimitExplainer.tsx) rendered directly into document.body via React Portals (createPortal).
    • Added real-time screen boundary collision detection (getBoundingClientRect) with automatic above/below vertical flipping and clamped viewport margins (left >= 16px, right <= innerWidth - 16px).
    • Implemented crisp SVG vector callout arrows (<svg viewBox="0 0 16 8">) eliminating blurry or skewed CSS diamond artifacts across high-DPI screens.
    • Transformed static size warning pills in ByteCounter.tsx into interactive, keyboard-accessible trigger badges with tactile hover states and 1-click Auto-Scale resolution correction.
  • Hardware-Accelerated Lenis Inertia Physics:
    • Integrated lenis smooth scrolling via custom hook useSmoothScroll.ts and core physics styles in main.tsx.
    • Configured respectReducedMotion: false and autoRaf: true to prevent Windows OS "Animation effects: Off" lerp freezes (lerp = 1), delivering fluid inertia for evaluators while maintaining mobile touch bypass.
    • Added data-lenis-prevent scroll-chaining isolation to internal scrollable containers in DiffViewer.tsx, DossierExportModal.tsx, and CustomPresetModal.tsx.
    • Normalized document root scrolling in index.css via html { overflow-x: clip; }, restoring native window scroll event capture.
  • Ergonomic 2-Column Batch Studio & Compact List View:
    • Restructured SandboxQueueView.tsx from a 3-column layout into an ergonomic 2-column Studio Grid (grid-cols-1 lg:grid-cols-2, 560px+ minimum card width), eliminating control squashing and card drift.
    • Introduced an interactive [⊞ Grid] / [☰ Compact] view switcher in GlobalBatchBar.tsx featuring an ultra-dense tabular list view for rapid multi-file auditing.
  • Universal Feedback & Rating Collector:
    • Shipped FeedbackRatingCollector.tsx featuring an interactive 5-star rating matrix, 1-click preset sentiment chips, optional email field, and structured comments.
    • Integrated non-blocking telemetry dispatch to https://visar-backend.onrender.com/api/v1/feedback with verified confirmation receipts and a 1-click [↺ Update / Re-give Feedback] reset loop.
  • Expanded File Size Ceilings:
    • Expanded user-configurable upper size bounds across all processing categories: Photos up to 10 MB, Signatures up to 2 MB, Documents up to 25 MB, and Batch Sandbox up to 25 MB.

⚡ Changed

  • Decoupled Local Input Buffers:
    • Decoupled numeric inputs from immediate state synchronization in PixelDimensionController.tsx and SizeCeilingController.tsx using local string draft buffers (draftWidth, draftHeight, draftCeiling).
    • Users can freely backspace, clear inputs, or type values like 999 without premature numeric clamping or cursor jumping; values commit on onBlur or Enter.
  • Slot Card Overflow Decoupling:
    • Removed overflow-hidden constraints from slot card wrappers in PhotoSlotCard.tsx, SignatureSlotCard.tsx, and DocumentSlotCard.tsx, preventing floating tooltips and popovers from being clipped at container boundaries.

🐛 Fixed

  • Zero Layout Shift (0px CLS):
    • Eliminated UI jumping and content drift caused by resolution limit explainer banners mounting and unmounting in the DOM.
  • Input Reset & Premature Clamping:
    • Fixed a critical usability bug where typing multi-digit dimensions (e.g., 1200) prematurely clamped to single-digit minimum bounds (e.g., 50).
  • Tooltip Viewport Clipping:
    • Fixed popovers getting clipped by slot card container edges on short cards by hoisting overlays to root body level via React Portals.
  • Arrow Geometry Skewing:
    • Replaced rotated CSS square pseudo-elements with clean SVG triangles to eliminate border overlap and distortion.

✨ [v4.0.0.0] - 2026-10-17

🚀 Added

  • Dual-Theme Semantic Design System:
    • Engineered full support for Paper Light (#fbfbf9) and Midnight Dark (#090d16) palettes using CSS custom properties in src/index.css.
    • Added tactile 28px radial-masked graph checkerboard canvas in App.tsx for visual depth across light and dark modes.
    • Built useThemeStore.ts with localStorage persistence and automatic prefers-color-scheme OS synchronization.
    • Integrated tactile Sun/Moon toggle switch in Header.tsx with smooth 0ms color transitions.
  • Multi-Route Navigation & Dedicated Workspaces:
    • Implemented lightweight hash-based router (useNavigationStore.ts) supporting #prepare, #presets, and #about routes with automated scroll-to-top on navigation.
    • Created dedicated Preset Manager & Catalog (PresetsPage.tsx) supporting single and bulk JSON export (FormEase_Custom_Presets.json), drag-and-drop JSON import, preset duplication, and instant re-optimization.
    • Created dedicated System Architecture & Telemetry Page (AboutPage.tsx) documenting FormEase's 6 offline processing engines and zero-data-leakage guarantees.
    • Added ModeTabBar.tsx to cleanly switch between "Guided Dossier" and "Batch Sandbox" modes while displaying active portal metadata.

⚡ Changed

  • Semantic Token Harmonization:
    • Refactored all slot cards (PhotoSlotCard.tsx, SignatureSlotCard.tsx, DocumentSlotCard.tsx), modals (CustomPresetModal.tsx, DiffViewer.tsx, DossierExportModal.tsx), and canvases (BiometricCanvas.tsx, SignatureEnhancer.tsx) to use dynamic semantic color tokens.
    • Harmonized control instruments (ByteCounter.tsx, SizeCeilingController.tsx, PixelDimensionController.tsx, StatusBadge.tsx, ActionButton.tsx) for consistent contrast across themes.

🐛 Fixed

  • Dark Mode Color Bleed in Light Theme:
    • Fixed hardcoded dark slate backgrounds (bg-slate-900, text-slate-100) leaking into light mode, ensuring WCAG 2.1 AA text contrast across both themes.
  • Page Route Transitions:
    • Fixed route changes leaving scroll coordinates at bottom of page by adding automatic window.scrollTo(0, 0) on route changes.

✨ [v3.1.0.0] - 2026-10-17

🚀 Added

  • Interactive Signature Cropper:
    • Added drag-to-pan, wheel zoom, and arrow-key nudge positioning to SignatureSlotCard.tsx with a tactile blue baseline alignment guide.
  • Direct Pixel Dimension Steppers:
    • Added exact width and height numeric inputs in CustomPresetModal.tsx for custom preset authoring.
  • Dynamic Preflight Export Ceilings:
    • Updated DossierExportModal.tsx to display live custom size limits instead of static preset values.

⚡ Changed

  • Harmonized Studio Backgrounds:
    • Standardized background styling of signature and document preview stages to deep slate, eliminating Troxler fading on white signature samples.
  • Automatic Re-optimization:
    • Slot processors now automatically re-run compression whenever a new custom preset is applied.

🐛 Fixed

  • Extreme Aspect Ratio Scaling:
    • Removed artificial 100px minimum width floor in PhotoSlotCard.tsx, allowing extreme aspect ratios (e.g., 55×3500 px or 4000×80 px) to scale down with true WYSIWYG proportions.
  • Micro-Dimension Overlay Clipping:
    • Added guardrails hiding biometric and signature alignment guides when preview dimensions are below 60px to prevent visual clutter.

✨ [v3.0.1.1] - 2026-10-17

🐛 Fixed

  • TypeScript Build Sanitization:
    • Removed unused isFullyOffline import in Header.tsx that caused TS6133 errors during strict production build checks.

✨ [v3.0.1.0] - 2026-10-16

🚀 Added

  • Edge Deployment Hardening:
    • Added dedicated start script (vite preview --port 3000 --host 0.0.0.0) in package.json for cloud container hosting.
    • Configured .dockerignore to exclude node_modules, .git, and dist, reducing container build transfer payloads by ~90%.

⚡ Changed

  • Unified Version Synchronization:
    • Aligned application version across package.json, package-lock.json, index.html, Header.tsx, Footer.tsx, and zipBundler.ts.
  • Documentation Overhaul:
    • Restructured README.md with algorithmic deep dives into near-ceiling binary search, binarization, and WCAG accessibility standards.

✨ [v3.0.0.0] - 2026-10-16

🚀 Added

  • Stacked Horizontal Studio Rows:
    • Redesigned DossierSlotsView.tsx from a cramped 3-column vertical grid into responsive, full-width horizontal studio rows (~42% stage viewfinder, ~58% controls and metrics).
  • Progressive Disclosure Accordions:
    • Placed secondary dimensional controls and preset bookmarks inside collapsible accordions to keep the primary interface clean and focused.
  • Dynamic 2D Aspect Ratio Bounding Box Engine:
    • Built an aspect-ratio-aware viewport scaler (containerMaxW = 280, containerMaxH = 192) ensuring custom aspect ratios display with 100% WYSIWYG fidelity.
  • Dynamic Preflight Audit Telemetry:
    • Connected DossierExportModal.tsx to live slot.customTargetMaxKB values to reflect real user-configured limits in export audits.

⚡ Changed

  • Stage Coordinate Normalization:
    • Updated pan and zoom coordinate math in useDossierStore.ts to compute offsets against dynamic stage aspect ratios.
  • Target Compression Band Tracking:
    • Fine-tuned ByteCounter.tsx interpolation to reflect the official 92%–98.5% near-ceiling target band.

🐛 Fixed

  • Pixel Dimension Label Truncation:
    • Enforced strict minimum width boundaries (min-w-[70px] sm:min-w-[84px]) in PixelDimensionController.tsx to prevent 3- and 4-digit dimension inputs from collapsing.

✨ [v2.0.0.0] - 2026-10-13

🚀 Added

  • Dual-Mode Workspace Engine:
    • Built instant mode switching between Guided Dossier Mode (DossierSlotsView.tsx) and Universal Sandbox Mode (SandboxQueueView.tsx).
  • ICAO 9303 Biometric Crop Guide:
    • Integrated SVG facial alignment guidelines (Center Axis, Head Oval, Eye-Line at 44%, Chin-Line at 82%) in PhotoSlotCard.tsx.
  • Desk-Photo Signature Ink Bleaching Pipeline:
    • Developed dynamic background thresholding and ink contrast scaling (binarizeSignature.ts) to turn shadowy paper photos into pure black ink on clean white backgrounds.
  • Document Enhancement Pipeline:
    • Built grayscale BT.709 conversion, contrast boost, and unsharp text sharpening in documentEnhancer.ts.
    • Added an automated 4 KB headroom guard to account for PDF wrapper structures under tight limits.
  • Tactile Sliders and Steppers:
    • Created SizeCeilingController.tsx and PixelDimensionController.tsx with aspect-ratio locks and DPI calculations.
  • Vector Brand Identity:
    • Designed custom SVG viewfinder logo mark in FormEaseLogo.tsx and updated favicon.svg.
  • Production-Grade Footer:
    • Added comprehensive Footer.tsx with portal shortcuts, privacy badges, and direct developer links.
  • Zero-Telemetry In-Memory Demo:
    • Added loadDemoDossier() in useDossierStore.ts and sampleDataGenerator.ts to populate realistic demo assets with 0 outbound requests.

⚡ Changed

  • Hardware-Accelerated Crop Transforms:
    • Switched viewfinder manipulation from canvas redraws to GPU CSS transforms (translate3d, scale, rotate) for smooth 120 FPS interaction.
  • Worker Sequence Locks:
    • Implemented optimization sequence locks (slotOptimizationSeq) and 280ms debounced store commits in useDossierStore.ts to eliminate race conditions.

🗑️ Removed

  • Redundant Configuration Drawers:
    • Removed separate configuration drawers in favor of unified inline controls directly on slot cards.

✨ [v1.0.0.0] - 2026-10-11

🚀 Added

  • Initial Release of FormEase:
    • 100% client-side document and biometric preparation engine running entirely in the browser.
  • Near-Ceiling Binary Search Compression:
    • Adaptive binary-search loop converging JPEG quality across up to 7 iterations to land between 92% and 98.5% of the file size ceiling.
  • Pre-Configured Portal Presets:
    • Built-in configurations for US Visa (DS-160), US Passport, Schengen Visa, UPSC Civil Services, SSC, NTA (NEET/JEE), Passport Seva/PAN, and General University/Job applications.
  • Client-Side PDF Processing:
    • In-browser PDF page rendering using pdfjs-dist and standards-compliant single-page PDF generation via pdf-lib.
  • In-Browser ZIP Packaging:
    • Multi-file bundling and instant download using jszip and file-saver.
  • Preflight Audit Manifest:
    • Automated generation of VALIDATION_SUMMARY.txt inside every exported ZIP, verifying file sizes, dimensions, and portal compliance.
  • Zero-Telemetry Offline Privacy Architecture:
    • Static client bundle with zero backend dependencies.
    • Active network interception hook (useOfflineTelemetry) guarding against accidental outbound network calls.