# Make attachment writes transactional and decode attachment URLs · gitcafe/t3code

[View on GitCafe](https://git.cafe/gitcafe/t3code/commit/b9ff7aa5cdf10c15cecb803f6674279c58ccdb4c)

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

Visibility: public

Requested revision: b9ff7aa5cdf10c15cecb803f6674279c58ccdb4c

Requested commit: b9ff7aa5cdf10c15cecb803f6674279c58ccdb4c

Commit: b9ff7aa5cdf10c15cecb803f6674279c58ccdb4c

Tree: fe49eae9988a2db70eb3a60f0db057be214fb9c1

Author: Julius Marminge

Committer: Julius Marminge

## Message

```
Make attachment writes transactional and decode attachment URLs

- Stage attachment file writes until projector transactions commit, then apply write/prune/delete side effects
- Remove orphaned attachment files on thread revert and delete thread attachment dirs on thread deletion
- Serve URL-encoded attachment paths in `wsServer` and stream file responses
- Add regression tests for rollback safety, revert/delete cleanup, and encoded attachment URLs

```

## Parents

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

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