Commit Graph

171 Commits

Author SHA1 Message Date
Claudio Ortolina d1c520f2ed Update dependencies
ex_ast 0.11.1 => 0.11.2
finch 0.21.0 => 0.22.0 (minor)
2026-05-12 16:45:29 +01:00
Claudio Ortolina 154c3d9078 Update dependencies
ecto_sqlite3 0.22.0 => 0.23.0
2026-05-05 23:30:54 +01:00
Claudio Ortolina bcbfe2be75 Move skills to .agents/skills 2026-05-05 07:18:08 +01:00
Claudio Ortolina 7c6760d7db ML-158: force single-line log output in production
Three-layer architecture:
- Logster v2 handles HTTP request and LiveView socket telemetry in logfmt format
- Custom formatter as safety net escaping any remaining embedded newlines
- Config flag (single_line_logging) gating Logster attachment to prod only

Dev environment retains multi-line format for readability.
2026-05-04 15:01:10 +01:00
Claudio Ortolina 84012cbd1c Update to error_tracker 0.9
Includes amendments resulting from new events, and proper handling of
the muted attribute
2026-05-03 14:46:40 +01:00
Claudio Ortolina 8dd4721dc0 Update dependencies
websock_adapter 0.5.9 => 0.6.0
2026-05-02 09:46:15 +01:00
Claudio Ortolina bd93c036bc Add elixir usage rules to AGENTS.md 2026-04-30 10:05:54 +01:00
Claudio Ortolina 597cc89821 ML-147: Upgrade to ServerSentEvents 1.0.0 2026-04-27 22:02:45 +01:00
Claudio Ortolina 8e2a9b4941 Update phoenix_test 0.10.0 => 0.11.0 2026-04-26 18:57:21 +01:00
Claudio Ortolina 3852340479 ML-13: Tighten ecto_sqlite3 dep constraints 2026-04-24 09:54:05 +01:00
Claudio Ortolina 815b34c024 ML-9: add mix_audit for CVE scanning (warn-only) 2026-04-24 08:13:42 +01:00
Claudio Ortolina 120380865b Update dependencies
live_debugger 0.8.0 => 1.0.0
2026-04-23 11:52:17 +01:00
Claudio Ortolina 2a1b07b58d Exclude more modules from coverage 2026-04-21 16:17:15 +01:00
Claudio Ortolina 28fb570c65 Update dependencies
live_debugger 0.7.0 => 0.8.0 (minor)
2026-04-21 15:18:23 +01:00
Claudio Ortolina d22ed5e7a1 Disable dialyzer opaque checks 2026-04-21 12:53:35 +01:00
Claudio Ortolina a93ef6d076 Install and configure dialyzer 2026-04-21 12:27:27 +01:00
Claudio Ortolina ed4e92b1a7 Cover Ignore a few other modules 2026-04-20 23:00:44 +01:00
Claudio Ortolina f6becd85b4 More cover exclusions 2026-04-19 16:50:28 +01:00
Claudio Ortolina b79d8ded84 Exclude release module from cover 2026-04-19 16:02:18 +01:00
Claudio Ortolina 028c2a1b8d Configure test coverage and enable on CI 2026-04-17 13:30:04 +01:00
Claudio Ortolina 298c1dfc57 Document why multipart dependency is needed
Closes #182
2026-04-16 23:16:03 +01:00
Claudio Ortolina 88906e10ad Add ex_slop, configure it, run it and fix issues 2026-04-12 22:07:27 +01:00
Claudio Ortolina 4a8af7be39 Move lint, precommit, shellcheck from mix aliases to mise scripts
Mix aliases should only compose mix tasks. Shell tool orchestration
(shellcheck, fd) belongs in mise scripts. This removes the mix cmd
escape hatch and makes the boundary clear: mix.exs for pure mix
composition, scripts/ for cross-toolchain orchestration.
2026-04-12 12:30:59 +01:00
Claudio Ortolina 9c7ab5b229 Add Claude Code hooks, commands, and permissions
High priority:

- Auto-format on edit (.claude/hooks/format-elixir.sh): runs mix format
  synchronously after every Edit/Write on .ex, .exs, and .heex files.
  Ensures code is formatted before the next read or tool call.

- mix test permissions: added Bash(mix test) (bare) and Bash(mix test *)
  (with path/flags) to the allow list. Previously only Bash(mix test:*)
  was allowed, which didn't match common invocations.

- Slash commands: /precommit runs the full mix precommit pipeline and
  reports failures with fix suggestions. /oban-status queries Oban job
  state via Tidewave SQL, grouped by state and worker.

Medium priority:

- Chrome DevTools permissions: added 8 new tools (select_page,
  list_network_requests, get_network_request, list_console_messages,
  get_console_message, hover, press_key, wait_for) for debugging API
  traffic, JS hook errors, hover states, and keyboard navigation.

- Gettext extraction hook (.claude/hooks/gettext-extract.sh): runs
  mix gettext.extract --merge asynchronously after editing .heex files.
  Async because it's project-wide and doesn't need to block the next edit.

- Sobelow permission: added Bash(mix sobelow:*) to the allow list for
  independent security checks.
2026-04-12 09:54:32 +01:00
Claudio Ortolina f92a41241f Improve ui-framework skill with project conventions
Add project-specific UI checklist, component organization,
LiveView structure, toast patterns, and routing conventions
above the usage-rules managed section. Widen trigger description.
2026-04-09 16:24:35 +01:00
Claudio Ortolina 0483d89fa7 Update mdex 0.11.7 => 0.12.0 (minor) 2026-03-29 17:27:53 +01:00
Claudio Ortolina 41f1f72e23 Update rustler_precompiled 0.8.4 => 0.9.0
The upgrade surfaces a dependency problem that went unnoticed.

rustler_precompiled version 0.8.4 required castore, and that satisfied
the requirements for time_zone_info (which required the dependency
despite not listing it as such). With the upgrade to rustler_precompiled
0.9.0, castore is no longer listed as a dependency.

As it's still needed by time_zone_info, it's added to mix.exs. This
should have been done before, right when time_zone_info was added.
2026-03-26 20:46:15 +00:00
Claudio Ortolina 1cf9446063 Update oban_web to 2.12
- Had to disable nonces for style-src directives (seems like they're not
  propagated everywhere in oban_web's templates)
- Doesn't seem to support crons or workflows when backed by SQLite
2026-03-26 10:09:22 +00:00
Claudio Ortolina a5041d683a Update oban to 2.21.0 2026-03-26 09:37:09 +00:00
Claudio Ortolina de8a0a044a Load MDEx usage rules 2026-03-20 23:38:18 +00:00
Claudio Ortolina 5716c33781 Remove canonical_tailwind
Keeps crashing
2026-03-20 23:26:54 +00:00
Claudio Ortolina 4b876d269a Remove ecto_sqlite3_extras
Currently broken
2026-03-20 18:26:48 +00:00
Claudio Ortolina 3169332fca Make sure usage_rules is only loaded in dev 2026-03-20 16:20:24 +00:00
Claudio Ortolina 529a9c181d Replace PhoenixHTMLHelpers with Markdown rendering 2026-03-20 15:58:35 +00:00
Claudio Ortolina 47ca6fa1d2 Add canonical_tailwind to get correct formatting for tailwind classes 2026-03-20 13:02:32 +00:00
Claudio Ortolina 5cc8013d1a Update dependencies
live_debugger 0.6.1 => 0.7.0 (minor)
2026-03-18 14:58:52 +00:00
Claudio Ortolina 4855fec59b Run sobelow during pre-commit hooks 2026-03-12 21:22:18 +00:00
Claudio Ortolina 4569c6727e Add function to download a record's tracklist for printing 2026-03-09 13:39:12 +00:00
Claudio Ortolina d76471b03e Use MDEx to consolidate Markdown handling 2026-03-08 09:31:09 +00:00
Claudio Ortolina 52815bde2f When doing markdown to HTML, sanitize HTML
Closes #101
Closes #102
2026-03-07 19:05:37 +00:00
Claudio Ortolina 1d6e51f89f Add sobelow 2026-03-07 10:13:17 +00:00
Claudio Ortolina 348d062822 Update dependencies
fluxon 2.3.3 => 2.3.4
phoenix_test 0.9.1 => 0.10.0 (minor)
spitfire 0.3.9 => 0.3.10
2026-03-06 06:33:41 +00:00
Claudio Ortolina f109057be5 Persist telemetry data in local sqlite database 2026-03-05 13:39:38 +00:00
Claudio Ortolina 25fd355d1c Override idna dependency
Only meaningful difference with version 6 (which is required by swoosh)
is compatibility with old OTP versions. We don't care about that, so we
can try to upgrade.
2026-03-04 17:38:36 +00:00
Claudio Ortolina ad9bcd8481 Inline error tracker notification code
As we don't need the Discord functionality which brings quite a lot of
extra libraries/code
2026-03-04 17:19:14 +00:00
Claudio Ortolina ed1dd2b440 Mount error tracker notifier 2026-03-04 15:55:32 +00:00
Claudio Ortolina 1c04eea88f Install and configure Swoosh with Mailgun 2026-03-04 15:52:17 +00:00
Claudio Ortolina 1d3361c425 BETA: accurate color extractor 2026-03-03 15:41:24 +00:00
Claudio Ortolina 5bd85013c6 Simplify OpenAI api implementation 2026-03-02 13:56:46 +00:00
Claudio Ortolina 540209eec6 Improve trigger for ui-framework skill 2026-03-01 20:21:13 +00:00