| 1 | <% content_for :title, "Changelog" %> |
| 2 | <% content_for :description, "What's new in siGit — Git hosting, model repositories, and the MCP server for AI coding agents, release by release." %> |
| 3 | |
| 4 | <div class="max-w-3xl mx-auto px-4 sm:px-6 py-16 sm:py-20"> |
| 5 | <header class="mb-12"> |
| 6 | <h1 class="text-3xl font-semibold tracking-tight text-gray-100 sm:text-4xl">Changelog</h1> |
| 7 | <p class="mt-3 text-base leading-7 text-gray-400"> |
| 8 | Every siGit release, newest first. |
| 9 | </p> |
| 10 | </header> |
| 11 | |
| 12 | <% if @entries.empty? %> |
| 13 | <p class="text-sm text-gray-500">No releases yet.</p> |
| 14 | <% else %> |
| 15 | <ol class="relative border-l border-surface-600"> |
| 16 | <% @entries.each do |entry| %> |
| 17 | <li class="mb-12 ml-6"> |
| 18 | <span class="absolute -left-1.5 mt-1.5 h-3 w-3 rounded-full border border-surface-500 bg-brand-500"></span> |
| 19 | <div class="flex flex-wrap items-baseline gap-x-3 gap-y-1"> |
| 20 | <%= link_to entry.tag, changelog_version_path(version: entry.tag), |
| 21 | class: "text-xl font-semibold text-brand-500 hover:text-brand-400 transition-colors" %> |
| 22 | <% if entry.date %> |
| 23 | <time datetime="<%= entry.date.iso8601 %>" class="text-xs uppercase tracking-[0.18em] text-gray-500"> |
| 24 | <%= entry.date.strftime("%B %-d, %Y") %> |
| 25 | </time> |
| 26 | <% end %> |
| 27 | </div> |
| 28 | <% if entry.title.present? %> |
| 29 | <h2 class="mt-2 text-lg font-medium text-gray-100"><%= entry.title %></h2> |
| 30 | <% end %> |
| 31 | <% if entry.headline.present? %> |
| 32 | <p class="mt-1 text-sm leading-6 text-gray-400"><%= entry.headline %></p> |
| 33 | <% end %> |
| 34 | <%= link_to "Read the release notes →", changelog_version_path(version: entry.tag), |
| 35 | class: "mt-3 inline-block text-sm text-gray-400 hover:text-gray-200 transition-colors" %> |
| 36 | </li> |
| 37 | <% end %> |
| 38 | </ol> |
| 39 | <% end %> |
| 40 | </div> |