E2E-1: recordRead → DB-only write → verifyRead roundtrip
Parent Epic: #87
Source: read-audit-db-migration-plan.md V2, V3, N3
Scenarios
- Call
recordRead() → verify DB row created (not JSONL)
- Call
verifyRead(agent, path) → returns verified: true
- Call
verifyRead(wrong_agent, path) → returns verified: false
- Verify JSONL is NOT written for new reads (Phase 2)
- Verify MAX_RECORDS cap works (oldest rows deleted)
Commands
cd /home/zhaoge/workspace/opencode/work-one
bun -e "
const {recordRead, verifyRead} = require('./.opencode/lib/read-audit.ts');
const {Database} = require('bun:sqlite');
const db = new Database('.opencode/state/framework-state.db');
// Test 1: recordRead
recordRead({timestamp: new Date().toISOString(), agent: 'e2e-test', filePath: '/tmp/e2e-test.md', sessionId: 'ses_e2e', taskId: 'E2E-1', callId: 'call-1'});
const rows = db.query(\"SELECT COUNT(*) as c FROM read_audit WHERE agent='e2e-test'\").get();
console.log('E2E-1 record written:', rows.c === 1 ? 'PASS' : 'FAIL (' + rows.c + ')');
// Test 2: verifyRead
const v = verifyRead('e2e-test', '/tmp/e2e-test.md');
console.log('E2E-1 verify pass:', v.verified ? 'PASS' : 'FAIL');
// Test 3: verifyRead wrong
const v2 = verifyRead('wrong-agent', '/tmp/e2e-test.md');
console.log('E2E-1 verify reject:', !v2.verified ? 'PASS' : 'FAIL');
// Cleanup
db.run('DELETE FROM read_audit WHERE agent=?', ['e2e-test']);
"
E2E-1: recordRead → DB-only write → verifyRead roundtrip
Parent Epic: #87
Source:
read-audit-db-migration-plan.mdV2, V3, N3Scenarios
recordRead()→ verify DB row created (not JSONL)verifyRead(agent, path)→ returnsverified: trueverifyRead(wrong_agent, path)→ returnsverified: falseCommands