17 Commits

Author SHA1 Message Date
sleepy c430766afc fix: separate text-accent from background-accent colors
- Add --text-accent CSS variable (light purple #c4b5fd)
- Keep --accent for backgrounds only (dark purple #2e0a5d)
- Update Assistant name color to use --text-accent
- Update drawer section headers to use --text-accent
- Update streaming label to use --text-accent
- All purple text is now much lighter for readability
- Backgrounds retain the dark purple shade
- All 52 tests passing, build successful
2026-02-26 02:30:27 +01:00
sleepy 73d53d8ef4 style: lighten purple accent colors slightly
- Accent: #1e0b3d → #2e0a5d
- Accent-hover: #240d48 → #3a0d75
- Accent-light: #2e1f52 → #4a1f95

Purple is now more visible while still being easier on the eyes than the original blue. Used for Assistant names, streaming badges, code block headers, toggle active state, and drawer section headers.

All 52 tests passing, build successful
2026-02-26 02:21:05 +01:00
sleepy 36eebafeb3 style: darken purple accent colors to 1/3 brightness
- Accent: #5b21b6 → #1e0b3d
- Accent-hover: #6d28d9 → #240d48
- Accent-light: #8b5cf6 → #2e1f52

Very dark purple now used for:
- Assistant name in chat bubbles
- STREAMING badge background
- Code block language label background
- Toggle button active state
- Session drawer section headers
- Input focus border
- Button hover state background

All 52 tests passing, build successful
2026-02-26 02:15:26 +01:00
sleepy 5e42bee3dd feat: user bubbles now use neutral gray background
- User messages: var(--bg-tertiary) instead of accent color
- Assistant messages: var(--bg-secondary) (unchanged)
- User bubbles: slightly lighter gray (1f1f1f) than assistant (1a1a1a)
- User bubble border: var(--border-light) for subtle distinction
- User label color: var(--text-secondary) instead of white
- Both message types now have consistent text color (var(--text-primary))
- Streaming bubble unchanged (assistant style)
- All 52 tests passing
2026-02-26 02:08:58 +01:00
sleepy 1672fadc05 style: darken all accent colors for eye comfort
- Accent: #818cf8 → #5558e6 (darker indigo)
- Error: #f87171 → #b91c1c (darker red)
- Success: #10b981 → #0d9488 (darker teal)
- Backgrounds: #0d→#0a, #1a→#16, #25→1f (darker)
- Borders: #33→2a, #40→38 (darker)
- Text: #fff→#e8, #b0→a8, #88→80 (softer)
- Code block background: #1e1e1e → #1a1a1a
- Code block text: #d4d4d4 → #e8e8e8 (lighter for contrast)
- All 52 tests passing
2026-02-26 02:08:05 +01:00
sleepy 8f5dba0d91 style: adjust color palette for dark mode eye comfort
- Accent: #6366f1 → #818cf8 (softer indigo)
- Accent hover: #4f46e5 → #6366f1
- Accent light: #818cf8 → #a5b4fc (very light)
- Error: #ef4444 → #f87171 (soft coral red)
- Error hover: #ef4444 → stays virulent (for visibility)
- Text: #ffffff → #f0f0f0 (off-white)
- Borders: slightly lighter (#333, #4040)
- Backgrounds: tweaked for better contrast
- All 52 tests passing, build successful
2026-02-26 02:07:05 +01:00
sleepy f0ce25991f feat: improve Markdown rendering with proper styling
- Add remark-gfm for GitHub Flavored Markdown support
- Create dedicated MarkdownContent component
- Improved message bubble padding (16px 20px) for better spacing
- Code blocks now in separate box with dark background (#1e1e1e)
- Code blocks show language label in blue accent header
- Fixed list indentation to align properly with message text
- Lists have consistent spacing (margin/padding)
- Better blockquote styling with background and border
- Improved table styling with borders and alternating row colors
- Support for all common Markdown elements (headings, links, bold, italic, hr)
- All 52 tests passing
2026-02-26 02:03:30 +01:00
sleepy 183241536d feat: add Markdown rendering support
- Add react-markdown dependency
- Render message content as Markdown
- Style Markdown elements (code blocks, headings, lists, tables, blockquotes, etc.)
- Code blocks use monospace font with dark background
- Keep export functionality as-is (already preserves Markdown)
- All 52 tests passing
2026-02-26 01:58:46 +01:00
sleepy e8968ee87b feat: center session name in header
- Use flexbox to horizontally center session title
- Add absolute positioned spacer for menu button
- Session name now perfectly centered in the top bar
- Message count and streaming badge remain centered below
- Export button stays on the right side
- All 52 tests passing
2026-02-26 01:53:04 +01:00
sleepy 4e65745bf9 refactor: remove animations and emoji, fix layout spacing
- Remove all button shine/hover animations from CSS
- Replace all emoji with text labels
- Fix header padding to prevent overlap with drawer
  - Added left padding (80px) to header content
  - Session name is now fully visible
- Simplified empty states without icons
- Updated delete button text from icon to 'Del'
- Menu button now shows 'Menu' text instead of hamburger icon
- All 52 tests passing
2026-02-26 01:50:23 +01:00
sleepy 0789893e19 feat: improve UI styling and add streaming support
UI Improvements:
- Modern gradient buttons with hover effects and shine animation
- Better typography and spacing throughout the app
- Improved session cards with message count and timestamps
- Better styled input fields with focus states
- Smooth transitions and animations
- Added emoji icons for better visual cues
- Improved empty states with icons and better messaging

New Features:
- Added streaming toggle button in API configuration
- Real-time streaming response support with live token display
- Stop button to cancel streaming requests
- Message count display in header
- STREAMING indicator badge when enabled
- AbortController support for request cancellation
- Export now includes streaming status

Technical Changes:
- Added sendMessageStream function to llmApi
- Added streaming field to Config interface
- Updated all components to support streaming mode
- All 52 tests passing
2026-02-26 01:45:19 +01:00
sleepy 8214079093 docs: update IDEA.md to mention TypeScript and pnpm 2026-02-26 01:36:07 +01:00
sleepy 2b1838b0eb docs: update README to reflect pnpm and TypeScript
- Update tech stack section
- Replace npm commands with pnpm
- Add type-check script usage
- Add model configuration feature note
2026-02-26 01:35:55 +01:00
sleepy 7928fc1f00 refactor: convert project from JavaScript to TypeScript and switch to pnpm
- Convert all .js/.jsx files to .ts/.tsx
- Add TypeScript configuration (tsconfig.json, tsconfig.node.json)
- Update vite.config.js to vite.config.ts
- Add TypeScript type definitions (@types/react, @types/react-dom, @types/node)
- Replace npm with pnpm (pnpm-lock.yaml)
- Add model configuration option for LLM API
- Update package.json scripts for TypeScript build
- All 52 tests passing
2026-02-26 01:35:33 +01:00
sleepy 5667199d15 fix: remove deprecated bundledWebRuntime configuration option 2026-02-26 01:21:10 +01:00
sleepy f516f87ccf fix: resolve React act() warnings in ChatWindow tests and add TypeScript dependency 2026-02-26 01:20:52 +01:00
sleepy fcc8b78887 feat: initial implementation of Light Chat app with React, Capacitor, and comprehensive tests 2026-02-26 01:13:07 +01:00