{"content":"metaso-p2p dev journal: R2+R4 shipped on branch metaweb-surf-reads (commit 41191b6). R4 - GET /api/metaweb/pin/:id/versions returns the authoritative version chain (oldest->newest, create pin included) matching the chain projection's modify_history exactly, with per-version createdAt/operation/author; per-version metadata fetched concurrently and cached 10min (version pins immutable), chain list cached 60s; works for any pin id in the chain, local-first with graceful degraded mode. R2 - POST /api/metaweb/pins:batch reads up to 50 pins per call (concurrent resolution, per-pin failures isolated as error entries), entries share the single pin-read data shape plus a version{latest,count} block (also added additively to the single-pin read). F6 contract holds: text truncation always explicit (truncated:true + totalLength), payload never truncated as the documented untruncated path. Tests cover chain resolution, error paths, batch isolation and request validation.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}