Commit Graph

9 Commits

Author SHA1 Message Date
Nicolas Varrot
be8f5b62ff fix: drop Node 18 from CI matrix — Vite 7.3 requires Node 20.19+
- Remove Node 18 from CI test matrix (crypto.hash not available)
- Update engines field to >=20.19
- Update README Node.js version references
2026-02-13 12:58:23 +00:00
Nicolas Varrot
0e4ae0ed7f ci: add test coverage reporting with v8 provider
- Add vitest.config.ts with v8 coverage provider
- Add npm run test:coverage script
- Add coverage step to CI (Node 22, reports in job summary)
- Coverage tracks src/lib/ utilities (currently ~21% lines)
- Install @vitest/coverage-v8 dev dependency
2026-02-13 07:27:02 +00:00
Nicolas Varrot
c4725e65c2 feat: add Vitest unit tests for utility functions
- Set up Vitest with 27 tests across 3 test suites
- relativeTime: edge cases, time buckets, future timestamps
- sessionDisplayName: labels, kinds, channels, UUID truncation
- messagesToMarkdown: roles, blocks, tool calls, system events
- Add test and test:watch npm scripts
- Add test step to CI workflow
2026-02-13 06:58:39 +00:00
Nicolas Varrot
313242cbd9 fix(ci): lowercase Docker image tags — ghcr.io requires lowercase repo names 2026-02-12 17:49:14 +00:00
Nicolas Varrot
aa158ad090 ci: add release workflow with semver Docker tags and GitHub Releases
- New release.yml: triggers on v* tags, builds/pushes Docker with vX.Y.Z, vX.Y, vX, latest tags, creates GitHub Release with changelog
- Updated docker.yml: main pushes now tag as 'edge' (dev) instead of 'latest'
- latest tag is now only set by the release workflow on version tags
2026-02-12 14:44:33 +00:00
Nicolas Varrot
916910f5ce fix: resolve all ESLint errors and add lint step to CI
- Extract credential helpers to src/lib/credentials.ts (fixes react-refresh/only-export-components)
- Extract buildImageSrc to src/lib/image.ts (fixes react-refresh/only-export-components)
- Reorder useCallback declarations in useGateway to fix react-hooks/immutability
- Sync refs via useEffect instead of during render (fixes react-hooks/refs)
- Replace useState initializer effect with lazy initializer functions in LoginScreen
- Add comments to empty catch blocks (fixes no-empty)
- Remove unused variable (fixes @typescript-eslint/no-unused-vars)
- Downgrade react-hooks/set-state-in-effect to warning (valid init/status patterns)
- Add lint step to CI workflow (runs before type-check and build)
2026-02-11 23:37:37 +00:00
Nicolas Varrot
4f47732fa0 docs: add GitHub Pages landing page with features showcase 2026-02-11 17:36:04 +00:00
Nicolas Varrot
5fd73001f7 feat: add Docker support with Dockerfile, compose, CI, and oneliner install
- Multi-stage Dockerfile (node build + nginx:alpine serve)
- nginx.conf with SPA fallback, gzip, asset caching
- docker-compose.yml for easy deployment
- GitHub Actions workflow to build & push to ghcr.io on every push
- .dockerignore to keep image lean
- Updated README with Docker-first quick start and badge
2026-02-11 16:31:33 +00:00
Nicolas Varrot
a6b26b0b0d ci: add GitHub Actions CI workflow + README badges
- CI runs build + type check on Node 18/20/22 for push & PRs
- Add CI status, license, and Node.js version badges to README
- Replace placeholder screenshot with contribution note
2026-02-11 09:50:47 +00:00