搜索

PythonReactSEOPDF
GitHub Skill

diagnose-leaks

Diagnose thinking trace leaks in Samara message output. Use when internal content appears in messages, session IDs leak to users, or thinking blocks become visible. Trigger words: leak, thinking trace, session ID, internal, sanitization, filtered.

claudeaceae☆ 8 仓库 Stars2 仓库 Forks

安装与使用

请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。

查看来源 ↗使用指南

技能说明

Diagnose Thinking Trace Leaks

Debug and verify the three-layer defense against internal content leaking into user-visible messages.

Background

Complex group chat scenarios with multiple concurrent requests (webcam + web fetch + conversation) can cause internal thinking traces and session IDs to leak. This skill helps diagnose such issues.

Quick Diagnostics

1. Check for Recent Filtered Content
# Look for sanitization activity in logs (DEBUG level)
grep -i "Filtered from response" ~/.claude-mind/system/logs/samara.log | tail -20

# Check if sanitization is actively filtering
grep -E "(THINKING|SESSION_ID|ANTML)" ~/.claude-mind/system/logs/samara.log | tail -10
2. Verify MessageBus Routing
# All sends should go through MessageBus - look for source tags
grep -E "\[(iMessage|Location|Wake|Alert|Queue|Webcam|WebFetch)\]" ~/.claude-mind/system/logs/samara.log | tail -20

# Check for any direct sender bypasses (should NOT appear after fix)
grep "sender\.send" ~/Developer/samara-main/Samara/Samara/*.swift | grep -v MessageBus
3. Check Recent Episode Logs for Leaked Content
# Look for session ID patterns in episode logs (SHOULD NOT be there)
grep -E "\d{10}-\d{5}" ~/.claude-mind/memory/episodes/$(date +%Y-%m-%d).md

# Look for thinking block markers that escaped
grep -i "<thinking>" ~/.claude-mind/memory/episodes/$(date +%Y-%m-%d).md
4. Run Sanitization Tests
cd ~/Developer/samara-main/Samara
xcodebuild test -scheme SamaraTests -destination 'platform=macOS' 2>&1 | grep -E "SanitizationTests"

Leak Patterns to Watch For

Pattern Meaning Fix
1234567890-12345 Session ID leaked Check sanitizeResponse()
<thinking>...</thinking> Thinking block escaped Check regex pattern
<invoke>...</invoke> XML marker leaked Check antmlPattern
Scrambled multi-response Streams crossed Check TaskRouter isolation

Architecture Verification

Layer 1: Output Sanitization
  • File: Samara/Samara/Actions/ClaudeInvoker.swift
  • Method: sanitizeResponse()
  • Filters: <thinking> blocks, session IDs, XML markers
Layer 2: MessageBus Coordination
  • File: Samara/Samara/Actions/MessageBus.swift
  • All sends should use messageBus.send() with type tag
  • Verify: No direct sender.send() calls in main.swift
Layer 3: TaskRouter Isolation
  • File: Samara/Samara/Mind/TaskRouter.swift
  • Classifies: conversation, webcam, webFetch, skill tasks
  • Isolates parallel tasks to prevent cross-contamination

If Leaks Are Found

  1. Identify the leak source from logs
  2. Check if it's a new pattern not covered by sanitization
  3. Add test case to SanitizationTests.swift
  4. Update sanitizeResponse() with new filter
  5. Rebuild Samara: ~/.claude-mind/system/bin/update-samara

Report Template

When reporting a leak issue:

  1. What content leaked (exact text)
  2. Context (group chat? concurrent tasks?)
  3. Timestamp (to correlate with logs)
  4. Log entries showing sanitization activity
  5. Whether tests pass

使用示例

查看来源仓库中的使用示例与配置说明。

查看来源 ↗

来源历史

收录时间
2026-01-20
索引更新时间
2026-01-28
Branch
main

收录与同步日期属于本站记录。源码修改历史请查看来源仓库。

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!