Skip to content

OpenClaw provider returns empty after 2026-09-01 SQLite session storage migration #1259

Description

@systemize-ai

Summary

OpenClaw migrated its session storage from per-agent JSONL files to a per-agent SQLite database on 2026-09-01 (release 2026.8.1 per meta.lastTouchedVersion, migration artifacts in ~/.openclaw/session-sqlite-migration-runs/). CodeBurn's OpenClaw provider still only reads the legacy path documented in the README:

OpenClaw | ~/.openclaw/agents/*.jsonl (legacy .clawdbot, .moltbot, .moldbot) | ...

Since the migration, OpenClaw no longer writes any .jsonl files under ~/.openclaw/agents/. The old ones were either moved to a session-sqlite-import-archive/ subfolder or renamed to *.jsonl.deleted.<timestamp>. New session data lives exclusively in ~/.openclaw/agents/<agent>/agent/openclaw-agent.sqlite (tables include transcript_events, session_transcript_active_events, session_conversations, etc.).

Result: codeburn doctor reports the openclaw provider as completely empty, even though the tool is actively used and has substantial real usage.

Steps to reproduce

  1. Have OpenClaw >= 2026.8.1 installed and used, with sessions migrated to SQLite (any install where ~/.openclaw/agents/*/agent/openclaw-agent.sqlite exists and ~/.openclaw/agents/*.jsonl does not).
  2. Run codeburn doctor --json --no-color.

Observed

{
  "provider": "openclaw",
  "displayName": "OpenClaw",
  "status": "empty",
  "probePaths": [],
  "candidatesFound": 0,
  "verdict": "NOTHING FOUND (tool likely not installed or no history yet)"
}

on codeburn 0.9.24 (also reproduced on 0.9.19). Confirmed the tool is installed and actively used (multiple agent SQLite DBs with recent mtime, GB of transcript data).

Expected

OpenClaw usage/model data continues to be discovered and reported after the storage migration.

Environment

  • codeburn: 0.9.24 (also reproduced on 0.9.19)
  • OpenClaw: 2026.8.1 (self-hosted "Mr. Krabs" build)
  • OS: Ubuntu 24.04, Node 24.20.0

Notes / possible approach

  • This is a different failure mode than doctor: extend probeRoots() beyond 7/42 providers to kill the silent-zero class #899 (which is about missing probeRoots() diagnostics for silent-zero providers, and lists openclaw as a Tier-2 candidate for that work). Even with probeRoots() added, the underlying JSONL glob would still resolve to zero files post-migration — the fix needs actual SQLite parsing support for the new storage, not just better diagnostics on the old path.
  • Since several other providers already have SQLite parsers (Forge's ~/.forge/.forge.db, Zed's threads.db, Copilot's OTel store), there's precedent in the codebase for this shape of provider.
  • Happy to share anonymized schema/sample rows from openclaw-agent.sqlite (transcript_events / session_transcript_active_events) if useful for scoping the parser.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions