Conversation
Contributor
Docker image |
- Remove deprecated storybook addon-essentials and addon-interactions (Storybook 9) - Enable search route that was commented out in Router - Fix import path in DiscussionHeader.stories.tsx - Add null checks in MessageListScroller to prevent crashes - Add navigation on search close and null check for messages model - Enable network access for Vite dev server (host: true) - Change default backend port from 8080 to 3001 - Fix default database from 'tests' to 'chat'
Contributor
Docker image |
- Remove MobX observer wrappers from atom components - Remove direct client/API dependencies from atoms - Pass data via props instead of accessing global state - Move LoggedUser from atoms to molecules (it uses app context) - Create ThemeButtonConnected molecule for stateful theme toggle - Update parent components to pass required props - Simplify Image, File, ProfilePic to be pure presentational components
- Use proper directory handling with DIR variable - Create separate windows: nvim, claude, dev servers - Organize dev servers (frontend, backend, storybook) in split panes - Start in nvim window by default - Remove obsolete pushd/popd commands
Contributor
Docker image |
Contributor
Docker image |
* fix(storybook): resolve molecules layer rendering issues - Add viteFinal config to inherit define/alias from vite.config.ts - Fix emoji mock data to use hex codes instead of Unicode characters - Add missing channel mocks (toolbar-test, test, unknown-channel) - Fix TextMenu.stories.tsx import path for InputContext - Convert MessageToolbar and Reactions stories to render pattern to ensure loaders run before app.getMessages() is called - Add useFileUrl hook and isUserActive utility - Refactor LoggedUser to base/connected pattern - Remove unnecessary observer wrappers from Files and NavUserButton - Update Storybook deps to v10.2.3 and add playwright for testing - Add check-storybook.mjs for automated story validation Storybook pass rate improved from 0% to 97.5% (119/122 stories) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor(molecules): address code review feedback - Rename useFileUrl.ts to fileUrl.ts and functions to getFileUrl, getThumbnailUrl, getDownloadUrl (they're not React hooks) - Extract magic number to ACTIVE_USER_THRESHOLD_MS constant in utils.ts - Add proper TypeScript types to Attachments.stories.tsx - Add proper TypeScript types to TextMenu.stories.tsx Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Contributor
Docker image |
* feat(mobile): add theme colors and status bar styling Add colors.xml with brand colors matching the web app theme: - colorPrimary: #201F22 (dark navbar) - colorPrimaryDark: #1a1d21 (status bar) - colorAccent: #FF8C00 (orange accent) Update styles.xml to apply status bar and navigation bar colors to both the splash screen and main app themes. * feat(mobile): add Quack launcher icons from Tauri Copy custom launcher icons from the deleted Tauri Android app to the Capacitor mobile app. Includes all density variants (mdpi through xxxhdpi) and adaptive icon resources. * feat(mobile): replace splash screen with solid dark background Use colorPrimaryDark (#1a1d21) as splash background instead of the default Capacitor splash image for a cleaner launch experience. * refactor(mobile): replace Tauri with Capacitor for Android app Remove Tauri-based mobile implementation and replace with Capacitor: - Remove app/src-tauri/ (Rust/Tauri Android wrapper) - Add mobile/ directory with Capacitor 6.0.0 Android app - Implement custom notification service via SSE for real-time messages - Add mobile config export endpoint and backend routes - Update API client to support mobile platform detection - Remove Tauri dependencies from app/package.json The new Capacitor app features: - Background notification service with persistent SSE connection - Custom Quack notification sound and vibration - Deep linking support (quack:// scheme) - Network-aware auto-reconnection - Boot receiver for auto-start capability * chore(app): add storybook-static to gitignore * fix(api): remove unused lint ignore directive * fix(mobile): address architectural concerns from deep review - Use EncryptedSharedPreferences for secure auth token storage - Add wake lock timeout (10 min) to prevent battery drain - Implement exponential backoff for SSE reconnection (1s to 60s) - Add server-side heartbeat (30s) for connection health monitoring - Filter own messages server-side to reduce client processing - Fix isServiceRunning to check actual service state vs config - Remove duplicate URL normalization (keep only in QuackConnection) - Simplify notification tests for better reliability * docs(mobile): add mobile app build documentation Add comprehensive documentation for building the Android mobile app: - Prerequisites and quick start guide - Local development setup with HTTPS - Notification system explanation - Customization options (icons, sounds, package name) - Troubleshooting common issues Also update README.md to reference the new documentation.
Contributor
Docker image |
The WebView URL wasn't being transformed for Android emulator compatibility. Now both the WebView and SSE connections properly use 10.0.2.2 to reach the host machine from the emulator.
Contributor
Docker image |
Replace hardcoded SSL task with a script that dynamically detects all local network interfaces and includes them as SANs. This allows HTTPS to work from any device on the local network, not just localhost and the Android emulator IP.
Contributor
Docker image |
Contributor
Docker image |
* chore(deps-dev): bump vite from 7.1.5 to 7.1.11 in /app Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.5 to 7.1.11. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v7.1.11/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 7.1.11 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump glob from 10.4.5 to 10.5.0 in /app Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 10.5.0. - [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md) - [Commits](isaacs/node-glob@v10.4.5...v10.5.0) --- updated-dependencies: - dependency-name: glob dependency-version: 10.5.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump react-router and react-router-dom in /app Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) to 7.13.0 and updates ancestor dependency [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom). These dependencies need to be updated together. Updates `react-router` from 7.9.1 to 7.13.0 - [Release notes](https://github.com/remix-run/react-router/releases) - [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md) - [Commits](https://github.com/remix-run/react-router/commits/react-router@7.13.0/packages/react-router) Updates `react-router-dom` from 7.9.1 to 7.13.0 - [Release notes](https://github.com/remix-run/react-router/releases) - [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md) - [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.13.0/packages/react-router-dom) --- updated-dependencies: - dependency-name: react-router dependency-version: 7.13.0 dependency-type: indirect - dependency-name: react-router-dom dependency-version: 7.13.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps-dev): bump lodash from 4.17.21 to 4.17.23 in /app Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](lodash/lodash@4.17.21...4.17.23) --- updated-dependencies: - dependency-name: lodash dependency-version: 4.17.23 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Contributor
Docker image |
Contributor
Docker image |
Contributor
Docker image |
Contributor
Docker image |
Contributor
Docker image |
Contributor
Docker image |
refactor(components): extract SearchBoxInput atom, MessageInfo molecule, and FlexRow atom
Contributor
Docker image |
Contributor
Docker image |
Contributor
Docker image |
- Add BACKLOG.md to the repository (previously gitignored) to track cleanup, refactoring, and feature work - Remove BACKLOG.md from .gitignore - Backlog covers: storybook cleanup (complete), code cleanup, architecture refactoring, file/attachment DB refactoring, and planned features - Includes section 3.8 for Valibot-based type safety in the database layer
Contributor
Docker image |
…gration * chore(lint): add frontend eslint with atomic design rules and CI integration * fix(ci): use npm ci and npm run lint instead of npx eslint * fix(test): remove object constraint from Arg type to allow string args * fix(test): restore Object constraint with lint suppression for Arg type * chore(lint): remove incomplete atomic design import rules
Contributor
Docker image |
- Upgrade valibot from 0.31.1 to 1.1.0 in deno/server/ - Replace BaseSchema with GenericSchema in command.ts and query.ts (5 occurrences) - Fix transform parameter types in types.ts for v1 compatibility - Mark valibot and @planigale backlog items as done
Contributor
Docker image |
) - Gate Router render on `isLoading` to prevent components rendering before channel validation completes - Upsert fetched channel into MobX store during route loading so it's available for rendering - Change `getThread()` and `getMessages()` to return `null` instead of throwing when channel not found - Add null guards in SideConversation, MainConversation (Desktop + Mobile), Conversation, and MessageInfo components - Add null check in `channels.find()` for non-existent channel API responses
Contributor
Docker image |
- Replace full-screen isLoading gate with isInitialLoading that only blocks UI during first app.init() - Channel fetch (getChannelById) runs in background using app.setLoading() for inline spinner - Remove debug console.log statements from route handler
Contributor
Docker image |
- Add release.yml workflow that auto-creates GitHub Release when dev→main PR with vX.Y.Z label is merged - Add docs/RELEASE_PROCESS.md documenting the full release flow - PR body is used as release notes, tag creation triggers existing docker.yml pipeline
Contributor
Docker image |
Update Deno Docker image from alpine-2.5.0 to alpine-2.6.8
2 tasks
Fix arm64 Docker build failure caused by denoland/deno:alpine-2.6.8 shipping glibc-linked libcrypto.so.3. Prefix apk commands with LD_LIBRARY_PATH=/usr/lib to use Alpine musl-based system libraries.
2 tasks
Replace LD_LIBRARY_PATH workaround with removing Deno glibc-linked libs from /usr/local/lib/ before running apk.
Fix Docker multi-arch build (amd64+arm64) by moving Deno glibc-linked libs aside during apk install and merging them back after. Also adds workflow_dispatch trigger to dev workflow.
Contributor
Docker image |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What's Changed
Features
Bug Fixes
Improvements
Docs & CI