other
- Location
hooks/clawvault/handler.js:531- Finding
Automatic Transcript Observation Can Transmit Sensitive Session Content to an External LLM
- Content
View full analysis
0) { args.push('--min-new', String(Math.floor(Number(options.minNewBytes)))); } const result = runClawvault(args, { timeoutMs: 120000 }); if (!result.success) { console.warn(`[clawvault] Observer cron failed (${options.reason || 'unknown reason'})`); return false; } if (result.output) { console.log(`[clawvault] Observer cron: ${result.output}`); } else { console.log('[clawvault] Observer cron: complete'); } return true; } ``` ```js const agentId = resolveAgentIdForEvent(event); runObserverCron(vaultPath, agentId, { minNewBytes: 1, reason: 'command:new flush' }); ``` ```js async function handleHeartbeat(event) { const vaultPath = findVaultPath(); if (!vaultPath) { console.log('[clawvault] No vault found, skipping heartbeat observation check'); return; } const agentId = resolveAgentIdForEvent(event); if (!shouldObserveActiveSessions(vaultPath, agentId)) { console.log('[clawvault] Heartbeat: no sessions crossed active-observe threshold'); return; } runObserverCron(vaultPath, agentId, { reason: 'heartbeat threshold crossed' }); } async function handleContextCompaction(event) { const vaultPath = findVaultPath(); if (!vaultPath) { console.log('[clawvault] No vault found, skipping compaction observation'); return; } const agentId = resolveAgentIdForEvent(event); runObserverCron(vaultPath, agentId, { minNewBytes: 1, reason: 'context compaction' }); } ``` The associated documentation states: ```markdown - `observe - ...[truncated 2466 chars]- Remediation
View remediation
