Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
7172ef1
Complete comprehensive project overhaul with enterprise-grade tooling
vlordier Aug 18, 2025
8dbc852
Add comprehensive Playwright E2E testing framework and documentation
vlordier Aug 18, 2025
fe00e56
Enhance Playwright E2E tests with comprehensive screenshots and edge …
vlordier Aug 18, 2025
57333c8
Add intelligent LLM provider auto-detection with LM Studio as default
vlordier Aug 18, 2025
5545e10
Address code review feedback from Gemini Code Assist
vlordier Aug 18, 2025
42fa2f8
Fix CI/CD pipeline issues and upgrade deprecated GitHub Actions
vlordier Aug 18, 2025
f6ba5c4
Merge pull request #2 from vlordier/fix/security-vulnerabilities
vlordier Aug 18, 2025
0662568
Address code review feedback from Gemini Code Assist
vlordier Aug 18, 2025
cffdff4
Fix PR #7 code review issues: improve type safety and documentation
vlordier Aug 18, 2025
16bfb55
Fix CI failure: update Node.js version requirement to 20.x
vlordier Aug 18, 2025
36174cc
Fix CI formatting issues
vlordier Aug 18, 2025
88f3c3a
Fix code quality issues: remove unused variables and improve types
vlordier Aug 18, 2025
b4ad00b
Fix critical CI error: make Google AI client initialization lazy
vlordier Aug 18, 2025
b7dfe26
Fix all E2E test TypeScript errors for CI compatibility
vlordier Aug 18, 2025
06e13e3
Fix security audit workflow: correct npm audit JSON format and parsing
vlordier Aug 18, 2025
3db8825
Merge branch 'fork/local_llm' into develop
vlordier Aug 18, 2025
bdc2bc4
Implement minimal post-processing: depth blur + tiny vignette
vlordier Aug 19, 2025
94140ff
Add modular post-processing system with bloom effect for old webcam look
vlordier Aug 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Copy this file to .env and configure your preferred LLM provider
# The system will AUTO-DETECT which provider to use based on your configuration!
# Just uncomment ONE of the options below:

# =============================================================================
# OPTION 1: Google Gemini (Cloud-based, requires API key)
# =============================================================================
# Uncomment to use Google Gemini:
# GOOGLE_API_KEY=your_google_api_key_here

# =============================================================================
# OPTION 2: Ollama (Local, free)
# =============================================================================
# Uncomment to use Ollama:
# OLLAMA_BASE_URL=http://localhost:11434
# OLLAMA_MODEL=llama3.2:latest

# =============================================================================
# OPTION 3: LM Studio (Local, free) - DEFAULT
# =============================================================================
# Uncomment to use LM Studio (or leave as default):
LMSTUDIO_BASE_URL=http://localhost:1234
LMSTUDIO_MODEL=llama-3.2-1b-instruct

# =============================================================================
# Advanced: Manual Override (optional)
# =============================================================================
# Force a specific provider (overrides auto-detection):
# LLM_PROVIDER=google

# =============================================================================
# Other Configuration
# =============================================================================
# ElevenLabs Text-to-Speech (optional)
# ELEVENLABS_API_KEY=your_elevenlabs_api_key
1 change: 0 additions & 1 deletion .eslintignore

This file was deleted.

72 changes: 72 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: CI/CD Pipeline

on:
push:
branches: [main, develop]
pull_request:
branches: [main]

jobs:
quality-checks:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20.x]

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'

- name: Install dependencies
run: npm ci || npm install

- name: Run format check
run: npm run format:check

- name: Run linting
run: npm run lint

- name: Run type checking
run: npm run check

- name: Run security audit
run: npm audit --audit-level=moderate
continue-on-error: true

- name: Build project
run: npm run build

- name: Check build output
run: ls -la build/ || ls -la dist/ || echo "Build directory not found"

security-scan:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
cache: 'npm'

- name: Install dependencies
run: npm ci || npm install

- name: Run npm audit
run: npm audit --audit-level=high
continue-on-error: true

- name: Check for known vulnerabilities
run: |
echo "Checking for security vulnerabilities..."
npm audit --audit-level=moderate --parseable | head -20 || true
8 changes: 4 additions & 4 deletions .github/workflows/cla.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
name: "CLA Assistant"
name: 'CLA Assistant'
on:
issue_comment:
types: [created]
pull_request_target:
types: [opened,closed,synchronize]
types: [opened, closed, synchronize]

# explicitly configure permissions, in case your GITHUB_TOKEN workflow permissions are set to read-only in repository settings
permissions:
Expand All @@ -16,7 +16,7 @@ jobs:
CLAAssistant:
runs-on: ubuntu-latest
steps:
- name: "CLA Assistant"
- name: 'CLA Assistant'
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
uses: contributor-assistant/github-action@v2.6.1
env:
Expand All @@ -31,7 +31,7 @@ jobs:
branch: 'main'
allowlist: user1,bot*

# the followings are the optional inputs - If the optional inputs are not given, then default values will be taken
# the followings are the optional inputs - If the optional inputs are not given, then default values will be taken
#remote-organization-name: enter the remote organization name where the signatures should be stored (Default is storing the signatures in the same repository)
#remote-repository-name: enter the remote repository name where the signatures should be stored (Default is storing the signatures in the same repository)
#create-file-commit-message: 'For example: Creating file for storing CLA Signatures'
Expand Down
84 changes: 84 additions & 0 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Security Audit

on:
push:
branches: [main, develop]
pull_request:
branches: [main]
schedule:
# Run security audit daily at 2 AM UTC
- cron: '0 2 * * *'

jobs:
security-audit:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
cache: 'npm'

- name: Install dependencies
run: npm ci || npm install

- name: Run npm audit (allow low severity)
run: npm audit --audit-level=moderate
continue-on-error: true

- name: Run npm audit for high/critical
run: npm audit --audit-level=high

- name: Check for vulnerable dependencies
run: |
echo "Checking for high/critical vulnerabilities..."
npm audit --audit-level=high --json > audit-results.json 2>/dev/null || echo "Audit completed"

# Check if there are any high/critical vulnerabilities using correct JSON structure
HIGH_CRITICAL=$(npm audit --audit-level=high --json 2>/dev/null | grep -o '"high": [0-9]*' | grep -o '[0-9]*' || echo "0")
CRITICAL=$(npm audit --audit-level=high --json 2>/dev/null | grep -o '"critical": [0-9]*' | grep -o '[0-9]*' || echo "0")

echo "High vulnerabilities found: $HIGH_CRITICAL"
echo "Critical vulnerabilities found: $CRITICAL"

if [ "$HIGH_CRITICAL" != "0" ] || [ "$CRITICAL" != "0" ]; then
echo "❌ High or critical vulnerabilities found!"
exit 1
else
echo "✅ No high or critical vulnerabilities found"
fi

- name: Upload audit results
uses: actions/upload-artifact@v4
if: always()
with:
name: security-audit-results
path: audit-results.json
retention-days: 30

dependency-review:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Dependency Review
uses: actions/dependency-review-action@v4
with:
fail-on-severity: moderate
allow-licenses: MIT, Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC
continue-on-error: true

- name: Manual dependency diff check
if: failure()
run: |
echo "⚠️ GitHub Advanced Security dependency review not available."
echo "Performing manual dependency comparison..."
git fetch origin ${{ github.base_ref }}
git diff origin/${{ github.base_ref }}...HEAD package-lock.json || echo "No package-lock.json changes detected"
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,6 @@ Thumbs.db
# Vite
vite.config.js.timestamp-*
vite.config.ts.timestamp-*

# Test results
test-results/
1 change: 1 addition & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
npm run precommit
Binary file added .playwright-mcp/minimal-postprocessing-test.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading