| Age | Commit message (Expand) | Author |
| 2026-07-25 | Extract admin strings to i18n: assets and events clusters | erdgeist |
| 2026-07-25 | Extract flashes to i18n and stop dispatching on submit labels | erdgeist |
| 2026-07-25 | Extract admin strings to i18n: users and tags clusters | erdgeist |
| 2026-07-25 | Extract admin strings to i18n: the nodes cluster | erdgeist |
| 2026-07-24 | Extract admin strings to i18n: sessions, otp, users/edit | erdgeist |
| 2026-07-24 | Add a pseudo-locale tripwire for the i18n extraction | erdgeist |
| 2026-07-24 | Give all sessions a uniform absolute lifetime of one week | erdgeist |
| 2026-07-24 | Render the otp verbs properly in the action log | erdgeist |
| 2026-07-24 | Polish the OTP flows: autocomplete tokens, button dialect, QR sizing, my-account link | erdgeist |
| 2026-07-24 | Add self-service TOTP enrollment UI and witnessed admin reset | erdgeist |
| 2026-07-24 | Add TOTP enrollment and verification to User, witnessed in the action log | erdgeist |
| 2026-07-24 | Reduce visual clutter: remove time from article partials | erdgeist |
| 2026-07-23 | Force tags to be lowercase. A script unifies existing tags in both cases | erdgeist |
| 2026-07-23 | Zoom the action log on assets | erdgeist |
| 2026-07-23 | Record asset deltas at publish, with changed assets as participants | erdgeist |
| 2026-07-23 | Witness asset uploads and out-of-band attaches in the action log | erdgeist |
| 2026-07-23 | Witness asset destruction, naming every node it strips | erdgeist |
| 2026-07-22 | Retire nodes#recent, superseded by the action log | erdgeist |
| 2026-07-21 | Render PDF headlines as document cards, not lightbox images | erdgeist |
| 2026-07-21 | Remove unreachable image_box drag-and-drop UI | erdgeist |
| 2026-07-20 | Make headline images explicit, add asset credits | erdgeist |
| 2026-07-19 | Log CSP violations to their own file instead of relying on Rails.logger | erdgeist |
| 2026-07-19 | Add deliberate default to xml for rss and rdf | erdgeist |
| 2026-07-19 | Add the error log writer | erdgeist |
| 2026-07-19 | Add a 500er logger and a trip wire in admin/boom to test it | erdgeist |
| 2026-07-18 | Emit a report-only Content-Security-Policy with nonced inline scripts | erdgeist |
| 2026-07-18 | Annotate the History list with each revision's lifecycle | erdgeist |
| 2026-07-18 | Teach the action log reader the Trash vocabulary | erdgeist |
| 2026-07-18 | Add Trash affordances: cockpit, listing, dashboard entry | erdgeist |
| 2026-07-17 | Route and control trash, restore, and permanent deletion | erdgeist |
| 2026-07-17 | Fix grammar for unknown action and discard_autosave | erdgeist |
| 2026-07-16 | Condense the action log into a scannable table | erdgeist |
| 2026-07-16 | Don't reference your own user as 'du' in action log. It breaks grammar. | erdgeist |
| 2026-07-16 | Add a reader for the action log at admin/log | erdgeist |
| 2026-07-15 | Make the recent-changes page match the widget it links from | erdgeist |
| 2026-07-14 | Make revisions locale aware | erdgeist |
| 2026-07-13 | Wire real autosave into translation editing | erdgeist |
| 2026-07-13 | Add per-node translation management: list, edit, destroy, compare | erdgeist |
| 2026-07-13 | Set config.i18n.available_locales explicitly | erdgeist |
| 2026-07-13 | Add RelatedAssetsController: search, attach, detach, reorder | erdgeist |
| 2026-07-12 | Add a locale-aware relative-time helper; drop stale locale overrides | erdgeist |
| 2026-07-12 | Add rails_icons (Tabler) for SVG iconography | erdgeist |
| 2026-07-12 | Add a grouped tag+node search endpoint for the upcoming dashboard | erdgeist |
| 2026-07-12 | Give the sitemap its own view, with collapse and descendant counts | erdgeist |
| 2026-07-11 | Add drafts/recent/mine/chapters admin node views | erdgeist |
| 2026-07-11 | Make page_translations' search trigger self-installing | erdgeist |
| 2026-07-11 | Move all admin routes under /admin | erdgeist |
| 2026-07-11 | Style admin pagination widget, add missing locale keys | erdgeist |
| 2026-07-10 | Add head/draft/autosave layer comparison at three UI entry points | erdgeist |
| 2026-07-09 | Add an events view for events without node | erdgeist |