Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
fcb72e6
chore(deps): update pytest requirement in /backend-service (#238)
dependabot[bot] Jun 15, 2026
1b11e4a
chore(deps): update fastapi requirement in /backend-service (#239)
dependabot[bot] Jun 15, 2026
e23acc2
chore(deps): update google-auth requirement in /backend-service (#240)
dependabot[bot] Jun 15, 2026
ebc5b8d
chore(deps): update redis requirement in /backend-service (#241)
dependabot[bot] Jun 15, 2026
204761c
chore(deps): update fastapi requirement in /ai-service (#244)
dependabot[bot] Jun 15, 2026
7401496
chore(deps): update accelerate requirement in /ai-service (#245)
dependabot[bot] Jun 15, 2026
7f20973
chore(deps): update sentence-transformers requirement in /ai-service …
dependabot[bot] Jun 15, 2026
f2285f1
chore(deps): bump pytest from 9.0.3 to 9.1.0 in /ai-service (#248)
dependabot[bot] Jun 15, 2026
7258475
chore(deps): update langchain-core requirement in /ai-service (#247)
dependabot[bot] Jun 15, 2026
5b63a97
chore(deps): update peft requirement in /ai-service (#243)
dependabot[bot] Jun 15, 2026
fe4dc12
chore(deps): update langgraph requirement in /ai-service (#249)
dependabot[bot] Jun 15, 2026
41ea780
chore(deps-dev): bump @types/node in /admin-service (#250)
dependabot[bot] Jun 15, 2026
3f3054c
chore(deps): bump react-hook-form in /admin-service (#251)
dependabot[bot] Jun 15, 2026
1401bea
chore(deps): bump axios from 1.17.0 to 1.18.0 in /admin-service (#253)
dependabot[bot] Jun 15, 2026
f71267d
chore(deps): bump lucide-react from 1.17.0 to 1.18.0 in /admin-servic…
dependabot[bot] Jun 15, 2026
2fc7bad
chore(deps): bump vercel from 54.6.1 to 54.14.0 in /admin-service (#254)
dependabot[bot] Jun 15, 2026
9ee5f0f
chore(deps): bump antd from 6.4.3 to 6.4.4 in /admin-service (#252)
dependabot[bot] Jun 15, 2026
7f13600
feat(backend-service): update vocabulary import scripts and docker mo…
InfinityZero3000 Jun 15, 2026
78dc603
feat(backend-service): add vocabulary importing, expansion, and helpe…
InfinityZero3000 Jun 15, 2026
9143989
fix(admin, docker): resolve admin TypeScript compile errors & Celery …
InfinityZero3000 Jun 16, 2026
546aaf6
feat: implement daily login rewards, streak restore, and training act…
InfinityZero3000 Jun 16, 2026
0179164
fix(ai-service): resolve startup failures, database creation path, gr…
InfinityZero3000 Jun 16, 2026
05659e7
chore(deps): update transformers requirement in /ai-service (#242)
dependabot[bot] Jun 16, 2026
9de7e39
feat: streaming STT, Phase 3-5 hardening, and production CORS/metrics…
InfinityZero3000 Jun 18, 2026
7edfa56
refactor: Clean Architecture migration — F3 Flutter features + backen…
InfinityZero3000 Jun 18, 2026
a9171ea
Merge remote-tracking branch 'origin/main' into dev
InfinityZero3000 Jun 18, 2026
0e4291a
feat(auth): password reset deep link, auth UI polish, and security fixes
InfinityZero3000 Jun 19, 2026
3702165
feat(streak): integrate streak updates in game result and YouTube pla…
InfinityZero3000 Jun 19, 2026
f13971a
chore: update version to 1.7.0+17 in pubspec.yaml
InfinityZero3000 Jun 19, 2026
465c010
feat: add alembic migration to merge database heads and clean up redu…
InfinityZero3000 Jun 19, 2026
aae2f08
feat: merge database heads and configure dynamic DNS resolution for u…
InfinityZero3000 Jun 19, 2026
2958a79
ci: add GitHub → GitLab mirror workflow
InfinityZero3000 Jun 19, 2026
e23a388
feat: add GitLab mirror workflow and update various messages in the a…
InfinityZero3000 Jun 19, 2026
e8df4b9
fix(backend,gateway): fix cache keys, enum serialization, nginx conne…
InfinityZero3000 Jun 19, 2026
a784a9e
feat: implement user account permanent deletion functionality and upd…
InfinityZero3000 Jun 19, 2026
0d8f357
fix(backend): allow localhost origins in prod CORS regex for local de…
InfinityZero3000 Jun 20, 2026
3bd8236
feat(security,fix): implement container & network hardening, secure h…
InfinityZero3000 Jun 19, 2026
939c7d7
chore: remove unused icon assets from the project
InfinityZero3000 Jun 20, 2026
19ca41a
Update animation assets and remove unused files
InfinityZero3000 Jun 21, 2026
e38ae30
Remove outdated design specifications for language flag preload, road…
InfinityZero3000 Jun 21, 2026
aed1b4d
chore: update iOS bundle identifier to com.lexilingo.lexilingoApp
InfinityZero3000 Jun 21, 2026
232e18a
chore(deps): update fastapi requirement in /backend-service (#260)
dependabot[bot] Jun 22, 2026
e584826
chore(deps): update kombu requirement in /backend-service (#262)
dependabot[bot] Jun 22, 2026
44bc1e2
chore(deps): update google-auth requirement in /backend-service (#263)
dependabot[bot] Jun 22, 2026
789211e
chore(deps): update sqlalchemy requirement in /backend-service (#264)
dependabot[bot] Jun 22, 2026
2b20ae4
chore(deps): update sentry-sdk requirement in /backend-service (#265)
dependabot[bot] Jun 22, 2026
a76d7f7
chore(deps): update redis requirement in /backend-service (#267)
dependabot[bot] Jun 22, 2026
471dc60
chore(deps): update pydantic-settings requirement in /backend-service…
dependabot[bot] Jun 22, 2026
f00cf98
chore(deps): update llama-cpp-python requirement in /ai-service (#268)
dependabot[bot] Jun 22, 2026
895dfd4
chore(deps): update langchain-core requirement in /ai-service (#269)
dependabot[bot] Jun 22, 2026
159136b
chore(deps): update fastapi requirement in /ai-service (#270)
dependabot[bot] Jun 22, 2026
8741398
chore(deps): bump torch from 2.2.2 to 2.12.1 in /ai-service (#273)
dependabot[bot] Jun 22, 2026
633aeed
chore(deps): bump sherpa-onnx from 1.13.2 to 1.13.3 in /ai-service (#…
dependabot[bot] Jun 22, 2026
9f13d79
chore(deps): update langgraph requirement in /ai-service (#272)
dependabot[bot] Jun 22, 2026
2350be4
chore(deps): bump moonshine-voice from 0.0.59 to 0.0.62 in /ai-servic…
dependabot[bot] Jun 22, 2026
89ef1f3
chore(deps): bump vercel from 54.14.0 to 54.14.5 in /admin-service (#…
dependabot[bot] Jun 22, 2026
8abaef9
chore(deps): bump react-router-dom in /admin-service (#278)
dependabot[bot] Jun 22, 2026
cfe391f
chore(deps): bump lucide-react from 1.18.0 to 1.21.0 in /admin-servic…
dependabot[bot] Jun 22, 2026
9455810
chore(deps-dev): bump @types/node in /admin-service (#281)
dependabot[bot] Jun 22, 2026
f5ed2e0
chore(deps): bump react-hook-form in /admin-service (#279)
dependabot[bot] Jun 22, 2026
0751a4b
feat: add Flutter UI file inventory report and remove outdated endpoi…
InfinityZero3000 Jun 22, 2026
c81e759
feat(flutter): game-style icon system, responsive login fit, iOS conf…
InfinityZero3000 Jun 22, 2026
86c70c9
Merge branch 'dev' of https://github.com/InfinityZero3000/LexiLingo i…
InfinityZero3000 Jun 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
128 changes: 125 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,11 @@ jobs:
run: pip install -r requirements.txt

- name: Install test dependencies
run: pip install pytest-cov
run: pip install pytest-cov ruff

- name: Ruff baseline
continue-on-error: true
run: ruff check app

- name: Wait for PostgreSQL
run: |
Expand Down Expand Up @@ -137,6 +141,124 @@ jobs:
name: backend-coverage
path: backend-service/coverage.xml

# ──────────────────────────────────────────────
# AI service — focused lint, import, and STT tests
# ──────────────────────────────────────────────
ai:
name: AI Lint, Import & STT Tests
runs-on: ubuntu-latest

defaults:
run:
working-directory: ai-service

env:
PYTHONPATH: .
APP_ENV: testing
DEBUG: "False"
DATABASE_URL: sqlite+aiosqlite:///./ci-ai.db
SECRET_KEY: ci-secret-key-not-for-production
GEMINI_API_KEY: ""
GROQ_API_KEY: ""
OPENAI_API_KEY: ""

steps:
- uses: actions/checkout@v6

- name: Set up Python 3.11
uses: actions/setup-python@v6
with:
python-version: "3.11"
cache: pip
cache-dependency-path: ai-service/requirements.txt

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -c constraints-ai.txt -r requirements.txt ruff

- name: Ruff focused STT correctness checks
run: ruff check --select E9,F63,F7,F82 api/routes/stt.py api/services/stt tests/stt

- name: Check app import
run: python -c "from api.main import app; print(app.title)"

- name: Run focused STT tests
run: |
pytest \
tests/stt \
tests/test_dependency_constraints.py \
tests/test_lexi_session_management.py \
tests/trace_cag/test_edges_routing.py \
tests/trace_cag/test_pipeline_integration.py \
--tb=short -q

# ──────────────────────────────────────────────
# MCP server — import and startup protocol smoke
# ──────────────────────────────────────────────
mcp:
name: MCP Pytest & Startup Smoke
runs-on: ubuntu-latest

defaults:
run:
working-directory: mcp-server

steps:
- uses: actions/checkout@v6

- name: Set up Python 3.11
uses: actions/setup-python@v6
with:
python-version: "3.11"
cache: pip
cache-dependency-path: mcp-server/requirements.txt

- name: Install dependencies
run: pip install -r requirements.txt

- name: Check server import
run: python -c "from server import server; print(type(server).__name__)"

- name: Run MCP resource, security, and startup tests
run: |
pytest \
tests/test_resources.py \
tests/test_security_configuration.py \
tests/test_integration.py::test_mcp_server_startup \
tests/test_integration.py::test_list_resources \
--tb=short -q

# ──────────────────────────────────────────────
# Admin — reproducible install, build check, Vitest
# ──────────────────────────────────────────────
admin:
name: Admin Build & Tests
runs-on: ubuntu-latest

defaults:
run:
working-directory: admin-service

steps:
- uses: actions/checkout@v6

- name: Set up Node.js 24
uses: actions/setup-node@v6
with:
node-version: "24"
cache: npm
cache-dependency-path: admin-service/package-lock.json

- name: Install dependencies
run: npm ci

- name: Build and type check baseline
run: npm run build:check

- name: Run Vitest
run: npm test

# ──────────────────────────────────────────────
# Flutter — analyze + test
# ──────────────────────────────────────────────
Expand Down Expand Up @@ -190,8 +312,8 @@ jobs:
name: flutter-analyze-output
path: flutter-app/analyze-output.txt

- name: Run unit tests
run: flutter test --no-pub -r compact test/core test/features
- name: Run full test suite
run: flutter test --no-pub -r compact

- name: Check formatting (non-blocking)
run: dart format --output=none --set-exit-if-changed lib/
Expand Down
24 changes: 24 additions & 0 deletions .github/workflows/mirror-to-gitlab.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Mirror to GitLab

on:
push:
branches: ["**"]
delete:
branches: ["**"]

jobs:
mirror:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Push mirror to GitLab
env:
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
GITLAB_USERNAME: ${{ secrets.GITLAB_USERNAME }}
GITLAB_REPO: ${{ secrets.GITLAB_REPO }}
run: |
git remote add gitlab "https://${GITLAB_USERNAME}:${GITLAB_TOKEN}@${GITLAB_REPO}"
git push --mirror gitlab
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,13 @@ system-testing/
# deployment artifacts
dist/
build/
*.tsbuildinfo
.deploy/
backups/

# Runtime-generated knowledge graph sync metadata
**/data/*_synced_files.json

# gateway runtime security logs
gateway/nginx/logs/*.log
default.conf
Expand All @@ -149,6 +153,7 @@ scripts
.claude/worktrees/

# Local tool caches
.claude/
.claire/
.crawl4ai/
ai-service/.crawl4ai/
8 changes: 8 additions & 0 deletions .gitleaks.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,14 @@ paths = [
'''(^|/)lexilingo_app/lib/firebase_options\.dart$''',
]

# Fake API keys used as test fixtures — not real credentials.
[[allowlists]]
description = "Test fixture placeholder API keys"
targetRules = ["generic-api-key", "google-gemini-api-key", "gcp-api-key"]
paths = [
'''(^|/)ai-service/tests/test_admin_routes\.py$''',
]

# These examples intentionally use non-secret placeholders.
[[allowlists]]
description = "Documentation and local gateway placeholders"
Expand Down
3 changes: 3 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
| Code Reviewer | `.claude/agents/code-reviewer.md` | After any non-trivial change |
| Test Writer | `.claude/agents/test-writer.md` | New feature or bug fix |
| Security Reviewer | `.claude/agents/security-reviewer.md` | Auth, API, DB schema changes |
| Kaiser | `.claude/agents/kaiser.md` | Technical debt audits, pre-sprint cleanup, when a service feels "heavy" |

## Ownership Map

Expand All @@ -18,6 +19,7 @@
| `ai-service/` | main Claude | AI pipeline, STT |
| Tests | test-writer | Never let main agent skip tests |
| Security surface | security-reviewer | Routes, auth middleware, env vars |
| Technical debt | kaiser | Debt register, architecture violations, dead code, complexity hotspots |

## Coordination Protocol

Expand All @@ -26,6 +28,7 @@
3. **Spawn test-writer** after every feature implementation.
4. **Spawn security-reviewer** when touching: auth routes, JWT handling, DB migrations, env/config files.
5. **Spawn code-reviewer** before any PR — use `/code-review` skill.
6. **Spawn kaiser** for quarterly debt audits, before major refactors, or when a module starts accumulating complexity.

## Task Decomposition (Large Tasks)

Expand Down
Loading
Loading