| Age | Commit message (Expand) | Author |
| 4 days | Add Trash affordances: cockpit, listing, dashboard entry | erdgeist |
| 4 days | Route and control trash, restore, and permanent deletion | erdgeist |
| 4 days | Add trash!, restore_from_trash!, and destroy_from_trash! with log entries | erdgeist |
| 4 days | Bootstrap the Trash node: reserved slug, identity, guards | erdgeist |
| 4 days | Fix the cleanup cascade for a real node destroy | erdgeist |
| 4 days | Refuse destroying nodes that still have children | erdgeist |
| 4 days | Drop the orphaned nested-set columns lft and rgt | erdgeist |
| 4 days | Allowlist aggregate order columns and template names | erdgeist |
| 4 days | Allow updating migrated users without supplying a password | erdgeist |
| 4 days | Add migraton for bcrypt password digest on user model | erdgeist |
| 4 days | Implement transparent password hash migration | erdgeist |
| 4 days | Add some more tests for the login basics while refactoring | erdgeist |
| 4 days | Use SecureRandom instead of the hand rolled implementation | erdgeist |
| 4 days | Improve test coverage for two-ordinal week selection in rrule humanizier | erdgeist |
| 4 days | Fix computed_unique_name code and consumer | erdgeist |
| 4 days | Fix grammar for unknown action and discard_autosave | erdgeist |
| 4 days | Retire recent changes widget, replace with action log | erdgeist |
| 4 days | Retire recent changes widget, replace with action log | erdgeist |
| 5 days | Give all text and password inputs border-radii | erdgeist |
| 5 days | Cutover to new Recent Changes widget | erdgeist |
| 5 days | Construct DOM elements using escaping helpers to prevent XSS | erdgeist |
| 5 days | Add a script to backfill action log from existing records | erdgeist |
| 5 days | Move rrule builder to a partial and share between events#new and events#edit | erdgeist |
| 5 days | Aggregate selected weeks in a more human friendly form | erdgeist |
| 5 days | managed RRULE constructs now include week selection | erdgeist |
| 5 days | Split current_unique_name in a setter and an accessor | erdgeist |
| 5 days | nodes#show's revisions subsection renamed to history | erdgeist |
| 5 days | Condense the action log into a scannable table | erdgeist |
| 6 days | Don't reference your own user as 'du' in action log. It breaks grammar. | erdgeist |
| 6 days | Add a reader for the action log at admin/log | erdgeist |
| 6 days | Record the full lifecycle contract in NodeAction entries | erdgeist |
| 6 days | Provide parent_unique_name in nodes#new if parent is already pre-set | erdgeist |
| 6 days | Remove some remnants of legacy admin wizard interface | erdgeist |
| 7 days | Add NodeAction: an append-only log of who did what to a node | erdgeist |
| 7 days | Make the recent-changes page match the widget it links from | erdgeist |
| 7 days | Remove dead admin/_recent_changes partial | erdgeist |
| 7 days | Add scaffolding for a proper tech documentation from everything I could remember | erdgeist |
| 7 days | Supply related-asset URLs/name and public inline-image CSS | erdgeist |
| 7 days | Add inline image insertion for page bodies, plus a headline-conflict badge | erdgeist |
| 7 days | Extend static-asset cache-busting to the public layout | erdgeist |
| 7 days | Crop headline images to aspect ratio instead of distorting them | erdgeist |
| 7 days | Add a :large FileAttachment style for full-width inline body images | erdgeist |
| 7 days | Retire wipe_draft! and find_or_create_draft from production code | erdgeist |
| 8 days | Add chapter images: thumbnail on the list, headline image on the detail page | erdgeist |
| 8 days | Add a toggleable live preview panel to both editors | erdgeist |
| 8 days | Make revisions locale aware | erdgeist |
| 8 days | Add tooltips to all navbar items | erdgeist |
| 8 days | Make tags a pill list on nodes#show | erdgeist |
| 8 days | Store return_to before resetting session in loging. Fixes returning to an admin page before logging in | erdgeist |
| 8 days | Re-add language selector, but fix the mis-nomer for english pages | erdgeist |