Commit Graph
100 Commits
Author SHA1 Message Date
hugo e2c92cb90d fix: A1-2 delete translation files from disk when parent post is deleted 2026-05-28 18:47:27 +02:00
hugo 82ce445c44 fix: A1-1 implement archived→draft/published transitions, wire archive/unarchive into post editor quick actions, complete all i18n translations 2026-05-28 18:39:52 +02:00
hugo f99e139fa5 feat: added a gallery quick action and fleshed out builtin macros 2026-05-28 17:19:49 +02:00
hugo 1914b05f39 chore: tend to allium spec to align with code 2026-05-28 13:36:55 +02:00
hugo b09b14cc03 fix: fixes to rendering in the AI chat 2026-05-28 11:21:03 +02:00
hugo 721b1ae626 fix: styling for a2ui surfaces was missing 2026-05-28 11:03:22 +02:00
hugo f7a4a9512c fix: persist a2ui surfaces in the database for chats to re-hydrate on
opening an old chat, unless manually dismissed
2026-05-27 20:13:33 +02:00
hugo 141c2bfc89 removed fixed codesmell document 2026-05-27 19:20:43 +02:00
hugo a5ac74db91 fix(style): add missing @impl true to all handle_call clauses in Publishing GenServer (CSM-036) 2026-05-27 19:19:50 +02:00
hugo beca4d992f fix(docs): document UILocale process-dict invariant and add enforcement tests (CSM-035) 2026-05-27 19:16:42 +02:00
hugo 9e6d93a4b3 fix(safety): replace File.read! with File.read and error-tuple handling in preview_assets and templates (CSM-034) 2026-05-27 19:10:13 +02:00
hugo e29dfb490a fix(perf): replace Enum.each + individual inserts with preloaded keys and batch upsert in embeddings (CSM-033) 2026-05-27 19:03:21 +02:00
hugo f2b340ba86 fix(style): replace Map.get with dot access and pattern matching where keys are guaranteed (CSM-032) 2026-05-27 18:33:42 +02:00
hugo d18e0ef7f2 fix(rendering): replace inline try/rescue with with-chains and safe_liquex_render helpers (CSM-031) 2026-05-27 18:12:23 +02:00
hugo 2d796cee83 updated specgaps for A3-1 2026-05-27 17:56:19 +02:00
hugo b052d59376 fix(fs): handle File.mkdir_p errors and remove bang variants in sidecars and release packaging (CSM-030) 2026-05-11 20:25:06 +02:00
hugo 4a089b0856 fix(perf): bind length/1 to variables before loop bodies in route paths and sidebar (CSM-029) 2026-05-11 20:18:56 +02:00
hugo 2632649cdc fix(rendering): replace raising read_template_file with try_read in macro templates (CSM-028) 2026-05-11 20:09:49 +02:00
hugo 782511d523 fix(templates): replace equality check with pattern matching in rewrite_template_file (CSM-027) 2026-05-11 20:06:15 +02:00
hugo 1cb59d7a78 chore: update the spec gaps with decisionm points 2026-05-11 12:19:16 +02:00
hugo 9844f3555a chore: analyse specs against code 2026-05-11 11:56:34 +02:00
hugoandClaude Opus 4.6 99dc1c2216 chore: remove redundant export-only tests, add test audit procedure
Deleted chat_editor_test.exs and import_editor_test.exs which only
checked function_exported?/Code.ensure_loaded? without exercising any
behavior — both components are already tested via LiveView rendering
in shell_live_test.exs and import_shell_live_test.exs respectively.

Added TESTAUDIT.md documenting the procedure for periodic test suite
audits to catch non-behavioral tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-11 10:35:24 +02:00
hugo 71fb99af16 chore: unit tests adaption to idea of gate test 2026-05-11 10:21:00 +02:00
hugo 0808b27057 chore: moved from delay-based tests to deterministic gated server tests
for chat
2026-05-11 10:20:46 +02:00
hugo ac4f5a3580 fix: eliminate TOCTOU race in template file system by reading directly instead of checking existence (CSM-026) 2026-05-11 09:26:54 +02:00
hugoandClaude Opus 4.6 43a435f35d fix: derive pagefind language prefixes from project settings (CSM-025)
Replace hardcoded ["de/", "fr/", "it/", "es/"] with prefixes computed
from plan.blog_languages, so arbitrary language codes work correctly.
Also mark CSM-024 as fixed (done in CSM-005).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-11 09:19:31 +02:00
hugoandClaude Opus 4.6 7b383d31ab fix: decompose monolithic functions into focused helpers (CSM-023)
Break up SRP violations in Templates.do_update_template/2 and
Capabilities.for_project/2 by extracting domain-specific builder
functions and single-responsibility private helpers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-11 09:15:48 +02:00
hugo 09df925e9b chore: allow git push 2026-05-11 09:10:08 +02:00
hugoandClaude Opus 4.6 a4ecbabc21 fix: return error tuples instead of silent {:ok, ""} in execute_macro (CSM-022)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-11 09:07:44 +02:00
hugoandClaude Opus 4.6 2be43ca06d fix: replace cond blocks with pattern matching and case (CSM-021)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-11 09:04:56 +02:00
hugo d231f42363 chore: allowed git add and ecto migrate 2026-05-10 12:37:24 +02:00
hugoandClaude Opus 4.6 7c00279b9d fix: flatten nested case blocks with with chains (CSM-020)
Replace deeply nested case expressions with flat with chains in
import_definitions, publishing, and templates modules. Also replaced
Repo.update!() with Repo.update() in the publishing update_job handler.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-10 12:36:42 +02:00
hugoandClaude Opus 4.6 b6f9cf58e1 fix: add @spec to all public functions across 24 modules (CSM-019)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-10 11:40:42 +02:00
hugoandClaude Opus 4.6 3f77488e33 fix: add @moduledoc to all public modules (CSM-018)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-10 11:30:08 +02:00
hugo 5c17751d55 fix: fixed CSM-017 2026-05-09 17:33:51 +02:00
hugo e4452ca504 chore: unit tests for CSM-016 2026-05-09 17:18:43 +02:00
hugo ce80f28e60 fix: fix CSM-016 for real (previous commit was 015) 2026-05-09 17:18:32 +02:00
hugo f1de11a205 fix: fixed CSM-016 2026-05-09 16:57:59 +02:00
hugo ff219fd110 chore: unit test for csm-014 2026-05-09 16:38:18 +02:00
hugo de7ea12c9c fix: fixed CSM-014 2026-05-09 16:38:00 +02:00
hugo 1beffe6b07 chore: unit test for csm-013 2026-05-09 15:10:24 +02:00
hugo 999632dbe7 fix: fixed CSM-013 2026-05-09 15:10:04 +02:00
hugo 44b88056e3 fix: fix CSM-012 2026-05-09 15:04:10 +02:00
hugo 35b3818d58 chore: unit test for CSM-011 2026-05-09 14:52:48 +02:00
hugo 37db52c024 fix: fixed CSM-011 2026-05-09 14:52:29 +02:00
hugo f1445120fc fix: fix CSM-010 2026-05-09 14:31:44 +02:00
hugo 14dfbd8829 fix: fixed CSM-009 2026-05-09 14:22:56 +02:00
hugo 24e9e9a022 fix: fixed CSM-008 2026-05-09 14:17:32 +02:00
hugo 88c689ee55 fix: fixed CSM-007 2026-05-09 10:41:28 +02:00
hugo e5429f7265 fix: implement CSM-006 2026-05-08 20:39:50 +02:00
hugo 93a4159c31 fix: fix CSM-006 2026-05-08 20:26:08 +02:00
hugo 06d80e2924 fix: tests for CSM-005 2026-05-08 20:09:18 +02:00
hugo 291dff697c fix: fix CSM-005 2026-05-08 20:09:02 +02:00
hugo 9944b70ab1 fix: fixed CSM-004 2026-05-08 19:52:59 +02:00
hugo 723b8c6433 fix: worked on CSM-003 2026-05-07 21:49:59 +02:00
hugo 92334256cf fix: fix CSM-002 2026-05-07 16:52:53 +02:00
hugo d3f45ba0dd fix: CSM-001 done 2026-05-06 19:33:54 +02:00
hugo 3ce6010b87 updated codesmell file with new analysis 2026-05-06 18:48:00 +02:00
hugo f704aba288 chore: added a new code smell todo 2026-05-05 20:44:58 +02:00
hugo 5282fcd241 chore: update docs 2026-05-04 13:11:23 +02:00
hugo 7756d9f83c feat: last gaps on tailwind migration 2026-05-04 13:00:42 +02:00
hugo 4ab0bc7b4e feat: gaps in tailwind migration closed 2026-05-04 12:27:07 +02:00
hugo eca89e51d2 feat: phase 5 of tailwind migration 2026-05-04 12:02:13 +02:00
hugo 8e715eec8b feat: phase 4 of tailwind migration 2026-05-04 11:39:31 +02:00
hugo 35017f9793 feat: p hase 3 of tailwind migration 2026-05-04 11:12:17 +02:00
hugoandCopilot b17e9cc3f8 feat: rework of the full CSS machine to tailwind and modular CSS
Co-authored-by: Copilot <copilot@github.com>
2026-05-04 10:15:01 +02:00
hugo 6b6c985187 fix: better styling for docs 2026-05-04 07:01:43 +02:00
hugo cb46b45cda feat: added doc rendering 2026-05-04 06:47:28 +02:00
hugo 43a4610ce7 chore: noise in tests 2026-05-04 06:18:06 +02:00
hugo 4de8492c4f feat: complete change to gettext from homebrew i18n solution 2026-05-03 22:28:25 +02:00
hugo 4bee8cf1db fix: proper menu translation 2026-05-03 19:31:26 +02:00
hugo dbb93a66f6 chore: moved a bunch of bridges out of the ShellLive module into its own
module
2026-05-03 19:09:24 +02:00
hugo 483c13aaa3 chore: more of the overlay and sidebar stuff 2026-05-03 18:56:10 +02:00
hugo f3d8fbcbdc chore: moved more code out of ShellLive into their own files 2026-05-03 18:54:32 +02:00
hugo c16afa4c00 chore: switched MiscEditor to LiveComponent 2026-05-03 18:21:48 +02:00
hugo 0f193929da chore: converted import editor to LiveComponent 2026-05-03 17:57:43 +02:00
hugo fa76cdf11d chore: converted ai chat to a live component 2026-05-03 17:20:52 +02:00
hugo 98243cbd16 feat: some more work on completing AI translation features 2026-05-03 15:32:54 +02:00
hugo 657ed58e80 fix: provide target language for AI suggestions 2026-05-03 14:50:20 +02:00
hugo 556f33711f fix: fixed media quick actions usage for images 2026-05-03 14:24:59 +02:00
hugo 5bc2b4a338 chore: convert media to live component 2026-05-03 13:09:27 +02:00
hugo 9f17954ce3 overlay for post suggestions uses AI now 2026-05-03 12:42:03 +02:00
hugo b9797809aa fix: metadata and excerpt collapsible 2026-05-03 11:38:14 +02:00
hugo 4fee1a6333 chore: converted post editor to live component 2026-05-03 11:32:43 +02:00
hugo 0075f25ef7 chore: converted scripts and templates to live components 2026-05-03 10:00:22 +02:00
hugo 8d7e7419d4 chore: convert menu editor to live component 2026-05-03 09:35:49 +02:00
hugo ce54e973ad chore: converted preferences editor to live component 2026-05-03 09:19:27 +02:00
hugo 6c7fde6b95 changed tags editor into live component 2026-05-03 09:03:54 +02:00
hugo eb8f5698e3 feat: just some work on tcp handling and god modules 2026-05-03 08:45:31 +02:00
hugo 2be751400d fix: parity in behaviour for scripts, templates and posts 2026-05-02 19:50:13 +02:00
hugo 73e066c330 fix: tag editor hopefully working and fixes to test runner 2026-05-02 11:24:51 +02:00
hugo a4ea24faa2 fix: fixed import action for orphaned files 2026-05-02 11:08:33 +02:00
hugo 45040f9f66 fix: fixed duplicate elements in ai chat 2026-05-02 10:55:14 +02:00
hugo 4cf0f5281b feat: fill missing translations implemented 2026-05-02 10:33:19 +02:00
hugo 24f114c24e fix: made menus more stable and verified and hooke up stuff that got lost 2026-05-02 09:37:24 +02:00
hugo 07fab7d1ab feat: delete buttons on sidebar entries 2026-05-02 09:15:54 +02:00
hugo c118412f56 fix: handling of tab titles on restore 2026-05-02 09:03:03 +02:00
hugo e0f13e325b fix: tab titles on ai chats on reload 2026-05-02 08:47:27 +02:00
hugo 631ceb0521 fix: still fighting crashes on close and weird AI chat behaviou 2026-05-02 08:40:36 +02:00
hugo 7db8f6d36b fix: more work on chat and chat titles 2026-05-01 23:34:37 +02:00