profit ac01fffd9a checkpoint: matrix-agent-validated (2026-04-25)
Architectural snapshot of the lakehouse codebase at the point where the
full matrix-driven agent loop with Mem0 versioning + deletion was
validated end-to-end.

WHAT THIS REPO IS
A clean single-commit snapshot of the lakehouse code. Heavy test data
(.parquet datasets, vector indexes) excluded — see REPLICATION.md for
regen path. Full lakehouse history at git.agentview.dev/profit/lakehouse.

WHAT WAS PROVEN
- Vector retrieval across multi-corpora matrix (chicago_permits + entity
  briefs + sec_tickers + distilled procedural + llm_team runs)
- Observer hand-review (cloud + heuristic fallback) gating each candidate
- Local-model agent loop (qwen3.5:latest) with tool use + scratchpad
- Playbook seal on success → next-iter retrieval surfaces it as preamble
- Mem0 versioning + deletion in pathway_memory:
    * UPSERT: ADD on new workflow, UPDATE bumps replay_count on identical
    * REVISE: chains versions, parent.superseded_at + superseded_by stamped
    * RETIRE: marks specific trace retired with reason, excluded from retrieval
    * HISTORY: walks chain root→tip, cycle-safe

KEY DIRECTORIES
- crates/vectord/src/pathway_memory.rs — Mem0 ops live here
- crates/vectord/src/playbook_memory.rs — original Mem0 reference
- tests/agent_test/ — local-model agent harness + PRD + session archives
- scripts/dump_raw_corpus.sh — MinIO bucket dump (raw test corpus)
- scripts/vectorize_raw_corpus.ts — corpus → vector indexes
- scripts/analyze_chicago_contracts.ts — real inference pipeline
- scripts/seal_agent_playbook.ts — Mem0 upsert from agent traces

Replication: see REPLICATION.md for Debian 13 clean install + cloud-only
adaptation (no local Ollama).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 19:43:27 -05:00

47 lines
1.6 KiB
TypeScript

// Run the test gate: `cargo test --workspace` + `bun test`.
// Returns { green, output } — output is last ~4KB of combined stdout/stderr.
import { spawn } from "node:child_process";
const REPO_ROOT = "/home/profit/lakehouse";
const TEST_TIMEOUT_MS = 15 * 60 * 1000; // 15 min cargo + 2 min bun, generous
export async function runTests(): Promise<{ green: boolean; output: string }> {
const cargoOut = await runCmd("cargo", ["test", "--workspace", "--quiet", "--", "--test-threads=1"], REPO_ROOT, TEST_TIMEOUT_MS);
if (cargoOut.code !== 0) {
return { green: false, output: tail(`cargo test (${cargoOut.code}):\n${cargoOut.combined}`) };
}
const bunOut = await runCmd("bun", ["test", "tests/multi-agent"], REPO_ROOT, 120000);
const bunGreen = bunOut.code === 0;
const combined = [
`cargo test: OK`,
`bun test (${bunOut.code}):`,
bunOut.combined,
].join("\n");
return { green: bunGreen, output: tail(combined) };
}
function tail(s: string, n = 4096): string {
return s.length > n ? "…" + s.slice(-n) : s;
}
function runCmd(
cmd: string,
args: string[],
cwd: string,
timeoutMs: number,
): Promise<{ code: number; combined: string }> {
return new Promise(resolveP => {
const child = spawn(cmd, args, { cwd, env: { ...process.env } });
let combined = "";
child.stdout.on("data", d => { combined += d.toString(); });
child.stderr.on("data", d => { combined += d.toString(); });
const timer = setTimeout(() => child.kill("SIGKILL"), timeoutMs);
child.on("close", code => {
clearTimeout(timer);
resolveP({ code: code ?? -1, combined });
});
});
}