mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-26 09:16:10 +00:00
* refactor(sessions): migrate runtime storage to sqlite * test(sessions): fix sqlite CI regressions * test(sessions): align remaining sqlite fixtures * fix(codex): require sqlite trajectory recorder * test(sessions): align orphan recovery sqlite fixture * test(sessions): align sqlite rebase fixtures * fix(sessions): finish current-main integration of the sqlite flip Resolve the whole-store SDK removal across its owner boundary: drop the loadSessionStore re-export and the registry whole-store wrappers, wire hasTrackedActiveSessionRun into gateway chat, complete the preserveLockedHarnessIds cleanup contract, flip the codex thread-history import to storePath targets, and port remaining main-side tests from file-store helpers to session accessor reads. * chore: drop committed pebbles log, revert plugin-inspector bump, refresh generated docs Remove the 1.8k-line .pebbles/events.jsonl work log from the branch, restore the plugin-inspector advisory lane to main's pinned 0.3.10 so the supply-chain bump gets its own review, and regenerate docs_map, the plugin SDK API baseline, and the export-surface ratchet for the merged tree. * feat(sessions): keep archived transcripts by default with zstd cold storage Codex-style retention: deleting or resetting a session archives its transcript as a zstd-compressed JSONL artifact (plain when the runtime lacks node:zlib zstd) and keeps it until the disk budget evicts oldest first. resetArchiveRetention now governs both deleted and reset archives and defaults to keep; maxDiskBytes defaults to 2gb so retention stays bounded, with archives evicted before live sessions. The cron reaper follows the same knob instead of deleting archives on its own timer. * fix(state): converge agent DB migration lineages and bound database growth Merge coherence: run both structure-gated legacy memory-schema repairs (flip-lineage drop, main-lineage identity rebuild) before the flip migration so pre-flip v1/v2 and pre-merge flip v1/v4 databases all converge, and hoist foreign_keys=OFF outside the schema transaction where the pragma was silently ignored and the v1 sessions rebuild cascade-deleted session_entries. Growth guards: fresh agent DBs enable auto_vacuum=INCREMENTAL, WAL maintenance releases freed pages in bounded passes (never a blocking full VACUUM), and doctor reports state/agent DB bloat from freelist stats. * fix(codex): resolve the store path for thread-history import via the SDK The supervision catalog passed the legacy sessionFile locator to the storePath-targeted transcript mirror; resolve the agent store path with the session-store SDK helper instead of a runtime-object seam so test fakes and headless callers need no extra surface. Drop the obsolete missing-session-id preprocessing case: sessions rows are NOT NULL on session_id and upsert repairs id-less patches at write time. * fix(sessions): fail safe on malformed disk-budget config and doctor stat errors A malformed explicit maxDiskBytes disables the budget instead of falling back to the destructive 2gb default the user never chose, and the doctor bloat check skips databases whose paths stat-fail instead of aborting doctor. * fix(sessions): complete sqlite conflict translations * test(sqlite): align hardening checks with maintenance * test(sessions): inspect compressed transcript archives * fix(tests): await session seeds and drop unused helpers flagged by CI lint The five unawaited writeSessionStoreSeed calls raced their SQLite seeds against the assertions, failing compact shards; the bloat probe drops a useless initializer and the merged tests drop now-unused helpers. * test(sessions): type legacy proof events directly * test(sessions): align hardening contracts * perf(sessions): read usage transcript sizes from SQL aggregates Usage/cost scans walked every session and materialized every transcript event just to re-stringify it for a byte estimate — the #86718 stall class reborn on the DB. readTranscriptStatsSync sums stored JSON bytes in SQLite without loading a single row. * fix(sessions): re-root foreign-root transcript paths onto the current sessions dir Restored backups, moved OPENCLAW_STATE_DIR, and rehearsal copies carry absolute sessionFile paths from the old root; the containment fallback kept those foreign paths, so migration read (and would archive) files in the original root and reported local copies missing. Re-root the canonical agents/<id>/sessions suffix onto the current dir when the file exists there; genuine cross-root layouts still fall through unchanged. * test(agents): seed harness admission through sqlite * fix(sqlite): close agent db on pragma setup failure * fix(doctor): compact and retrofit incremental auto-vacuum after session import The migration is the sanctioned offline window: post-import compact reclaims import churn and applies auto_vacuum=INCREMENTAL to databases created before the fresh-DB pragma existed, so runtime maintenance can release pages in bounded passes on every install. --------- Co-authored-by: Peter Steinberger <steipete@gmail.com> |
||
|---|---|---|
| .. | ||
| ts-topology | ||
| actions-artifact-archive.d.mts | ||
| actions-artifact-archive.mjs | ||
| android-fastlane.sh | ||
| android-version.ts | ||
| arg-utils.d.mts | ||
| arg-utils.mjs | ||
| bounded-response.d.mts | ||
| bounded-response.mjs | ||
| bounded-response.ts | ||
| budget-number-args.d.mts | ||
| budget-number-args.mjs | ||
| build-metadata.sh | ||
| bundled-extension-manifest.ts | ||
| bundled-plugin-build-entries-types.d.ts | ||
| bundled-plugin-build-entries.d.mts | ||
| bundled-plugin-build-entries.mjs | ||
| bundled-plugin-paths.d.mts | ||
| bundled-plugin-paths.mjs | ||
| bundled-plugin-source-utils.d.mts | ||
| bundled-plugin-source-utils.mjs | ||
| bundled-runtime-sidecar-paths.json | ||
| callsite-guard.mjs | ||
| changed-extensions.d.mts | ||
| changed-extensions.mjs | ||
| channel-contract-test-plan.d.mts | ||
| channel-contract-test-plan.mjs | ||
| check-timing-summary.mjs | ||
| ci-node-test-plan.d.mts | ||
| ci-node-test-plan.mjs | ||
| clawhub-bootstrap-artifact.d.mts | ||
| clawhub-bootstrap-artifact.mjs | ||
| codex-app-server-protocol-source.ts | ||
| config-boundary-guard.d.mts | ||
| config-boundary-guard.mjs | ||
| copy-assets.ts | ||
| dependency-ownership.json | ||
| deprecated-config-api-guard.d.mts | ||
| deprecated-config-api-guard.mjs | ||
| deprecated-plugin-sdk-usage.d.mts | ||
| deprecated-plugin-sdk-usage.mjs | ||
| dev-tooling-safety.ts | ||
| direct-run.d.mts | ||
| direct-run.mjs | ||
| docker-build.sh | ||
| docker-e2e-container.sh | ||
| docker-e2e-image.sh | ||
| docker-e2e-json-artifacts.mjs | ||
| docker-e2e-logs.sh | ||
| docker-e2e-package.sh | ||
| docker-e2e-plan.d.mts | ||
| docker-e2e-plan.mjs | ||
| docker-e2e-scenarios.d.mts | ||
| docker-e2e-scenarios.mjs | ||
| docker-plugin-selection.mjs | ||
| error-format.mjs | ||
| extension-import-boundary-checker.d.mts | ||
| extension-import-boundary-checker.mjs | ||
| extension-package-boundary.ts | ||
| extension-source-classifier.d.mts | ||
| extension-source-classifier.mjs | ||
| extension-test-plan.d.mts | ||
| extension-test-plan.mjs | ||
| extension-vitest-paths.d.mts | ||
| extension-vitest-paths.mjs | ||
| format-generated-module.d.mts | ||
| format-generated-module.mjs | ||
| gateway-bench-child.ts | ||
| gateway-bench-probes.ts | ||
| gateway-ws-client.ts | ||
| generated-output-utils.mjs | ||
| guard-inventory-utils.d.mts | ||
| guard-inventory-utils.mjs | ||
| host-timeout.sh | ||
| import-cycle-graph.ts | ||
| ios-fastlane.sh | ||
| ios-version.ts | ||
| kova-report-gate.d.mts | ||
| kova-report-gate.mjs | ||
| kova-report-publish-files.d.mts | ||
| kova-report-publish-files.mjs | ||
| kova-report-selector.d.mts | ||
| kova-report-selector.mjs | ||
| kova-workflow-evidence.d.mts | ||
| kova-workflow-evidence.mjs | ||
| list-test-files.mjs | ||
| live-docker-auth.sh | ||
| live-docker-stage.sh | ||
| local-build-metadata-paths.d.mts | ||
| local-build-metadata-paths.mjs | ||
| local-build-metadata.d.mts | ||
| local-build-metadata.mjs | ||
| local-heavy-check-runtime.d.mts | ||
| local-heavy-check-runtime.mjs | ||
| managed-child-process.d.mts | ||
| managed-child-process.mjs | ||
| merge-head-diff-base.d.mts | ||
| merge-head-diff-base.mjs | ||
| mintlify-accordion.mjs | ||
| npm-pack-budget.d.mts | ||
| npm-pack-budget.mjs | ||
| npm-publish-plan.d.mts | ||
| npm-publish-plan.mjs | ||
| npm-verify-exec.ts | ||
| numeric-options.d.mts | ||
| numeric-options.mjs | ||
| official-external-channel-catalog.json | ||
| official-external-plugin-catalog.json | ||
| official-external-provider-catalog.json | ||
| openclaw-e2e-instance.sh | ||
| openclaw-release-clawhub-plan.ts | ||
| openclaw-test-state.mjs | ||
| optional-bundled-clusters-types.d.ts | ||
| optional-bundled-clusters.d.mts | ||
| optional-bundled-clusters.mjs | ||
| package-dist-imports.mjs | ||
| package-root-args.d.mts | ||
| package-root-args.mjs | ||
| pairing-guard-context.mjs | ||
| plain-gh.d.mts | ||
| plain-gh.mjs | ||
| plain-gh.sh | ||
| plistbuddy.sh | ||
| plugin-clawhub-release.ts | ||
| plugin-contract-test-plan.d.mts | ||
| plugin-contract-test-plan.mjs | ||
| plugin-gateway-gauntlet.d.mts | ||
| plugin-gateway-gauntlet.mjs | ||
| plugin-npm-package-manifest.d.mts | ||
| plugin-npm-package-manifest.mjs | ||
| plugin-npm-release.ts | ||
| plugin-npm-runtime-assets.d.mts | ||
| plugin-npm-runtime-assets.mjs | ||
| plugin-npm-runtime-build.d.mts | ||
| plugin-npm-runtime-build.mjs | ||
| plugin-package-dependencies.d.mts | ||
| plugin-package-dependencies.mjs | ||
| plugin-prerelease-test-plan.d.mts | ||
| plugin-prerelease-test-plan.mjs | ||
| plugin-sdk-declaration-budget.d.mts | ||
| plugin-sdk-declaration-budget.mjs | ||
| plugin-sdk-deprecated-barrel-subpaths.json | ||
| plugin-sdk-deprecated-public-subpaths.json | ||
| plugin-sdk-doc-metadata.ts | ||
| plugin-sdk-entries.d.mts | ||
| plugin-sdk-entries.mjs | ||
| plugin-sdk-entrypoints.json | ||
| plugin-sdk-private-local-only-subpaths.json | ||
| policy-config-coverage.jsonc | ||
| record-shared.mjs | ||
| regexp.mjs | ||
| release-beta-verifier.ts | ||
| release-upgrade-baseline.d.mts | ||
| release-upgrade-baseline.mjs | ||
| report-cli-helpers.d.mts | ||
| report-cli-helpers.mjs | ||
| restart-mac-gateway.sh | ||
| run-extension-oxlint.mjs | ||
| session-accessor-debt-baseline.json | ||
| sleep.d.mts | ||
| sleep.mjs | ||
| source-file-scan-cache.d.mts | ||
| source-file-scan-cache.mjs | ||
| sqlite-session-schema-baseline.ts | ||
| stable-release-closeout.d.mts | ||
| stable-release-closeout.mjs | ||
| static-extension-assets.d.mts | ||
| static-extension-assets.mjs | ||
| swift-toolchain.sh | ||
| test-group-report.d.mts | ||
| test-group-report.mjs | ||
| ts-guard-utils.d.mts | ||
| ts-guard-utils.mjs | ||
| tsdown-output-roots.d.mts | ||
| tsdown-output-roots.mjs | ||
| tsgo-sparse-guard.d.mts | ||
| tsgo-sparse-guard.mjs | ||
| version-script-args.ts | ||
| vitest-batch-runner.d.mts | ||
| vitest-batch-runner.mjs | ||
| vitest-local-scheduling.d.mts | ||
| vitest-local-scheduling.mjs | ||
| vitest-report-cli-utils.mjs | ||
| vitest-shard-timings.d.mts | ||
| vitest-shard-timings.mjs | ||
| windows-taskkill.d.mts | ||
| windows-taskkill.mjs | ||
| workspace-bootstrap-smoke.d.mts | ||
| workspace-bootstrap-smoke.mjs | ||