Skip to content

feat: image and video thumbnail analysis via vision model #53

feat: image and video thumbnail analysis via vision model

feat: image and video thumbnail analysis via vision model #53

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Cache pip dependencies
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pip-${{ matrix.python-version }}-
- name: Install dependencies
run: pip install -e ".[dev]"
- name: Lint with ruff
run: ruff check server/
- name: Check formatting with black
run: black --check server/
- name: Run tests
run: pytest tests/ -v --cov=server --cov-report=term-missing
protect-manifesto:
name: Protect MANIFESTO.md
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check MANIFESTO.md is not modified
run: |
if git diff --name-only origin/${{ github.base_ref }}...HEAD | grep -q '^MANIFESTO.md$'; then
echo "::error::MANIFESTO.md is protected and cannot be modified via PR."
echo "The manifesto evolves only to tighten protections, never to weaken them."
echo "Changes to MANIFESTO.md require maintainer approval outside the normal PR process."
exit 1
fi
echo "MANIFESTO.md unchanged — check passed."
extension-lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate manifest.json
run: python -c "import json; json.load(open('extension/manifest.json'))"
- name: Check extension files exist
run: |
test -f extension/content.js
test -f extension/background.js
test -f extension/styles.css
test -f extension/popup/popup.html
test -f extension/popup/popup.js