* feat: implement JSON-based configuration system with env var overrides
- Add config.json support (replaces .env file dependency)
- Implement deepMerge and normalizeValue functions in loader.ts
- Support env:// syntax in JSON for runtime environment variable injection
- Add optional env var support with ? suffix (e.g., env://VAR_NAME?)
- Extract schema.ts to separate concerns (validation vs loading)
- Rename read*ConfigVariables to read*ConfigFromEnv for clarity
- Improve boolean env var parsing (handle false explicitly, not just truthy)
- Document configuration precedence: env > config.json > defaults
- Add config.json and config.local.json to .gitignore
- Update .env.example with migration guide for new system
- Maintain backward compatibility: env vars still work without JSON files
* - add docker compose and kuberenetes support for the new configuration flow.
- document config.json workflow for self-hosting
* update config json implementation
* Init mobile app
* Minor fixes and improvements
* Improve assets loading
* Fix event bus proxy
* Improve emojis and icons loading
* Improve app initialization in web
* Init tanstack router
* Refactor components
* Refactor some more components
* Refactor layouts
* Improve routing
* Improve routing
* Routing improvements
* Make sidebar work in mobile
* Refactor container and breadcrumb
* Fix some packages and warnings
* Encode and decode yjs update for ipc communication
* Refactor servers in client
* Fix some errors and warnings in editor and sidebar
* Add route masking for web
* Improve container layout
* Improve ui for mobile
* Improve mobile ui
* Create custom link component
* Router improvements
* Implement tabs for desktop
* tabs improvements
* Refactor routes
* Layout improvements
* Improve desktop tabs
* Use tanstack-db for global collections
* Improve tanstack db collections
* Refactor workspaces and accounts databases and routes locally
* Use tanstackdb for users
* Use tanstackdb for uploads and downloads
* Use tanstackdb for temp files
* Rename database to collections
* Improve tabs
* Fix packages
* Improve local file handling
* Rename sync cursor keys
* Save some bootstrap data in a file
* Reset all data on new version update in desktop
* Minor refactor
* Implement app reset on startup
* UI fixes and improvements
* More Ui improvements
* Fix logout
* Add tab in route contexts for workspace routes
* Store last used workspace id as metadata
* Fix account logout
* Fix file preview
* Fix file thumbnail loading in tabs
* Fix chat tab loading
* Fix some redirect handling
* Disable staletime for icon.svg.get query
* Fix not found pages and throws
* add readme for mobile
* fix some keys
* Improve add tab handler
* Fix path
* Latest npm in @colanode/web Docker, add optional plat/arch dependencies
There are a number of issues with lightningcss and node 22/npm.
This is related to platform-/architecture-specific packages.
This uses a number of pieces from multiple solutions found in the notes
for #160.
This addresses the issues by the following measures:
- Make sure npm is up-to-date in the @colanode/web Docker build
- Add optional dependencies for all the platform-specific lightningcss
packages that are most likely to be used in the project (HSF and
mainline) in the npm project modules that require them:
- @colanode/desktop
- @colanode/web
- @colanode/ui
Closes#159.
* Fix darwin-arm64 version.
* Remove unnecessary optional dependencies; remove duplicate version property
* Fix merge issue where the version field got deleted.
* Move the version field back to where it was before.
Between 0.2.9 and 0.3.0, there were changes in dependencies that caused
the types to become incompatible between Uint8Array and
FileSystemWriteChunkType where the base compatible type is ArrayBuffer
but Uint8Array is based on ArrayBufferLike, which can be an
ArrayBuffer but also can be a number of other incompatible types, and
is thus incompatible with FileSystemWriteChunkType.
I introduced a compatibility layer (Adapter Pattern-like) to copy the
buffer into an ArrayBuffer if it is not an ArrayBuffer, otherwise just
use the buffer if it already is.