| Age | Commit message (Expand) | Author |
| 7 hours | Make revisions locale aware | erdgeist |
| 10 hours | Add cache-buster using mtime of css and js files outside the asset pipeline | erdgeist |
| 14 hours | Make revision diffs locale-aware, defaulting to whichever locale changed | erdgeist |
| 14 hours | clone_attributes_from: update translations in place, not delete+recreate | erdgeist |
| 16 hours | Fix shared preview redirecting to admin for an ordinary new draft | erdgeist |
| 16 hours | Wire real autosave into translation editing | erdgeist |
| 17 hours | Add per-node translation management: list, edit, destroy, compare | erdgeist |
| 19 hours | Carry over other-locale translations when creating an autosave | erdgeist |
| 28 hours | Asset picker: attach/detach/reorder UI, read-only view, autosave fix | erdgeist |
| 30 hours | Add loadOnFocus to initSearchPicker; asset search shows recent by default | erdgeist |
| 30 hours | Add RelatedAssetsController: search, attach, detach, reorder | erdgeist |
| 34 hours | Normalize action-button wording and add icons app-wide | erdgeist |
| 34 hours | Rebuild the admin dashboard: icon nav, search, signposts, widgets | erdgeist |
| 34 hours | Add a locale-aware relative-time helper; drop stale locale overrides | erdgeist |
| 41 hours | Add a grouped tag+node search endpoint for the upcoming dashboard | erdgeist |
| 43 hours | Extract drafts/recent query logic from controller into Node | erdgeist |
| 2 days | Give the sitemap its own view, with collapse and descendant counts | erdgeist |
| 2 days | Add drafts/recent/mine/chapters admin node views | erdgeist |
| 3 days | Do not offer to destroy the only draft of a never-published node | erdgeist |
| 3 days | Prevent a staged parent move from crashing on its own descendant | erdgeist |
| 3 days | Fix current_user/uniq inconsistencies in admin#index, remove dead query | erdgeist |
| 4 days | Add the missing assertions two tests were silently running without | erdgeist |
| 4 days | Fix rrule/url column overflow on events#index | erdgeist |
| 4 days | Add test for backlink in revisions#index | erdgeist |
| 4 days | Include assets, tags and template in diff between revisions | erdgeist |
| 4 days | Stop diff output from corrupting the document on structural tag changes | erdgeist |
| 4 days | Ensure that comparison view toggle is there for all diff modes | erdgeist |
| 4 days | Destroying Draft or Discarding Autosave drops you where you left | erdgeist |
| 4 days | Add head/draft/autosave layer comparison at three UI entry points | erdgeist |
| 4 days | Whitespace fixes | erdgeist |
| 4 days | Fix stale assertions and escaped body in revisions#show | erdgeist |
| 4 days | Retire vendored cacycle_diff.js for a diff-lcs-based diff view | erdgeist |
| 6 days | Add revert!/discard and rebuild nodes#edit around the new hierarchy | erdgeist |
| 6 days | Fix authorship and published_at loss in autosave promotion | erdgeist |
| 6 days | Fix node_content count in show-with-published-draft test | erdgeist |
| 6 days | Fix tests for the new autosave routing | erdgeist |
| 6 days | Add head/draft/autosave hierarchy to Node | erdgeist |
| 8 days | Fix test to match the current layout | erdgeist |
| 8 days | Fix shared preview links breaking after a second publish | erdgeist |
| 8 days | Strengthen event/occurrence cascade test with real assertions | erdgeist |
| 8 days | Remove dead custom_rrule references after column drop | erdgeist |
| 10 days | Add self-service event creation from nodes#show | erdgeist |
| 13 days | Add RRULE humanizer and wire events into nodes#show | erdgeist |
| 14 days | Phase 1: standalone events, external_url on nodes | erdgeist |
| 14 days | Fix aggregate shortcode syntax in content_controller_test | erdgeist |
| 2026-06-27 | Stage 7: Rails 7.2 → 8.1 on Ruby 3.2.11 | erdgeist |
| 2026-06-27 | Stage 6 click-testing fixes and production setup | erdgeist |
| 2026-06-26 | Stage 4: Rails 5.2 -> 6.1 on Ruby 2.7.2 | erdgeist |
| 2026-06-25 | Rails 5.2 test updates | erdgeist |
| 2026-06-25 | Upgrade to Rails 4.2.11.3 | erdgeist |