Decisions

Why Link Harness reads images and documents the way it does.

Why are images and documents files beside the events?

An event's line is read at every turn and never changed, so a photo in it would be read with every message after. Each is a file in parts/, named by a random token, which the event names with its kind, media type, name and size.

Checked as it comes and as it's read

An image or PDF is checked by its first bytes, and text by being UTF-8, as it comes and again as it's read: one changed since is left out, saying so.

Why the bridge downloads them

They come as OpenAI's content parts with data: URLs only, since the harness, sandboxed and holding no platform's token, fetches nothing. A connection's bridge holds the token, so it downloads each for a harness whose contract says parts, checked against the connection contract's types and limits (link_connection_contract::MEDIA, PART_MAX, PARTS_MAX).