{
  "paths": {
    "knowledge": "/home/dobby/knowledge",
    "registry": "/home/dobby/knowledge/transcripts/index.jsonl",
    "memory": "/home/dobby/knowledge/reflections/memory.jsonl",
    "reflections": "/home/dobby/knowledge/REFLECTIONS.md"
  },
  "knowledge": {
    "SOUL.md": {
      "exists": true,
      "bytes": 632,
      "mtime": 1784749429.7353323
    },
    "USER.md": {
      "exists": true,
      "bytes": 701,
      "mtime": 1784749429.7433321
    },
    "MEMORY.md": {
      "exists": true,
      "bytes": 1429,
      "mtime": 1784749429.747332
    },
    "REFLECTIONS.md": {
      "exists": true,
      "bytes": 2010,
      "mtime": 1784953839.7635186
    },
    "INDEX.md": {
      "exists": true,
      "bytes": 2147,
      "mtime": 1784991122.9289749
    }
  },
  "registry": {
    "conversations": 11,
    "by_kind": {
      "interactive": 4,
      "worker": 7
    },
    "by_place": {
      "project:kleinanzeigen": 7,
      "telegram:1980176332": 4
    }
  },
  "entries": {
    "total": 7,
    "by_kind": {
      "interactive": 5,
      "worker": 2
    }
  },
  "pending": {
    "count": 2,
    "sample": [
      {
        "place": "project:kleinanzeigen",
        "kind": "worker",
        "agent_id": "agent-dea2142a-74ab-4c6f-94d0-1c7f5fbb2e15",
        "lines_done": 0,
        "lines_total": 5,
        "task": "Read data/candidates_new.json (field candidates_new). Each item is a Kleinanzeigen listing already pre-scored by regex."
      },
      {
        "place": "project:kleinanzeigen",
        "kind": "worker",
        "agent_id": "agent-ef562636-dc9d-4d84-bffa-90a953cfb580",
        "lines_done": 0,
        "lines_total": 4,
        "task": "Read data/candidates_new.json (field candidates_new). Each item is a Kleinanzeigen listing already pre-scored by regex."
      }
    ]
  },
  "render": {
    "memory_mtime": 1784953839.7635186,
    "reflections_mtime": 1784953839.7635186,
    "stale": false
  },
  "orphans": {
    "count": 0,
    "sample": []
  },
  "top": [
    {
      "score": 7.6653,
      "weight": 8.0,
      "place": "telegram:1980176332",
      "kind": "interactive",
      "summary": "Recovered a broken Telegram session and finished the harness fix: commit `8969d4a` persists desired projects in `data/runtime/desired_projects.json` and restores them on boot; `kleinanzeigen` was running again without restarting `dobby.service`.",
      "runs": 1,
      "ts": "2026-07-25T04:30:39+00:00",
      "period_end": "2026-07-24T20:34:19+00:00"
    },
    {
      "score": 6.6952,
      "weight": 7.0,
      "place": "telegram:1980176332",
      "kind": "interactive",
      "summary": "Found the `kleinanzeigen` project was stopped, so the 19:00 Hoflader scan did not run; restarted it and sent 8 ads manually. User asked for persistent desired project state across runtime restarts, and Dobby began implementing that in `ProjectRuntime`.",
      "runs": 1,
      "ts": "2026-07-25T04:30:39+00:00",
      "period_end": "2026-07-24T19:42:16+00:00"
    },
    {
      "score": 6.5122,
      "weight": 7.0,
      "place": "telegram:1980176332",
      "kind": "interactive",
      "summary": "Confirmed SSH from dobby.local to the Hetzner VPS works as root via `ssh vps` (178.104.125.118). Recommended per-app IMAP read credentials stored in `/home/dobby/secrets/`, not the Stalwart admin account, for read-only mailbox access.",
      "runs": 1,
      "ts": "2026-07-25T04:30:39+00:00",
      "period_end": "2026-07-24T06:16:23+00:00"
    },
    {
      "score": 4.7148,
      "weight": 5.0,
      "place": "telegram:1980176332",
      "kind": "interactive",
      "summary": "Explained that Dobby’s Telegram gateway uses a user-ID allowlist (not group invites), that each DM gets its own chat session, and that bots can also live in groups. Checked the harness for Telegram topics and project output destinations.",
      "runs": 1,
      "ts": "2026-07-25T04:30:39+00:00",
      "period_end": "2026-07-24T12:49:16+00:00"
    },
    {
      "score": 3.6337,
      "weight": 4.0,
      "place": "telegram:1980176332",
      "kind": "interactive",
      "summary": "User asked for free App Store analytics to get download counts for apps; Dobby explained exact downloads are free only for owned apps via App Store Connect (and Play Console on Android), while other apps’ counts need paid or estimate-only third-party tools.",
      "runs": 1,
      "ts": "2026-07-23T18:44:07+00:00",
      "period_end": "2026-07-23T18:43:48+00:00"
    },
    {
      "score": 0.9564,
      "weight": 1.0,
      "place": "project:kleinanzeigen",
      "kind": "worker",
      "summary": "worker 'Read data/candidates_new.json (field candidates_new). Each item is a Kleinanzeigen listing already pre-scored by regex.' ran once",
      "runs": 1,
      "ts": "2026-07-25T04:30:29+00:00",
      "period_end": "2026-07-24T19:41:01+00:00"
    },
    {
      "score": 0.9084,
      "weight": 1.0,
      "place": "project:kleinanzeigen",
      "kind": "worker",
      "summary": "worker 'scan and filter listings' ran 4×",
      "runs": 4,
      "ts": "2026-07-23T18:43:56+00:00",
      "period_end": "2026-07-23T18:43:48+00:00"
    }
  ]
}