chore: auto-commit uncommitted changes

This commit is contained in:
James 2026-03-26 00:01:45 -04:00
parent fd7bb7473a
commit 5ef8521f1a
5 changed files with 150 additions and 121 deletions

View File

@ -1,61 +1,79 @@
# Daily Memory — 2026-03-25 (Wednesday)
## Overview
Full day of MC pipeline development and family agent setup. Major improvements to engineer/QA workflow, plus two new agent requests for Johan's children.
---
## 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: <reason>` (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).
## Morning
- **9:45 AM**: Morning briefing generated and delivered
### 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
## Afternoon/Evening Session — MC Pipeline + Family Agents
### 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)
### MC Engineer/QA Pipeline — Major Improvements
- **Engineer prompt** (`buildTaskPrompt()`): Added "Before You Start" — read files first, understand before coding. `BLOCKED: <reason>` for impossible tasks.
- **BLOCKED detection**: Tasks with `BLOCKED:` response move to `blocked` status (not `review`).
- **QA prompt** (`buildReviewPrompt()`): Actually verifies files, checks BLOCKED responses, gives specific rejection feedback.
- **AQA (Automated QA)**: New pre-Aegis test runner for Clavitor:
- Runs `go test ./...` before human review
- PASS → `quality_review` + ✅ comment
- FAIL → bounce to `assigned` + ❌ feedback
- Error → pass through with ⚠️ warning
- Scheduler: AQA at +35s, Aegis at +45s
### Project-Codebase Linking
- Projects table `metadata` JSON now stores:
- **inou**: `{"repo_path":"/home/johan/dev/inou","test_cmd":"/usr/local/go/bin/go test ./...","lang":"go"}`
- **clavitor**: `{"repo_path":"/home/johan/dev/clavitor/clovis/clovis-vault","test_cmd":"/usr/local/go/bin/go test ./...","lang":"go"}`
- Go binary path: `/usr/local/go/bin/go` (systemd PATH issue resolved)
### 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.
- 3 test files: `api/integration_test.go`, `api/tier_test.go`, `lib/telemetry_test.go`
- **3 failing tests** (pre-existing, config-related):
- `TestTierIsolationDB`: expects 201, gets 401 (Invalid L1 key)
- `TestCollectPayload`: version should not be empty
- `TestPostTelemetry`: expected Bearer secret-token, got ""
- These are C-055 (module rename) related — engineer task needed
### 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
### Infrastructure — Zurich SSH Fixed
- **Problem**: 27 second SSH connect time to zurich.inou.com
- **Root cause**: `UseDNS yes` → reverse DNS timeout
- **Fix**: `UseDNS no`, `GSSAPIAuthentication no`, `ControlMaster auto`, `ControlPersist 600`
- **Result**: 27s → 0.3s
### 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.<name>` with `token` + `agentId: linda` → routes DMs from Jacques to Linda
### Linda — Agent for Jacques (Johan's Son)
- Created `/home/johan/linda/` workspace
- Jacques: MSc International Finance, Tilburg NL, exploring AI consulting for SMBs
- Linda persona: warm, direct, bilingual NL/EN
- Added to `openclaw.json` (Sonnet 4.6 model)
- **Status**: Pending Discord bot token (Johan to create)
### 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
### Rozemarijn — Study Bot for Roos (Johan's Daughter)
- Roos (born June 11, 1998) — final master's exam: **Real Estate Research**
- Discord DM to James — uploaded summary .xlsx
- Topics: statistics, OLS assumptions, hedonic pricing, discrete choice models, Stata, R
- Request: overhoor-bot (quiz) with Stata focus (weak point)
- **Status**: Waiting for practice exams from Roos
- **Note**: Family context — handle with care
### 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
### Agent Context Correction
- Engineer workspace was incorrectly `/home/johan/clawd` (James' space)
- Stateless dispatch confirmed fine — task carries repo path via project metadata
---
## Nightly Maintenance (9:00 PM)
- ✅ Working context written
- ✅ Daily memory updated
- ⚠️ OS updates: Skipped (elevated permissions unavailable in cron context)
- ✅ Claude Code updated via npm
- ✅ OpenClaw updated: 2026.3.23-2 → 2026.3.24 (gateway restarted)
- ✅ Session cleanup run
---
## Carry Forward
- Linda Discord bot token needed
- Clavitor 3 test fixes (C-055)
- Roos practice exams for quiz bot
- Sophia night shift: 10:30 PM 5:00 AM

Binary file not shown.

View File

@ -1,9 +1,9 @@
{
"last_updated": "2026-03-25T22:00:01.373230Z",
"last_updated": "2026-03-26T04:00:01.708987Z",
"source": "api",
"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
"session_percent": 6,
"session_resets": "2026-03-26T06:59:59.662809+00:00",
"weekly_percent": 66,
"weekly_resets": "2026-03-27T03:00:00.662828+00:00",
"sonnet_percent": 82
}

View File

@ -1,35 +1,31 @@
{
"date": "2026-03-25",
"timestamp": "2026-03-25T09:00:00-04:00",
"openclaw": {
"before": "OpenClaw 2026.3.23-2 (7ffe7e4)",
"latest": "2026.3.23-2",
"updated": false
"timestamp": "2026-03-26T01:00:00Z",
"maintenance_type": "nightly",
"results": {
"os_updates": {
"status": "skipped",
"reason": "elevated permissions unavailable in cron context"
},
"claude_code": {
"status": "updated",
"npm_output": "248 packages are looking for funding"
},
"openclaw": {
"status": "updated",
"previous_version": "2026.3.23-2",
"new_version": "2026.3.24",
"restart": "SIGUSR1 emitted"
},
"session_cleanup": {
"status": "completed"
}
},
"claude_code": {
"before": "2.1.83",
"latest": "2.1.83",
"updated": false
},
"os": {
"available": 1,
"packages": [
{
"name": "ubuntu-drivers-common",
"from": "1:0.9.7.6ubuntu3.5",
"to": "1:0.9.7.6ubuntu3.6"
}
],
"updated": true,
"reboot_required": false
},
"mission_control": {
"before": "v2.0.1",
"latest": "v2.0.1",
"updated": false
},
"caddy_pi": {
"result": "\"upgraded:1\n[master 9e082cb] auto: Caddyfile update 2026-03-25\n 1 file changed, 16 insertions(+)\ncaddyfile:committed\nreboot:no\""
},
"gateway_restarted": false
"significant_events": [
"MC pipeline: AQA test runner added, BLOCKED detection, project-codebase linking",
"Zurich SSH latency fixed: 27s -> 0.3s",
"Linda agent created for Jacques",
"Rozemarijn study bot request received",
"Clavitor 3 pre-existing test failures identified (C-055 related)"
]
}

View File

@ -1,56 +1,71 @@
# Working Context — 2026-03-24
# Working Context — 2026-03-25
*Generated by nightly maintenance cron*
## Current Status
- **Date:** Tuesday, March 24, 2026
- **Date:** Wednesday, March 25, 2026
- **Time:** 9:00 PM ET (nightly maintenance window)
- **Active Session:** Evening session ran ~4:15 PM evening briefing generated
- **Active Session:** Full day — morning briefing (9:45 AM), afternoon/evening session with significant MC pipeline work
## Active Projects
### 1. Mission Control (MC) — Agent Pipeline Work
- Engineer agent (id=15) and QA agent (id=16) created — both wired to Kimi K2.5 Turbo
- Task C-004 assigned to engineer (clavitor .env fix) — dry-run showed dispatch works but needs real OC session backing
- **Open question:** How to wire real pipeline? MC dispatches via `openclaw gateway call agent <session_key>` — engineer/qa need actual OC agent sessions
- **Local changes:** ~4 commits ahead of upstream (doctor parser fixes, column width fix) — not yet pushed to Zurich
### 1. Mission Control (MC) — Agent Pipeline Major Improvements
- **Engineer prompt updated** (`buildTaskPrompt()`): Added "Before You Start" section — read files first, understand before coding. `BLOCKED: <reason>` response for impossible/unclear tasks (prevents hallucinated code).
- **BLOCKED detection**: Engineer tasks that return `BLOCKED:` move to `blocked` status, not `review`.
- **QA prompt updated** (`buildReviewPrompt()`): Actually verifies files, checks BLOCKED responses, gives specific rejection feedback.
- **AQA (Automated QA)**: New `runAqaReviews()` function — runs `go test ./...` on Clavitor tasks before Aegis review. Pass → `quality_review`, Fail → bounce to engineer with test output.
- **Projects linked to codebases**: Added `metadata` JSON with `repo_path`, `test_cmd`, `lang` for inou and clavitor.
### 2. Clavitor — Credential Issuance Infrastructure
- **Strategy confirmed:** Vault agents can query but can't steal from
- Stack: >80% Go — no Rust, no Tauri, no Python
- Human surfaces: browser extension, desktop (Wails/Go), mobile (gomobile)
- **Moat:** FIPS 140-3 + ML-KEM + 21-node global footprint + $12/yr pricing
- **Tasks:**
- C-001 (task 50): MCP route 404 — still open
- C-002 (task 51): DELETED — systemd mistake, dismantled
- C-003 (task 52): marked done but VAULT_KEY env file was deleted during dismantle — may need revisiting
- C-004 (task 53): assigned to engineer, pending dispatch solution
- **Test status**: 3 pre-existing failing tests (config/env issues, not code bugs):
- `TestTierIsolationDB` — expects 201, gets 401 (Invalid L1 key)
- `TestCollectPayload` — version should not be empty
- `TestPostTelemetry` — expected Bearer secret-token, got ""
- Related to C-055 (module rename). Engineer needs to fix these before AQA can pass.
- AQA now runs automatically on engineer-completed Clavitor tasks.
### 3. MC Infrastructure — Stable Now
- DB corruption incident resolved — backup restored, 30 tasks back
- Update script fixed: `systemctl stop mission-control` before build
- DATA_DIR clarified: `/home/johan/mission-control/.data/` persists across builds
- Doctor banner fixed: parser filters noise, `level: healthy` achieved
### 3. Linda — Agent for Jacques (Johan's Son)
- Created `/home/johan/linda/` workspace with `SOUL.md` + `USER.md`
- Jacques: MSc International Finance, Tilburg NL, considering AI consulting for SMBs
- Linda persona: warm, direct, bilingual NL/EN, finance+AI consulting focus
- Added to `openclaw.json` (model: Sonnet 4.6)
- **PENDING**: Discord bot token needed — Johan to create at discord.com/developers
### 4. Rozemarijn — Study Bot for Roos (Johan's Daughter)
- Roos (born June 11 1998) — last exam of master's program: **Real Estate Research**
- Uploaded summary .xlsx: statistics, OLS, hedonic pricing, discrete choice models, Stata, R
- Requested: overhoor-bot (quiz) with Stata focus (her weak point)
- Status: Waiting for practice exams before starting sessions
- **Note**: Family — treat with care
## Infrastructure Fixes
### Zurich SSH Connect Time (Major Win)
- **Root cause**: `UseDNS yes` on Zurich's sshd_config — reverse DNS lookup timing out
- **Fix applied**: `UseDNS no` + `GSSAPIAuthentication no`, `ControlMaster auto`, `ControlPersist 600`
- **Result**: 27s → 0.3s connect time
## Open Threads / Pending Decisions
1. **Engineer/QA agent wiring** — Need real OC session backing for MC dispatch to work. Johan exploring solution.
2. **MC upstream sync** — 4+ local commits need push to Zurich or PR to upstream
3. **Column width fix**`min-w-80``min-w-40` will be overwritten on next MC update — needs PR
4. **Clavitor C-003** — VAULT_KEY location may need re-establishment after systemd dismantle
5. **Kernel 6.8.0-106** — Installed Mar 13, pending reboot at Johan's convenience
1. **Linda bot token** — Johan to create Discord bot app
2. **Clavitor test fixes** — Engineer needs to fix 3 failing tests (C-055 related)
3. **MC agent workspace** — Engineer workspace was `/home/johan/clawd` (wrong), should use own workspace. Stateless dispatch is fine for now.
4. **Roos practice exams** — Waiting for her to provide before building quiz bot
## Today's Significant Events
- Morning briefing generated (9:45 AM)
- Afternoon/evening session: agent pipeline discussion, MC doctor fixes, Clavitor strategy
- **Critical correction:** Johan reinforced — "continue" doesn't mean "execute MC tasks". Always confirm intent first.
- **Repeated mistake surfaced:** Never wish "good night" before 5AM weekdays/7AM weekends — Johan is WORKING night shift
- Afternoon/evening session: Major MC pipeline improvements (AQA, BLOCKED detection, project metadata)
- Zurich SSH latency fixed (27s → 0.3s)
- Linda agent created for Jacques
- Rozemarijn (Roos) study bot request received
- OpenClaw updated: 2026.3.23-2 → 2026.3.24
- Claude Code updated via npm
## Notes for Tomorrow
- Main session gets fresh start after 9PM gateway restart
- Check if Johan wants MC commits pushed to Zurich
- Monitor engineer/qa agent dispatch progress
- Sophia care continues — night shift 10:30 PM 5:00 AM
- Monitor engineer task outcomes with new AQA pipeline
- Linda token pending from Johan
---
*Context compiled from memory/2026-03-24.md and MEMORY.md*
*Context compiled from memory/2026-03-25.md and MEMORY.md*