CineLog Release Notes — Public Beta
Release period: December 5, 2025 — February 16, 2026 Scope: 69 commits · 652 files changed · 80k lines added · 34k lines removed
🏗️ Local-First Architecture & Offline Mode
CineLog now operates on a local-first architecture — every action you take is persisted locally on-device before syncing to the cloud.
- Full offline support — create shots, edit scripts, reorder scenes, and manage your production without an internet connection. Changes sync automatically when you reconnect.
- Instant UI response — all edits apply to a local database (Drift) first, so the interface updates immediately without waiting for a server round-trip.
- Optimistic updates — shot list, script editor, files, storyboard, and project data repositories were refactored to write locally and reconcile with the server asynchronously.
- Local file storage — thumbnails, previs images, and media are stored and resolved from local disk first; cloud URLs are used only as fallback.
- Robust bootstrap — a redesigned bootstrap service hydrates the local database on first launch and performs incremental syncs on subsequent startups.
⚡ Real-Time Synchronization (CineSync v3 → v4)
The sync engine was rebuilt from the ground up — migrating from REST polling (v2) to WebSocket-based real-time sync (v3/v4).
- WebSocket real-time transport — all data mutations are broadcast in real time to every connected device via WebSocket channels.
- Conflict resolution — server-side and client-side conflict detection handles concurrent edits from multiple peers, including sequence collision resolution for reordering.
- Reactive state pipeline — local database changes propagate to the UI via Drift table streams, ensuring consistency between the database and display layers.
- Redis pub/sub backbone — added Redis to the infrastructure (Terraform-provisioned) to power cross-instance WebSocket message distribution.
- Connection-aware UX — online/offline status badge on mobile, intelligent snackbar suppression during lifecycle reconnects.
✍️ Script Editor
- Script Preview — full-page screenplay preview with accurate Courier Prime rendering, pagination, and page count.
- Multi-format export — export scripts as PDF, FDX (Final Draft), Fountain, CSV, JSON, and plain text via a unified export dialog.
- Courier Prime Cyrillic — native Cyrillic character support in screenplay rendering.
- Title page formatting — full title page with author, contact, and draft info.
- Script Reformat — one-click screenplay reformatting with confirmation dialog.
- Script analytics — updated page/scene/character count sidebar.
- Inline formatting — Fountain bold, italic, and underline rendered in both editor and preview.
📋 Shot List
- Reorder & move improvements — shot reordering utils rewritten with better sequence collision handling and cascade analysis.
- New shot type added to the constants library.
- Production day assignment — bulk scene-to-production-day assignment with cross-device sync.
- Shot edit dialog — expanded inline editing capabilities.
- Phone layout redesign — reworked phone shot list with new scene list items, connection badge, and improved layout.
- PDF export refinements — updated options dialog and export helpers, unified export flow across shot list and storyboard.
🧭 Project Management
- Project selector on mobile — a new Projects list view accessible from the phone app bar, with quick switching.
- Bulk re-join projects — re-join multiple projects in a single action after account recovery or device switch.
- Create project dialog — redesigned with improved validation (dots and hyphens in project names now allowed).
- App version update banner — in-app banner prompting users to update when a new version is available, with a forced-update overlay for breaking releases.
🔧 Infrastructure & Backend
- MailerLite integration — automated email marketing signup on user registration with members-group assignment.
- Redis configuration — Terraform-managed Redis instance for WebSocket pub/sub.
- App Config table — server-side app configuration entity for minimum version enforcement and feature flags.
- Console dashboard — enhanced admin dashboard with project and sync metrics.
- Enum & string standardization — unified constant naming conventions across API and client.
🐛 Stability & Quality
- CineSync conflict resolution — fixed duplicate scene headers, stale production items, sequence collisions on reorder and scene assignment.
- Script editor fixes — crash fix in
computeLayoutDataWithDocumentLayout, background cache invalidation safety, echo suppression in real-time edits. - Local file handling — race condition fix for thumbnail upload/delete timing, file diagnostics utility for debugging storage issues.
- Auth improvements — troubleshooting dialog for login issues, reworked auth service flows.
- Test suite — significant new unit and integration test coverage for CineSync actions, shot list repository, reordering utils, project service, and Fountain parsing.
- Dead code removal — full CineSync v2 engine removed (6k lines), workspace test screen deleted, and general code cleanup.