tangled pr list reports pull requests as open after they were merged or closed, when the status record lives on a different PDS from the pull record. tangled pr view and tangled.org both report the correct state.
Reproduction (tangled 0.1.1, repo pipobscure.com/ordner) #
The PRs were authored by did:plc:d54uy3v4th5ztv5itr3t2kdc (emma.ordner.fyi). The repo owner did:plc:rwypz6edxmzyhob2k3rsl2fw (pipobscure.com) merged or closed them, so the sh.tangled.repo.pull.status records are on the owner's PDS:
| pull | status record (owner's PDS) | pr view |
pr list |
|---|---|---|---|
| 3mxlunlywyz2t | merged (2026-10-12) | merged | open |
| 3mxlw7qwcr52r | merged (2026-10-12) | merged | open |
| 3mxrddjcecc2v | closed (2026-10-13) | closed | open |
| 3mxrd2lcxst2r | closed (2026-10-14) | closed | open |
| 3mxs5efeevy2g (#4) | merged (2026-10-14) | merged | open |
| 3mxtctm4c3z2v | merged (2026-10-14) | merged | open |
The owner's own PRs (3mxtdbc4otk2r, 3mxtdhkqttm2v), where the pull and status records share a PDS, are listed as merged correctly.
tangled pr list -s open # shows all six above
tangled pr view 3mxlw7qwcr52r --json # "state": "merged"
tangled pr close 3mxlw7qwcr52r # "pull request 3mxlw7qwcr52r is merged"
The tangled.org pulls page for the repo shows 0 open, 6 merged, 1 closed.
Expected #
pr list should derive each pull's state the same way pr view does, by taking the status records written by the repo owner or collaborators into account and not only the author's. Currently -s open lists finished PRs, -s merged/-s closed miss them, and there is no way to get a stale entry out of the open list: close correctly refuses because the PR is already merged.
Likely cause #
The listing presumably comes from the indexer (api.tangled.org) and uses the state stored in the pull record, or only status records from the author's repo. Status records from the target repo's owner or collaborators are never joined in.
Fixed