-
Release v0.2.5 - Phase 2.5: Full Offline Mode
released this
2026-02-03 10:52:45 +03:00 | 148 commits to main since this releaseThis release completes Phase 2.5 with a fully functional local-first architecture.
-
All operations (CRUD) work through SQLite database
-
MariaDB used only for synchronization
-
Automatic connection on startup if settings exist
-
Graceful degradation to offline mode if server unavailable
-
Background sync worker (runs every 5 minutes)
-
Sync queue (pending_changes table) for reliable push operations
-
Pre-create pricelist check before configuration creation
-
Push pending changes API endpoint
-
Sync status indicator in UI
-
RefreshPrices works offline using local_components cache
-
Component search and pricing available offline
-
Configuration management fully offline-capable
-
LocalConfigurationService handles all CRUD operations
-
Sync status indicator with online/offline dot
-
Pricelist version badge on configs page
-
Unified admin pricing tabs (moved pricelists into admin)
-
Sync modal showing system status and errors
-
Warning message for manual restart after setup
-
Fixed nil pointer dereference in PricingHandler alert methods
-
Fixed setup flow: proper restart requirement notification
-
Fixed online mode: automatic MariaDB connection on startup
-
Fixed duplicate entry errors in sync operations
-
Fixed password encryption field naming in setup
-
internal/db/connection.go- Connection manager with lazy connect -
internal/localdb/- SQLite database layer -
internal/services/sync/- Sync service and worker -
internal/services/local_configuration.go- Local-first config service -
internal/handlers/setup.go- Setup flow handler -
internal/handlers/sync.go- Sync API handler -
internal/handlers/pricelist.go- Pricelist handler -
cmd/server/main.go- Auto-connect on startup, new router setup -
internal/handlers/pricing.go- Offline mode checks -
web/templates/- New UI for sync status and pricelists -
New SQLite tables: connection_settings, local_pricelists, local_components, local_configurations, pending_changes
-
New MariaDB tables: qt_pricelists, qt_pricelist_items
CGO_ENABLED=0 go build -ldflags="-s -w" -o bin/quoteforge ./cmd/server ./bin/quoteforge ./bin/quoteforge ./bin/quoteforge -migrate-
None - backward compatible with existing configurations
-
Manual restart required after changing connection settings in /setup
-
Conflict resolution not implemented yet (Phase 4)
Phase 3 will focus on Projects and Specifications structure.
Downloads
-