Commit Graph

523 Commits

Author SHA1 Message Date
jimmy 584aa1de19 Merge pull request 'fix: stop old containers before compose up in production deploy' (#65) from dev into main
Deploy Dashboard (Main) / Backend Tests (push) Successful in 21m50s
Deploy Dashboard (Main) / Frontend Tests (push) Successful in 59s
Deploy Dashboard (Main) / Deploy to Production (push) Failing after 4m26s
2026-05-18 00:07:43 +08:00
Gan, Jimmy 9811b7023d fix: stop old containers before compose up in production deploy
- Add docker compose down step before up to ensure the production
  container is recreated with the freshly-built image
- Without this, compose sees the old running container and skips it,
  while the Docker 24 network bug is silently swallowed by || true

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 00:07:17 +08:00
jimmy 9e83e85c8f Merge pull request 'fix: apply Docker 24 network workaround and smoke tests to production deploy' (#64) from dev into main
Deploy Dashboard (Main) / Backend Tests (push) Successful in 23m7s
Deploy Dashboard (Main) / Frontend Tests (push) Successful in 56s
Deploy Dashboard (Main) / Deploy to Production (push) Successful in 6m42s
2026-05-17 23:34:01 +08:00
Gan, Jimmy d5faa14d07 fix: apply Docker 24 network workaround and smoke tests to production deploy
- Add SECRET_KEY env to deploy job for compose variable expansion
- Replace simple docker compose up with network stripping workaround
  (Docker 24 compose fails on external networks during container creation)
- Connect containers to networks manually after compose creates them
- Add smoke tests via docker exec against localhost:4000
- Create internal network manually when compose skips it

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 23:33:00 +08:00
Gan, Jimmy deb049c889 fix: open dev port to all interfaces and run smoke tests via docker exec
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 50s
Deploy Dashboard (Dev) / Deploy to Dev (push) Successful in 4m16s
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 8m14s
- Change port binding from 127.0.0.1:4001:4000 to 4001:4000 so CI containers
  can reach the dashboard from any network namespace
- Run smoke tests via docker exec against localhost:4000 instead of curling
  the external hostname, which resolves to the Caddy VPS and times out

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 20:53:26 +08:00
Gan, Jimmy cf1de9c631 fix: add SECRET_KEY env to deploy job for compose expansion
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 13m41s
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 42s
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 3m34s
Container runtime needs SECRET_KEY in the shell environment so docker
compose can expand ${SECRET_KEY} from the compose file.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 20:31:53 +08:00
Gan, Jimmy 0ac3a896af fix: strip networks from compose file for Docker 24 compat
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 14m49s
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 43s
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 6m11s
Docker Compose v2.20.1 fails to create containers that need external
networks. Try compose directly; if container isn't created, generate a
stripped copy of the compose file without network config and retry.
Connect networks manually in both paths.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 20:09:14 +08:00
Gan, Jimmy c7073377ca fix: compose network bug - try up/direct, fallback to stripped config
Docker Compose v2.20.1 fails to create containers when external
networks can't be connected. First try compose directly; if container
isn't created, strip networks from resolved config via JSON processing
and retry. Connect networks manually in both paths.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 20:05:05 +08:00
Gan, Jimmy 91769fe2c6 fix: use network_mode:none in compose override for Docker 24 compat
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 12m48s
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 34s
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 1m27s
Docker Compose v2.20.1 still tries to connect external networks during
container creation even with networks:[]. Switch to network_mode:"none"
to fully prevent compose from touching networks, then connect them
manually after container creation.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 19:02:07 +08:00
Gan, Jimmy 9b05bd5e74 fix: fix YAML syntax error in compose override block
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 11m31s
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 55s
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 2m25s
Heredoc content at column 0 broke YAML block scalar parsing.
Replaced heredoc with echo commands to maintain consistent indentation.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 18:44:46 +08:00
Gan, Jimmy 03e4c44434 fix: bypass Docker 24 compose network bug via override file
Docker 24.0.2 compose fails to create containers when it can't connect
external networks. Strip network configs from compose and connect
them manually after container creation.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 01:30:45 +08:00
Gan, Jimmy 13480f70a3 fix: add pip timeout, retries, and mirror fallback to all CI workflows
Deploy Dashboard (Dev) / Frontend Tests (push) Has been cancelled
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been cancelled
Deploy Dashboard (Dev) / Backend Tests (push) Has been cancelled
- Wrap pip install in timeout 300 to prevent hanging on slow mirrors
- Add --retries 3 --timeout 30 to pip for better resilience
- Fallback chain: default index → Tsinghua mirror → default index
- Applied to test.yml, deploy.yml, and deploy-dev.yml

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 00:56:03 +08:00
Gan, Jimmy e12a3930fe fix: fix YAML syntax error in deploy step network verification
Deploy Dashboard (Dev) / Frontend Tests (push) Has been cancelled
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been cancelled
Deploy Dashboard (Dev) / Backend Tests (push) Has been cancelled
- Replace multi-line python3 -c with single-line to avoid YAML parser issue

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 00:15:22 +08:00
Gan, Jimmy 4bf646a4b3 fix: make deploy step resilient to transient Docker network failures
- Remove set -e from deploy step, handle errors explicitly
- Allow docker compose up to succeed even if network connect transiently fails
- Verify container exists and connect networks manually after compose
- Add network connection verification step

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 00:07:59 +08:00
Gan, Jimmy c6cd56693f fix: align deploy job with ubuntu-latest runner and fix smoke test docker access
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 33m9s
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 54s
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 1m41s
- Change deploy-dev job from runs-on: nas to runs-on: ubuntu-latest with
  container volumes mounting NAS Docker CLI, compose plugin, and compose dir
- Remove /volume1/repos/nas-tools path dependency in smoke test step
- Replace ssh nas docker with direct docker commands in smoke test script
  (container now has Docker CLI access)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-07 23:03:00 +08:00
Gan, Jimmy b0cf119a52 chore: retry CI
Deploy Dashboard (Dev) / Frontend Tests (push) Has been cancelled
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been cancelled
Deploy Dashboard (Dev) / Backend Tests (push) Has been cancelled
2026-05-07 22:49:15 +08:00
Gan, Jimmy 39199eb231 chore: retry CI 2026-05-07 22:47:36 +08:00
Gan, Jimmy 3b8388f01c fix: add npm registry fallback when npmmirror is unreachable
Deploy Dashboard (Dev) / Frontend Tests (push) Has been cancelled
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been cancelled
Deploy Dashboard (Dev) / Backend Tests (push) Has been cancelled
CI runner in China may lose connectivity to npmmirror. Falls back
to default npmjs.org registry when npm ci fails with connector errors.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-07 22:22:57 +08:00
Gan, Jimmy b092ab4583 fix: wrap Svelte HMR configureServer for vitest 3 compat
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 10m12s
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 51s
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 2m2s
Vitest 3 bundles its own Vite which omits server.config.server,
causing the Svelte plugin's hot-update configureServer hook to
throw TypeError. Catches the error safely during test runs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-07 13:15:58 +08:00
Gan, Jimmy 50e97c4a70 fix: replace actions/checkout@v4 with local git clone from Gitea
Deploy Claude Dev (Dev) / deploy-claude-dev-dev (push) Successful in 1m45s
Deploy Dashboard (Dev) / Frontend Tests (push) Has been cancelled
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been cancelled
Deploy Dashboard (Dev) / Backend Tests (push) Has been cancelled
CI runner in China can't reach GitHub to download the checkout action.
Clone directly from internal Gitea container (http://gitea:3000) instead.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-07 13:03:56 +08:00
Gan, Jimmy d978842c37 fix: upgrade vitest to v3, compat fixes for Svelte 5 + jsdom
Deploy Dashboard (Dev) / Frontend Tests (push) Failing after 43s
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been skipped
Deploy Dashboard (Dev) / Backend Tests (push) Failing after 4m0s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-07 12:37:15 +08:00
jimmy ba7e088ef5 Merge pull request 'fix: npm mirror + gitleaks resilience + Node version' (#63) from dev into main
Deploy Dashboard (Main) / Backend Tests (push) Successful in 10m36s
Deploy Dashboard (Main) / Frontend Tests (push) Failing after 6m27s
Deploy Dashboard (Main) / Deploy to Production (push) Has been skipped
2026-05-07 00:05:01 +08:00
Gan, Jimmy 6c08fc007a fix: configure npm registry mirror (npmmirror) in CI workflows
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 20m13s
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 52s
Run Tests / Secret Detection (pull_request) Successful in 2m42s
Run Tests / Backend Tests (pull_request) Successful in 35m32s
Run Tests / Frontend Tests (pull_request) Failing after 47s
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 3s
CI runner can't reach npmjs.org through GFW. Use npmmirror.com
mirror for npm package installs, same pattern as pip uses
Tsinghua mirror for backend deps.
2026-05-07 00:03:09 +08:00
jimmy deda3f5104 Merge pull request 'fix: make gitleaks job tolerant of GitHub network failures' (#62) from dev into main 2026-05-06 13:15:05 +08:00
Gan, Jimmy 0f8cd900fd fix: make gitleaks job tolerant of GitHub network failures
Run Tests / Secret Detection (pull_request) Successful in 31s
Run Tests / Backend Tests (pull_request) Successful in 18m28s
Run Tests / Frontend Tests (pull_request) Failing after 2m52s
Gitea CI runner can't reliably reach github.com (TCP reset from 20.205.243.166).
Make gitleaks job non-blocking with continue-on-error and graceful fallback
when GitHub is unreachable.
2026-05-06 13:06:38 +08:00
jimmy 4dbe437a7a Merge pull request 'fix: run gitleaks directly instead of Docker-in-Docker' (#61) from dev into main 2026-05-06 08:31:08 +08:00
Gan, Jimmy 36aceb4051 fix: run gitleaks directly instead of Docker-in-Docker
Run Tests / Secret Detection (pull_request) Successful in 30s
Run Tests / Backend Tests (pull_request) Successful in 8m10s
Run Tests / Frontend Tests (pull_request) Failing after 1m13s
Avoids bind mount path issue on NAS runner where /workspace/...
path inside CI container doesn't exist on the Docker host.
2026-05-06 08:12:51 +08:00
jimmy 7fae7dbabf Merge pull request 'fix: loosen Node version assertion in CI' (#60) from dev into main
Deploy Dashboard (Main) / Backend Tests (push) Failing after 40s
Deploy Dashboard (Main) / Frontend Tests (push) Failing after 46s
Deploy Dashboard (Main) / Deploy to Production (push) Has been skipped
2026-05-06 01:57:40 +08:00
Gan, Jimmy e8fbffeff1 fix: loosen Node version assertion in CI workflows
Run Tests / Secret Detection (pull_request) Failing after 43s
Run Tests / Backend Tests (pull_request) Successful in 8m8s
Run Tests / Frontend Tests (pull_request) Failing after 1m43s
Gitea runner image (docker.gitea.com/runner-images:ubuntu-latest)
now ships Node 24 instead of Node 20. Remove strict version check
to avoid blocking CI on runner image updates.
2026-05-06 01:56:32 +08:00
jimmy 53f4427040 Merge pull request 'feat: terminal fullscreen, asyncpg fix, CI improvements' (#59) from dev into main
Deploy Dashboard (Main) / Backend Tests (push) Successful in 8m11s
Deploy Dashboard (Main) / Frontend Tests (push) Failing after 24s
Deploy Dashboard (Main) / Deploy to Production (push) Has been skipped
2026-05-06 01:30:56 +08:00
Gan, Jimmy dd64420de1 feat: Phase 13 — off-site backup with rclone + crypt encryption
Run Tests / Secret Detection (pull_request) Failing after 6m45s
Run Tests / Backend Tests (pull_request) Failing after 3m2s
Run Tests / Frontend Tests (pull_request) Failing after 30s
Adds cloud sync extension to the daily backup script using rclone
with client-side AES-256 encryption. Includes interactive setup
script for configuring OneDrive, Google Drive, or any rclone provider.

- scripts/setup-rclone.sh: interactive NAS rclone installer + config
- scripts/cloud-backup.sh: sourced by backup.sh when CLOUD_ENABLED=true
- backup.sh: cloud sync step runs after local backup

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-06 01:21:41 +08:00
Gan, Jimmy 0a497ca0f1 fix: resolve test failures blocking CI pipeline (OPC mock, route ordering, system stats)
Run Tests / Secret Detection (pull_request) Failing after 42s
Run Tests / Backend Tests (pull_request) Successful in 32m26s
Run Tests / Frontend Tests (pull_request) Failing after 26s
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 30m35s
Deploy Dashboard (Dev) / Frontend Tests (push) Failing after 16m37s
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been skipped
- Add agent fetchrow to OPC mock to fix "Task or agent not found" errors
- Reorder conversation tracker routes: /search, /stats, /trigger before /{session_id}
- Fix test_task_creator_tracked_in_metadata to expect token username (testuser)
- Mock shutil/psutil in system stats test for non-Synology environments

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 22:15:12 +08:00
Gan, Jimmy 56a8ff28ad fix: resolve CI test failures — schema, OPC mocking, download auth, router reloads
Fix 20 pre-existing test failures:
- Update mock conversation DB schema with missing columns
- Add in-memory OPC database mock to avoid PostgreSQL dependency in CI
- Fix file download endpoint to check auth before revealing file existence
- Reload routers.system and routers.security in test_app for fresh config
- Reset cached Docker client in security router between tests
- Fix websocket auth test to properly check for connection rejection

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 21:57:00 +08:00
Gan, Jimmy e8534728ef ci: add workflow_dispatch to deploy-dev for manual triggers
Deploy Dashboard (Dev) / Backend Tests (push) Failing after 10m21s
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 2m9s
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been skipped
Run Tests / Secret Detection (pull_request) Failing after 23s
Run Tests / Backend Tests (pull_request) Failing after 10m52s
Run Tests / Frontend Tests (pull_request) Failing after 6m25s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 18:44:08 +08:00
Gan, Jimmy 019fddc079 dashboard: externalize service URLs and network config (Sprint 03 config externalization)
Deploy Dashboard (Dev) / Backend Tests (push) Failing after 2m17s
Deploy Dashboard (Dev) / Frontend Tests (push) Failing after 3m34s
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been skipped
Run Tests / Secret Detection (pull_request) Failing after 30s
Run Tests / Backend Tests (pull_request) Failing after 2m18s
Run Tests / Frontend Tests (pull_request) Failing after 18s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 18:28:05 +08:00
Gan, Jimmy 59bdcf392c fix: reconcile required-tools.txt smoke checks (S04.5)
Deploy Claude Dev (Dev) / deploy-claude-dev-dev (push) Successful in 1m32s
Run Tests / Secret Detection (pull_request) Failing after 1m0s
Run Tests / Backend Tests (pull_request) Failing after 2m33s
Run Tests / Frontend Tests (pull_request) Failing after 27s
- Replace openssh-client with ssh (checkable binary name)
- Remove socat (not a claude-dev container dependency)
- Handle ca-certificates as special package check in smoke-tools.sh
- Add SPECIAL_CHECKS array for packages without matching binaries

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 18:13:59 +08:00
Gan, Jimmy 0c3d2f854b ci: re-trigger CI after NO_PROXY runner config fix
Deploy Claude Dev (Dev) / deploy-claude-dev-dev (push) Failing after 1m10s
Run Tests / Secret Detection (pull_request) Failing after 6m27s
Run Tests / Frontend Tests (pull_request) Failing after 29s
Run Tests / Backend Tests (pull_request) Failing after 12m47s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 18:10:10 +08:00
Gan, Jimmy f85dc25762 ci: add socat to required-tools for VPS proxy tunnel support
Deploy Claude Dev (Dev) / deploy-claude-dev-dev (push) Failing after 50s
Run Tests / Secret Detection (pull_request) Failing after 42s
Run Tests / Backend Tests (pull_request) Failing after 55s
Run Tests / Frontend Tests (pull_request) Failing after 44s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 17:58:01 +08:00
Gan, Jimmy f7cfad30e3 ci: re-trigger CI with runner proxy fix
Run Tests / Secret Detection (pull_request) Failing after 6m21s
Run Tests / Backend Tests (pull_request) Failing after 1m3s
Run Tests / Frontend Tests (pull_request) Failing after 50s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 17:57:40 +08:00
Gan, Jimmy 6070a904b7 fix: remove --cache-to flag from non-BuildKit docker build commands
Deploy Claude Dev (Dev) / deploy-claude-dev-dev (push) Failing after 43s
Deploy Dashboard (Dev) / Backend Tests (push) Failing after 43s
Run Tests / Secret Detection (pull_request) Failing after 43s
Deploy Dashboard (Dev) / Frontend Tests (push) Failing after 41s
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been skipped
Run Tests / Backend Tests (pull_request) Failing after 6m23s
Run Tests / Frontend Tests (pull_request) Failing after 18s
The --cache-to type=inline flag is only valid with DOCKER_BUILDKIT=1.
With BuildKit disabled, it causes docker build to fail with exit 125.
Keep the documentation comments for when BuildKit is re-enabled.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 17:32:05 +08:00
Gan, Jimmy 3e177c703e ci: Sprint 04 — CI/CD reliability (BuildKit docs, cache-to, version pins, cleanup, compose validation)
Deploy Claude Dev (Dev) / deploy-claude-dev-dev (push) Failing after 40s
Run Tests / Secret Detection (pull_request) Failing after 2m26s
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been cancelled
Deploy Dashboard (Dev) / Backend Tests (push) Has been cancelled
Deploy Dashboard (Dev) / Frontend Tests (push) Has been cancelled
Run Tests / Backend Tests (pull_request) Failing after 11m46s
Run Tests / Frontend Tests (pull_request) Failing after 46s
- Document DOCKER_BUILDKIT=0 rationale in all deploy workflows
- Add --cache-to type=inline to all docker build commands
- Pin Python 3.12 and Node 20 with version assertions in CI
- Remove dead test-summary job from test.yml
- Reconcile required-tools.txt with Dockerfile.base (bash, ca-certificates, openssh-client)
- Clean up stale artifacts (Dockerfile comment, orphaned .md files)
- Add docker-compose config validation before claude-dev deploy

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 17:25:03 +08:00
Gan, Jimmy 1a37f34401 auth: Sprint 02 — auth hardening (Pydantic models, challenge binding, admin gates)
- Add max_length validation to LoginRequest (username 128, password 1024)
- Replace raw request.json() with Pydantic models in RBAC override/update endpoints
- Replace raw request.json() with Pydantic models in passkey register/login/delete
- Bind passkey challenges to session-bound challenge_id (prevents cross-session replay)
- Gate audit log and security log endpoints behind admin role
- Fix fragile opc_db.json.dumps() → import json directly
- Add COOKIE_SECURE=False startup warning (suppress with ALLOW_INSECURE_COOKIES)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 13:45:42 +08:00
Gan, Jimmy 323ae474a8 stability: Sprint 01 — production stability (dev runner, test gate, Docker UI, cpu_percent)
- Fix dev deploy runner label (ubuntu-latest → nas)
- Add backend + frontend test gate to dev deploy (tests must pass before deploy)
- Add error handling UI to Docker.svelte (error state with retry button)
- Fix psutil.cpu_percent always returning 0 on first call (interval=0 → 0.1)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 13:35:57 +08:00
Gan, Jimmy ddaf3c6cee security: Sprint 00 — critical security fixes (OPC WS auth, Transmission creds, SECRET_KEY, passkey rate limit)
- Add JWT token auth to OPC WebSocket (unauthenticated → 403, per-user tracking)
- Externalize Transmission RPC credentials to TRANSMISSION_USER/PASS env vars
- Remove hardcoded SECRET_KEY fallback from dev compose
- Rate-limit passkey register options endpoint at 5/minute
- Add PDD (docs/improvement-plan.md) and sprint specs (specs/)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 13:31:25 +08:00
Gan, Jimmy 5c7d185953 fix: update mock database schema to match conversation tracker queries
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 1m52s
Run Tests / Backend Tests (pull_request) Failing after 47s
Run Tests / Frontend Tests (pull_request) Failing after 4m27s
Run Tests / Test Summary (pull_request) Failing after 17s
- Add missing columns: slug, model, conversation_count, total_messages, total_tokens, created_at, project_path
- Fix test data insert to include all required columns

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 16:40:24 +08:00
Gan, Jimmy f00b230c5e fix: resolve test failures in CI
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 3m54s
Run Tests / Backend Tests (pull_request) Failing after 21m30s
Run Tests / Frontend Tests (pull_request) Failing after 2m10s
Run Tests / Test Summary (pull_request) Failing after 17s
- Frontend: Fix Svelte plugin hot module config for vitest
- Backend: Ensure conversation tracker uses mocked database in tests

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 16:11:51 +08:00
Gan, Jimmy 0338130133 fix: re-enable test workflow with reliable triggers and production gate
Run Tests / Backend Tests (pull_request) Failing after 23m37s
Run Tests / Frontend Tests (pull_request) Failing after 1m47s
Run Tests / Test Summary (pull_request) Failing after 14s
- Re-enable test.yml to run on PRs to main (not every push)
- Add cache validation with fallback to fresh install for both Python/Node
- Add PyPI fallback when mirror fails
- Increase pytest timeout from 30s to 60s
- Add backend+frontend test gate to production deploy workflow

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 17:09:31 +08:00
Gan, Jimmy c78c77fc6e test: trigger deploy-dev workflow
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 24m13s
2026-04-22 01:59:16 +08:00
jimmy 4d5f87ee21 fix: remove test jobs from production deploy workflow
Deploy Dashboard (Main) / Deploy to Production (push) Failing after 43s
fix: remove test jobs from production deploy workflow
2026-04-22 01:48:12 +08:00
Gan, Jimmy 2134f45f65 fix: remove test jobs from production deploy workflow 2026-04-22 01:47:44 +08:00