fix(assets): a remote reference is inert and a declared size is bounded
Two MAJOR findings of the independent v0.10.0 review, both with the shipped defaults, both new in 0.10.0. Repros rebuilt as tests first. - A remote <img src>/xlink:href became a LIVE markdown image link in the persisted concept, with the address and query string chosen by whoever wrote the document. Extraction opens no socket; a consumer rendering the bundle does. Now inert text with the address in a code span, pinned by a property over the readers rather than by one string. The tier asymmetry (user-upload refuses, trusted-source persisted) went to the guard repo with the repro. - Nothing bounded a declared image size: 9.6 KB of PDF declaring 3000x3000 grayscale zeros took 83 MB peak RSS, linear in pixels. MAX_IMAGE_PIXELS (40 000 000) and MAX_IMAGE_BYTES (256 MiB) are read off the corpora (largest measured 18.6 MP on K2, 1.4 MP on R761) and checked on what the container declares, before any decompression; over them is asset_too_large, counted. The same bound closes the inline data: URI, which the review flagged and did not measure. Also fixed, added by PM to this order: an inline PDF image was named from id() of a Python object, so two concept files of the reference corpus differed between builds. It is now named from its position. R761 unchanged: 50 carried of 50 found, assets diff -rq clean. Report: docs/2026-09-17-bildestien-0-10-1.md Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
864570b320
commit
230d1cbccd
8 changed files with 580 additions and 3 deletions
|
|
@ -355,3 +355,16 @@ def test_the_readme_states_that_image_bytes_are_not_screened() -> None:
|
|||
"""
|
||||
text = README.read_text(encoding="utf-8")
|
||||
assert "image bytes are not screened" in text.lower()
|
||||
|
||||
|
||||
_MAX_PIXELS_LINE = re.compile(r"^<!-- asset-max-pixels: (\d+) -->$", re.MULTILINE)
|
||||
|
||||
|
||||
def test_the_readme_publishes_the_pixel_bound_the_code_applies() -> None:
|
||||
"""A published bound is a test obligation: the number in the README is the
|
||||
number that refuses an image."""
|
||||
from llm_ingestion_okf.assets import MAX_IMAGE_PIXELS
|
||||
|
||||
match = _MAX_PIXELS_LINE.search(README.read_text(encoding="utf-8"))
|
||||
assert match is not None, "README carries no `<!-- asset-max-pixels: N -->` marker"
|
||||
assert int(match.group(1)) == MAX_IMAGE_PIXELS
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue