| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-07-30 | Use icon sets on the public page and add a public-site shortcut in admin realm | erdgeist | |
| 2026-07-30 | Retire the unroutable scaffold views | erdgeist | |
| Nine generator leftovers for actions that either do not exist or never render HTML. menu_items/show goes with its route and its action, since deleting the template alone would turn a dead page into a missing-template error; pages_controller has only #preview, so its four CRUD views were unreachable by any route; and nodes#update redirects on every path. | |||
| 2026-07-30 | Canonicalise per locale and declare hreflang alternates | erdgeist | |
| German content is reachable at both /updates/foo and /de/updates/foo, and a page with no English translation renders German at /en/updates/foo through the fallback chain, so three URLs each claimed to be canonical. Both tags now derive from one locale-to-URL function, which points every duplicate at the address of the version actually served, the unprefixed German URL, matching default_url_options. Alternates are declared only for locales in which the page genuinely has a translation, since /en/ serving German through the fallback is not an English version of the page. x-default points at German, the site's primary language. | |||
| 2026-07-30 | Bring some tags forward to 2026 and provide humanized asset name | erdgeist | |
| 2026-07-30 | Emit per-page Open Graph metadata | erdgeist | |
| Replaces one hardcoded German description and an unrenderable SVG with per-page title, description, canonical URL, locale and publication date, plus the card variant or a site-wide default. | |||
| 2026-07-30 | Generate a 1200x630 social card variant for every asset | erdgeist | |
| 2026-07-29 | Don't display file icon in headline card, it's superflous | erdgeist | |
| 2026-07-28 | add partial for menu_item titles in both locales | erdgeist | |
| 2026-07-28 | Let editors manage menu titles in both locales | erdgeist | |
| 2026-07-27 | Permit editors to touch menu_items' title | erdgeist | |
| 2026-07-27 | Fix locale dependent param compare | erdgeist | |
| 2026-07-27 | Pin the two translation editors as well | erdgeist | |
| 2026-07-27 | Pin admin content reads to the default locale | erdgeist | |
| 2026-07-27 | Surface held locks in the dashboard's work-in-progress widget | erdgeist | |
| A lock with no draft or autosave behind it was invisible to everyone including its holder, until the next editor collided with it. work_in_progress now admits those nodes, and the widget names the holder rather than the last editor on any locked row. Also flips the ordering to stalest-first, so a backlog reads as a queue rather than a feed, and gives the heading a real total: the count came from the already-limited relation and could never exceed five. | |||
| 2026-07-27 | Retire orphaned drafts partial and their translations | erdgeist | |
| 2026-07-27 | Consolidate all main nav items in a single partial | erdgeist | |
| 2026-07-27 | Let Globalize decide what locale to display for a page translation | erdgeist | |
| 2026-07-27 | Move switchers out of the user check, so it also works when logged out | erdgeist | |
| 2026-07-26 | Fix redundant link_to in assets#show | erdgeist | |
| 2026-07-26 | Fix redundant link_to in assets#new | erdgeist | |
| 2026-07-26 | Fix login view so the user knows where they are logging in to | erdgeist | |
| 2026-07-26 | More visual cleanups for input fields | erdgeist | |
| 2026-07-25 | Give our layouts proper language meta and viewports | erdgeist | |
| 2026-07-25 | Extract public-site strings to i18n | erdgeist | |
| The public views were never part of the admin extraction and were broken in both directions: German visitors got "Featured", "Calendar" and "Tags", English visitors got "Suchergebnisse für Suchbegriff:". Also picks up the unlock-confirm message in link_helper, a straggler from the revisions/menu_items batch, and drops two raw() calls in the application layout in favour of link_to blocks. | |||
| 2026-07-25 | Extract admin strings to i18n: revisions, page_translations, and menu items, | erdgeist | |
| 2026-07-25 | Retire the unroutable occurrences scaffolding | erdgeist | |
| 2026-07-25 | Extract admin strings to i18n: dashboard, layout chrome, and the JS bridge | erdgeist | |
| 2026-07-25 | Extract admin strings to i18n Fix straggler from batch 1 | erdgeist | |
| 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 | Rename layout classes to what they actually do | erdgeist | |
| 2026-07-24 | Give all sessions a uniform absolute lifetime of one week | erdgeist | |
| Enforced at restore via a login-time stamp, written only at genuine logins so the limit stays absolute rather than sliding. The cookie name rotation logs everyone out once at deploy. Second-factor users are deliberately not treated worse than password-only ones. | |||
| 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 | Complete the login only after the second factor | erdgeist | |
| Enrolled users get a pending marker instead of a session after the password step; a valid code through the challenge writes the real session via reset_session. otp_required without enrollment funnels into setup everywhere except the enrollment, user, and login machinery. | |||
| 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 | Prevent the more … link from line breaking | erdgeist | |
| 2026-07-24 | Reduce visual clutter: remove time from article partials | erdgeist | |
| 2026-07-23 | More tiny visual cleanups | erdgeist | |
| 2026-07-23 | articles partials now render the thumb of their headline media in the list | erdgeist | |
| 2026-07-23 | Restyle pdf headline cards | erdgeist | |
| 2026-07-23 | Force tags to be lowercase. A script unifies existing tags in both cases | erdgeist | |
| 2026-07-23 | Turn the asset upload forms into file drop targets | erdgeist | |
| Dropped files land in the existing file input and submit through the unchanged form. An empty name field is prefilled from the basename. | |||
| 2026-07-23 | Zoom the action log on assets | erdgeist | |
| Asset names in summaries and publish deltas link to assets#show with an inline Chronik beside each, suppressed inside that asset's own zoom, per the node convention. assets#show gains a history button. Also renames the details summary (no longer only translations) and moves View Diff onto its own line. | |||
| 2026-07-23 | Keep in-editor asset curation off the head, layering it like every edit | erdgeist | |
| ensure_autosave! gives body keystrokes and asset curation one shared layer, so head is never mutated in place and every curation change surfaces in the publish delta. Stale rendered join ids are mapped across the clone via asset_id. Curation now requires holding the lock; a missing lock answers 423, matching the autosave endpoint. | |||
| 2026-07-23 | Record asset deltas at publish, with changed assets as participants | erdgeist | |
