# fix\(server\): pure projection reads run on the reader connection · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/commit/7ca41e9da546c518d1b48d7190dca0998bdcf434)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

Requested revision: 7ca41e9da546c518d1b48d7190dca0998bdcf434

Requested commit: 7ca41e9da546c518d1b48d7190dca0998bdcf434

Commit: 7ca41e9da546c518d1b48d7190dca0998bdcf434

Tree: 2f5a5313e3d1e850e9ab4abf2e11e51a8fcf45ae

Author: Julius Marminge

Committer: Julius Marminge

## Message

```
fix(server): pure projection reads run on the reader connection

getThreadRecords, getShellSnapshot, getThreadShell, getRecoveryThreadIds and
getSettlementCandidates are pure reads but acquired the writer, so they queued
behind any open BEGIN IMMEDIATE. Wrap each in NodeSqliteClient.readOnly; inside
an open write transaction they still use the writer.

Fixes #23687. Implementation taken from #23689.

Co-Authored-By: Victor I <vifarinde@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

```

## Parents

- [ffcf9a01f5083b6f2d7a436173a13550209b0d98](https://git.cafe/pingdotgg/t3code/commit/ffcf9a01f5083b6f2d7a436173a13550209b0d98?format=markdown)

[Source at this commit](https://git.cafe/pingdotgg/t3code/tree/7ca41e9da546c518d1b48d7190dca0998bdcf434?format=markdown)
