feat: show provider gateway versions in webui

This commit is contained in:
Codex
2026-05-05 02:15:34 +00:00
parent cc1533c02f
commit bb47cb0c7e
10 changed files with 384 additions and 12 deletions
+113 -1
View File
@@ -296,6 +296,43 @@ h2 { font-size: 14px; text-transform: uppercase; letter-spacing: 0.08em; }
color: var(--muted);
}
.node-version-line, .gateway-cell {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px;
margin-bottom: 7px;
color: var(--muted);
}
.gateway-cell {
display: grid;
gap: 4px;
margin-bottom: 0;
}
.version-chip, .mode-chip {
display: inline-flex;
align-items: center;
min-height: 22px;
padding: 2px 7px;
border: 1px solid rgba(78, 183, 168, 0.48);
color: #c9f3ec;
background: rgba(78, 183, 168, 0.1);
font-family: "Cascadia Mono", "IBM Plex Mono", "Liberation Mono", monospace;
font-size: 11px;
letter-spacing: 0.04em;
}
.version-chip.unknown {
color: var(--warn);
border-color: rgba(215, 161, 58, 0.45);
background: rgba(215, 161, 58, 0.08);
}
.mode-chip.schedule {
color: #ffd7cf;
border-color: rgba(207, 106, 84, 0.5);
background: rgba(207, 106, 84, 0.1);
}
.status-badge {
display: inline-flex;
align-items: center;
@@ -652,6 +689,80 @@ h2 { font-size: 14px; text-transform: uppercase; letter-spacing: 0.08em; }
color: #bcd2d7;
}
.gateway-page {
display: grid;
gap: 10px;
}
.gateway-version-table { min-width: 1120px; }
.gateway-version-table-wrap { max-height: 340px; }
.capability-row {
display: flex;
flex-wrap: wrap;
gap: 4px;
min-width: 180px;
}
.latest-upgrade-cell {
display: grid;
gap: 4px;
min-width: 220px;
}
.latest-upgrade-cell small, .gateway-record-meta, .upgrade-outcome {
color: var(--muted);
}
.upgrade-outcome {
display: block;
min-width: 210px;
max-width: 420px;
overflow-wrap: anywhere;
}
.upgrade-outcome.failed { color: #ffd7cf; }
.upgrade-outcome.succeeded { color: #d8f6dd; }
.gateway-record-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(520px, 1fr));
gap: 8px;
}
.gateway-record-card {
min-width: 0;
padding: 8px;
border: 1px solid var(--line-soft);
background: var(--panel-3);
}
.gateway-record-head {
display: flex;
justify-content: space-between;
gap: 10px;
align-items: start;
margin-bottom: 7px;
}
.gateway-record-head code {
display: block;
margin-top: 2px;
color: #bcd2d7;
}
.gateway-record-meta {
display: flex;
flex-wrap: wrap;
gap: 5px;
margin-bottom: 7px;
}
.gateway-record-meta span {
padding: 2px 6px;
border: 1px solid var(--line-soft);
background: rgba(255,255,255,0.025);
}
.upgrade-record-table { min-width: 1080px; }
.upgrade-record-table-wrap {
max-height: 300px;
border: 1px solid var(--line-soft);
}
.upgrade-record-table-wrap.compact {
max-height: 230px;
}
.provider-upgrade-records-panel .panel-body {
padding: 8px;
}
.chip-row, .summary-grid {
display: flex;
flex-wrap: wrap;
@@ -887,6 +998,7 @@ input:focus, select:focus, textarea:focus { border-color: var(--accent-2); }
.dispatch-form { grid-template-columns: 1fr 1fr; }
.dispatch-actions { align-items: center; }
.page-grid, .docker-layout, .monitor-layout { grid-template-columns: 1fr; }
.gateway-record-grid { grid-template-columns: 1fr; }
.overview-grid .panel:nth-child(n+3), .dispatch-grid .panel:first-child, .topology-grid .panel:nth-child(3) { grid-column: 1; }
}
@@ -982,7 +1094,7 @@ input:focus, select:focus, textarea:focus { border-color: var(--accent-2); }
padding: 4px 9px;
white-space: nowrap;
}
.metric-grid, .policy-grid, .security-board, .dispatch-form, .docker-metrics, .monitor-chart-grid, .monitor-summary-grid { grid-template-columns: 1fr; }
.metric-grid, .policy-grid, .security-board, .dispatch-form, .docker-metrics, .monitor-chart-grid, .monitor-summary-grid, .gateway-record-grid { grid-template-columns: 1fr; }
.compact-row, .heartbeat-row, .log-row, .endpoint-list article, .volume-route { grid-template-columns: 1fr; align-items: start; }
.docker-hero, .monitor-hero { flex-direction: column; }
}