Skip to content

Releases: FluxStackCore/FluxStack

v1.16.0 — Extract Live Components to Monorepo

14 Mar 02:54

Choose a tag to compare

Major Refactor: Extract Live Components to Monorepo

Live Components code has been extracted from core/ into standalone npm packages under the @fluxstack/live scope. This reduces the framework core by ~11,000 lines and allows the Live system to be versioned and published independently.

Changed

  • Live Components are now npm packages: @fluxstack/live, @fluxstack/live-client, @fluxstack/live-react, @fluxstack/live-elysia
  • core/server/live/ reduced from full implementation to thin re-exports from @fluxstack/live and @fluxstack/live-elysia
  • core/client/ reduced from full implementation to re-exports from @fluxstack/live-client and @fluxstack/live-react
  • Vite config now includes source aliases for @fluxstack/live, @fluxstack/live-client, and @fluxstack/live-react (frontend dev uses TypeScript source directly)
  • Tests migrated to v0.3.0 API: setLiveComponentContext DI pattern replaces vi.mock, async flush for WsSendBatcher
  • CI Bun version updated to 1.3.2

Added

  • Typed LiveRoom demos: LivePingPong, LiveSharedCounter with dedicated Room classes (ChatRoom, CounterRoom, DirectoryRoom, PingRoom)
  • PingPongDemo.tsx, SharedCounterDemo.tsx — new frontend demo components
  • LLMD/resources/live-binary-delta.md — binary delta codec documentation
  • plugins/*/bun.lock added to .gitignore
  • Bundler now logs stdout/stderr on build failure for CI debugging

Removed

  • core/server/live/ComponentRegistry.ts, WebSocketConnectionManager.ts, StateSignature.ts, LiveRoomManager.ts, RoomEventBus.ts, RoomStateManager.ts, FileUploadManager.ts, LiveComponentPerformanceMonitor.ts, LiveDebugger.ts, LiveLogger.ts — moved to @fluxstack/live
  • core/server/live/auth/ — moved to @fluxstack/live
  • core/server/live/__tests__/ — moved to fluxstack-live monorepo
  • core/client/LiveComponentsProvider.tsx, Live.tsx, LiveDebugger.tsx — moved to @fluxstack/live-react
  • core/client/hooks/useLiveComponent.ts, useRoom.ts, useRoomProxy.ts, useLiveDebugger.ts, useChunkedUpload.ts, useLiveChunkedUpload.ts, AdaptiveChunkSizer.ts, state-validator.ts — moved to @fluxstack/live-client
  • core/build/vite-plugin-live-strip.ts — moved to @fluxstack/live
  • LiveDebugger UI and exports (removed entirely, not extracted)
  • LiveChat and LiveTodoList demo components (replaced by new typed demos)
  • ChatDemo.tsx, TodoListDemo.tsx, LiveDebuggerPanel.tsx — replaced by new demos
  • workspace.json — stale config referencing non-existent ./packages/*

Fixed

  • Bun bundler failing on Linux CI with "Could not resolve: @fluxstack/live" — caused by "bun" export condition in @fluxstack/live@0.3.0 pointing to non-existent src/ (fixed in @fluxstack/live@0.3.1)
  • live-components-generator.ts basename extraction bug
  • Vite aliases made conditional for CI compatibility

npm packages published

Package Version
@fluxstack/live 0.3.1
@fluxstack/live-client 0.3.1
@fluxstack/live-react 0.3.1
@fluxstack/live-elysia 0.2.1

1.12.1

10 Feb 02:11

Choose a tag to compare

✨ New Features

Live Components v2.0

  • Reactive State Proxy - this.state.count++ auto-syncs with frontend
  • Static defaultState pattern - Define state inside the class, no external exports
  • Client component links - Ctrl+Click navigation from server to client components
  • Type-safe WebSocket - New FluxStackWebSocket interface
  • No constructor needed - Base class handles state merge automatically
  • Static componentName - Required for minification support in production

Room System

  • Multi-room support - $room('sala').join(), $room('sala').emit()
  • Room Event Bus - Server-side pub/sub for real-time features
  • HTTP API for rooms - External integrations via /api/rooms/{id}/messages

Live Upload System

  • Chunked uploads via WebSocket - Stream large files efficiently
  • Adaptive chunk sizing - Auto-optimizes based on network conditions
  • Progress tracking - Real-time upload progress in Live Components

Plugin System

  • Security system - Whitelist + opt-in for NPM plugins (protect against supply chain attacks)
  • Plugin hooks - 5 build pipeline hooks + request/response lifecycle hooks
  • Modular CLI - Plugin commands auto-discovered

Developer Experience

  • LLMD documentation - LLM-optimized docs replacing ai-context
  • --frontend-only / --backend-only - Separate dev modes
  • Build executables - bun run build:exe for standalone apps
  • FluxStack Desktop plugin - Desktop app support

🐛 Bug Fixes

  • Fix duplicate messages in multi-room chat
  • Fix browser data leak in npm package (security)
  • Fix TypeScript strict mode issues
  • Fix Docker build and CI pipeline
  • Fix ESM compatibility (replace require with readFileSync)
  • Fix CORS config after refactoring
  • Fix Vite HMR client script injection
  • Fix plugin dependency installation
  • Fix build paths and tsconfig resolution

🧹 Refactoring

  • Simplified LiveRoomChat (-60% code)
  • Removed typing indicator system (non-essential)
  • Consolidated server entry points
  • Standardized path aliases
  • Modernized config system
  • Cleaner Vite/Swagger plugins

📚 Documentation

  • Complete Live Components rewrite for junior/mid developers
  • Plugin hooks comprehensive guide
  • Router migration guide
  • Eden Treaty type inference details

Full Changelog: v1.8.3...v1.12.1

1.8.3

13 Nov 19:37
cecd408

Choose a tag to compare

What's Changed

Full Changelog: v1.5.0...v1.8.3