Skip to content

Commit 24de5b9

Browse files
esbanarangoclaude
andcommitted
chore(format): mix format on main-agent files; CI was failing format check
Recent commits accumulated formatting drift (mostly heredoc whitespace, multi-line tuple formatting, pipe alignment). CI's format-check step has been failing since 0a0e114, which means our deploy.yml workflow has been skipping every push. Running `mix format` now to clear the backlog. Two files in prediction-agent territory (aggregator.ex, sled_run.ex) were also flagged by the formatter — left untouched per the partition rules in CLAUDE.md; the prediction agent will need to format those on their next push. Also bumps .claude/apple/dangerous_allowed_domains.csv with the Volable production domains we've been hitting from the deploy chain (Fly API, Docker registry, New Relic). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 8dafee5 commit 24de5b9

18 files changed

Lines changed: 292 additions & 68 deletions

File tree

.claude/apple/dangerous_allowed_domains.csv

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,27 @@ sentry.io
5555
betterstack.com
5656
neon.tech
5757
supabase.com
58+
59+
# --- Volable production (deploy chain) ---
60+
volable.app
61+
www.volable.app
62+
volable.fly.dev
63+
api.machines.dev
64+
flyctl-metrics.fly.dev
65+
registry.fly.io
66+
api.fly.io
67+
dfw1.gateway.6pn.dev
68+
ord1.gateway.6pn.dev
69+
sjc1.gateway.6pn.dev
70+
iad1.gateway.6pn.dev
71+
hub.docker.com
72+
registry.hub.docker.com
73+
registry-1.docker.io
74+
auth.docker.io
75+
production.cloudflare.docker.com
76+
collector.newrelic.com
77+
metric-api.newrelic.com
78+
log-api.newrelic.com
79+
depot.dev
80+
api.depot.dev
81+
build.depot.dev

lib/volable/flyability/providers/open_meteo.ex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ defmodule Volable.Flyability.Providers.OpenMeteo do
3131
{:error, failed_reading(source, fetched_at, "open_meteo_http_#{status}")}
3232

3333
{:error, %{__exception__: true} = err} ->
34-
{:error, failed_reading(source, fetched_at, "open_meteo_transport_#{inspect(err.reason)}")}
34+
{:error,
35+
failed_reading(source, fetched_at, "open_meteo_transport_#{inspect(err.reason)}")}
3536
end
3637
end
3738

lib/volable/telemetry/handlers.ex

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,10 @@ defmodule Volable.Telemetry.Handlers do
5353
:ok
5454
rescue
5555
err ->
56-
Logger.warning("volable telemetry: failed to forward Oban exception to Sentry: #{inspect(err)}")
56+
Logger.warning(
57+
"volable telemetry: failed to forward Oban exception to Sentry: #{inspect(err)}"
58+
)
59+
5760
:ok
5861
end
5962
end

lib/volable_web/components/day_detail.ex

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,10 @@ defmodule VolableWeb.Components.DayDetail do
5252
<div :if={map_size(@inputs_used) > 0}>
5353
<h3 class="label-eyebrow text-[var(--color-ink-soft)] mb-4 flex items-baseline gap-2">
5454
<span>Inputs</span>
55-
<span :if={@driving_hour} class="numerals text-[0.65rem] tracking-[0.18em] text-[var(--color-ink-quiet)]">
55+
<span
56+
:if={@driving_hour}
57+
class="numerals text-[0.65rem] tracking-[0.18em] text-[var(--color-ink-quiet)]"
58+
>
5659
DRIVING HR · {format_hour(@driving_hour)}
5760
</span>
5861
</h3>
@@ -76,7 +79,7 @@ defmodule VolableWeb.Components.DayDetail do
7679
class="numerals text-[0.65rem] tracking-[0.16em] text-[var(--color-ink-quiet)] pt-3 border-t border-[var(--color-rule)]"
7780
>
7881
MODEL v{@prediction_model_version}
79-
<span :if={@computed_at}> · COMPUTED {iso(@computed_at)}</span>
82+
<span :if={@computed_at}> · COMPUTED {iso(@computed_at)}</span>
8083
</div>
8184
</section>
8285
"""
@@ -96,7 +99,11 @@ defmodule VolableWeb.Components.DayDetail do
9699
|> assign(:alerts, alerts)
97100

98101
~H"""
99-
<div :if={@explanation not in [nil, ""] or @alerts != []} data-role="driving-hour-summary" class="space-y-2">
102+
<div
103+
:if={@explanation not in [nil, ""] or @alerts != []}
104+
data-role="driving-hour-summary"
105+
class="space-y-2"
106+
>
100107
<DangerAlerts.danger_alerts alerts={@alerts} />
101108
<Explanation.explanation text={@explanation} />
102109
</div>
@@ -109,7 +116,9 @@ defmodule VolableWeb.Components.DayDetail do
109116
defp group_block(%{group: "WIND"} = assigns) do
110117
~H"""
111118
<div>
112-
<div class="numerals text-[0.6rem] tracking-[0.22em] text-[var(--color-ink-quiet)] mb-2">{@group}</div>
119+
<div class="numerals text-[0.6rem] tracking-[0.22em] text-[var(--color-ink-quiet)] mb-2">
120+
{@group}
121+
</div>
113122
<div class="flex items-start gap-4">
114123
<.wind_compass fields={@fields} />
115124
<dl class="grid grid-cols-[1fr_auto] gap-x-4 gap-y-1 text-[0.875rem] flex-1">
@@ -126,7 +135,9 @@ defmodule VolableWeb.Components.DayDetail do
126135
defp group_block(%{group: "CLOUD"} = assigns) do
127136
~H"""
128137
<div>
129-
<div class="numerals text-[0.6rem] tracking-[0.22em] text-[var(--color-ink-quiet)] mb-2">{@group}</div>
138+
<div class="numerals text-[0.6rem] tracking-[0.22em] text-[var(--color-ink-quiet)] mb-2">
139+
{@group}
140+
</div>
130141
<div class="space-y-2">
131142
<%= for {field, value} <- @fields do %>
132143
<.cloud_row field={field} value={value} />
@@ -139,7 +150,9 @@ defmodule VolableWeb.Components.DayDetail do
139150
defp group_block(%{group: "PRECIP"} = assigns) do
140151
~H"""
141152
<div>
142-
<div class="numerals text-[0.6rem] tracking-[0.22em] text-[var(--color-ink-quiet)] mb-2">{@group}</div>
153+
<div class="numerals text-[0.6rem] tracking-[0.22em] text-[var(--color-ink-quiet)] mb-2">
154+
{@group}
155+
</div>
143156
<div class="space-y-2">
144157
<%= for {field, value} <- @fields do %>
145158
<.precip_row field={field} value={value} />
@@ -152,7 +165,9 @@ defmodule VolableWeb.Components.DayDetail do
152165
defp group_block(assigns) do
153166
~H"""
154167
<div>
155-
<div class="numerals text-[0.6rem] tracking-[0.22em] text-[var(--color-ink-quiet)] mb-2">{@group}</div>
168+
<div class="numerals text-[0.6rem] tracking-[0.22em] text-[var(--color-ink-quiet)] mb-2">
169+
{@group}
170+
</div>
156171
<dl class="grid grid-cols-[1fr_auto] gap-x-4 gap-y-1 text-[0.875rem]">
157172
<%= for {field, value} <- @fields do %>
158173
<dt class="text-[var(--color-ink-soft)]">{FieldLabels.label(field)}</dt>
@@ -211,13 +226,15 @@ defmodule VolableWeb.Components.DayDetail do
211226

212227
~H"""
213228
<div class="flex items-center gap-3">
214-
<span class="text-[var(--color-ink-quiet)]" :if={@is_pct}>
229+
<span :if={@is_pct} class="text-[var(--color-ink-quiet)]">
215230
<WeatherIcons.cloud fill_pct={@pct} class="h-5 w-7 shrink-0" />
216231
</span>
217-
<span class="text-[var(--color-ink-quiet)]" :if={!@is_pct}>
232+
<span :if={!@is_pct} class="text-[var(--color-ink-quiet)]">
218233
<span class="block w-7 text-center numerals text-[0.65rem]">m</span>
219234
</span>
220-
<span class="text-[var(--color-ink-soft)] text-[0.875rem] flex-1">{FieldLabels.label(@field)}</span>
235+
<span class="text-[var(--color-ink-soft)] text-[0.875rem] flex-1">
236+
{FieldLabels.label(@field)}
237+
</span>
221238
<span class="text-[var(--color-ink)] numerals text-[0.875rem] tabular-nums">
222239
{FieldLabels.format(@field, @value)}
223240
</span>
@@ -254,7 +271,9 @@ defmodule VolableWeb.Components.DayDetail do
254271
<span class="text-[var(--color-sky)] shrink-0">
255272
<WeatherIcons.rain intensity={@intensity} class="h-5 w-5" />
256273
</span>
257-
<span class="text-[var(--color-ink-soft)] text-[0.875rem] flex-1">{FieldLabels.label(@field)}</span>
274+
<span class="text-[var(--color-ink-soft)] text-[0.875rem] flex-1">
275+
{FieldLabels.label(@field)}
276+
</span>
258277
<span class="text-[var(--color-ink)] numerals text-[0.875rem]">
259278
{FieldLabels.format(@field, @value)}
260279
</span>

lib/volable_web/components/layouts/root.html.heex

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66
<meta name="csrf-token" content={get_csrf_token()} />
77
<meta name="theme-color" content="#0F1417" media="(prefers-color-scheme: dark)" />
88
<meta name="theme-color" content="#FAF7F0" media="(prefers-color-scheme: light)" />
9-
<meta name="description" content="Paragliding flyability brief for predefined launch sites in Antioquia." />
9+
<meta
10+
name="description"
11+
content="Paragliding flyability brief for predefined launch sites in Antioquia."
12+
/>
1013
<link rel="preconnect" href="https://fonts.googleapis.com" />
1114
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous" />
1215
<.live_title default="Volable" suffix=" · flyability brief" phx-no-format>{assigns[:page_title]}</.live_title>

lib/volable_web/components/source_list.ex

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ defmodule VolableWeb.Components.SourceList do
2929
>
3030
<div class="flex flex-col min-w-0">
3131
<span class="font-semibold text-[var(--color-ink)]">{entry.name}</span>
32-
<span :if={entry.source_generated_at} class="numerals text-[0.7rem] text-[var(--color-ink-quiet)] mt-0.5">
32+
<span
33+
:if={entry.source_generated_at}
34+
class="numerals text-[0.7rem] text-[var(--color-ink-quiet)] mt-0.5"
35+
>
3336
<span class="text-[var(--color-ink-faint)]">gen</span> {entry.source_generated_at}
3437
</span>
3538
<span :if={entry.fetched_at} class="numerals text-[0.7rem] text-[var(--color-ink-quiet)]">

lib/volable_web/components/updated_pill.ex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ defmodule VolableWeb.Components.UpdatedPill do
1616
data-role="updated-pill"
1717
class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded-full border border-[var(--color-rule)] bg-[var(--color-paper-band)] label-eyebrow text-[var(--color-ink-soft)] transition-opacity duration-500"
1818
>
19-
<span class="h-1.5 w-1.5 rounded-full bg-[var(--color-go)]" aria-hidden="true"></span>
20-
updated
19+
<span class="h-1.5 w-1.5 rounded-full bg-[var(--color-go)]" aria-hidden="true"></span> updated
2120
</span>
2221
"""
2322
end

lib/volable_web/components/verdict_badge.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ defmodule VolableWeb.Components.VerdictBadge do
2020
data-level={@level}
2121
data-stale={to_string(@is_stale)}
2222
class={[variant_class(@variant), @class]}
23-
style={"color: var(--verdict-fg)"}
23+
style="color: var(--verdict-fg)"
2424
>
2525
{Verdict.display_label(@level)}
2626
</span>

lib/volable_web/components/weather_icons.ex

Lines changed: 69 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,15 @@ defmodule VolableWeb.Components.WeatherIcons do
123123
stroke-linejoin="round"
124124
fill="currentColor"
125125
/>
126-
<line x1="12" y1="11" x2="12" y2="21" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
126+
<line
127+
x1="12"
128+
y1="11"
129+
x2="12"
130+
y2="21"
131+
stroke="currentColor"
132+
stroke-width="1.5"
133+
stroke-linecap="round"
134+
/>
127135
</svg>
128136
"""
129137
end
@@ -143,12 +151,61 @@ defmodule VolableWeb.Components.WeatherIcons do
143151
~H"""
144152
<svg viewBox="0 0 40 40" class={@class} aria-hidden="true" {@rest}>
145153
<circle cx="20" cy="20" r="16" fill="none" stroke="currentColor" stroke-width="1" opacity="0.4" />
146-
<text x="20" y="8.5" text-anchor="middle" font-size="6" font-family="var(--font-mono)" font-weight="600" fill="currentColor" opacity="0.65">N</text>
147-
<text x="20" y="36" text-anchor="middle" font-size="6" font-family="var(--font-mono)" font-weight="600" fill="currentColor" opacity="0.4">S</text>
148-
<text x="34.5" y="22" text-anchor="middle" font-size="6" font-family="var(--font-mono)" font-weight="600" fill="currentColor" opacity="0.4">E</text>
149-
<text x="5.5" y="22" text-anchor="middle" font-size="6" font-family="var(--font-mono)" font-weight="600" fill="currentColor" opacity="0.4">W</text>
154+
<text
155+
x="20"
156+
y="8.5"
157+
text-anchor="middle"
158+
font-size="6"
159+
font-family="var(--font-mono)"
160+
font-weight="600"
161+
fill="currentColor"
162+
opacity="0.65"
163+
>
164+
N
165+
</text>
166+
<text
167+
x="20"
168+
y="36"
169+
text-anchor="middle"
170+
font-size="6"
171+
font-family="var(--font-mono)"
172+
font-weight="600"
173+
fill="currentColor"
174+
opacity="0.4"
175+
>
176+
S
177+
</text>
178+
<text
179+
x="34.5"
180+
y="22"
181+
text-anchor="middle"
182+
font-size="6"
183+
font-family="var(--font-mono)"
184+
font-weight="600"
185+
fill="currentColor"
186+
opacity="0.4"
187+
>
188+
E
189+
</text>
190+
<text
191+
x="5.5"
192+
y="22"
193+
text-anchor="middle"
194+
font-size="6"
195+
font-family="var(--font-mono)"
196+
font-weight="600"
197+
fill="currentColor"
198+
opacity="0.4"
199+
>
200+
W
201+
</text>
150202
<g style={"transform: rotate(#{@rotation}deg); transform-origin: 20px 20px;"}>
151-
<path d="M20 6 L23 20 L20 17 L17 20 Z" fill="var(--verdict-accent, currentColor)" stroke="currentColor" stroke-width="0.5" />
203+
<path
204+
d="M20 6 L23 20 L20 17 L17 20 Z"
205+
fill="var(--verdict-accent, currentColor)"
206+
stroke="currentColor"
207+
stroke-width="0.5"
208+
/>
152209
</g>
153210
</svg>
154211
"""
@@ -171,7 +228,10 @@ defmodule VolableWeb.Components.WeatherIcons do
171228

172229
~H"""
173230
<span
174-
class={["relative inline-block rounded-full overflow-hidden bg-[var(--color-paper-band)]", @class]}
231+
class={[
232+
"relative inline-block rounded-full overflow-hidden bg-[var(--color-paper-band)]",
233+
@class
234+
]}
175235
role="meter"
176236
aria-valuenow={@pct}
177237
aria-valuemin="0"
@@ -181,7 +241,8 @@ defmodule VolableWeb.Components.WeatherIcons do
181241
<span
182242
class="absolute inset-y-0 left-0 rounded-full"
183243
style={"width: #{@pct}%; background: #{tone_color(@tone)};"}
184-
></span>
244+
>
245+
</span>
185246
</span>
186247
"""
187248
end

lib/volable_web/controllers/debug_controller.ex

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,13 @@ defmodule VolableWeb.DebugController do
9898
driving_source: dv["driving_source_id"],
9999
driving_hour: dv["driving_hour"],
100100
hour_count: length(hour_aggs),
101-
first_explanation: hour_aggs |> List.first() |> case do
102-
%{"explanation" => exp} -> exp
103-
_ -> nil
104-
end
101+
first_explanation:
102+
hour_aggs
103+
|> List.first()
104+
|> case do
105+
%{"explanation" => exp} -> exp
106+
_ -> nil
107+
end
105108
}}
106109
end
107110

0 commit comments

Comments
 (0)