fix(core): address PDF citation review feedback #25
Workflow file for this run
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: SQLite lifecycle probes | |
| on: | |
| workflow_dispatch: | |
| push: | |
| paths: | |
| - '.github/workflows/sqlite-lifecycle.yml' | |
| - 'test-int/test_sqlite_lifecycle_integration.py' | |
| - 'test-int/test_db_wal_mode.py' | |
| - 'src/basic_memory/**' | |
| - 'pyproject.toml' | |
| - 'uv.lock' | |
| - 'test-int/mcp/test_chatgpt_tools_integration.py' | |
| - 'test-int/mcp/test_concurrent_write_integration.py' | |
| permissions: | |
| contents: read | |
| jobs: | |
| lifecycle: | |
| name: SQLite lifecycle (${{ matrix.os }}, Python 3.12, run ${{ matrix.repetition }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [windows-latest, ubuntu-latest, macos-latest] | |
| repetition: [1, 2, 3] | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 15 | |
| env: | |
| UV_PYTHON: '3.12' | |
| FASTEMBED_CACHE_PATH: ${{ github.workspace }}/.cache/fastembed | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.12' | |
| - run: pip install uv | |
| - run: uv venv | |
| if: runner.os != 'macOS' | |
| # setup-python's macOS build lacks SQLite extension loading. Use the | |
| # supported uv-managed build so sqlite-vec actually runs, without mocks. | |
| - run: uv venv --managed-python | |
| if: runner.os == 'macOS' | |
| - run: uv pip install -e ".[dev,pdf]" | |
| - name: Verify actual interpreter and SQLite | |
| run: uv run python -c "import sys, sqlite3; print(sys.version); print(sqlite3.sqlite_version); assert sys.version_info[:2] == (3, 12)" | |
| - name: Download real embedding model before the timed shutdown probe | |
| timeout-minutes: 3 | |
| run: uv run python -c "import faulthandler; faulthandler.dump_traceback_later(120); from fastembed import TextEmbedding; TextEmbedding('BAAI/bge-small-en-v1.5')" | |
| - name: Run real SQLite probes without test selection caching | |
| shell: bash | |
| run: uv run pytest test-int/test_sqlite_lifecycle_integration.py test-int/test_db_wal_mode.py -v -s --no-cov --timeout=240 --junitxml=sqlite-lifecycle.xml 2>&1 | tee sqlite-lifecycle.log | |
| - name: Reproduce reported MCP pagination and high-volume writes | |
| if: always() && !cancelled() | |
| shell: bash | |
| run: >- | |
| uv run pytest | |
| test-int/mcp/test_chatgpt_tools_integration.py::test_chatgpt_search_pagination_default | |
| test-int/mcp/test_concurrent_write_integration.py::test_concurrent_write_high_volume | |
| -v -s --no-cov --timeout=120 --timeout-method=thread | |
| -o faulthandler_timeout=60 --junitxml=sqlite-mcp.xml | |
| 2>&1 | tee sqlite-mcp.log | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: sqlite-lifecycle-${{ matrix.os }}-${{ matrix.repetition }} | |
| path: | | |
| sqlite-lifecycle.xml | |
| sqlite-mcp.xml | |
| sqlite-lifecycle.log | |
| sqlite-mcp.log |