diff --git a/todo/TODO_2026-02-20_innerhtml.md b/todo/TODO_2026-02-20_innerhtml.md
index 239cd222..3b464d2b 100644
--- a/todo/TODO_2026-02-20_innerhtml.md
+++ b/todo/TODO_2026-02-20_innerhtml.md
@@ -1,8 +1,14 @@
# TODO: innerHTML Migration for ShareNostrModal.js
-- [ ] L107: `wrapper.innerHTML = html;` (Template loading)
+- [x] L107: `wrapper.innerHTML = html;` (Template loading)
- Strategy: Use `new DOMParser().parseFromString(html, 'text/html')` and append children to `wrapper`.
-- [ ] L274: `this.relayPills.innerHTML = "";` (Clearing content)
+- [x] L274: `this.relayPills.innerHTML = "";` (Clearing content)
- Strategy: `this.relayPills.replaceChildren();` or `textContent = ""` (replaceChildren is preferred for performance).
-- [ ] L300: `removeButton.innerHTML = '';` (SVG Icon)
+- [x] L300: `removeButton.innerHTML = '';` (SVG Icon)
- Strategy: Create SVG elements using `document.createElementNS("http://www.w3.org/2000/svg", "svg")` and children.
+
+---
+
+**CLOSED 2026-07-30.** All three migrations already landed in later refactors —
+`grep innerHTML js/ui/components/ShareNostrModal.js` returns nothing and the
+innerHTML lint baseline holds. Kept for the record.