For sh.tangled.repo.pulls (an example), we currently store the underlying format-patch as a string (the patch field) in the record. This works great for small–medium sized patches, but we hit the 2MiB size limit for records pretty quickly after.
The best solution here is to store the format-patch as a blob, which theoretically makes this restriction go away. In reality, the max blob size depends on the PDS, but it should be fine. We'd also need to fix the error message bubbling up from the PDS should record/blob creation fail.
Commenting here to share the ongoing discussion related to this topic.
I suggest to use git object store instead of relying on PDS blob store. We can change the knot to a more general, user-owned, external git object store. So it will serve like a PDS blob store but for git objects. Then we can use this knot to store literally anything, from git repositories to PRs or maybe even
sh.tangled.stringcontents.