mirror of https://github.com/openclaw/openclaw.git
Add inline file attachment support for sessions_spawn (subagent runtime only): - Schema: attachments[] (name, content, encoding, mimeType) and attachAs.mountPath hint - Materialization: files written to .openclaw/attachments/<uuid>/ with manifest.json - Validation: strict base64 decode, filename checks, size limits, duplicate detection - Transcript redaction: sanitizeToolCallInputs redacts attachment content from persisted transcripts - Lifecycle cleanup: safeRemoveAttachmentsDir with symlink-safe path containment check - Config: tools.sessions_spawn.attachments (enabled, maxFiles, maxFileBytes, maxTotalBytes, retainOnSessionKeep) - Registry: attachmentsDir/attachmentsRootDir/retainAttachmentsOnKeep on SubagentRunRecord - ACP rejection: attachments rejected for runtime=acp with clear error message - Docs: updated tools/index.md, concepts/session-tool.md, configuration-reference.md - Tests: 85 new/updated tests across 5 test files Fixes: - Guard fs.rm in materialization catch block with try/catch (review concern #1) - Remove unreachable fallback in safeRemoveAttachmentsDir (review concern #7) - Move attachment cleanup out of retry path to avoid timing issues with announce loop Co-authored-by: Tyler Yust <TYTYYUST@YAHOO.COM> Co-authored-by: napetrov <napetrov@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| acp-agents.md | ||
| agent-send.md | ||
| apply-patch.md | ||
| browser-linux-troubleshooting.md | ||
| browser-login.md | ||
| browser.md | ||
| chrome-extension.md | ||
| clawhub.md | ||
| creating-skills.md | ||
| diffs.md | ||
| elevated.md | ||
| exec-approvals.md | ||
| exec.md | ||
| firecrawl.md | ||
| index.md | ||
| llm-task.md | ||
| lobster.md | ||
| loop-detection.md | ||
| multi-agent-sandbox-tools.md | ||
| plugin.md | ||
| reactions.md | ||
| skills-config.md | ||
| skills.md | ||
| slash-commands.md | ||
| subagents.md | ||
| thinking.md | ||
| web.md | ||