| Age | Commit message (Expand) | Author |
| 22 hours | Remove unreachable image_box drag-and-drop UI | erdgeist |
| 23 hours | Show which image is headlined on nodes#show | erdgeist |
| 23 hours | Render asset credit inside the gallery lightbox correctly | erdgeist |
| 23 hours | Stop related_assets from duplicating on every clone | erdgeist |
| 24 hours | Whitespace fix | erdgeist |
| 41 hours | Remove a superflous section header | erdgeist |
| 42 hours | Improve discoverability of headline image logic in nodes#edit | erdgeist |
| 42 hours | Make headline images explicit, add asset credits | erdgeist |
| 2 days | Link publish actions to revision diffs in recents | erdgeist |
| 3 days | Remove one dead events view | erdgeist |
| 3 days | Add copy-url button to assets; unified the mechanism across views | erdgeist |
| 3 days | Simplify sanitize_filenames for the unicode age | erdgeist |
| 3 days | Point the style sheet to the correct WIP version in tree | erdgeist |
| 3 days | Start demolition survey of the css for later redesigns | erdgeist |
| 3 days | Log CSP violations to their own file instead of relying on Rails.logger | erdgeist |
| 3 days | Add a 500er logger and a trip wire in admin/boom to test it | erdgeist |
| 3 days | Fix render gallery rename issue. We saw 500s | erdgeist |
| 4 days | Refine the action log's time column layout | erdgeist |
| 4 days | Accept blank template names in the allowlist validations | erdgeist |
| 4 days | Emit a report-only Content-Security-Policy with nonced inline scripts | erdgeist |
| 4 days | Give action log entries per-verb icons | erdgeist |
| 4 days | Annotate the History list with each revision's lifecycle | erdgeist |
| 4 days | Give Trash a proper title on lazy construction | erdgeist |
| 4 days | Keep the Trash out of the drafts surfaces | erdgeist |
| 4 days | Teach the action log reader the Trash vocabulary | erdgeist |
| 4 days | Add Trash affordances: cockpit, listing, dashboard entry | erdgeist |
| 5 days | Route and control trash, restore, and permanent deletion | erdgeist |
| 5 days | Add trash!, restore_from_trash!, and destroy_from_trash! with log entries | erdgeist |
| 5 days | Bootstrap the Trash node: reserved slug, identity, guards | erdgeist |
| 5 days | Fix the cleanup cascade for a real node destroy | erdgeist |
| 5 days | Refuse destroying nodes that still have children | erdgeist |
| 5 days | Allowlist aggregate order columns and template names | erdgeist |
| 5 days | Implement transparent password hash migration | erdgeist |
| 5 days | Fix computed_unique_name code and consumer | erdgeist |
| 5 days | Retire recent changes widget, replace with action log | erdgeist |
| 5 days | Retire recent changes widget, replace with action log | erdgeist |
| 6 days | Cutover to new Recent Changes widget | erdgeist |
| 6 days | Move rrule builder to a partial and share between events#new and events#edit | erdgeist |
| 6 days | Aggregate selected weeks in a more human friendly form | erdgeist |
| 6 days | managed RRULE constructs now include week selection | erdgeist |
| 6 days | Split current_unique_name in a setter and an accessor | erdgeist |
| 6 days | nodes#show's revisions subsection renamed to history | erdgeist |
| 6 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 |
| 7 days | Add NodeAction: an append-only log of who did what to a node | erdgeist |
| 8 days | Make the recent-changes page match the widget it links from | erdgeist |
| 8 days | Remove dead admin/_recent_changes partial | erdgeist |