| Age | Commit message (Expand) | Author |
| 19 hours | Implement model side of PDF raster preview generation | erdgeist |
| 19 hours | Add storage isolation for tests, preventing live data destruction | erdgeist |
| 25 hours | Remove Page#update_assets | erdgeist |
| 26 hours | Render asset credit inside the gallery lightbox correctly | erdgeist |
| 26 hours | Stop related_assets from duplicating on every clone | erdgeist |
| 45 hours | Make headline images explicit, add asset credits | erdgeist |
| 3 days | Link publish actions to revision diffs in recents | erdgeist |
| 3 days | Simplify sanitize_filenames for the unicode age | erdgeist |
| 4 days | Accept blank template names in the allowlist validations | erdgeist |
| 5 days | Give Trash a proper title on lazy construction | erdgeist |
| 5 days | Keep the Trash out of the drafts surfaces | erdgeist |
| 5 days | Add Trash affordances: cockpit, listing, dashboard entry | 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 |
| 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 | Condense the action log into a scannable table | erdgeist |
| 7 days | Record the full lifecycle contract in NodeAction entries | erdgeist |
| 7 days | Add NodeAction: an append-only log of who did what to a node | erdgeist |
| 8 days | Crop headline images to aspect ratio instead of distorting them | erdgeist |
| 8 days | Add a :large FileAttachment style for full-width inline body images | erdgeist |
| 8 days | Retire wipe_draft! and find_or_create_draft from production code | erdgeist |
| 9 days | clone_attributes_from: update translations in place, not delete+recreate | erdgeist |
| 9 days | Add per-node translation management: list, edit, destroy, compare | erdgeist |
| 9 days | wipe_draft!: add a grace period to the lock-with-no-draft branch | erdgeist |
| 9 days | Carry over other-locale translations when creating an autosave | erdgeist |
| 9 days | Asset picker: attach/detach/reorder UI, read-only view, autosave fix | erdgeist |
| 10 days | Add RelatedAssetsController: search, attach, detach, reorder | erdgeist |
| 10 days | Rebuild the admin dashboard: icon nav, search, signposts, widgets | erdgeist |
| 10 days | Extract drafts/recent query logic from controller into Node | erdgeist |
| 11 days | Add drafts/recent/mine/chapters admin node views | erdgeist |
| 11 days | Make page_translations' search trigger self-installing | erdgeist |
| 12 days | Prevent a staged parent move from crashing on its own descendant | erdgeist |
| 12 days | Include assets, tags and template in diff between revisions | erdgeist |
| 13 days | Add head/draft/autosave layer comparison at three UI entry points | erdgeist |
| 13 days | Retire vendored cacycle_diff.js for a diff-lcs-based diff view | erdgeist |
| 13 days | Fix malformed-HTML fallout across RSS, link rewriting, and flash messaging | erdgeist |
| 14 days | Fix blank-title validation and its lost form state on re-render | erdgeist |
| 14 days | Fix authorship and published_at loss in autosave promotion | erdgeist |
| 14 days | Add head/draft/autosave hierarchy to Node | erdgeist |
| 2026-07-08 | Make sure that page title actually is saved through to ORM | erdgeist |
| 2026-07-07 | Replace awesome_nested_set with a plain parent_id-based NestedTree concern | erdgeist |
| 2026-07-06 | Add tree-position scoping to Page.aggregate | erdgeist |
| 2026-07-06 | Apply slug immediately for never-published nodes | erdgeist |