22 Commits

Author SHA1 Message Date
Max
6f365adfd7 refactor(ui): improve header alignment to use grid and fix runtime provider validation 2026-01-27 15:00:52 +07:00
Max
97376149e6 fix: move themeColor to viewport export (Next.js 16)
Move themeColor from metadata export to viewport export as required
by Next.js 16 to fix the unsupported metadata warning.

Co-Authored-By: Claude (glm-4.7) <noreply@anthropic.com>
2026-01-27 14:30:27 +07:00
Max
250832da37 fix: font loading and chat scrolling issues
- fix: Replace corrupted Merriweather fonts with valid WOFF2 files from @fontsource
- fix: Use CSS @font-face instead of next/font/local for Merriweather (Next.js 16 compatibility)
- fix: Add smart scroll detection to ChatWindow (respects manual scrolling)
- feat: Update app title to "Brachnha Insight"
- feat: Update app description

Co-Authored-By: Claude (glm-4.7) <noreply@anthropic.com>
2026-01-27 13:58:05 +07:00
Max
02ac9762e4 feat: improve journaling flow with better prompts and UX
- Fix: Add sessionId tracking to useChatStore for draft saving
- feat: Update Teacher prompt to "Funky Universal Sage (Conversational)"
- feat: Update Ghostwriter prompt to "Personal Diary Reporter" with keywords
- feat: Redesign DraftSheet to match history rendering style
- feat: Add keywords/tags support to drafts
- feat: Change draft accept behavior to redirect to homepage

Co-Authored-By: Claude (glm-4.7) <noreply@anthropic.com>
2026-01-27 13:28:59 +07:00
Max
8fe6eb2547 Fix docker-compose.yml: remove extra dash in APP_PASSWORD line 2026-01-27 12:00:29 +07:00
Max
0c87bc7dd3 Update docker-compose.yml and .gitignore 2026-01-27 11:59:42 +07:00
Max
5bc36f2354 feat: swap Google Fonts for local fonts + fix Suspense boundary
- Replace next/font/google with next/font/local for Inter and Merriweather
- Add self-hosted font files to public/fonts/
- Wrap useSearchParams in Suspense boundary for /chat page
- Eliminates Turbopack TLS font loading issues during build
2026-01-27 11:31:56 +07:00
Max
3f4db8afb9 refactor: migrate middleware.ts to proxy.ts (Next.js 16)
Renamed middleware convention to proxy as per Next.js 16 deprecation warning.
- Renamed src/middleware.ts to src/proxy.ts
- Renamed exported function from middleware() to proxy()
2026-01-27 11:28:16 +07:00
Max
7084ebff05 fix(build): remove next-pwa and fix type errors
- Remove unused next-pwa dependency to eliminate workbox/rimraf warnings
- Fix DraftRecord type error by removing invalid updatedAt property
- Fix LLMService.getTeacherResponseStream type by adding optional onIntent callback
2026-01-27 11:25:41 +07:00
Max
83ca7c6cd7 fix(build): remove invalid props passed to HistoryDetailSheet 2026-01-27 11:14:30 +07:00
Max
d1266565ac chore: update .gitignore to exclude AI/Agent tools and BMAD output 2026-01-27 11:05:20 +07:00
Max
9b79856827 feat(ui): implement 'Twilight Velvet' dark theme and fix visibility issues
- Add 'Twilight Velvet' color palette to globals.css with OKLCH values
- Update SettingsPage headers, cards, and dialogs to use semantic theme variables
- Update HistoryCard, HistoryFeed, and DraftContent to support dark mode
- Update ProviderSelector and ProviderList to use custom card background (#2A2A3D)
- Add ThemeToggle component with improved visibility
- Ensure consistent use of 'bg-card', 'text-foreground', and 'text-muted-foreground'
2026-01-27 11:03:55 +07:00
Max
e9e6fadb1d fix: ChatBubble crash and DeepSeek API compatibility
- Fix ChatBubble to handle non-string content with String() wrapper
- Fix API route to use generateText for non-streaming requests
- Add @ai-sdk/openai-compatible for non-OpenAI providers (DeepSeek, etc.)
- Use Chat Completions API instead of Responses API for compatible providers
- Update ChatBubble tests and fix component exports to kebab-case
- Remove stale PascalCase ChatBubble.tsx file
2026-01-26 16:55:05 +07:00
Max
6b113e0392 Ignore and untrack BMad directories 2026-01-26 15:49:36 +07:00
Max
7b732372e3 Update Teacher to Funky Data Sage and Ghostwriter to Internal Monologue 2026-01-26 15:47:59 +07:00
Max
8e2ef0bf21 Fix mobile chat input positioning with dynamic viewport height
Use h-dvh instead of h-screen to account for mobile browser's dynamic address bar, keeping chat input always visible at bottom of viewport.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-26 14:03:55 +07:00
Max
d115cb94f0 Configure HTTPS for bi.brachnha.com
- Set correct domain in Traefik labels
- Configure HTTP to HTTPS redirect
- Enable Let's Encrypt SSL certificate
- Add secure entrypoint configuration

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-26 13:18:46 +07:00
Max
90f807b31d Fix Docker build - Add PORT environment variable
- Add PORT=3000 to both Dockerfile and docker-compose.yml
- Ensure proper file ownership in standalone build
- Fix potential 404 routing issues

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-26 13:08:04 +07:00
Max
d9c090db45 Change exposed port to 6969 to avoid Dokploy conflicts
- Update docker-compose.yml port mapping from 3000:3000 to 6969:3000
- Internal container port remains 3000 for Traefik compatibility

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-26 12:53:27 +07:00
Max
b6a566db6e Add Docker deployment support for Dokploy
- Add Dockerfile with multi-stage build
- Add docker-compose.yml with Traefik labels
- Add .dockerignore for optimal build context
- Update next.config.ts for standalone output
- Update DEPLOYMENT.md with Dokploy instructions

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-26 12:38:37 +07:00
Max
415c39ba0a Rename project to Brachnha Insights
- Updated package.json name field
- Created proper README with project description
- Updated BMAD configuration

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-26 12:33:49 +07:00
Max
3fbbb1a93b Initial commit: Brachnha Insight project setup
- Next.js 14+ with App Router and TypeScript
- Tailwind CSS and ShadCN UI styling
- Zustand state management
- Dexie.js for IndexedDB (local-first data)
- Auth.js v5 for authentication
- BMAD framework integration

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-26 12:28:43 +07:00