Releases: FluxStackCore/FluxStack
Releases · FluxStackCore/FluxStack
v1.16.0 — Extract Live Components to Monorepo
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/liveand@fluxstack/live-elysiacore/client/reduced from full implementation to re-exports from@fluxstack/live-clientand@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:
setLiveComponentContextDI pattern replacesvi.mock, async flush forWsSendBatcher - CI Bun version updated to 1.3.2
Added
- Typed LiveRoom demos:
LivePingPong,LiveSharedCounterwith dedicated Room classes (ChatRoom,CounterRoom,DirectoryRoom,PingRoom) PingPongDemo.tsx,SharedCounterDemo.tsx— new frontend demo componentsLLMD/resources/live-binary-delta.md— binary delta codec documentationplugins/*/bun.lockadded 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/livecore/server/live/auth/— moved to@fluxstack/livecore/server/live/__tests__/— moved tofluxstack-livemonorepocore/client/LiveComponentsProvider.tsx,Live.tsx,LiveDebugger.tsx— moved to@fluxstack/live-reactcore/client/hooks/useLiveComponent.ts,useRoom.ts,useRoomProxy.ts,useLiveDebugger.ts,useChunkedUpload.ts,useLiveChunkedUpload.ts,AdaptiveChunkSizer.ts,state-validator.ts— moved to@fluxstack/live-clientcore/build/vite-plugin-live-strip.ts— moved to@fluxstack/liveLiveDebuggerUI and exports (removed entirely, not extracted)LiveChatandLiveTodoListdemo components (replaced by new typed demos)ChatDemo.tsx,TodoListDemo.tsx,LiveDebuggerPanel.tsx— replaced by new demosworkspace.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.0pointing to non-existentsrc/(fixed in@fluxstack/live@0.3.1) live-components-generator.tsbasename 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
✨ 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
What's Changed
- Isolated plugin loader by @MarcosBrendonDePaula in #10
- Review and update core config schema file by @MarcosBrendonDePaula in #11
- Remove unnecessary test nop commands by @MarcosBrendonDePaula in #12
- Improve build log design and layout by @MarcosBrendonDePaula in #13
- Remove Docker commands from package.json scripts by @MarcosBrendonDePaula in #14
- Fix unit tests with errors by @MarcosBrendonDePaula in #15
- refactor: protect backend-only.ts logic in core framework by @MarcosBrendonDePaula in #16
- Fix missing test:run script error by @MarcosBrendonDePaula in #18
- fix: correct lock file name in Dockerfile (bun.lockb → bun.lock) by @MarcosBrendonDePaula in #19
- Fix the email functionality by @MarcosBrendonDePaula in #20
- Find where file is being used by @MarcosBrendonDePaula in #21
- Review and analyze code section by @MarcosBrendonDePaula in #22
- Find and remove duplicate config files by @MarcosBrendonDePaula in #23
- Simplify example client into single page by @MarcosBrendonDePaula in #24
- Register legacy CLI commands in new system by @MarcosBrendonDePaula in #25
- Fix missing LiveClock component registration by @MarcosBrendonDePaula in #26
- Review plugin configuration schema design by @MarcosBrendonDePaula in #27
- docs: update plugins-guide with new declarative config system by @MarcosBrendonDePaula in #28
- Review and update system documentation by @MarcosBrendonDePaula in #29
- Fix module resolution errors in test files by @MarcosBrendonDePaula in #30
- Fix failing user validation test status code by @MarcosBrendonDePaula in #31
- Fix URL parsing error in error handler by @MarcosBrendonDePaula in #32
- Document Live Routes by @MarcosBrendonDePaula in #33
- docs: add comprehensive Swagger documentation for Users API routes by @MarcosBrendonDePaula in #34
- Fix built-in core plugins by @MarcosBrendonDePaula in #35
- refactor: remove deprecated configSchema and defaultConfig from built… by @MarcosBrendonDePaula in #36
- Fix Swagger plugin route visibility issue by @MarcosBrendonDePaula in #37
- Claude/swagger tags system routes 011 cv697 yu8m q hd xj w18 hki p by @MarcosBrendonDePaula in #38
- Update Eden API client library by @MarcosBrendonDePaula in #39
- Exchange the V variable by @MarcosBrendonDePaula in #40
Full Changelog: v1.5.0...v1.8.3