diff --git a/memory/2026-02-25.md b/memory/2026-02-25.md new file mode 100644 index 0000000..9b25145 --- /dev/null +++ b/memory/2026-02-25.md @@ -0,0 +1,46 @@ + +## Dealspace — Responses / AI Matching / Assignment Rules (04:05 AM) + +Claude Code agent built and deployed in ~12 minutes. Commit: `9cbd6db` + +### What shipped: +- `responses` table (document | statement), `response_chunks`, `request_links`, `assignment_rules` +- Fireworks client: Llama 90B Vision for extraction, nomic-embed-text-v1.5 for embeddings +- PDF→images via pdftoppm subprocess, XLSX via excelize, images direct +- Markdown chunker (heading/paragraph split, ~1600 char, 80 char overlap) +- Async worker (2 goroutines): extract→chunk→embed→cosine match at 0.72 threshold +- Per-deal assignment rules (keyword→assignee), auto-assigns on import +- Human confirmation required before match counts as answered +- Template: status pills, assignee badges, AI match prompts, pending matches panel, Statement modal, Assignment Rules panel, extraction status on files tab + +### Pending (Misha decisions needed): +1. Upload the XLSX files to test the full pipeline +2. Define assignment rules for Project Muskepo +3. Statements in scope — test typing a direct answer to a request + +## Dealspace — Night Shift Session (late Feb 24 → early Feb 25) + +### Bugs fixed & deployed +- Stage constraint: prod DB had old CHECK ('pipeline','loi',...) — migration recreated table with new stages +- Folder drag: children now draggable; drop on bottom 60% = reparent as child; root drop zone for promoting subfolders + +### XLSX upload +- Added excelize for XLSX parsing +- Smart header detection scanning first 12 rows (many DD checklists have title rows before actual headers) +- File saved to data/uploads/ on every upload +- Debug logging via log.Printf (not fmt.Printf — systemd doesn't capture fmt) +- After upload → redirects to ?tab=requests (auto-switches tab via URLSearchParams JS) + +### Architecture locked in (Responses / AI matching) +- responses table: document | statement +- response_chunks: chunked markdown, float32 vectors +- request_links: N:M with confidence + confirmed flag (human must confirm) +- assignment_rules: keyword → assignee per deal +- Fireworks: llama-v3p2-90b-vision for extraction, nomic-embed-text-v1.5 for embeddings +- Async worker: 2 goroutines, 0.72 cosine threshold +- Statements (typed answers) in scope + +### Committed: 9cbd6db +- All 4 tables live in prod DB +- Extraction worker confirmed running (2 goroutines in logs) +- Full template changes: status pills, assignee badges, AI match panel, statement modal, assignment rules panel diff --git a/memory/claude-usage.db b/memory/claude-usage.db index af3d4de..3a7a588 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 282f759..8c69e2d 100644 --- a/memory/claude-usage.json +++ b/memory/claude-usage.json @@ -1,9 +1,9 @@ { - "last_updated": "2026-02-25T05:00:01.989657Z", + "last_updated": "2026-02-25T11:00:01.777868Z", "source": "api", - "session_percent": 5, - "session_resets": "2026-02-25T07:00:00.949030+00:00", - "weekly_percent": 47, - "weekly_resets": "2026-02-28T18:59:59.949068+00:00", - "sonnet_percent": 57 + "session_percent": 19, + "session_resets": "2026-02-25T11:59:59.735531+00:00", + "weekly_percent": 51, + "weekly_resets": "2026-02-28T19:00:00.735550+00:00", + "sonnet_percent": 59 } \ No newline at end of file diff --git a/memory/heartbeat-state.json b/memory/heartbeat-state.json index 4c4109e..b193c93 100644 --- a/memory/heartbeat-state.json +++ b/memory/heartbeat-state.json @@ -13,8 +13,8 @@ "lastWeeklyMemorySynthesis": "2026-02-22T10:05:38.031320Z", "lastDocInbox": "2026-02-24T11:30:00.000Z", "lastTechScan": "2026-02-23T13:02:43.785Z", - "lastMemoryReview": "2026-02-24T11:29:00.000000+00:00", - "lastIntraDayXScan": "2026-02-25T04:00:00.000Z", + "lastMemoryReview": "2026-02-25T09:06:00.000Z", + "lastIntraDayXScan": "2026-02-25T08:31:00.000Z", "lastInouSuggestion": "2026-02-24T13:02:03.000000+00:00", "lastEmail": 1771948934 } \ No newline at end of file