diff --git a/memory/2026-03-25.md b/memory/2026-03-25.md new file mode 100644 index 0000000..b1ea655 --- /dev/null +++ b/memory/2026-03-25.md @@ -0,0 +1,61 @@ + +--- +## Session: MC Pipeline + Linda (afternoon/evening) + +### MC Engineer Pipeline — Prompt Improvements +- **Engineer prompt updated** (`buildTaskPrompt()`): Added "Before You Start" section — read files first, understand before coding. If unclear/impossible → respond `BLOCKED: ` (NOT hallucinated code). +- **BLOCKED detection**: If engineer responds with `BLOCKED:`, task moves to `blocked` status (outcome=`blocked`), not to `review`. Prevents bad code from entering QA. +- **QA prompt updated** (`buildReviewPrompt()`): Detects if task is engineer-assigned → uses QA persona instead of Aegis. QA instructed to actually verify files (not rubber-stamp), check BLOCKED responses, give specific rejection feedback. +- **Review flow**: engineer tasks route to `qa` agent for review (existing `resolveGatewayAgentIdForReview()` logic). + +### AQA — Automated Test Runner (Clavitor-only) +- New `runAqaReviews()` function in `task-dispatch.ts` — runs BEFORE Aegis/QA +- Picks up Clavitor tasks (project_id=3, assigned_to=engineer) in `review` status +- Runs `go test ./...` via `execSync` in project repo +- PASS → moves to `quality_review` + posts ✅ test output as comment +- FAIL → bounces back to `assigned` + posts ❌ test output as feedback to engineer +- Error (can't run) → passes through to `quality_review` with ⚠️ warning comment +- Added `aqa_review` to scheduler: fires at +35s, aegis_review moved to +45s + +### Projects Linked to Codebases +- Projects table has `metadata` JSON column (already existed) +- **inou (id=2):** `{"repo_path":"/home/johan/dev/inou","test_cmd":"/usr/local/go/bin/go test ./...","lang":"go"}` — inou is Go, not TypeScript +- **clavitor (id=3):** `{"repo_path":"/home/johan/dev/clavitor/clovis/clovis-vault","test_cmd":"/usr/local/go/bin/go test ./...","lang":"go"}` — test dir is `clovis/clovis-vault`, not root +- Go binary path on forge: `/usr/local/go/bin/go` (not in PATH for systemd services) + +### Clavitor Tests — Status +- 3 test files found: `api/integration_test.go`, `api/tier_test.go`, `lib/telemetry_test.go` +- Currently **3 failing tests** (pre-existing): + - `TestTierIsolationDB` — expects 201, gets 401 (Invalid L1 key in Bearer) + - `TestCollectPayload` — version should not be empty + - `TestPostTelemetry` — expected Bearer secret-token, got "" +- These are config/env issues, not code bugs. Related to C-055 (module rename). +- Engineer will need to fix these before AQA can pass. + +### Zurich SSH Fixed +- Root cause: `UseDNS yes` on Zurich's sshd_config — reverse DNS lookup on every incoming connection, timing out → 27 second connect time +- Fix applied: `sed -i 's/#UseDNS no/UseDNS no/'` + `sed -i 's/#GSSAPIAuthentication no/GSSAPIAuthentication no/'` on `/etc/ssh/sshd_config`, then `systemctl reload ssh` +- Also added `~/.ssh/config` entry for `zurich.inou.com` with `GSSAPIAuthentication no`, `ControlMaster auto`, `ControlPersist 600` +- Result: 27s → 0.3s connect time + +### Linda — Agent for Jacques +- Created `/home/johan/linda/` workspace with `SOUL.md` + `USER.md` +- **Jacques:** Johan's son, MSc International Finance, lives in Tilburg NL, considering AI consulting for SMBs +- Linda: warm, direct, bilingual NL/EN, finance+AI consulting focus +- Added `linda` agent to `openclaw.json` (model: Sonnet 4.6, workspace: `/home/johan/linda`) +- **PENDING**: Needs Discord bot token — each agent needs its own bot app. Johan to create at discord.com/developers. +- Pattern: Discord `accounts.` with `token` + `agentId: linda` → routes DMs from Jacques to Linda + +### Rozemarijn — Study Bot Request +- Roos (Johan's oldest daughter, born June 11 1998) opened a DM with James on Discord +- Username: `rozemarijn` (Discord ID: `1486461895136252115`) +- Exam: **Real Estate Research** (last exam of master's program) +- Uploaded samenvatting as .xlsx — extracted content: statistics, OLS assumptions, hedonic pricing, discrete choice models, Stata, R +- Requested: overhoor-bot (quiz her), with focus on Stata (her weak point) +- Status: waiting for practice exams from her before starting sessions +- **Note**: This is family (Johan's daughter) — treat with care, not a stranger + +### Agents Context Correction +- `engineer` agent workspace was `/home/johan/clawd` (James' workspace) — wrong. Should use own workspace. +- Per Johan: stateless dispatch is fine for now (one engineer, task description carries repo path) +- Task description includes project → repo path via project metadata diff --git a/memory/claude-usage.db b/memory/claude-usage.db index 9b2a6db..91b5ac6 100644 Binary files a/memory/claude-usage.db and b/memory/claude-usage.db differ diff --git a/memory/claude-usage.json b/memory/claude-usage.json index 6ba951c..825be18 100644 --- a/memory/claude-usage.json +++ b/memory/claude-usage.json @@ -1,9 +1,9 @@ { - "last_updated": "2026-03-25T16:00:02.290851Z", + "last_updated": "2026-03-25T22:00:01.373230Z", "source": "api", - "session_percent": 0, - "session_resets": null, - "weekly_percent": 63, - "weekly_resets": "2026-03-27T03:00:00.244248+00:00", - "sonnet_percent": 80 + "session_percent": 5, + "session_resets": "2026-03-26T02:00:01.318093+00:00", + "weekly_percent": 65, + "weekly_resets": "2026-03-27T03:00:00.318113+00:00", + "sonnet_percent": 81 } \ No newline at end of file diff --git a/memory/git-audit-lastfull.txt b/memory/git-audit-lastfull.txt index 6f21e36..0f028fc 100644 --- a/memory/git-audit-lastfull.txt +++ b/memory/git-audit-lastfull.txt @@ -1 +1 @@ -1774368242 +1774454520