mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-07-12 12:37:32 +00:00
fix(stabilization): harden attachment lifecycle and agent guard signals (#5420)
* fix: harden stabilization attachment and agent guards * fix(uploads): preserve durable references during cleanup * fix(uploads): close cleanup and compaction races
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
import json
|
||||
|
||||
from src.attachment_refs import (
|
||||
attachment_ref,
|
||||
persistable_message_content,
|
||||
search_index_text,
|
||||
)
|
||||
|
||||
|
||||
def test_persistable_message_content_replaces_inline_media_with_attachment_ref():
|
||||
metadata = {
|
||||
"attachments": [
|
||||
{
|
||||
"id": "abc123.png",
|
||||
"name": "diagram.png",
|
||||
"mime": "image/png",
|
||||
"size": 42,
|
||||
"checksum_sha256": "sha256-digest",
|
||||
"created_at": "2026-07-09T12:00:00",
|
||||
"vision": "A small architecture diagram.",
|
||||
}
|
||||
]
|
||||
}
|
||||
content = [
|
||||
{"type": "text", "text": "Please inspect this."},
|
||||
{
|
||||
"type": "image_url",
|
||||
"image_url": {"url": "data:image/png;base64," + ("A" * 5000)},
|
||||
},
|
||||
]
|
||||
|
||||
stored = persistable_message_content(content, metadata)
|
||||
|
||||
assert "base64" not in stored
|
||||
assert "A" * 100 not in stored
|
||||
assert "Please inspect this." in stored
|
||||
assert "Attachment: diagram.png" in stored
|
||||
assert "id=abc123.png" in stored
|
||||
assert "sha256=sha256-digest" in stored
|
||||
assert "A small architecture diagram." in stored
|
||||
|
||||
|
||||
def test_search_index_text_strips_legacy_serialized_data_url_blocks():
|
||||
legacy = json.dumps([
|
||||
{"type": "text", "text": "Find this useful caption"},
|
||||
{
|
||||
"type": "image_url",
|
||||
"image_url": {"url": "data:image/jpeg;base64," + ("B" * 4096)},
|
||||
},
|
||||
])
|
||||
|
||||
indexed = search_index_text(legacy)
|
||||
|
||||
assert indexed == "Find this useful caption\n[1 inline media payload omitted]"
|
||||
|
||||
|
||||
def test_attachment_ref_normalizes_hash_aliases():
|
||||
ref = attachment_ref({
|
||||
"id": "file-id",
|
||||
"original_name": "report.pdf",
|
||||
"mime": "application/pdf",
|
||||
"size": 99,
|
||||
"hash": "abc",
|
||||
"uploaded_at": "2026-07-09T12:00:00",
|
||||
})
|
||||
|
||||
assert ref == {
|
||||
"type": "attachment_ref",
|
||||
"attachment_id": "file-id",
|
||||
"name": "report.pdf",
|
||||
"mime": "application/pdf",
|
||||
"size": 99,
|
||||
"checksum_sha256": "abc",
|
||||
"created_at": "2026-07-09T12:00:00",
|
||||
}
|
||||
Reference in New Issue
Block a user