Add retention functions for the two unbounded tables #127
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Harness self-check | |
| # The harness validates its own promises on every change: | |
| # - doctor: every file CLAUDE.md references exists, gate scripts compile | |
| # - golden corpus: gate verdicts on known-good/known-bad content unchanged | |
| # - full test suite: everything under tests/ passes | |
| # See docs/system/learning-loop.md ("Prove" stage). | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| jobs: | |
| self-check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| # Fast gate signal first — doctor + golden corpus run on stdlib alone, | |
| # so a broken reference or gate regression fails in seconds. | |
| - name: Harness doctor (hard checks) | |
| run: python scripts/doctor.py --ci | |
| - name: Golden corpus | |
| run: python scripts/quality_gates/golden_check.py | |
| # Plugin payloads under plugins/ are real committed files, not symlinks: | |
| # symlinks break Windows checkouts and get skipped by the plugin cache. | |
| # Fail the build if a canonical edit never reached the plugin copies. | |
| - name: Plugin assets in sync | |
| run: python scripts/sync_plugin_assets.py --check | |
| - name: Install dependencies | |
| run: | | |
| pip install -r scripts/requirements.txt | |
| pip install pytest pytest-asyncio pyyaml requests pydantic fastapi httpx respx python-dotenv supabase anthropic google-generativeai | |
| - name: Full test suite (pytest) | |
| run: python -m pytest tests -q |