Sharding and owner routing: the partition table and fail-closed forwarding Records both server-side changes for noetl/ai-meta#332 and, for each, what it prevents. Names the constraint that shaped the partition table -- the mapping is implemented THREE times across two repos, so it is deliberately bit-identical rather than better, and illegal shard counts are refused rather than silently splitting it. Records that a failed forward is now a 503 because a local write would fork the owning shard's log, and that this is the prerequisite for routing by a membership table rather than a static template.