diff --git a/README.md b/README.md
index afb7199..0d0710f 100644
--- a/README.md
+++ b/README.md
@@ -41,29 +41,30 @@ Note that there are no PMs, because Matrix doesn't differentiate between DMs and
| Name | M->I | I->M | Notes |
| ---- | :--: | :--: | ----- |
-| text, notice, emote messages | ✅ | ✅ | Highlighting users with their IRC nick doesn't translate into highlighting their Matrix user yet |
+| text, notice, emote messages | ✅ | ✅ | Highlighting users with their IRC nick doesn't translate into highlighting their Matrix user [#23](https://todo.sr.ht/~emerson/reflectionircd/23) |
| image, file, audio, video messages | 🟨 | ❌ | Show up as links on IRC |
-| Channel joins | ✅ | ❌ ||
+| Channel joins | ✅ | ❌ | [#1](https://todo.sr.ht/~emerson/reflectionircd/1) |
| Channel parts | ✅ | ✅ ||
| Channel kicks | ✅ | ✅ ||
-| Channel bans | 🟨 | ❌ | Single-user bans show up on IRC as kicks, there's no banlist yet |
+| Channel bans | 🟨 | ❌ | [#24](https://todo.sr.ht/~emerson/reflectionircd/24) Single-user bans show up on IRC as kicks, there's no banlist yet |
| Channel invites | ✅ | ✅ ||
| Channel topics | ✅ | ✅ ||
-| Channel powers | ✅ | ❌ ||
-| Channel lists/searching | ❌ | ❌ ||
-| Encrypted rooms | ❌ | ❌ ||
-| Rich text | ❌ | ❌ ||
-| Presence | ❌ | ❌ | Note that not all homeservers have presence enabled |
-| Channel renaming (IRCv3) | 🟨 | ❌ | Only when the canonical alias changes |
+| Channel powers | ✅ | ❌ | [#6](https://todo.sr.ht/~emerson/reflectionircd/6) |
+| Channel lists/searching | ❌ | ❌ | [#30](https://todo.sr.ht/~emerson/reflectionircd/30) |
+| Encrypted rooms | ❌ | ❌ | [#20](https://todo.sr.ht/~emerson/reflectionircd/20) |
+| Rich text | ❌ | ❌ | [#31](https://todo.sr.ht/~emerson/reflectionircd/31) |
+| Presence | ❌ | ❌ | [#25](https://todo.sr.ht/~emerson/reflectionircd/25) Note that not all homeservers have presence enabled |
+| Channel renaming (IRCv3) | 🟨 | ❌ | [#29](https://todo.sr.ht/~emerson/reflectionircd/29) [#16](https://todo.sr.ht/~emerson/reflectionircd/16) Only when the canonical alias changes |
| Message replies (IRCv3) | ✅ | ✅ | Clients without support will still receive the reply message, but it won't be marked as a reply |
-| Message reactions (IRCv3) | 🟨 | 🟨 | Can't undo reactions yet |
+| Message reactions (IRCv3) | ✅ | ✅ | Can't undo reactions yet |
| Extended invites (IRCv3) | ✅ | ✅ ||
-| Chat history (IRCv3) | ❌ | ❌ ||
-| Multiline messages (IRCv3) | ❌ | ❌ ||
-| Global display names (IRCv3) | ❌ | ❌ ||
-| Per-room display names (IRCv3) | ❌ | ❌ ||
-| Message editing (IRCv3) | ❌ | ❌ ||
-| Message deletion (IRCv3) | ❌ | ❌ ||
+| Typing notifications (IRCv3) | ❌ | ❌ | [#26](https://todo.sr.ht/~emerson/reflectionircd/26) |
+| Chat history (IRCv3) | ❌ | ❌ | [#9](https://todo.sr.ht/~emerson/reflectionircd/9) |
+| Multiline messages (IRCv3) | ❌ | ❌ | [#10](https://todo.sr.ht/~emerson/reflectionircd/10) |
+| Global display names (IRCv3) | ❌ | ❌ | [#11](https://todo.sr.ht/~emerson/reflectionircd/11) |
+| Per-room display names (IRCv3) | ❌ | ❌ | [#13](https://todo.sr.ht/~emerson/reflectionircd/13) |
+| Message editing (IRCv3) | ❌ | ❌ | [#14](https://todo.sr.ht/~emerson/reflectionircd/14) |
+| Message deletion/redaction (IRCv3) | ❌ | ❌ | [#14](https://todo.sr.ht/~emerson/reflectionircd/14) |
## Running
Copy `config.example.json` to `config.json`, edit the values if needed, then `npm run build` and then `node reflection.js` to start it