From 4e2e7d8d0af0eca690b5441b8fa25777bbda9726 Mon Sep 17 00:00:00 2001 From: MrC Date: Sun, 3 May 2026 02:04:03 +0000 Subject: [PATCH] =?UTF-8?q?Ingest=202026-05-03=20batch=202=20=E2=80=94=20p?= =?UTF-8?q?sb-thinking=20projects=20+=20recipes=202026-05-03T02:04:03Z?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .openclaw-wiki/cache/agent-digest.json | 287 +++++++++++++- .openclaw-wiki/log.jsonl | 54 +++ index.md | 25 +- sources/index.md | 21 ++ sources/psb-recipe-70-meg-omega-2-2024.md | 79 ++++ sources/psb-recipe-hot-for-teacher.md | 82 ++++ .../psb-recipe-john-adams-ne-cider-4-26.md | 75 ++++ ...mount-vernon-molasses-george-washington.md | 77 ++++ sources/psb-recipe-seltzer-base-corn-11.md | 76 ++++ sources/psb-thinking-2026-04-09.md | 6 +- sources/psb-thinking-2026-04-10.md | 6 +- sources/psb-thinking-2026-04-11.md | 6 +- sources/psb-thinking-2026-04-12.md | 6 +- sources/psb-thinking-2026-04-13.md | 6 +- sources/psb-thinking-2026-04-14.md | 6 +- sources/psb-thinking-2026-04-15.md | 49 +++ sources/psb-thinking-2026-04-16.md | 46 +++ sources/psb-thinking-2026-04-17.md | 58 +++ sources/psb-thinking-2026-04-18.md | 53 +++ sources/psb-thinking-2026-04-23.md | 77 ++++ sources/psb-thinking-2026-04-24.md | 53 +++ sources/psb-thinking-2026-04-25.md | 39 ++ sources/psb-thinking-2026-04-26.md | 45 +++ sources/psb-thinking-2026-04-29.md | 71 ++++ sources/psb-thinking-2026-04-30.md | 69 ++++ sources/psb-thinking-2026-05-01.md | 57 +++ .../psb-thinking-fermentation-dashboard.md | 148 ++++++++ sources/psb-thinking-pihole-blocker.md | 349 ++++++++++++++++++ sources/psb-thinking-robotics-team-agent.md | 122 ++++++ .../psb-thinking-systemic-settings-loss.md | 74 ++++ sources/psb-thinking-test-sync.md | 33 ++ 31 files changed, 2128 insertions(+), 27 deletions(-) create mode 100644 sources/psb-recipe-70-meg-omega-2-2024.md create mode 100644 sources/psb-recipe-hot-for-teacher.md create mode 100644 sources/psb-recipe-john-adams-ne-cider-4-26.md create mode 100644 sources/psb-recipe-mount-vernon-molasses-george-washington.md create mode 100644 sources/psb-recipe-seltzer-base-corn-11.md create mode 100644 sources/psb-thinking-2026-04-15.md create mode 100644 sources/psb-thinking-2026-04-16.md create mode 100644 sources/psb-thinking-2026-04-17.md create mode 100644 sources/psb-thinking-2026-04-18.md create mode 100644 sources/psb-thinking-2026-04-23.md create mode 100644 sources/psb-thinking-2026-04-24.md create mode 100644 sources/psb-thinking-2026-04-25.md create mode 100644 sources/psb-thinking-2026-04-26.md create mode 100644 sources/psb-thinking-2026-04-29.md create mode 100644 sources/psb-thinking-2026-04-30.md create mode 100644 sources/psb-thinking-2026-05-01.md create mode 100644 sources/psb-thinking-fermentation-dashboard.md create mode 100644 sources/psb-thinking-pihole-blocker.md create mode 100644 sources/psb-thinking-robotics-team-agent.md create mode 100644 sources/psb-thinking-systemic-settings-loss.md create mode 100644 sources/psb-thinking-test-sync.md diff --git a/.openclaw-wiki/cache/agent-digest.json b/.openclaw-wiki/cache/agent-digest.json index 90c117d..f96bf43 100644 --- a/.openclaw-wiki/cache/agent-digest.json +++ b/.openclaw-wiki/cache/agent-digest.json @@ -2,7 +2,7 @@ "pageCounts": { "entity": 0, "concept": 0, - "source": 167, + "source": 188, "synthesis": 0, "report": 6 }, @@ -1956,6 +1956,71 @@ "claimCount": 0, "topClaims": [] }, + { + "id": "source.psb-recipe-70-meg-omega-2-2024", + "title": "psb-recipe-70_Meg_Omega_2_2024", + "kind": "source", + "path": "sources/psb-recipe-70-meg-omega-2-2024.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T02:02:18.289Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-recipe-hot-for-teacher", + "title": "psb-recipe-Hot_for_Teacher", + "kind": "source", + "path": "sources/psb-recipe-hot-for-teacher.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T02:02:41.446Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-recipe-john-adams-ne-cider-4-26", + "title": "psb-recipe-john-adams-ne-cider-4-26", + "kind": "source", + "path": "sources/psb-recipe-john-adams-ne-cider-4-26.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T02:03:03.882Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-recipe-mount-vernon-molasses-george-washington", + "title": "psb-recipe-Mount_Vernon_Molasses_George_Washington", + "kind": "source", + "path": "sources/psb-recipe-mount-vernon-molasses-george-washington.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T02:03:26.208Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-recipe-seltzer-base-corn-11", + "title": "psb-recipe-Seltzer_base_corn_11", + "kind": "source", + "path": "sources/psb-recipe-seltzer-base-corn-11.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T02:03:48.552Z", + "claimCount": 0, + "topClaims": [] + }, { "id": "source.psb-thinking-2026-03-01", "title": "psb-thinking-2026-03-01", @@ -2043,7 +2108,7 @@ "questions": [], "contradictions": [], "freshnessLevel": "fresh", - "lastTouchedAt": "2026-05-03T01:28:34.097Z", + "lastTouchedAt": "2026-05-03T01:54:23.818Z", "claimCount": 0, "topClaims": [] }, @@ -2056,7 +2121,7 @@ "questions": [], "contradictions": [], "freshnessLevel": "fresh", - "lastTouchedAt": "2026-05-03T01:28:55.418Z", + "lastTouchedAt": "2026-05-03T01:54:46.994Z", "claimCount": 0, "topClaims": [] }, @@ -2069,7 +2134,7 @@ "questions": [], "contradictions": [], "freshnessLevel": "fresh", - "lastTouchedAt": "2026-05-03T01:29:16.719Z", + "lastTouchedAt": "2026-05-03T01:55:10.285Z", "claimCount": 0, "topClaims": [] }, @@ -2082,7 +2147,7 @@ "questions": [], "contradictions": [], "freshnessLevel": "fresh", - "lastTouchedAt": "2026-05-03T01:29:38.055Z", + "lastTouchedAt": "2026-05-03T01:55:33.521Z", "claimCount": 0, "topClaims": [] }, @@ -2095,7 +2160,7 @@ "questions": [], "contradictions": [], "freshnessLevel": "fresh", - "lastTouchedAt": "2026-05-03T01:29:59.300Z", + "lastTouchedAt": "2026-05-03T01:55:56.660Z", "claimCount": 0, "topClaims": [] }, @@ -2108,7 +2173,215 @@ "questions": [], "contradictions": [], "freshnessLevel": "fresh", - "lastTouchedAt": "2026-05-03T01:30:20.705Z", + "lastTouchedAt": "2026-05-03T01:56:20.046Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-2026-04-15", + "title": "psb-thinking-2026-04-15", + "kind": "source", + "path": "sources/psb-thinking-2026-04-15.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T01:56:43.207Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-2026-04-16", + "title": "psb-thinking-2026-04-16", + "kind": "source", + "path": "sources/psb-thinking-2026-04-16.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T01:57:06.697Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-2026-04-17", + "title": "psb-thinking-2026-04-17", + "kind": "source", + "path": "sources/psb-thinking-2026-04-17.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T01:57:29.924Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-2026-04-18", + "title": "psb-thinking-2026-04-18", + "kind": "source", + "path": "sources/psb-thinking-2026-04-18.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T01:57:53.127Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-2026-04-23", + "title": "psb-thinking-2026-04-23", + "kind": "source", + "path": "sources/psb-thinking-2026-04-23.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T01:58:16.317Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-2026-04-24", + "title": "psb-thinking-2026-04-24", + "kind": "source", + "path": "sources/psb-thinking-2026-04-24.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T01:58:39.648Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-2026-04-25", + "title": "psb-thinking-2026-04-25", + "kind": "source", + "path": "sources/psb-thinking-2026-04-25.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T01:59:02.884Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-2026-04-26", + "title": "psb-thinking-2026-04-26", + "kind": "source", + "path": "sources/psb-thinking-2026-04-26.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T01:59:26.141Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-2026-04-29", + "title": "psb-thinking-2026-04-29", + "kind": "source", + "path": "sources/psb-thinking-2026-04-29.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T01:59:49.317Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-2026-04-30", + "title": "psb-thinking-2026-04-30", + "kind": "source", + "path": "sources/psb-thinking-2026-04-30.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T02:00:12.563Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-2026-05-01", + "title": "psb-thinking-2026-05-01", + "kind": "source", + "path": "sources/psb-thinking-2026-05-01.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T02:00:35.891Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-fermentation-dashboard", + "title": "psb-thinking-fermentation-dashboard", + "kind": "source", + "path": "sources/psb-thinking-fermentation-dashboard.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T02:02:18.239Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-pihole-blocker", + "title": "psb-thinking-pihole-blocker", + "kind": "source", + "path": "sources/psb-thinking-pihole-blocker.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T02:02:41.347Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-robotics-team-agent", + "title": "psb-thinking-robotics-team-agent", + "kind": "source", + "path": "sources/psb-thinking-robotics-team-agent.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T02:00:59.157Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-systemic-settings-loss", + "title": "psb-thinking-systemic-settings-loss", + "kind": "source", + "path": "sources/psb-thinking-systemic-settings-loss.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T02:01:22.530Z", + "claimCount": 0, + "topClaims": [] + }, + { + "id": "source.psb-thinking-test-sync", + "title": "psb-thinking-test-sync", + "kind": "source", + "path": "sources/psb-thinking-test-sync.md", + "sourceIds": [], + "questions": [], + "contradictions": [], + "freshnessLevel": "fresh", + "lastTouchedAt": "2026-05-03T02:01:45.822Z", "claimCount": 0, "topClaims": [] }, diff --git a/.openclaw-wiki/log.jsonl b/.openclaw-wiki/log.jsonl index 2ae1c4f..4b49e63 100644 --- a/.openclaw-wiki/log.jsonl +++ b/.openclaw-wiki/log.jsonl @@ -352,3 +352,57 @@ {"type":"ingest","timestamp":"2026-05-03T01:30:20.705Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-14.md","pageId":"source.psb-thinking-2026-04-14","pagePath":"sources/psb-thinking-2026-04-14.md","bytes":7163,"created":true}} {"type":"compile","timestamp":"2026-05-03T01:30:20.983Z","details":{"pageCounts":{"entity":0,"concept":0,"source":167,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-14.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} {"type":"lint","timestamp":"2026-05-03T01:53:38.328Z","details":{"issueCount":41,"reportPath":"reports/lint.md"}} +{"type":"ingest","timestamp":"2026-05-03T01:54:23.818Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-09.md","pageId":"source.psb-thinking-2026-04-09","pagePath":"sources/psb-thinking-2026-04-09.md","bytes":5963,"created":false}} +{"type":"compile","timestamp":"2026-05-03T01:54:24.061Z","details":{"pageCounts":{"entity":0,"concept":0,"source":167,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-09.md",".openclaw-wiki/cache/agent-digest.json"]}} +{"type":"ingest","timestamp":"2026-05-03T01:54:46.994Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-10.md","pageId":"source.psb-thinking-2026-04-10","pagePath":"sources/psb-thinking-2026-04-10.md","bytes":5299,"created":false}} +{"type":"compile","timestamp":"2026-05-03T01:54:47.251Z","details":{"pageCounts":{"entity":0,"concept":0,"source":167,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-10.md",".openclaw-wiki/cache/agent-digest.json"]}} +{"type":"ingest","timestamp":"2026-05-03T01:55:10.285Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-11.md","pageId":"source.psb-thinking-2026-04-11","pagePath":"sources/psb-thinking-2026-04-11.md","bytes":540,"created":false}} +{"type":"compile","timestamp":"2026-05-03T01:55:10.526Z","details":{"pageCounts":{"entity":0,"concept":0,"source":167,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-11.md",".openclaw-wiki/cache/agent-digest.json"]}} +{"type":"ingest","timestamp":"2026-05-03T01:55:33.521Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-12.md","pageId":"source.psb-thinking-2026-04-12","pagePath":"sources/psb-thinking-2026-04-12.md","bytes":1045,"created":false}} +{"type":"compile","timestamp":"2026-05-03T01:55:33.774Z","details":{"pageCounts":{"entity":0,"concept":0,"source":167,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-12.md",".openclaw-wiki/cache/agent-digest.json"]}} +{"type":"ingest","timestamp":"2026-05-03T01:55:56.660Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-13.md","pageId":"source.psb-thinking-2026-04-13","pagePath":"sources/psb-thinking-2026-04-13.md","bytes":2828,"created":false}} +{"type":"compile","timestamp":"2026-05-03T01:55:56.922Z","details":{"pageCounts":{"entity":0,"concept":0,"source":167,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-13.md",".openclaw-wiki/cache/agent-digest.json"]}} +{"type":"ingest","timestamp":"2026-05-03T01:56:20.046Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-14.md","pageId":"source.psb-thinking-2026-04-14","pagePath":"sources/psb-thinking-2026-04-14.md","bytes":7163,"created":false}} +{"type":"compile","timestamp":"2026-05-03T01:56:20.287Z","details":{"pageCounts":{"entity":0,"concept":0,"source":167,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-14.md",".openclaw-wiki/cache/agent-digest.json"]}} +{"type":"ingest","timestamp":"2026-05-03T01:56:43.207Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-15.md","pageId":"source.psb-thinking-2026-04-15","pagePath":"sources/psb-thinking-2026-04-15.md","bytes":635,"created":true}} +{"type":"compile","timestamp":"2026-05-03T01:56:43.523Z","details":{"pageCounts":{"entity":0,"concept":0,"source":168,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-15.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T01:57:06.697Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-16.md","pageId":"source.psb-thinking-2026-04-16","pagePath":"sources/psb-thinking-2026-04-16.md","bytes":571,"created":true}} +{"type":"compile","timestamp":"2026-05-03T01:57:06.946Z","details":{"pageCounts":{"entity":0,"concept":0,"source":169,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-16.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T01:57:29.924Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-17.md","pageId":"source.psb-thinking-2026-04-17","pagePath":"sources/psb-thinking-2026-04-17.md","bytes":1510,"created":true}} +{"type":"compile","timestamp":"2026-05-03T01:57:30.186Z","details":{"pageCounts":{"entity":0,"concept":0,"source":170,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-17.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T01:57:53.127Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-18.md","pageId":"source.psb-thinking-2026-04-18","pagePath":"sources/psb-thinking-2026-04-18.md","bytes":1387,"created":true}} +{"type":"compile","timestamp":"2026-05-03T01:57:53.378Z","details":{"pageCounts":{"entity":0,"concept":0,"source":171,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-18.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T01:58:16.317Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-23.md","pageId":"source.psb-thinking-2026-04-23","pagePath":"sources/psb-thinking-2026-04-23.md","bytes":2464,"created":true}} +{"type":"compile","timestamp":"2026-05-03T01:58:16.612Z","details":{"pageCounts":{"entity":0,"concept":0,"source":172,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-23.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T01:58:39.648Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-24.md","pageId":"source.psb-thinking-2026-04-24","pagePath":"sources/psb-thinking-2026-04-24.md","bytes":916,"created":true}} +{"type":"compile","timestamp":"2026-05-03T01:58:39.914Z","details":{"pageCounts":{"entity":0,"concept":0,"source":173,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-24.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T01:59:02.884Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-25.md","pageId":"source.psb-thinking-2026-04-25","pagePath":"sources/psb-thinking-2026-04-25.md","bytes":391,"created":true}} +{"type":"compile","timestamp":"2026-05-03T01:59:03.141Z","details":{"pageCounts":{"entity":0,"concept":0,"source":174,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-25.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T01:59:26.141Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-26.md","pageId":"source.psb-thinking-2026-04-26","pagePath":"sources/psb-thinking-2026-04-26.md","bytes":541,"created":true}} +{"type":"compile","timestamp":"2026-05-03T01:59:26.410Z","details":{"pageCounts":{"entity":0,"concept":0,"source":175,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-26.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T01:59:49.317Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-29.md","pageId":"source.psb-thinking-2026-04-29","pagePath":"sources/psb-thinking-2026-04-29.md","bytes":1720,"created":true}} +{"type":"compile","timestamp":"2026-05-03T01:59:49.579Z","details":{"pageCounts":{"entity":0,"concept":0,"source":176,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-29.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T02:00:12.563Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-30.md","pageId":"source.psb-thinking-2026-04-30","pagePath":"sources/psb-thinking-2026-04-30.md","bytes":1832,"created":true}} +{"type":"compile","timestamp":"2026-05-03T02:00:12.822Z","details":{"pageCounts":{"entity":0,"concept":0,"source":177,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-04-30.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T02:00:35.891Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/2026-05-01.md","pageId":"source.psb-thinking-2026-05-01","pagePath":"sources/psb-thinking-2026-05-01.md","bytes":1421,"created":true}} +{"type":"compile","timestamp":"2026-05-03T02:00:36.152Z","details":{"pageCounts":{"entity":0,"concept":0,"source":178,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-2026-05-01.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T02:00:59.157Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/robotics-team-agent.md","pageId":"source.psb-thinking-robotics-team-agent","pagePath":"sources/psb-thinking-robotics-team-agent.md","bytes":3184,"created":true}} +{"type":"compile","timestamp":"2026-05-03T02:00:59.426Z","details":{"pageCounts":{"entity":0,"concept":0,"source":179,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-robotics-team-agent.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T02:01:22.530Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/tasks/systemic-settings-loss.md","pageId":"source.psb-thinking-systemic-settings-loss","pagePath":"sources/psb-thinking-systemic-settings-loss.md","bytes":1550,"created":true}} +{"type":"compile","timestamp":"2026-05-03T02:01:22.811Z","details":{"pageCounts":{"entity":0,"concept":0,"source":180,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-systemic-settings-loss.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T02:01:45.822Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/memory/test-sync.md","pageId":"source.psb-thinking-test-sync","pagePath":"sources/psb-thinking-test-sync.md","bytes":35,"created":true}} +{"type":"compile","timestamp":"2026-05-03T02:01:46.095Z","details":{"pageCounts":{"entity":0,"concept":0,"source":181,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-test-sync.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T02:02:18.239Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/projects/fermentation-dashboard.md","pageId":"source.psb-thinking-fermentation-dashboard","pagePath":"sources/psb-thinking-fermentation-dashboard.md","bytes":2955,"created":true}} +{"type":"ingest","timestamp":"2026-05-03T02:02:18.289Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-gemma/recipes/70_Meg_Omega_2_2024.md","pageId":"source.psb-recipe-70-meg-omega-2-2024","pagePath":"sources/psb-recipe-70-meg-omega-2-2024.md","bytes":1559,"created":true}} +{"type":"compile","timestamp":"2026-05-03T02:02:18.533Z","details":{"pageCounts":{"entity":0,"concept":0,"source":183,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-fermentation-dashboard.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"compile","timestamp":"2026-05-03T02:02:18.574Z","details":{"pageCounts":{"entity":0,"concept":0,"source":183,"synthesis":0,"report":6},"updatedFiles":["sources/psb-recipe-70-meg-omega-2-2024.md"]}} +{"type":"ingest","timestamp":"2026-05-03T02:02:41.347Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-thinking/projects/pihole-blocker.md","pageId":"source.psb-thinking-pihole-blocker","pagePath":"sources/psb-thinking-pihole-blocker.md","bytes":9252,"created":true}} +{"type":"ingest","timestamp":"2026-05-03T02:02:41.446Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-gemma/recipes/Hot_for_Teacher.md","pageId":"source.psb-recipe-hot-for-teacher","pagePath":"sources/psb-recipe-hot-for-teacher.md","bytes":1880,"created":true}} +{"type":"compile","timestamp":"2026-05-03T02:02:41.625Z","details":{"pageCounts":{"entity":0,"concept":0,"source":185,"synthesis":0,"report":6},"updatedFiles":["sources/psb-thinking-pihole-blocker.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"compile","timestamp":"2026-05-03T02:02:41.727Z","details":{"pageCounts":{"entity":0,"concept":0,"source":185,"synthesis":0,"report":6},"updatedFiles":["sources/psb-recipe-hot-for-teacher.md"]}} +{"type":"ingest","timestamp":"2026-05-03T02:03:03.882Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-gemma/recipes/john-adams-ne-cider-4-26.md","pageId":"source.psb-recipe-john-adams-ne-cider-4-26","pagePath":"sources/psb-recipe-john-adams-ne-cider-4-26.md","bytes":1263,"created":true}} +{"type":"compile","timestamp":"2026-05-03T02:03:04.189Z","details":{"pageCounts":{"entity":0,"concept":0,"source":186,"synthesis":0,"report":6},"updatedFiles":["sources/psb-recipe-john-adams-ne-cider-4-26.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T02:03:26.208Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-gemma/recipes/Mount_Vernon_Molasses_George_Washington.md","pageId":"source.psb-recipe-mount-vernon-molasses-george-washington","pagePath":"sources/psb-recipe-mount-vernon-molasses-george-washington.md","bytes":1854,"created":true}} +{"type":"compile","timestamp":"2026-05-03T02:03:26.499Z","details":{"pageCounts":{"entity":0,"concept":0,"source":187,"synthesis":0,"report":6},"updatedFiles":["sources/psb-recipe-mount-vernon-molasses-george-washington.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} +{"type":"ingest","timestamp":"2026-05-03T02:03:48.552Z","details":{"inputPath":"/home/topher/.openclaw/workspace-psb-gemma/recipes/Seltzer_base_corn_11.md","pageId":"source.psb-recipe-seltzer-base-corn-11","pagePath":"sources/psb-recipe-seltzer-base-corn-11.md","bytes":1770,"created":true}} +{"type":"compile","timestamp":"2026-05-03T02:03:48.836Z","details":{"pageCounts":{"entity":0,"concept":0,"source":188,"synthesis":0,"report":6},"updatedFiles":["sources/psb-recipe-seltzer-base-corn-11.md",".openclaw-wiki/cache/agent-digest.json","index.md","sources/index.md"]}} diff --git a/index.md b/index.md index 17b7955..c6d493a 100644 --- a/index.md +++ b/index.md @@ -3,9 +3,9 @@ ## Generated - Render mode: `native` -- Total pages: 173 +- Total pages: 194 - Claims: 0 -- Sources: 167 +- Sources: 188 - Entities: 0 - Concepts: 0 - Syntheses: 0 @@ -155,6 +155,11 @@ - [psb-gemma-standup-latest](sources/psb-gemma-standup-latest.md) - [psb-gemma-tilt-spreadsheet-protocol](sources/psb-gemma-tilt-spreadsheet-protocol.md) - [psb-gemma-todo_maybe_later](sources/psb-gemma-todo-maybe-later.md) +- [psb-recipe-70_Meg_Omega_2_2024](sources/psb-recipe-70-meg-omega-2-2024.md) +- [psb-recipe-Hot_for_Teacher](sources/psb-recipe-hot-for-teacher.md) +- [psb-recipe-john-adams-ne-cider-4-26](sources/psb-recipe-john-adams-ne-cider-4-26.md) +- [psb-recipe-Mount_Vernon_Molasses_George_Washington](sources/psb-recipe-mount-vernon-molasses-george-washington.md) +- [psb-recipe-Seltzer_base_corn_11](sources/psb-recipe-seltzer-base-corn-11.md) - [psb-thinking-2026-03-01](sources/psb-thinking-2026-03-01.md) - [psb-thinking-2026-03-03-touchscreen-fix](sources/psb-thinking-2026-03-03-touchscreen-fix.md) - [psb-thinking-2026-03-09](sources/psb-thinking-2026-03-09.md) @@ -167,6 +172,22 @@ - [psb-thinking-2026-04-12](sources/psb-thinking-2026-04-12.md) - [psb-thinking-2026-04-13](sources/psb-thinking-2026-04-13.md) - [psb-thinking-2026-04-14](sources/psb-thinking-2026-04-14.md) +- [psb-thinking-2026-04-15](sources/psb-thinking-2026-04-15.md) +- [psb-thinking-2026-04-16](sources/psb-thinking-2026-04-16.md) +- [psb-thinking-2026-04-17](sources/psb-thinking-2026-04-17.md) +- [psb-thinking-2026-04-18](sources/psb-thinking-2026-04-18.md) +- [psb-thinking-2026-04-23](sources/psb-thinking-2026-04-23.md) +- [psb-thinking-2026-04-24](sources/psb-thinking-2026-04-24.md) +- [psb-thinking-2026-04-25](sources/psb-thinking-2026-04-25.md) +- [psb-thinking-2026-04-26](sources/psb-thinking-2026-04-26.md) +- [psb-thinking-2026-04-29](sources/psb-thinking-2026-04-29.md) +- [psb-thinking-2026-04-30](sources/psb-thinking-2026-04-30.md) +- [psb-thinking-2026-05-01](sources/psb-thinking-2026-05-01.md) +- [psb-thinking-fermentation-dashboard](sources/psb-thinking-fermentation-dashboard.md) +- [psb-thinking-pihole-blocker](sources/psb-thinking-pihole-blocker.md) +- [psb-thinking-robotics-team-agent](sources/psb-thinking-robotics-team-agent.md) +- [psb-thinking-systemic-settings-loss](sources/psb-thinking-systemic-settings-loss.md) +- [psb-thinking-test-sync](sources/psb-thinking-test-sync.md) - [README](sources/readme.md) - [ROBOTICS-LAB-PI-REPLACEMENT](sources/robotics-lab-pi-replacement.md) - [robotics-team-agent](sources/robotics-team-agent.md) diff --git a/sources/index.md b/sources/index.md index 998acbe..5346c59 100644 --- a/sources/index.md +++ b/sources/index.md @@ -145,6 +145,11 @@ - [psb-gemma-standup-latest](sources/psb-gemma-standup-latest.md) - [psb-gemma-tilt-spreadsheet-protocol](sources/psb-gemma-tilt-spreadsheet-protocol.md) - [psb-gemma-todo_maybe_later](sources/psb-gemma-todo-maybe-later.md) +- [psb-recipe-70_Meg_Omega_2_2024](sources/psb-recipe-70-meg-omega-2-2024.md) +- [psb-recipe-Hot_for_Teacher](sources/psb-recipe-hot-for-teacher.md) +- [psb-recipe-john-adams-ne-cider-4-26](sources/psb-recipe-john-adams-ne-cider-4-26.md) +- [psb-recipe-Mount_Vernon_Molasses_George_Washington](sources/psb-recipe-mount-vernon-molasses-george-washington.md) +- [psb-recipe-Seltzer_base_corn_11](sources/psb-recipe-seltzer-base-corn-11.md) - [psb-thinking-2026-03-01](sources/psb-thinking-2026-03-01.md) - [psb-thinking-2026-03-03-touchscreen-fix](sources/psb-thinking-2026-03-03-touchscreen-fix.md) - [psb-thinking-2026-03-09](sources/psb-thinking-2026-03-09.md) @@ -157,6 +162,22 @@ - [psb-thinking-2026-04-12](sources/psb-thinking-2026-04-12.md) - [psb-thinking-2026-04-13](sources/psb-thinking-2026-04-13.md) - [psb-thinking-2026-04-14](sources/psb-thinking-2026-04-14.md) +- [psb-thinking-2026-04-15](sources/psb-thinking-2026-04-15.md) +- [psb-thinking-2026-04-16](sources/psb-thinking-2026-04-16.md) +- [psb-thinking-2026-04-17](sources/psb-thinking-2026-04-17.md) +- [psb-thinking-2026-04-18](sources/psb-thinking-2026-04-18.md) +- [psb-thinking-2026-04-23](sources/psb-thinking-2026-04-23.md) +- [psb-thinking-2026-04-24](sources/psb-thinking-2026-04-24.md) +- [psb-thinking-2026-04-25](sources/psb-thinking-2026-04-25.md) +- [psb-thinking-2026-04-26](sources/psb-thinking-2026-04-26.md) +- [psb-thinking-2026-04-29](sources/psb-thinking-2026-04-29.md) +- [psb-thinking-2026-04-30](sources/psb-thinking-2026-04-30.md) +- [psb-thinking-2026-05-01](sources/psb-thinking-2026-05-01.md) +- [psb-thinking-fermentation-dashboard](sources/psb-thinking-fermentation-dashboard.md) +- [psb-thinking-pihole-blocker](sources/psb-thinking-pihole-blocker.md) +- [psb-thinking-robotics-team-agent](sources/psb-thinking-robotics-team-agent.md) +- [psb-thinking-systemic-settings-loss](sources/psb-thinking-systemic-settings-loss.md) +- [psb-thinking-test-sync](sources/psb-thinking-test-sync.md) - [README](sources/readme.md) - [ROBOTICS-LAB-PI-REPLACEMENT](sources/robotics-lab-pi-replacement.md) - [robotics-team-agent](sources/robotics-team-agent.md) diff --git a/sources/psb-recipe-70-meg-omega-2-2024.md b/sources/psb-recipe-70-meg-omega-2-2024.md new file mode 100644 index 0000000..951218c --- /dev/null +++ b/sources/psb-recipe-70-meg-omega-2-2024.md @@ -0,0 +1,79 @@ +--- +pageType: source +id: source.psb-recipe-70-meg-omega-2-2024 +title: psb-recipe-70_Meg_Omega_2_2024 +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-gemma/recipes/70_Meg_Omega_2_2024.md +ingestedAt: 2026-05-03T02:02:18.289Z +updatedAt: 2026-05-03T02:02:18.289Z +status: active +--- + +# psb-recipe-70_Meg_Omega_2_2024 + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-gemma/recipes/70_Meg_Omega_2_2024.md` +- Bytes: 1559 +- Updated: 2026-05-03T02:02:18.289Z + +## Content +```text +# 70 Meg Ω - 2/2024 +**Style:** Double IPA (BJCP 22A) +**Brewed:** 2024-02-05 +**Status:** Completed (TILT: Pink — active fermenter) + +## Recipe Specs +- **Batch:** 4 bbl (12800 cl actual, ~128 gal) +- **OG:** 1.098 (measured), FG: 1.029 +- **ABV:** ~7.2% (Nottingham attenuation) +- **IBU:** ~70 ( Amarillo, Simcoe, Warrior) +- **Mash:** Single Infusion, 148°F, 75 min (Light Body, Batch Sparge) +- **Water:** RO + Burton profile (high sulfate: 150ppm SO4, 75ppm Ca, low chloride) +- **Yeast:** LalBrew Nottingham Ale Yeast (dry pitch, 75g) + +## Grain Bill +| Grain | % | Amount | +|---|---|---| +| US Proximity Pilsner | 92.3% | 9.45 lb | +| DE CaraAmber | 7.7% | 0.78 lb | + +## Hops +| Hop | Alpha | Amount | Use | Time | +|---|---|---|---|---| +| Amarillo | 7.7% | 35g | First Wort | 60 min | +| Simcoe | 13% | 19g | First Wort | 60 min | +| Amarillo | 9.2% | 23g | Whirlpool | 4 min | +| Simcoe | 13% | 23g | Whirlpool | 4 min | +| Warrior | 15% | 11g | Whirlpool | 4 min | + +## Water Salts (Burton profile) +- Gypsum: mash 86g + sparge 48g +- Calcium Chloride: mash 26g + sparge 15g +- Epsom Salt: mash 17g + sparge 9.5g +- Chalk: mash 0.1g + sparge 0.06g +- Salt: mash 9g + sparge 5g + +## Fermentation +- Primary: 67°F, 4 days +- Secondary: 67°F, 10 days +- Tertiary: 65°F, 7 days +- Carbonation: 2.3 vol (20 psi, forced CO2) + +## Notes +- Hard carbonated at 20 psi until equilibrium +- Linked TILT sheet: https://docs.google.com/spreadsheets/d/1_RqLj6gMBFuLda1gIcR8sg3GrUi_svnJqE7yL-JQ-U +- Water target: "Light & Hoppy" profile +- TILT color: Pink (TILT device name, not foam color) + +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-recipe-hot-for-teacher.md b/sources/psb-recipe-hot-for-teacher.md new file mode 100644 index 0000000..998b276 --- /dev/null +++ b/sources/psb-recipe-hot-for-teacher.md @@ -0,0 +1,82 @@ +--- +pageType: source +id: source.psb-recipe-hot-for-teacher +title: psb-recipe-Hot_for_Teacher +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-gemma/recipes/Hot_for_Teacher.md +ingestedAt: 2026-05-03T02:02:41.446Z +updatedAt: 2026-05-03T02:02:41.446Z +status: active +--- + +# psb-recipe-Hot_for_Teacher + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-gemma/recipes/Hot_for_Teacher.md` +- Bytes: 1880 +- Updated: 2026-05-03T02:02:41.446Z + +## Content +```text +# Hot for Teacher +**Style:** Blonde Ale (BJCP Cat 6 — Light Hybrid) +**Brewed:** 2026-04-01 +**Assistant Brewer:** Kirk Debaets +**Status:** Active fermentation (TILT: Green) + +## Recipe Specs +- **Batch:** 12800 cl (PSBs 4bbl system) +- **OG:** 1.064 (measured) — target 1.050 with 17G dilution water to hit 5.3% ABV +- **Mash OG:** 1.049 (actual mash readout) +- **FG:** ~1.012 (expected, based on Nottingham attenuation) +- **ABV:** ~5.3% (target) +- **IBU:** ~21 (Centennial bittering + cascade finishing) +- **Mash:** Single Infusion, 152°F, 60 min, batch sparge +- **Water:** RO + Yellow Balanced profile (50ppm Ca, 75ppm SO4, 60ppm Cl, 7ppm Mg, 5ppm Na) +- **Carbonation:** 2.3 vol +- **Yeast:** LalBrew Nottingham Ale Yeast (dry pitch) + +## Grain Bill +| Grain | % | +|---|---| +| 2-Row Xtra Pale Malt (Viking Malt) | 84% | +| Vienna Malt | 10% | +| Cara-Pils/Dextrine | 5% | +| Crystal 20L | 0.5% | + +## Hops +| Hop | Alpha | Amount | Use | Time | +|---|---|---|---|---| +| Centennial | 10% | 8g | Bittering | 60 min | +| Centennial | 10% | 8g | Flavor | 15 min | +| Cascade | 5.5% | 8g | Aroma | 1 min | + +## Water Salts (Yellow Balanced) +- Gypsum: mash 22g + sparge 22g +- Calcium Chloride: mash 28g + sparge 28g +- Epsom Salt: mash 17g + sparge 18g +- Salt: mash 3g + sparge 3g +- Chalk: mash 0.04g + sparge 0.04g + +## TILT Data +- TILT link: https://docs.google.com/spreadsheets/d/1Y87yeo6SkxQVBotWq4xLIXLVJGYAVh1pZ9rAQa9EtQY +- Apr 1 (day 1): 1.0449 @ 70.9°F — low for day 1, likely TILT hadn't stabilized yet or reading taken early + +## Notes +- "add 17G water to achieve 1.049 @ 5.3%" — diluted post-ferment to hit target +- Uses Nottingham yeast (high attenuation, clean, slightly fruity) +- Assistant brewer Kirk Debaets listed — collaboration batch +- Viking 2-Row with Null Lox technology (no staling off-flavors, extended freshness) +- Target water profile: Yellow Balanced (Under 6 SRM) + +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-recipe-john-adams-ne-cider-4-26.md b/sources/psb-recipe-john-adams-ne-cider-4-26.md new file mode 100644 index 0000000..a2f17cb --- /dev/null +++ b/sources/psb-recipe-john-adams-ne-cider-4-26.md @@ -0,0 +1,75 @@ +--- +pageType: source +id: source.psb-recipe-john-adams-ne-cider-4-26 +title: psb-recipe-john-adams-ne-cider-4-26 +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-gemma/recipes/john-adams-ne-cider-4-26.md +ingestedAt: 2026-05-03T02:03:03.882Z +updatedAt: 2026-05-03T02:03:03.882Z +status: active +--- + +# psb-recipe-john-adams-ne-cider-4-26 + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-gemma/recipes/john-adams-ne-cider-4-26.md` +- Bytes: 1263 +- Updated: 2026-05-03T02:03:03.882Z + +## Content +```text +# 6-JOHN ADAMS – NEW ENGLAND CIDER-ALE HYBRID +American Amber Ale (6.2) | Batch: 100 gal | Brewed: 19 Apr 2026 + +## TTB Compliance Note +Fermentables limited to 50% from apple juice — dropped juice to 18 gal (from 21) and bumped pale malt to 160 lb. + +--- + +## Targets +- OG: 1.062 | FG: 1.011 | ABV: ~5.5-6% +- IBU: ~25 (EKG only, post-blend lower) +- Batch size: 100 gal | Boil: 109.70 gal + +## Water (RO) — 140 gal +- 70 g Gypsum (mash) +- 80 g Calcium Chloride (mash) +- 12 g Epsom Salt (mash) +- No baking soda + +## Grains +| Grain | Amount | % | +|-------|--------|---| +| Viking Pale Ale Malt | 160 lb | 82.4% | +| Wheat Malt, Ger | 21.7 lb | 11.2% | +| Flaked Oats | 10.8 lb | 5.6% | +| Apple Juice (post-boil) | 18 gal | — | + +**Apple Juice:** 13.9° Brix → SG 1.0564 + +Mash: 66.7°C (152°F) for 60 min | Fly sparge 78.42 gal + +## Hops (EKG) +- 21.7 oz @ 60 min — 19.8 IBU +- 10.8 oz @ 10 min — 3.6 IBU + +## Process +1. Brew ~2.8 bbl wort to ~1.056 pre-boil +2. Chill to 64-66°F, transfer to FV +3. Add ~0.7 bbl (18 gal) fresh unfermented cider +4. Oxygenate post-blend, ferment at 64-68°F +5. Package at 2.3-2.5 vols CO₂ + +## Original BSMX +`/home/topher/.openclaw/media/inbound/6JOHN_ADAMS_NEW_ENGLAND_CIDERALE_HYBRID.bsmx---461ee373-3018-4381-ac1e-2c3765d94f26.txt` +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-recipe-mount-vernon-molasses-george-washington.md b/sources/psb-recipe-mount-vernon-molasses-george-washington.md new file mode 100644 index 0000000..83d5a22 --- /dev/null +++ b/sources/psb-recipe-mount-vernon-molasses-george-washington.md @@ -0,0 +1,77 @@ +--- +pageType: source +id: source.psb-recipe-mount-vernon-molasses-george-washington +title: psb-recipe-Mount_Vernon_Molasses_George_Washington +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-gemma/recipes/Mount_Vernon_Molasses_George_Washington.md +ingestedAt: 2026-05-03T02:03:26.208Z +updatedAt: 2026-05-03T02:03:26.208Z +status: active +--- + +# psb-recipe-Mount_Vernon_Molasses_George_Washington + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-gemma/recipes/Mount_Vernon_Molasses_George_Washington.md` +- Bytes: 1854 +- Updated: 2026-05-03T02:03:26.208Z + +## Content +```text +# 04-Mount Vernon Molasses — George Washington +**Style:** Pre-Prohibition Porter (BJCP Historical, Cat 27) +**Brewed:** 2026-03-15 +**Kegged:** Yes (Black TILT) +**Status:** Completed + +## Recipe Specs +- **Batch:** ~5 gal pilot (BeerSmith homebrew scale, not production) +- **OG:** 1.050 (target) | **FG:** 1.0048 (measured Apr 1) +- **ABV:** ~5.9% +- **IBU:** ~32 (Fuggle, 60 min) +- **SRM:** 30+ (very dark brown) +- **Mash:** Single Infusion, 152°F, 60 min +- **Water:** RO + Gypsum 80g, CaCl 120g, Epsom 20g, Baking Soda 40g +- **Carbonation:** 2.3 vol +- **Yeast:** LalBrew Nottingham Ale Yeast (dry pitch) + +## Grain Bill +| Grain | % | Notes | +|---|---|---| +| Maris Otter | 57% | Base malt | +| Molasses | 9.6% | Late boil (last 10-15 min) | +| Brown Malt | 9.6% | Biscuity, dry | +| Crystal 60L | 8.3% | Caramel sweetness | +| Chocolate Malt | 6% | Color, nuttiness | +| Flaked Barley | 6% | Body, head retention | +| Black Patent | 3.6% | Roast, dryness | + +## Hops +- **Fuggle** (4.5% AA) — 45.6g at 60 min → ~32 IBU + +## Fermentation Timeline (TILT: Black) +- Mar 15: Pitched — temp climbing to 70.8°F by day 1 end +- Mar 16-18: Active fermentation, peaked at 1.0503 on Mar 18 +- Mar 19-20: Rapid attenuation (1.018 → 1.015) +- Mar 21-Apr 1: Slow finishing — 1.018 → 1.016 over 11 days +- Apr 1: FG 1.016 (final reading in log) +- Temp ramped down from 70°F to 45.7°F for lagering/conditioning + +## Historical Context +Recipe adapted from George Washington's own molasses porter recipe (circa 1750s-1790s). Washington brewed this commercially at Mount Vernon — one of the earliest American craft beers. The historical version used rye and pumpkin in addition to the molasses. + +## TILT Data +- TILT link: https://docs.google.com/spreadsheets/d/1QUAfig7zlvvRAMm45e4NYh-syAyiRfOWC4OCFse3qdM +- TILT color: Black (physical color is White, TILT reads as Black) + +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-recipe-seltzer-base-corn-11.md b/sources/psb-recipe-seltzer-base-corn-11.md new file mode 100644 index 0000000..4f37da5 --- /dev/null +++ b/sources/psb-recipe-seltzer-base-corn-11.md @@ -0,0 +1,76 @@ +--- +pageType: source +id: source.psb-recipe-seltzer-base-corn-11 +title: psb-recipe-Seltzer_base_corn_11 +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-gemma/recipes/Seltzer_base_corn_11.md +ingestedAt: 2026-05-03T02:03:48.552Z +updatedAt: 2026-05-03T02:03:48.552Z +status: active +--- + +# psb-recipe-Seltzer_base_corn_11 + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-gemma/recipes/Seltzer_base_corn_11.md` +- Bytes: 1770 +- Updated: 2026-05-03T02:03:48.552Z + +## Content +```text +# Seltzer base - corn 11% +**Style:** Hard Seltzer (Corn Sugar base) +**Brewed:** 2026-04-04 +**Status:** Active fermentation (TILT: Orange) + +## Recipe Specs +- **Batch:** 8320 cl (~22 gal / ~83L) — BeerSmith batch size +- **Target OG:** 1.050 | **Measured OG:** 1.075 +- **Measured FG:** 0.996 (TILT reading Nov 2025) +- **Target ABV:** ~11% | **Actual ABV:** ~10.5% +- **Mash:** Single Infusion, 152°F, 60 min (no mash out) +- **Water:** RO + minerals (target: 75ppm Ca, 50ppm SO4, 50ppm Cl, 4ppm Na, 20ppm HCO3) +- **Carbonation:** 2.3 vol (forced CO2) + +## Fermentables +- 100% Corn Sugar (Dextrose) — 2400g (in BeerSmith units = ~5.3 lb) + +## Water Salts +- Calcium Chloride: 265g +- Epsom Salt: 110g +- Salt: 35g +- Lactic Acid: 15ml (mash pH adjustment to 5.2) + +## Yeast / Nutrients +- **Yeast:** APEX CULTURES HARD SELTZER (dry pitch) + - Attenuation: 85-99%, Tolerance: 15% ABV + - Optimal temp: 70-77°F, ~5 days fermentation +- **Nutrient:** Fermo Pro (yeast nutrient) +- **Pitch schedule:** 14.7g at pitch, 11.1g at 24h, 11.1g at 48h + +## TILT Data (from recipe linked sheet) +- TILT link: https://docs.google.com/spreadsheets/d/14tnc31TTteTswzfGlIdjm5u8WSKOzs7HfQazzzZe-g8 (Orange TILT, current active fermentation) +- Orange TILT has had 3+ moisture-related failures — o-ring replacement + silicone grease needed +- Old sheet (Black TILT, archived Sep 2025): https://docs.google.com/spreadsheets/d/1cEdszrD_lV9RTt3HYABpmMLtjGDsCg5AZbyxgW18U2U +- Sep 29, 2025: OG 1.0757, temp 71.8°F +- Nov 1, 2025: FG 0.996, temp 71.78°F +- Fermentation duration: ~41 days (to reach 0.996 FG) +- TILT color: Orange + +## Notes +- 100% dextrose ferment — no malt bill +- Target 11% ABV using seltzer yeast (APEX) +- Water profile balanced for seltzer clarity +- No hops (as expected for seltzer) + +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-2026-04-09.md b/sources/psb-thinking-2026-04-09.md index 670e049..8751195 100644 --- a/sources/psb-thinking-2026-04-09.md +++ b/sources/psb-thinking-2026-04-09.md @@ -4,8 +4,8 @@ id: source.psb-thinking-2026-04-09 title: psb-thinking-2026-04-09 sourceType: local-file sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-09.md -ingestedAt: 2026-05-03T01:28:34.097Z -updatedAt: 2026-05-03T01:28:34.097Z +ingestedAt: 2026-05-03T01:54:23.818Z +updatedAt: 2026-05-03T01:54:23.818Z status: active --- @@ -15,7 +15,7 @@ status: active - Type: `local-file` - Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-09.md` - Bytes: 5963 -- Updated: 2026-05-03T01:28:34.097Z +- Updated: 2026-05-03T01:54:23.818Z ## Content ```text diff --git a/sources/psb-thinking-2026-04-10.md b/sources/psb-thinking-2026-04-10.md index a996358..8ad31aa 100644 --- a/sources/psb-thinking-2026-04-10.md +++ b/sources/psb-thinking-2026-04-10.md @@ -4,8 +4,8 @@ id: source.psb-thinking-2026-04-10 title: psb-thinking-2026-04-10 sourceType: local-file sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-10.md -ingestedAt: 2026-05-03T01:28:55.418Z -updatedAt: 2026-05-03T01:28:55.418Z +ingestedAt: 2026-05-03T01:54:46.994Z +updatedAt: 2026-05-03T01:54:46.994Z status: active --- @@ -15,7 +15,7 @@ status: active - Type: `local-file` - Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-10.md` - Bytes: 5299 -- Updated: 2026-05-03T01:28:55.418Z +- Updated: 2026-05-03T01:54:46.994Z ## Content ```text diff --git a/sources/psb-thinking-2026-04-11.md b/sources/psb-thinking-2026-04-11.md index 4dc1b1c..654adbb 100644 --- a/sources/psb-thinking-2026-04-11.md +++ b/sources/psb-thinking-2026-04-11.md @@ -4,8 +4,8 @@ id: source.psb-thinking-2026-04-11 title: psb-thinking-2026-04-11 sourceType: local-file sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-11.md -ingestedAt: 2026-05-03T01:29:16.719Z -updatedAt: 2026-05-03T01:29:16.719Z +ingestedAt: 2026-05-03T01:55:10.285Z +updatedAt: 2026-05-03T01:55:10.285Z status: active --- @@ -15,7 +15,7 @@ status: active - Type: `local-file` - Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-11.md` - Bytes: 540 -- Updated: 2026-05-03T01:29:16.719Z +- Updated: 2026-05-03T01:55:10.285Z ## Content ```text diff --git a/sources/psb-thinking-2026-04-12.md b/sources/psb-thinking-2026-04-12.md index 2ac6d93..0e3906d 100644 --- a/sources/psb-thinking-2026-04-12.md +++ b/sources/psb-thinking-2026-04-12.md @@ -4,8 +4,8 @@ id: source.psb-thinking-2026-04-12 title: psb-thinking-2026-04-12 sourceType: local-file sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-12.md -ingestedAt: 2026-05-03T01:29:38.055Z -updatedAt: 2026-05-03T01:29:38.055Z +ingestedAt: 2026-05-03T01:55:33.521Z +updatedAt: 2026-05-03T01:55:33.521Z status: active --- @@ -15,7 +15,7 @@ status: active - Type: `local-file` - Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-12.md` - Bytes: 1045 -- Updated: 2026-05-03T01:29:38.055Z +- Updated: 2026-05-03T01:55:33.521Z ## Content ```text diff --git a/sources/psb-thinking-2026-04-13.md b/sources/psb-thinking-2026-04-13.md index 9acad63..4f47506 100644 --- a/sources/psb-thinking-2026-04-13.md +++ b/sources/psb-thinking-2026-04-13.md @@ -4,8 +4,8 @@ id: source.psb-thinking-2026-04-13 title: psb-thinking-2026-04-13 sourceType: local-file sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-13.md -ingestedAt: 2026-05-03T01:29:59.300Z -updatedAt: 2026-05-03T01:29:59.300Z +ingestedAt: 2026-05-03T01:55:56.660Z +updatedAt: 2026-05-03T01:55:56.660Z status: active --- @@ -15,7 +15,7 @@ status: active - Type: `local-file` - Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-13.md` - Bytes: 2828 -- Updated: 2026-05-03T01:29:59.300Z +- Updated: 2026-05-03T01:55:56.660Z ## Content ```text diff --git a/sources/psb-thinking-2026-04-14.md b/sources/psb-thinking-2026-04-14.md index 2f488fa..fe2f083 100644 --- a/sources/psb-thinking-2026-04-14.md +++ b/sources/psb-thinking-2026-04-14.md @@ -4,8 +4,8 @@ id: source.psb-thinking-2026-04-14 title: psb-thinking-2026-04-14 sourceType: local-file sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-14.md -ingestedAt: 2026-05-03T01:30:20.705Z -updatedAt: 2026-05-03T01:30:20.705Z +ingestedAt: 2026-05-03T01:56:20.046Z +updatedAt: 2026-05-03T01:56:20.046Z status: active --- @@ -15,7 +15,7 @@ status: active - Type: `local-file` - Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-14.md` - Bytes: 7163 -- Updated: 2026-05-03T01:30:20.705Z +- Updated: 2026-05-03T01:56:20.046Z ## Content ```text diff --git a/sources/psb-thinking-2026-04-15.md b/sources/psb-thinking-2026-04-15.md new file mode 100644 index 0000000..4246f0b --- /dev/null +++ b/sources/psb-thinking-2026-04-15.md @@ -0,0 +1,49 @@ +--- +pageType: source +id: source.psb-thinking-2026-04-15 +title: psb-thinking-2026-04-15 +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-15.md +ingestedAt: 2026-05-03T01:56:43.207Z +updatedAt: 2026-05-03T01:56:43.207Z +status: active +--- + +# psb-thinking-2026-04-15 + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-15.md` +- Bytes: 635 +- Updated: 2026-05-03T01:56:43.207Z + +## Content +```text +# Memory - 2026-04-15 + +## Continuing from 2026-04-14 +- Git re-initialized after reboot (was lost during restart) +- Dreaming fired at 21:11 UTC Apr 14 — query "GPU P102-100 install network issue" +- Dreaming at 3 AM still not consistent + +## Status 12:23 UTC +- No new dreaming since Apr 14 21:11 +- P102-100 GPU still not detected +- Git repo now initialized + +## 21:43 UTC - Dreaming fired at 19:02 UTC +- Dreaming fired! New entry at Apr 15 19:02:20 UTC +- Query: "tricorder com badge project files" — 1 result +- Dreaming now running at ~19:00 UTC instead of 3 AM +- Still writes to memory/.dreams/ only — root DREAMS.md bug unresolved + +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-2026-04-16.md b/sources/psb-thinking-2026-04-16.md new file mode 100644 index 0000000..7d2da85 --- /dev/null +++ b/sources/psb-thinking-2026-04-16.md @@ -0,0 +1,46 @@ +--- +pageType: source +id: source.psb-thinking-2026-04-16 +title: psb-thinking-2026-04-16 +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-16.md +ingestedAt: 2026-05-03T01:57:06.697Z +updatedAt: 2026-05-03T01:57:06.697Z +status: active +--- + +# psb-thinking-2026-04-16 + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-16.md` +- Bytes: 571 +- Updated: 2026-05-03T01:57:06.697Z + +## Content +```text + +## End of Day Summary (Apr 16) +- System stable all day (~2 days uptime) +- Dreaming: missed the 3 AM window again — last fired Apr 15 19:02 UTC +- Dreaming schedule shifted to evening hours (~19:00 UTC) rather than 3 AM +- P102-100 GPU still not detected — only Quadro K600 +- No user interaction today + +## Apr 17 03:16 UTC - Dreaming FIRED at 3 AM! +- Finally! Dreaming fired at 03:16 UTC +- Query: "crash-bot chat bot vector database Qdrant" — 4 results +- short-term-recall.json: 18675 bytes +- DREAMS.md still NOT written to root — same bug +- System uptime: ~3 days + +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-2026-04-17.md b/sources/psb-thinking-2026-04-17.md new file mode 100644 index 0000000..569e39b --- /dev/null +++ b/sources/psb-thinking-2026-04-17.md @@ -0,0 +1,58 @@ +--- +pageType: source +id: source.psb-thinking-2026-04-17 +title: psb-thinking-2026-04-17 +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-17.md +ingestedAt: 2026-05-03T01:57:29.924Z +updatedAt: 2026-05-03T01:57:29.924Z +status: active +--- + +# psb-thinking-2026-04-17 + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-17.md` +- Bytes: 1510 +- Updated: 2026-05-03T01:57:29.924Z + +## Content +```text + +## Qdrant 2890 Collection - Setup Complete +- Created same text block for 2890-bot as was done for crash-bot +- 2890 collection on Qdrant (100.91.1.57:6333) is live: 768-dim, Cosine, green status, 0 points +- 2890-bot saved to: docs/vector-db-setup.md +- Same scoping rules: 2890-chat-bot reads from 2890 only, brewery and crash-lab off-limits +- Both crash-lab and 2890 collections now exist; brewery is PSB's + +## Shared Tools/Scripts Library — Created +- Created: /home/topher/.openclaw/shared/ + - shared/scripts/qdrant_indexer.py — generic parameterized RAG indexer (any collection) + - shared/scripts/qdrant_query.py — generic semantic search query script + - shared/templates/vector-db-setup-template.md — fill-in-the-blanks vector DB setup + - shared/README.md — documentation and rules +- Created: /home/topher/.openclaw/shared-self-improving/ + - mistakes.md — consolidated cross-agent mistakes from psb-gemma, psb-thinking, 2890-bot +- Updated AGENTS.md to add step 9: check shared/ before building something new +- Rule: if you build it twice, it belongs in shared/ + +## End of Day Summary (Apr 17) +- System stable — ~4 days uptime +- Dreaming fired twice: 03:16 UTC and 11:34 UTC +- Both times: events.jsonl + short-term-recall.json written to memory/.dreams/ (DREAMS.md still NOT written — persistent bug) +- Queries: "crash-bot chat bot vector database Qdrant" and "2890 Qdrant collection text block crash-lab" +- No user interaction today +- P102-100 GPU: still not detected, Quadro K600 only + +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-2026-04-18.md b/sources/psb-thinking-2026-04-18.md new file mode 100644 index 0000000..84abde4 --- /dev/null +++ b/sources/psb-thinking-2026-04-18.md @@ -0,0 +1,53 @@ +--- +pageType: source +id: source.psb-thinking-2026-04-18 +title: psb-thinking-2026-04-18 +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-18.md +ingestedAt: 2026-05-03T01:57:53.127Z +updatedAt: 2026-05-03T01:57:53.127Z +status: active +--- + +# psb-thinking-2026-04-18 + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-18.md` +- Bytes: 1387 +- Updated: 2026-05-03T01:57:53.127Z + +## Content +```text +# 2026-04-18 — Session Notes + +## CasaOS Shutdown Preparation +- Topher requested all agents save to memory before CasaOS shutdown +- Sent save-to-memory notices to: psb-gemma ✅, psb-business (timeout), 2890-bot (timeout), crash-bot (timeout), crash-bot-public (timeout) +- Gemma confirmed: "Saved. Going down with the ship. 👋" +- Timeouts likely mean those sessions were idle — their memory files are already on disk + +## Crash-Bot Model Override Fix +- crash-bot was stuck on `minimax-m2.7` instead of `glm-5.1:cloud` +- Root cause: `sessions.json` had sticky `modelOverride: minimax-m2.7` on `agent:crash-bot:main` and `agent:crash-bot:discord:direct:266336985692635139` +- The Discord channel session was fine (no override, already on glm-5.1:cloud) +- Fixed by clearing modelOverride and resetting model to `glm-5.1:cloud` in sessions.json +- Verified GLM-5.1 cloud API is working (direct curl test returned valid response) +- Crash-bot's own memory noted: "Session started with minimax-m2.7 — not default glm-5.1:cloud. Cause unknown." +## End of Day Summary (Apr 18) +- System stable — ~5 days uptime +- Dreaming: fired Apr 17 at 03:16 and 11:34 UTC, but NOT today (Apr 18) +- Both days: events.jsonl + short-term-recall.json written to memory/.dreams/ (DREAMS.md still NOT written — persistent bug) +- No user interaction today +- P102-100 GPU: still not detected, Quadro K600 only + +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-2026-04-23.md b/sources/psb-thinking-2026-04-23.md new file mode 100644 index 0000000..066cdea --- /dev/null +++ b/sources/psb-thinking-2026-04-23.md @@ -0,0 +1,77 @@ +--- +pageType: source +id: source.psb-thinking-2026-04-23 +title: psb-thinking-2026-04-23 +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-23.md +ingestedAt: 2026-05-03T01:58:16.317Z +updatedAt: 2026-05-03T01:58:16.317Z +status: active +--- + +# psb-thinking-2026-04-23 + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-23.md` +- Bytes: 2464 +- Updated: 2026-05-03T01:58:16.317Z + +## Content +```text +# Memory - 2026-04-23 + +## SQL Database Question +- Topher asked if we're using SQL database — confusion from Crash bot +- **Answer:** No SQL — we use Qdrant (vector DB for RAG). SQLite IS used but only for OpenClaw's internal state (memory/*.sqlite, flows/registry.sqlite, tasks/runs.sqlite) +- Crash bot was talking about OpenClaw's own internal SQLite dbs — those are normal, not something we set up + +## Memory Search Investigation (Key Finding) +- Topher questioned whether memory search is actually working via Ollama +- **Discovery:** Config says Ollama/nomic-embed-text, but ACTUAL backend is GGUF model via node-llama-cpp CPU +- Evidence: Every memory_search result in transcripts shows `hf:ggml-org/embeddinggemma-300m-qat-q8_0-GGUF` +- CLI test: `openclaw memory search` took 24 seconds (node-llama-cpp CPU fallback, no GPU) +- Ollama IS running (localhost:11434) but NOT being used for embeddings — only for chat +- **Root cause:** node-llama-cpp GGUF model exists at ~/.node-llama-cpp/models/ — "local" provider picks this by default, bypassing Ollama config +- node-llama-cpp has prebuilt Vulkan binary but system doesn't support it → falls back to CPU + +## OpenClaw Memory Research Findings +Sources: velvetshark.com, docs.openclaw.ai, GitHub issues, community guides + +### Three Failure Modes +1. **Failure A:** Never stored — instruction only in chat, never written to file +2. **Failure B:** Compaction destroyed it — lossy summary drops details/nuance +3. **Failure C:** Session pruning trimmed tool results (temporary) + +### Known Bugs (OpenClaw v2026.4.8) +- **#57410:** Compaction results in full reset instead of compression (context 700K→29K, Compactions:0) +- **#17727:** Post-compaction, agent loses awareness of AGENTS.md/SOUL.md (re-injected files not re-injected after summarize) +- **#56072:** Daily 4AM reset silently archives session WITHOUT memory flush — context lost silently + +### Missing Config +Our openclaw.json has NO compaction tuning: +- No `reserveTokensFloor` (defaults to 20K — too tight) +- No `memoryFlush` explicit config +- No `contextPruning` config +- No `compaction.notifyUser` + +### What We Have +- memorySearch: enabled ✓ +- Bootstrap files: 24K chars total — well under 150K cap ✓ +- WAL on: registry.sqlite, runs.sqlite only (system dbs) +- Agent memory dbs: all delete journal mode + +## WAL Protocol +- WAL enforcement confirmed running (HEARTBEAT.md checklist active) +- Updated SESSION-STATE.md with new findings + +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-2026-04-24.md b/sources/psb-thinking-2026-04-24.md new file mode 100644 index 0000000..0eee5d7 --- /dev/null +++ b/sources/psb-thinking-2026-04-24.md @@ -0,0 +1,53 @@ +--- +pageType: source +id: source.psb-thinking-2026-04-24 +title: psb-thinking-2026-04-24 +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-24.md +ingestedAt: 2026-05-03T01:58:39.648Z +updatedAt: 2026-05-03T01:58:39.648Z +status: active +--- + +# psb-thinking-2026-04-24 + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-24.md` +- Bytes: 916 +- Updated: 2026-05-03T01:58:39.648Z + +## Content +```text +# Memory - 2026-04-24 + +## System State +- All systems nominal — no user interactions on this day +- Dreaming: last fired Apr 23 17:29 UTC (crash-lab query), ~34h gap by end of day +- No user corrections or decisions to log + +## Dreaming Observations +- dreaming frequency set to `0 7 * * *` (7 AM UTC) via memory-core plugin config +- events.jsonl: 18 entries total, last entry Apr 23 17:29 +- DREAMS.md root file: NOT being written (persistent bug across all agents) +- aggregate-dreams.sh exists but has no cron trigger (no dreaming schedule found in crontab) + +## Key Context Maintained +- Running on CasaOS server (media, 100.91.1.57) +- P102-100 GPU: dead, removed +- Memory search: slow GGUF CPU fallback +- Eero port forward: Pi:8080 → media:80 (still not flipped) + +## SESSION-STATE.md +- Trimmed from 63 to ~40 lines (archived old research notes) +- Kept lean: current task, key context, pending actions, project status +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-2026-04-25.md b/sources/psb-thinking-2026-04-25.md new file mode 100644 index 0000000..7fea857 --- /dev/null +++ b/sources/psb-thinking-2026-04-25.md @@ -0,0 +1,39 @@ +--- +pageType: source +id: source.psb-thinking-2026-04-25 +title: psb-thinking-2026-04-25 +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-25.md +ingestedAt: 2026-05-03T01:59:02.884Z +updatedAt: 2026-05-03T01:59:02.884Z +status: active +--- + +# psb-thinking-2026-04-25 + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-25.md` +- Bytes: 391 +- Updated: 2026-05-03T01:59:02.884Z + +## Content +```text + +## Dreaming Anomaly +- Last dreaming event: Apr 23 17:29 UTC (~40h 50m gap by 10:20 Apr 25) +- Config says `0 7 * * *` (7 AM UTC) but actual firing observed ~17:29 UTC +- events.jsonl: 18 entries, last timestamp 2026-04-23T17:29:04.192Z +- .dreams/ directory timestamp: Apr 23 17:29:04 — no new dreaming activity detected +- DREAMS.md root file: NOT being written (persistent bug, no fix yet) + +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-2026-04-26.md b/sources/psb-thinking-2026-04-26.md new file mode 100644 index 0000000..ce0fb76 --- /dev/null +++ b/sources/psb-thinking-2026-04-26.md @@ -0,0 +1,45 @@ +--- +pageType: source +id: source.psb-thinking-2026-04-26 +title: psb-thinking-2026-04-26 +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-26.md +ingestedAt: 2026-05-03T01:59:26.141Z +updatedAt: 2026-05-03T01:59:26.141Z +status: active +--- + +# psb-thinking-2026-04-26 + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-26.md` +- Bytes: 541 +- Updated: 2026-05-03T01:59:26.141Z + +## Content +```text + +## 04:51 UTC - Dreaming Still Silent +- ~59h since last dreaming event (Apr 23 17:29 UTC) +- Config: `0 7 * * *` — should fire at 07:00 UTC but hasn't +- events.jsonl still at 18 entries, last timestamp unchanged +- .dreams/ directory unchanged since Apr 23 17:29 +- DREAMS.md never written — persistent bug + +## 07:21 UTC - Dreaming Config Firing Time Passes +- Config `0 7 * * *` should fire at 07:00 UTC +- No new events by 07:21 — ~61h gap now +- events.jsonl: 18 entries, last Apr 23 17:29 UTC +- .dreams/ dir unchanged since Apr 23 17:29 + +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-2026-04-29.md b/sources/psb-thinking-2026-04-29.md new file mode 100644 index 0000000..45d2240 --- /dev/null +++ b/sources/psb-thinking-2026-04-29.md @@ -0,0 +1,71 @@ +--- +pageType: source +id: source.psb-thinking-2026-04-29 +title: psb-thinking-2026-04-29 +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-29.md +ingestedAt: 2026-05-03T01:59:49.317Z +updatedAt: 2026-05-03T01:59:49.317Z +status: active +--- + +# psb-thinking-2026-04-29 + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-29.md` +- Bytes: 1720 +- Updated: 2026-05-03T01:59:49.317Z + +## Content +```text +# 2026-04-29 — Daily Log + +## Dreaming Status (Apr 30 00:40 UTC update) +- **Still broken**: No new dream events since Apr 27 11:31 UTC (~61h ago) +- Pattern: Dreams fire once after a gap, then stop completely +- Gateway has restarted multiple times (PIDs 263379, 371254, 2297563) +- No error messages in journalctl — gateway running clean +- Dreaming scheduler appears non-functional +- Manual intervention may be needed (restart openclaw-gateway, check plugin config) + +## Gateway Restarts (Apr 28-29) +- PID 1822221 died sometime Apr 28 +- PID 263379 started Apr 28 ~unknown +- PID 371254 started Apr 29 00:28:16 +- PID 2297563 started Apr 29 17:40:10 (current) + +## Notes +- Dreaming investigation ongoing — no solution found yet +- System otherwise healthy, no user conversations + +## Apr 30 Status (as of 18:26 UTC) +- Dreaming: RESUMED! 🎉 2 events at Apr 30 17:15:45 + 18:13:49 UTC after ~75h gap +- events.jsonl: 21 lines (was 19) — 2 new events +- Pattern: 2 events within 58 minutes (not single-shot) +- Gateway PID 2297563 running ~23h, memory 1.7GB + +## Apr 30 18:26 UTC — DREAMING RESUMED! 🎉 +- 2 new dream events after ~75h gap: Apr 30 17:15:45 and 18:13:49 UTC +- events.jsonl now 21 lines (was 19) +- Directory timestamp updated to Apr 30 18:13 +- Pattern changed: now 2 events within 58 minutes instead of the usual single-shot +- Gateway PID 2297563 still running, memory 1.7GB + +## May 1 07:01 UTC — Dreaming HEALTHY again! +- 11 new events fired at 2026-05-01T07:00:01.598Z +- events.jsonl: 32 lines (was 21) +- New files: session-corpus/, daily-ingestion.json, phase-signals.json, session-ingestion.json +- Pattern: all 11 events same timestamp — batch processing +- Gateway PID 1710, uptime ~29h, memory 913MB + +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-2026-04-30.md b/sources/psb-thinking-2026-04-30.md new file mode 100644 index 0000000..a787e1b --- /dev/null +++ b/sources/psb-thinking-2026-04-30.md @@ -0,0 +1,69 @@ +--- +pageType: source +id: source.psb-thinking-2026-04-30 +title: psb-thinking-2026-04-30 +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-30.md +ingestedAt: 2026-05-03T02:00:12.563Z +updatedAt: 2026-05-03T02:00:12.563Z +status: active +--- + +# psb-thinking-2026-04-30 + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-04-30.md` +- Bytes: 1832 +- Updated: 2026-05-03T02:00:12.563Z + +## Content +```text +# 2026-04-30 — Daily Log + +## LLMwiki Discussion +- Topher asked about LLMwiki vs our setup +- Karpathy's pattern: LLM builds/maintains persistent markdown wiki from sources (not raw retrieval) +- nashsu/llm_wiki is a desktop app implementation of the pattern +- Key insight: LLMwiki compiles knowledge once, our RAG re-derives every query +- Our Qdrant scales better (millions of vectors) and supports multi-agent sharing +- Best approach: complementary layers (wiki on top, vector DB underneath) +- At brewery scale (~100s of docs), LLMwiki would work great but loses multi-agent Qdrant + +## Gemma Stuck in Loop +- Topher noticed Gemma looping +- Session shows: heartbeat → tilt script → can't post to PSB → gateway restart attempt → repeat +- Gateway 1006 connection drops compounding the issue +- Offered to reset her session, awaiting Topher's call + +## Gateway Health +- Gateway briefly unreachable (1006 errors) around 17:15-17:21 UTC +- Recovered on its own + +## Dreaming +- RESUMED — 2 events at 17:15 + 18:13 UTC after ~75h gap +- 21 total events in events.jsonl now + +## Gateway Bind Fix +- Root cause of 1006 errors: customBindHost was 192.168.0.207 (LAN only), localhost connections refused +- Changed customBindHost to 0.0.0.0 — both 127.0.0.1 and 192.168.0.207 now return 200 +- Backup: openclaw.json.bak.2026-04-30 +- This was also causing Gemma's loop — every tool call hit 1006 + +## Mission Control (robsannaa) +- Installed at ~/.openclaw/openclaw-mission-control +- Running dev mode on port 3333 (http://192.168.0.207:3333) +- Version 0.4.9, MIT license, Next.js 16.1.6 +- Features: dashboard, chat with agents, Kanban tasks, cron management, cost tracking, memory browser, model management, doctor, terminal +- Needs systemd service setup for persistence (currently foreground dev mode) +- Topher approved and is testing it now +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-2026-05-01.md b/sources/psb-thinking-2026-05-01.md new file mode 100644 index 0000000..f46ef7d --- /dev/null +++ b/sources/psb-thinking-2026-05-01.md @@ -0,0 +1,57 @@ +--- +pageType: source +id: source.psb-thinking-2026-05-01 +title: psb-thinking-2026-05-01 +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/2026-05-01.md +ingestedAt: 2026-05-03T02:00:35.891Z +updatedAt: 2026-05-03T02:00:35.891Z +status: active +--- + +# psb-thinking-2026-05-01 + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/2026-05-01.md` +- Bytes: 1421 +- Updated: 2026-05-03T02:00:35.891Z + +## Content +```text +# 2026-05-01 — Daily Log + +## CPU Drain Investigation & Fix +- OpenClaw gateway was at 61% CPU at idle after v2026.4.29 upgrade attempt +- Root cause: Discord crash loop — rate-limited slash commands, gateway timeouts, 30-40s event loop blocks +- Discord was reconnecting in a loop, each cycle blocking Node event loop +- Agent bootstraps taking 80-117s (should be 5-10s), LLM calls timing out, Telegram send failures +- Fix: Disabled Discord in openclaw.json (`channels.discord.enabled = false`) +- CPU dropped from 61% → 14% after Discord disable + gateway restart +- Also set `channels.telegram.timeoutSeconds = 30` (v2026.4.8 didn't have v2026.4.29's polling fix) + +## OpenClaw Upgrade Status +- Claw attempted upgrade to v2026.4.29 — went sideways +- npm still shows v2026.4.8 installed globally +- Partial artifacts remain: plugin-runtime-deps/openclaw-2026.4.29-*, openclaw.json.backup-2026.4.29, openclaw.json.last-good +- Config lastTouchedVersion = 2026.4.29 but actual installed version = 2026.4.8 +- Need to decide: complete upgrade or stay on v2026.4.8 + +## New Software Found +- Claw Empire (climpire v2.0.4) installed at ~/openclaw/claw-empire/ — multi-agent orchestration dashboard +- Not currently running, no systemd service +- Mission Control (robsannaa) also not running — was on port 3333 dev mode + +## Pi Reboot +- Topher rebooted the Pi during the session +- Pi back online on Tailscale (100.99.44.24, 11ms) +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-fermentation-dashboard.md b/sources/psb-thinking-fermentation-dashboard.md new file mode 100644 index 0000000..75e9cd5 --- /dev/null +++ b/sources/psb-thinking-fermentation-dashboard.md @@ -0,0 +1,148 @@ +--- +pageType: source +id: source.psb-thinking-fermentation-dashboard +title: psb-thinking-fermentation-dashboard +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/projects/fermentation-dashboard.md +ingestedAt: 2026-05-03T02:02:18.239Z +updatedAt: 2026-05-03T02:02:18.239Z +status: active +--- + +# psb-thinking-fermentation-dashboard + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/projects/fermentation-dashboard.md` +- Bytes: 2955 +- Updated: 2026-05-03T02:02:18.239Z + +## Content +````text +# Fermentation Dashboard Upgrade + +**Status:** Planning / Not started +**Location:** BREWERY +**Goal:** Make the existing fermentation display prettier + +--- + +## Current State + +- TILT Hydrometers → ESP32 Bridge → Brewery Home Assistant +- Existing fermentation dashboard in HA +- Fire Stick display in brewhouse +- **Pain point:** Current display isn't pretty enough + +--- + +## Options for Improvement + +### Option 1: HA Native Dashboard (Simplest) +**Use HA's built-in Lovelace cards** +- Mushroom cards, Auto Entities, Mini Graph Card +- Custom themes (e.g., "Mushroom", "iOS Dark Mode") +- No extra services needed + +**Pros:** +- Everything already in HA +- No InfluxDB/Grafana complexity +- Fast, responsive + +**Cons:** +- Less customizable than Grafana +- Graph styling limited + +--- + +### Option 2: HA + InfluxDB + Grafana (Prettiest) +**Pipe TILT data to Grafana for beautiful graphs** + +``` +TILT → ESP32 → HA → InfluxDB → Grafana → Fire Stick +``` + +**HA Add-ons available:** +- InfluxDB (official HA add-on) +- Grafana (official HA add-on) + +**Pros:** +- Stunning visualizations +- Highly customizable +- Professional brewery monitoring look + +**Cons:** +- More complexity (2 extra services) +- ~300-500MB RAM usage +- Need to configure data pipeline + +--- + +### Option 3: Hybrid +**HA for controls, Grafana for display** +- Keep HA dashboard for interaction +- Grafana dashboard on Fire Stick (read-only, pretty graphs) +- Best of both worlds + +--- + +## User Decisions (2026-04-04) + +- **Current state:** Decent fermentation dashboard exists, wants it "prettier" +- **Architecture:** TILT → ESP32 Bridge → Brewery HA → Fire Stick (already working) +- **HA Access:** ✅ Token provided for PSB-server (100.126.129.57:8123) +- **Decision pending:** HA native cards vs. InfluxDB+Grafana add-ons + +**Fermenters:** 4 total + +## Data Discovery (2026-04-04) + +**Active TILT Sensors:**** +| Sensor | Temp (°F) | SG | Signal | +|--------|-----------|----|--------| +| Green TILT | 67.6 | 1.0384 | -82 | +| White TILT | 43.4 | 1.0155 | -74 | +| Pink TILT | Unavailable | Unavailable | Unavailable | +| Orange TILT | Unavailable | Unavailable | Unavailable | + +**Other fermentation entities:** +- `switch.fermenterswitch` (unavailable) +- Power/energy sensors for fermenter switch +- Device trackers for SG trackers (likely backup monitoring) + +**HA Components present:** ESPHome, ZHA (Zigbee), HACS, Node-RED, Frigate, WLED, IKEA Tradfri lighting + +--- + +## TODO + +- [ ] **WAITING:** User to share Brewery HA token +- [ ] Review current fermentation dashboard layout +- [ ] Assess: HA native upgrade sufficient, or need Grafana? +- [ ] If Grafana: Install HA add-ons (InfluxDB + Grafana), configure data flow +- [ ] Design new dashboard layout +- [ ] Configure Fire Stick kiosk mode (Fully Kiosk Browser or Chrome) +- [ ] Test + iterate + +--- + +## Notes + +- Brewery HA is separate from home HA +- Fire Stick already in brewhouse +- TILT data already flowing (no new sensors needed) + +--- + +*Created: 2026-04-04* + +```` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-pihole-blocker.md b/sources/psb-thinking-pihole-blocker.md new file mode 100644 index 0000000..2679927 --- /dev/null +++ b/sources/psb-thinking-pihole-blocker.md @@ -0,0 +1,349 @@ +--- +pageType: source +id: source.psb-thinking-pihole-blocker +title: psb-thinking-pihole-blocker +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/projects/pihole-blocker.md +ingestedAt: 2026-05-03T02:02:41.347Z +updatedAt: 2026-05-03T02:02:41.347Z +status: active +--- + +# psb-thinking-pihole-blocker + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/projects/pihole-blocker.md` +- Bytes: 9252 +- Updated: 2026-05-03T02:02:41.347Z + +## Content +````text +# Pi-hole Blocker Project + +**Status:** Planning / Not started +**Hardware:** Seeed Studio Dual-GbE Carrier Board with 4GB RAM + 32GB eMMC (CM4) +**URL:** https://www.seeedstudio.com/Dual-GbE-Carrier-Board-with-4GB-RAM-32GB-eMMC-RPi-CM4-Case-p-5029.html + +--- + +## Decision Log + +### 2026-04-04 — Initial Research + +**Hardware selected:** CM4 with dual GbE + eMMC (no SD card!) + +**Chosen approach:** Raspberry Pi OS Lite + Pi-hole (manual install) +- Full control +- Well-documented +- eMMC more reliable than SD +- Dual GbE enables passthrough or bridge mode + +**Rejected:** +- Pre-built images (outdated, inflexible) +- DietPi (good but less common for troubleshooting) +- Docker (overkill for dedicated hardware) + +--- + +## TODO (When Ready) + +- [ ] Flash Raspberry Pi OS Lite (64-bit) to eMMC +- [ ] Enable SSH, set hostname before first boot +- [ ] First boot + network config +- [ ] Install Pi-hole: `curl -sSL https://install.pi-hole.net | bash` +- [ ] Configure upstream DNS (Cloudflare/Google/Quad9) +- [ ] Decide network mode: passthrough vs bridge vs VLAN +- [ ] Point router DNS to Pi-hole IP +- [ ] Test + document + +--- + +## Network Config Notes (Dual GbE) + +**Goal:** Transparent filtering for entire network + +### Option 1: Single Port + Router DNS Redirect (Recommended) ⭐ + +``` +Modem → Existing Router → Pi-hole (eth0 only) → All devices + ↳ Time Machine (same port) +``` + +**How:** Router forces all port 53 traffic to Pi-hole IP +**Pros:** +- Simplest setup +- Existing router handles DHCP/NAT (less to break) +- Time Machine works on same network +- Dual GbE not needed, but harmless +**Cons:** +- Devices can bypass with hardcoded DNS (8.8.8.8) +- Router must support DNS redirect/forced DNS + +**Best for:** Most home setups, transparent operation + +--- + +### Option 2: Bridge Mode (Dual GbE Active) + +``` +Router → eth0 ─┬─ Pi-hole (bridged) ─┬─ eth1 → Switch/House + └─ Time Machine share ─┘ +``` + +**How:** Both ports bridged at OS level, Pi acts as Layer 2 device +**Pros:** +- All traffic passes through (harder to bypass) +- Time Machine visible to all devices +- Existing router still handles DHCP/NAT +**Cons:** +- More complex network config (bridge interfaces) +- Pi becomes network dependency (if it dies, network dies) + +**Best for:** Maximum coverage, willing to troubleshoot bridging + +--- + +### Option 3: Full Inline Router (Dual GbE) + +``` +Modem → eth0 (WAN) → Pi-hole routes/NAT → eth1 (LAN) → House + ↳ Time Machine on LAN side +``` + +**How:** Pi replaces your router entirely +**Pros:** +- Complete control, can't bypass +- Full firewall/NAT control +- True network segmentation possible +**Cons:** +- Most complex (DHCP, NAT, firewall rules) +- Single point of failure +- Time Machine only visible to LAN side +- Need to reconfigure entire network + +**Best for:** Advanced users, want full network control + +--- + +## Decision Log + +### 2026-04-04 — Final Decisions + +**Network Mode:** Option 1 — Single Port + Router DNS Redirect ⭐ +- Existing router handles DHCP/NAT +- Router forces DNS to Pi-hole +- Time Machine on same network (no complications) +- Can upgrade to bridge mode later if needed + +**Add-ons Confirmed:** +- ✅ Pi-hole (DNS ad-blocking) +- ✅ Unbound (recursive DNS, privacy) +- ✅ Time Machine (Mac backups via Samba + Avahi) +- ✅ Wireshark/tcpdump lab (packet capture for learning) +- ❌ WireGuard — SKIP (Tailscale already covers remote access) + +**Location:** HOME (separate from brewery setup) + +**Dual GbE Verdict:** NOT overkill — enables bridge mode for packet capture learning lab 🎓 + +**Rejected:** +- Pre-built Pi-hole images (outdated, inflexible) +- DietPi (less common for troubleshooting) +- Docker (overkill for dedicated hardware) +- Full inline router mode (too complex for v1) +- WireGuard (Tailscale = WireGuard, redundant) + +--- + +## Learning/Lab Use Cases (Dual GbE Bonus!) + +### Packet Capture & Analysis (Wireshark/tcpdump) + +**Bridge mode = perfect learning lab:** + +``` +Router → eth0 → Pi (bridged) → eth1 → House + ↓ + Full packet capture +``` + +**What you can learn:** +- Wireshark filters and display rules +- Protocol analysis (DNS, HTTP, SMB, etc.) +- Network troubleshooting +- Security analysis (spot suspicious traffic) +- IoT device behavior (what's my Roomba actually doing?) + +**Tools to install:** +- `wireshark` (GUI, needs X11/VNC) or `tshark` (CLI) +- `tcpdump` (lightweight CLI capture) +- `nethogs` (bandwidth by process) +- `iftop` / `ntopng` (real-time traffic visualization) + +**Example commands:** +```bash +# Capture all traffic on eth0 +sudo tcpdump -i eth0 -w capture.pcap + +# Live DNS query monitoring +sudo tshark -i eth0 -Y "dns" -T fields -e dns.qry.name + +# Real-time bandwidth by host +sudo nethogs -t -c 5 eth0 +``` + +**Privacy note:** You'll see EVERYTHING on your network — passwords in plaintext (HTTP), browsing history, device fingerprints. Great for learning, serious responsibility. + +--- + +### Other Lab Scenarios + +| Scenario | Setup | Learning Value | +|----------|-------|----------------| +| **Network segmentation** | VLANs on dual NIC | Enterprise networking | +| **Firewall rules** | iptables/nftables | Security hardening | +| **QoS testing** | Traffic shaping | Bandwidth management | +| **MITM analysis** | ARP spoofing detection | Security awareness | +| **Service monitoring** | Port scanning, service discovery | Network mapping | + +--- + +**Verdict:** Dual GbE is NOT overkill if you want a learning lab. Bridge mode + packet capture = home network university. 🎓 + +--- + +## Add-on Modules (Optional) + +### Confirmed Interest (2026-04-04) + +| Add-on | Purpose | Notes | +|--------|---------|-------| +| **Time Machine Target** | Network backup for Macs | Samba + Avahi, ~50MB RAM | +| **Grafana + TILT Data** | Fermentation visualization | Pipe TILT data → InfluxDB → Grafana | +| **Fire Stick Display** | Brew house monitoring screen | Display Grafana dashboard on Fire Stick | + +### Architecture Clarification (2026-04-04) + +**Location split:** +- **Pi-hole CM4:** HOME (with dual GbE) +- **TILT Bridge:** BREWERY (ESP32) +- **Home Assistant:** BREWERY (separate instance) +- **Fire Stick:** BREWERY (display) + +**Implication:** TILT data already lives at brewery HA. Fire Stick should just display brewery HA directly! + +### Simplified Brew House Display + +``` +TILT → ESP32 Bridge → Brewery HA → Fire Stick (kiosk browser) +``` + +**No need to pipe to home!** Fire Stick points at `http://brewery-ha:8123/lovelace/fermentation-dashboard` + +### Home Pi-hole Box Add-ons (Final) + +| Add-on | Purpose | Priority | +|--------|---------|----------| +| Pi-hole | DNS ad-blocking | Core | +| Unbound | Recursive DNS (privacy) | High | +| Time Machine | Mac backups | High | +| Wireshark/tcpdump | Packet capture lab | Medium (learning) | +| Grafana (home metrics) | Network monitoring | Low (optional) | + +--- + +## Time Machine Backup — Detailed Specs + +### Requirements + +| Item | Details | +|------|---------| +| **OS** | Raspberry Pi OS Lite (any version) | +| **Services** | Samba (SMB), Avahi (mDNS/Bonjour) | +| **Storage** | USB drive (SSD recommended) or network share | +| **RAM** | ~50MB overhead | +| **CPU** | Minimal (compression is client-side) | + +### How It Works + +``` +Mac → Bonjour discovery (Avahi) → Samba share → USB drive on Pi +``` + +1. Avahi advertises `_adisk._tcp` service (Mac sees it as Time Machine destination) +2. Samba provides SMB share with Time Machine extensions +3. Mac backs up over network automatically + +--- + +### Limitations + +| Limitation | Impact | Workaround | +|------------|--------|------------| +| **Network speed** | First backup slow (hours), subsequent faster | Use Ethernet, not WiFi | +| **USB drive speed** | HDD = slow, SSD = fast | Use SSD for better experience | +| **Single user** | One Mac per sparsebundle (by default) | Can configure multi-user but tricky | +| **Backup size** | Limited by USB drive capacity | Use large drive (1TB+ recommended) | +| **No encryption** | Backups unencrypted on disk | Enable FileVault on Mac instead | +| **Pi must be on** | No backup if Pi is off | Set static IP, ensure uptime | + +--- + +### Nice-to-Haves + +| Feature | Why | How | +|---------|-----|-----| +| **SSD storage** | 10-20× faster than HDD | USB 3.0 SSD enclosure | +| **Dedicated partition** | Isolate backups from OS | Separate USB drive or partition | +| **Backup quotas** | Prevent one Mac from filling drive | `tmutil` setquota per Mac | +| **Auto-mount** | Survive reboots | `/etc/fstab` entry | +| **Monitoring** | Alert if backup fails | HA integration or cron check | +| **Multiple destinations** | Redundancy | Rotate between 2 USB drives | + +--- + +### Setup Commands (Reference) + +```bash +# Install Samba + Avahi +sudo apt install samba avahi-daemon + +# Create backup share +sudo mkdir -p /srv/timemachine +sudo chown nobody:nogroup /srv/timemachine +sudo chmod 2777 /srv/timemachine + +# Configure Samba (/etc/samba/smb.conf) +# Configure Avahi (/etc/avahi/services/timemachine.service) + +# Restart services +sudo systemctl restart smbd avahi-daemon +``` + +--- + +### Estimated Setup Time + +- **Fresh install:** ~30 minutes +- **First Mac backup:** 2-8 hours (depends on data size) +- **Subsequent backups:** 10-30 minutes (incremental) + +--- + +*Created: 2026-04-04* + +--- + +*Created: 2026-04-04* + +```` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-robotics-team-agent.md b/sources/psb-thinking-robotics-team-agent.md new file mode 100644 index 0000000..6c52afd --- /dev/null +++ b/sources/psb-thinking-robotics-team-agent.md @@ -0,0 +1,122 @@ +--- +pageType: source +id: source.psb-thinking-robotics-team-agent +title: psb-thinking-robotics-team-agent +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/robotics-team-agent.md +ingestedAt: 2026-05-03T02:00:59.157Z +updatedAt: 2026-05-03T02:00:59.157Z +status: active +--- + +# psb-thinking-robotics-team-agent + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/robotics-team-agent.md` +- Bytes: 3184 +- Updated: 2026-05-03T02:00:59.157Z + +## Content +````text +# Robotics Team Agent - Potential Setup + +## Current Status +- **User:** Considering a dedicated OpenClaw instance OR a new isolated agent +- **Context:** Losing programming coach next year; user is build/mechanical + +## Team Details +- **Grade levels:** 9-12 +- **Language:** Java +- **Libraries:** YAGSL (swerve), PhotonVision (vision) +- **Current sensors:** AprilTags (considering expansion to object detection) +- **Hardware:** RobotRIO now, moving to Pi-based next year + +## Requirements for Team Agent +1. **Isolation** — Separate from "brewery side" (main household) +2. **GitHub access** — Separate repo for team code +3. **Google Drive** — For team documents/resources +4. **Capabilities:** + - Code audits + - Java/WPILib/YAGSL code review + - Teaching/debugging for students + - PhotonVision integration help + +## Model Recommendation +- Ollama cloud (qwen2.5-coder:14b for code review, or 7b for speed) +- Or local on Pi: qwen2.5-coder:7b + +## Notes +- Students should learn, not just get answers — guide them to solutions +- Seniors can mentor younger students +- Useful for explaining PID, state machines, odometry, vision pipelines + +## Decision Pending +- Dedicated instance vs. add new agent to existing OpenClaw +- Not yet implemented + +## Alternative Git Hosts (school blocks github.com specifically) +- [x] **Gitea** — Self-hosted on CasaOS server ✓ + +## Gitea Setup - Complete (2026-03-12) + +### External Access +- **URL:** http://2890.duckdns.org:3002 +- **Port:** 3002 (TCP, port forwarded) +- **DDNS:** 2890.duckdns.org → 174.206.100.116 +- **Status:** ✅ Externally accessible +- **User:** TopherSlater + +### Mirrored Repos (from GitHub) +| Repo | URL | Status | +|------|-----|--------| +| YAGSL | `http://2890.duckdns.org:3002/TopherSlater/YAGSL` | ✅ | +| photonvision | `http://2890.duckdns.org:3002/TopherSlater/photonvision` | ✅ | +| allwpilib | `http://2890.duckdns.org:3002/TopherSlater/allwpilib` | ✅ | + +### Mirror Method +```bash +# Clone bare, push branches+tags only (skip PR refs) +git clone --bare https://github.com/ORG/REPO.git REPO-mirror +cd REPO-mirror +git remote set-url origin https://USER:TOKEN@localhost:3002/USER/REPO.git +git push --all origin +git push --tags origin +``` + +### Auto-Sync Script +- **Location:** `/opt/gitea-mirrors/sync.sh` (on CasaOS server) +- **Auth:** Gitea token embedded (no password prompts) +- **Cron:** `*/30 * * * * /opt/gitea-mirrors/sync.sh` (every 30 min) +- **Status:** ✅ Tested and working + +### Architecture +- **Home server** runs Gitea + syncs with GitHub + - Pulls libraries (YAGSL, PhotonLib, etc.) from GitHub + - Pushes team code to GitHub for outside mentors +- **Students** pull/push only from local Gitea (never touch GitHub) +- **Outside mentors** access via Gitea directly + +### TODO +- [ ] Test student access from school network +- [ ] Create team code repo in Gitea +- [ ] Verify mirrors sync properly over time +- [ ] Configure team repo access +- [ ] Mirror YAGSL + dependencies from GitHub to Gitea + - YAGSL + - PhotonLib + - WPILib (via vendor JSON - check if still needed) + - Other key dependencies +- [ ] Ensure Gradle is available locally (WPILib distribution or standalone) +- [ ] Test build from school network + +```` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-systemic-settings-loss.md b/sources/psb-thinking-systemic-settings-loss.md new file mode 100644 index 0000000..e2d7480 --- /dev/null +++ b/sources/psb-thinking-systemic-settings-loss.md @@ -0,0 +1,74 @@ +--- +pageType: source +id: source.psb-thinking-systemic-settings-loss +title: psb-thinking-systemic-settings-loss +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/tasks/systemic-settings-loss.md +ingestedAt: 2026-05-03T02:01:22.530Z +updatedAt: 2026-05-03T02:01:22.530Z +status: active +--- + +# psb-thinking-systemic-settings-loss + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/tasks/systemic-settings-loss.md` +- Bytes: 1550 +- Updated: 2026-05-03T02:01:22.530Z + +## Content +```text +# Task: Systemic OpenClaw Settings Loss — Investigate and Document + +**Filed by:** psb-gemma (from PSB group chat, 2026-04-21) +**Priority:** Medium +**Status:** Open + +--- + +## Issue Summary + +OpenClaw agents are silently losing settings that were previously enabled. Two confirmed cases: + +1. **WAL mode** — documented as enabled on all agents 2026-04-08, currently NOT active on any sqlite store +2. **Discord Message Content Intent** — checked in Dev Portal but not registering (hits 4014 DisallowedIntents) + +The pattern is the same: settings appear to be applied but silently fail or revert. No error output, no notification. + +--- + +## Confirmed State Today + +- psb-gemma sqlite store: WAL not active (checked via `openclaw memory status`) +- psb-thinking sqlite store: WAL not active (psb-thinking confirmed via own check) +- psb-business: No WAL at all +- psb-gemma has since had WAL protocol added to AGENTS.md + HEARTBEAT.md + +--- + +## Questions to Answer + +1. Where does OpenClaw store sqlite journal_mode? Is it in the sqlite file itself, a config file, or set at connection time? +2. Why would it silently revert to DELETE journal mode? +3. Is there an update/restart that could reset this? +4. Same question for Discord Intent — is this an OpenClaw bug or a Discord API issue? + +--- + +## Outcome Wanted + +- Root cause identified (or at minimum, filed as an OpenClaw issue upstream) +- A way to enforce WAL persistence across restarts — either a startup script, config fix, or upstream report +- Document findings in `memory/systemic-settings-loss.md` + +``` + +## Notes + + + +## Related + +- No related pages yet. + diff --git a/sources/psb-thinking-test-sync.md b/sources/psb-thinking-test-sync.md new file mode 100644 index 0000000..3a79ff2 --- /dev/null +++ b/sources/psb-thinking-test-sync.md @@ -0,0 +1,33 @@ +--- +pageType: source +id: source.psb-thinking-test-sync +title: psb-thinking-test-sync +sourceType: local-file +sourcePath: /home/topher/.openclaw/workspace-psb-thinking/memory/test-sync.md +ingestedAt: 2026-05-03T02:01:45.822Z +updatedAt: 2026-05-03T02:01:45.822Z +status: active +--- + +# psb-thinking-test-sync + +## Source +- Type: `local-file` +- Path: `/home/topher/.openclaw/workspace-psb-thinking/memory/test-sync.md` +- Bytes: 35 +- Updated: 2026-05-03T02:01:45.822Z + +## Content +```text +# Test Sync +OpenClaw dreaming test. +``` + +## Notes + + + +## Related + +- No related pages yet. +