diff --git a/lib/towerops_web/live/agent_live/helpers.ex b/lib/towerops_web/live/agent_live/helpers.ex index c916cf9a..adfa5988 100644 --- a/lib/towerops_web/live/agent_live/helpers.ex +++ b/lib/towerops_web/live/agent_live/helpers.ex @@ -116,4 +116,20 @@ defmodule ToweropsWeb.AgentLive.Helpers do full = format_datetime(datetime, timezone) "#{relative} (#{full})" end + + @doc """ + Formats agent version for display. + + Handles both legacy semver ("1.2.3") and RFC 3339 timestamp ("2026-02-09T14:30:00Z") formats. + Timestamps are displayed as date only (e.g., "2026-02-09"). + """ + def format_agent_version(version) when is_binary(version) do + if String.match?(version, ~r/^\d{4}-\d{2}-\d{2}T/) do + String.slice(version, 0, 10) + else + "v#{version}" + end + end + + def format_agent_version(_), do: nil end diff --git a/lib/towerops_web/live/agent_live/index.html.heex b/lib/towerops_web/live/agent_live/index.html.heex index 7ede6d85..c40d7634 100644 --- a/lib/towerops_web/live/agent_live/index.html.heex +++ b/lib/towerops_web/live/agent_live/index.html.heex @@ -126,16 +126,16 @@ <% end %> - <:col :let={{_id, agent}} label="Metadata"> - <%= if agent.metadata["hostname"] do %> -
- <.icon name="hero-computer-desktop" class="h-4 w-4 inline" /> - {agent.metadata["hostname"]} + <:col :let={{_id, agent}} label="Version"> + <%= if agent.metadata["version"] do %> +
+ {format_agent_version(agent.metadata["version"])}
<% end %> - <%= if agent.metadata["version"] do %> -
- v{agent.metadata["version"]} + <%= if agent.metadata["hostname"] do %> +
+ <.icon name="hero-computer-desktop" class="h-3.5 w-3.5 inline" /> + {agent.metadata["hostname"]}
<% end %> @@ -243,16 +243,16 @@ <% end %> - <:col :let={{_id, agent}} label="Metadata"> - <%= if agent.metadata["hostname"] do %> -
- <.icon name="hero-computer-desktop" class="h-4 w-4 inline" /> - {agent.metadata["hostname"]} + <:col :let={{_id, agent}} label="Version"> + <%= if agent.metadata["version"] do %> +
+ {format_agent_version(agent.metadata["version"])}
<% end %> - <%= if agent.metadata["version"] do %> -
- v{agent.metadata["version"]} + <%= if agent.metadata["hostname"] do %> +
+ <.icon name="hero-computer-desktop" class="h-3.5 w-3.5 inline" /> + {agent.metadata["hostname"]}
<% end %> diff --git a/lib/towerops_web/live/agent_live/show.html.heex b/lib/towerops_web/live/agent_live/show.html.heex index 9f333cef..915e3051 100644 --- a/lib/towerops_web/live/agent_live/show.html.heex +++ b/lib/towerops_web/live/agent_live/show.html.heex @@ -204,18 +204,18 @@
- + <%= if @agent_token.metadata && map_size(@agent_token.metadata) > 0 do %>

- Agent Metadata + Agent Details

<%= if @agent_token.metadata["version"] do %>
Version
- {@agent_token.metadata["version"]} + {format_agent_version(@agent_token.metadata["version"])}
<% end %>