Repository navigation
fix(compaction): retry summary with a larger budget #3316
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: PR Check | |
| on: | |
| pull_request: | |
| branches: | |
| - dev | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-pr-${{ github.event.pull_request.number }} | |
| cancel-in-progress: true | |
| env: | |
| CI: 'true' | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true' | |
| jobs: | |
| static: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: '24.21.0' | |
| package-manager-cache: false | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Lint | |
| run: pnpm run lint | |
| - name: Check formatting | |
| run: pnpm run format:check | |
| - name: Check translations | |
| run: pnpm run i18n | |
| - name: Check renderer architecture baseline | |
| run: pnpm run architecture:renderer-baseline:check | |
| - name: Check generated icon collections | |
| run: pnpm run icons:check | |
| - name: Typecheck | |
| run: pnpm run typecheck | |
| test-main: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: '24.21.0' | |
| package-manager-cache: false | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Test main process | |
| run: pnpm run test:main | |
| test-renderer: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: '24.21.0' | |
| package-manager-cache: false | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Test renderer | |
| run: pnpm run test:renderer | |
| env: | |
| # Reused jsdom workers accumulate heap across suites and breach the | |
| # 4GB Node default on 16GB runners; 6GB keeps two workers in budget. | |
| NODE_OPTIONS: --max-old-space-size=6144 | |
| build: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: '24.21.0' | |
| package-manager-cache: false | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Build | |
| run: pnpm run build | |
| test-native-memory: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: '24.21.0' | |
| package-manager-cache: false | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Install and verify DuckDB VSS | |
| run: | | |
| pnpm run installRuntime:duckdb:vss:linux:x64 | |
| pnpm run smoke:duckdb:vss -- --platform linux --arch x64 | |
| - name: Validate portable memory behavior | |
| run: pnpm run test:memory | |
| # better-sqlite3-multiple-ciphers 13+ ships N-API prebuilds and no longer | |
| # has an `install` script; the shipped prebuild already runs on the CI | |
| # Node ABI (validated by test:memory above). | |
| - name: Smoke native SQLite | |
| run: node scripts/smoke-memory-native-sqlite.js | |
| - name: Validate native Tape storage | |
| env: | |
| DEEPCHAT_REQUIRE_NATIVE_SQLITE: '1' | |
| run: >- | |
| pnpm exec vitest --config vitest.config.ts --run | |
| test/main/tape/compactionUsage.test.ts | |
| test/main/tape/skillMaterialization.test.ts | |
| test/main/tape/executionJournal.test.ts | |
| test/main/tape/taskContractPersistence.test.ts | |
| test/main/tape/traceInspector.test.ts | |
| test/main/session/data/tapeLifecycle.test.ts | |
| test/main/session/data/tapeLineage.test.ts | |
| test/main/session/data/tapeRecall.test.ts | |
| test/main/session/data/tapeTableMockContract.test.ts | |
| test/main/session/data/tapeToolSurfacePersistence.test.ts | |
| test/main/session/data/tapeViewReplay.test.ts | |
| test/main/session/data/tables/deepchatTapeEntriesTable.test.ts | |
| test/main/session/data/tables/deepchatPendingInputsTable.test.ts | |
| test/main/session/data/messageContent.test.ts | |
| test/main/session/data/transcriptAtomicity.test.ts | |
| test/main/session/data/transcriptProjection.test.ts | |
| - name: Validate encrypted OCR artifact storage | |
| env: | |
| DEEPCHAT_REQUIRE_NATIVE_SQLITE: '1' | |
| run: pnpm exec vitest --config vitest.config.ts --run test/main/ocr/ocrArtifactStore.test.ts test/main/ocr/documentOcrArtifactStore.test.ts | |
| - name: Validate native memory storage | |
| env: | |
| DEEPCHAT_REQUIRE_NATIVE_SQLITE: '1' | |
| DEEPCHAT_REQUIRE_NATIVE_DUCKDB_VSS: '1' | |
| run: pnpm exec vitest --config vitest.config.memory-native.ts --run | |
| - name: Validate memory retrieval quality | |
| env: | |
| DEEPCHAT_REQUIRE_NATIVE_SQLITE: '1' | |
| run: pnpm run test:memory:eval | |
| - name: Validate memory performance bounds | |
| env: | |
| DEEPCHAT_REQUIRE_NATIVE_SQLITE: '1' | |
| run: pnpm run test:main:memory-perf | |
| - name: Upload memory retrieval report | |
| if: always() | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| name: memory-retrieval-v1 | |
| path: test-results/memory/retrieval-v1.json | |
| if-no-files-found: error | |
| pr-required: | |
| if: always() | |
| needs: | |
| - static | |
| - test-main | |
| - test-renderer | |
| - test-native-memory | |
| - build | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 2 | |
| steps: | |
| - name: Verify required PR checks | |
| shell: bash | |
| env: | |
| STATIC_RESULT: ${{ needs.static.result }} | |
| TEST_MAIN_RESULT: ${{ needs.test-main.result }} | |
| TEST_RENDERER_RESULT: ${{ needs.test-renderer.result }} | |
| TEST_NATIVE_MEMORY_RESULT: ${{ needs.test-native-memory.result }} | |
| BUILD_RESULT: ${{ needs.build.result }} | |
| run: | | |
| set -euo pipefail | |
| failures=() | |
| require_success() { | |
| local job_name="$1" | |
| local result="$2" | |
| if [[ "${result}" != "success" ]]; then | |
| failures+=("${job_name}=${result}") | |
| fi | |
| } | |
| require_success "static" "${STATIC_RESULT}" | |
| require_success "test-main" "${TEST_MAIN_RESULT}" | |
| require_success "test-renderer" "${TEST_RENDERER_RESULT}" | |
| require_success "test-native-memory" "${TEST_NATIVE_MEMORY_RESULT}" | |
| require_success "build" "${BUILD_RESULT}" | |
| if (( ${#failures[@]} > 0 )); then | |
| printf 'Required PR checks did not pass:\n' >&2 | |
| printf ' - %s\n' "${failures[@]}" >&2 | |
| exit 1 | |
| fi | |
| echo "All required PR checks passed." |