instar 0.24.18-beta.0 → 0.24.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dashboard/index.html +91 -340
- package/dist/cli.js +0 -0
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/0.24.19.md +21 -0
- package/upgrades/0.24.14.md +0 -26
- package/upgrades/NEXT.md +0 -35
- /package/.claude/skills/secret-setup/{SKILL.md → skill.md} +0 -0
- /package/upgrades/{0.24.18-beta.0.md → 0.24.18.md} +0 -0
package/dashboard/index.html
CHANGED
|
@@ -1921,345 +1921,88 @@
|
|
|
1921
1921
|
.spark.s-skipped { background: #333; }
|
|
1922
1922
|
|
|
1923
1923
|
/* ── Discovery Tab ──────────────────────────────────────── */
|
|
1924
|
-
/* Systems Tab */
|
|
1925
|
-
.systems-container {
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
}
|
|
1931
|
-
|
|
1932
|
-
.systems-main {
|
|
1933
|
-
max-width: 900px;
|
|
1934
|
-
margin: 0 auto;
|
|
1935
|
-
}
|
|
1936
|
-
|
|
1937
|
-
.systems-header {
|
|
1938
|
-
display: flex;
|
|
1939
|
-
align-items: center;
|
|
1940
|
-
justify-content: space-between;
|
|
1941
|
-
margin-bottom: 20px;
|
|
1942
|
-
}
|
|
1943
|
-
|
|
1944
|
-
.systems-header h2 {
|
|
1945
|
-
font-size: 16px;
|
|
1946
|
-
font-weight: 600;
|
|
1947
|
-
color: var(--text-bright);
|
|
1948
|
-
}
|
|
1949
|
-
|
|
1950
|
-
.systems-refresh {
|
|
1951
|
-
font-size: 11px;
|
|
1952
|
-
padding: 4px 12px;
|
|
1953
|
-
border-radius: 4px;
|
|
1954
|
-
border: 1px solid var(--border);
|
|
1955
|
-
background: transparent;
|
|
1956
|
-
color: var(--text-dim);
|
|
1957
|
-
cursor: pointer;
|
|
1958
|
-
}
|
|
1959
|
-
|
|
1960
|
-
.systems-refresh:hover {
|
|
1961
|
-
border-color: var(--text-dim);
|
|
1962
|
-
color: var(--text);
|
|
1963
|
-
}
|
|
1924
|
+
/* ── Systems Tab ──────────────────────────────────────────── */
|
|
1925
|
+
.systems-container { grid-column: 1 / -1; overflow-y: auto; background: var(--bg); padding: 20px; }
|
|
1926
|
+
.systems-main { max-width: 960px; margin: 0 auto; }
|
|
1927
|
+
.systems-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
|
|
1928
|
+
.systems-header h2 { font-size: 16px; font-weight: 600; color: var(--text-bright); }
|
|
1929
|
+
.systems-refresh { font-size: 11px; padding: 4px 12px; border-radius: 4px; border: 1px solid var(--border); background: transparent; color: var(--text-dim); cursor: pointer; }
|
|
1930
|
+
.systems-refresh:hover { border-color: var(--text-dim); color: var(--text); }
|
|
1964
1931
|
|
|
1965
1932
|
/* Health Banner */
|
|
1966
|
-
.health-banner {
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
border-radius: 10px;
|
|
1972
|
-
margin-bottom: 24px;
|
|
1973
|
-
border: 1px solid var(--border);
|
|
1974
|
-
}
|
|
1975
|
-
|
|
1976
|
-
.health-banner.healthy {
|
|
1977
|
-
background: rgba(76, 175, 80, 0.08);
|
|
1978
|
-
border-color: rgba(76, 175, 80, 0.25);
|
|
1979
|
-
}
|
|
1980
|
-
|
|
1981
|
-
.health-banner.error {
|
|
1982
|
-
background: rgba(244, 67, 54, 0.08);
|
|
1983
|
-
border-color: rgba(244, 67, 54, 0.25);
|
|
1984
|
-
}
|
|
1985
|
-
|
|
1986
|
-
.health-banner.degraded {
|
|
1987
|
-
background: rgba(255, 152, 0, 0.08);
|
|
1988
|
-
border-color: rgba(255, 152, 0, 0.25);
|
|
1989
|
-
}
|
|
1990
|
-
|
|
1991
|
-
.health-icon {
|
|
1992
|
-
font-size: 28px;
|
|
1993
|
-
line-height: 1;
|
|
1994
|
-
flex-shrink: 0;
|
|
1995
|
-
}
|
|
1996
|
-
|
|
1933
|
+
.health-banner { display: flex; align-items: center; gap: 16px; padding: 18px 22px; border-radius: 10px; margin-bottom: 24px; border: 1px solid var(--border); }
|
|
1934
|
+
.health-banner.healthy { background: rgba(76,175,80,0.08); border-color: rgba(76,175,80,0.25); }
|
|
1935
|
+
.health-banner.error { background: rgba(244,67,54,0.08); border-color: rgba(244,67,54,0.25); }
|
|
1936
|
+
.health-banner.degraded { background: rgba(255,152,0,0.08); border-color: rgba(255,152,0,0.25); }
|
|
1937
|
+
.health-icon { font-size: 26px; line-height: 1; flex-shrink: 0; }
|
|
1997
1938
|
.health-banner.healthy .health-icon { color: var(--accent); }
|
|
1998
1939
|
.health-banner.error .health-icon { color: var(--red); }
|
|
1999
1940
|
.health-banner.degraded .health-icon { color: var(--orange); }
|
|
2000
|
-
|
|
2001
|
-
.health-text
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
.
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
}
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
}
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
.
|
|
2019
|
-
|
|
2020
|
-
}
|
|
2021
|
-
|
|
2022
|
-
.issue-card {
|
|
2023
|
-
display: flex;
|
|
2024
|
-
align-items: flex-start;
|
|
2025
|
-
gap: 12px;
|
|
2026
|
-
padding: 12px 16px;
|
|
2027
|
-
background: var(--bg-panel);
|
|
2028
|
-
border: 1px solid var(--border);
|
|
2029
|
-
border-left: 3px solid var(--red);
|
|
2030
|
-
border-radius: 6px;
|
|
2031
|
-
margin-bottom: 8px;
|
|
2032
|
-
}
|
|
2033
|
-
|
|
2034
|
-
.issue-card.warning {
|
|
2035
|
-
border-left-color: var(--orange);
|
|
2036
|
-
}
|
|
2037
|
-
|
|
2038
|
-
.issue-card-icon {
|
|
2039
|
-
font-size: 14px;
|
|
2040
|
-
margin-top: 1px;
|
|
2041
|
-
flex-shrink: 0;
|
|
2042
|
-
}
|
|
2043
|
-
|
|
2044
|
-
.issue-card-content {
|
|
2045
|
-
flex: 1;
|
|
2046
|
-
}
|
|
2047
|
-
|
|
2048
|
-
.issue-card-label {
|
|
2049
|
-
font-size: 13px;
|
|
2050
|
-
font-weight: 500;
|
|
2051
|
-
color: var(--text-bright);
|
|
2052
|
-
margin-bottom: 2px;
|
|
2053
|
-
}
|
|
2054
|
-
|
|
2055
|
-
.issue-card-desc {
|
|
2056
|
-
font-size: 12px;
|
|
2057
|
-
color: var(--text-dim);
|
|
2058
|
-
}
|
|
2059
|
-
|
|
2060
|
-
/* Capabilities Grid */
|
|
2061
|
-
.capabilities-section {
|
|
2062
|
-
margin-bottom: 24px;
|
|
2063
|
-
}
|
|
2064
|
-
|
|
2065
|
-
.capabilities-section-title {
|
|
2066
|
-
font-size: 12px;
|
|
2067
|
-
font-weight: 600;
|
|
2068
|
-
color: var(--text-dim);
|
|
2069
|
-
text-transform: uppercase;
|
|
2070
|
-
letter-spacing: 0.5px;
|
|
2071
|
-
margin-bottom: 12px;
|
|
2072
|
-
}
|
|
2073
|
-
|
|
2074
|
-
/* Capability Cards */
|
|
2075
|
-
.capability-card {
|
|
2076
|
-
background: var(--bg-panel);
|
|
2077
|
-
border: 1px solid var(--border);
|
|
2078
|
-
border-radius: 8px;
|
|
2079
|
-
margin-bottom: 6px;
|
|
2080
|
-
overflow: hidden;
|
|
2081
|
-
transition: border-color 0.15s;
|
|
2082
|
-
}
|
|
2083
|
-
|
|
2084
|
-
.capability-card:hover {
|
|
2085
|
-
border-color: rgba(255,255,255,0.12);
|
|
2086
|
-
}
|
|
2087
|
-
|
|
2088
|
-
.capability-card.expanded {
|
|
2089
|
-
border-color: var(--accent);
|
|
2090
|
-
}
|
|
2091
|
-
|
|
2092
|
-
.capability-card-header {
|
|
2093
|
-
display: flex;
|
|
2094
|
-
align-items: center;
|
|
2095
|
-
gap: 12px;
|
|
2096
|
-
padding: 14px 16px;
|
|
2097
|
-
cursor: pointer;
|
|
2098
|
-
user-select: none;
|
|
2099
|
-
}
|
|
2100
|
-
|
|
2101
|
-
.cap-dot {
|
|
2102
|
-
width: 8px;
|
|
2103
|
-
height: 8px;
|
|
2104
|
-
border-radius: 50%;
|
|
2105
|
-
flex-shrink: 0;
|
|
2106
|
-
}
|
|
2107
|
-
|
|
1941
|
+
.health-text { flex: 1; }
|
|
1942
|
+
.health-title { font-size: 15px; font-weight: 600; color: var(--text-bright); margin-bottom: 3px; }
|
|
1943
|
+
.health-meta { font-size: 12px; color: var(--text-dim); }
|
|
1944
|
+
|
|
1945
|
+
/* Issues */
|
|
1946
|
+
.issues-panel { margin-bottom: 24px; }
|
|
1947
|
+
.issue-card { display: flex; align-items: flex-start; gap: 12px; padding: 12px 16px; background: var(--bg-panel); border: 1px solid var(--border); border-left: 3px solid var(--red); border-radius: 6px; margin-bottom: 8px; }
|
|
1948
|
+
.issue-card.warning { border-left-color: var(--orange); }
|
|
1949
|
+
.issue-card-icon { font-size: 14px; margin-top: 1px; flex-shrink: 0; }
|
|
1950
|
+
.issue-card-content { flex: 1; }
|
|
1951
|
+
.issue-card-label { font-size: 13px; font-weight: 500; color: var(--text-bright); margin-bottom: 2px; }
|
|
1952
|
+
.issue-card-desc { font-size: 12px; color: var(--text-dim); }
|
|
1953
|
+
|
|
1954
|
+
/* Card Grid */
|
|
1955
|
+
.cap-section-title { font-size: 11px; font-weight: 600; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 12px; }
|
|
1956
|
+
.cap-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; margin-bottom: 24px; }
|
|
1957
|
+
.cap-card { background: var(--bg-panel); border: 1px solid var(--border); border-radius: 10px; padding: 16px 18px; cursor: pointer; transition: border-color 0.15s, transform 0.1s; display: flex; flex-direction: column; gap: 8px; }
|
|
1958
|
+
.cap-card:hover { border-color: rgba(255,255,255,0.15); transform: translateY(-1px); }
|
|
1959
|
+
.cap-card-top { display: flex; align-items: center; gap: 10px; }
|
|
1960
|
+
.cap-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
|
|
2108
1961
|
.cap-dot.active { background: var(--accent); }
|
|
2109
1962
|
.cap-dot.error { background: var(--red); }
|
|
2110
|
-
|
|
2111
|
-
.cap-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
}
|
|
2115
|
-
|
|
2116
|
-
.cap-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
}
|
|
2122
|
-
|
|
2123
|
-
.cap-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
}
|
|
2130
|
-
|
|
2131
|
-
.cap-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
}
|
|
2137
|
-
|
|
2138
|
-
.
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
.
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
}
|
|
2148
|
-
|
|
2149
|
-
.
|
|
2150
|
-
|
|
2151
|
-
}
|
|
2152
|
-
|
|
2153
|
-
.cap-detail-desc {
|
|
2154
|
-
font-size: 12px;
|
|
2155
|
-
color: var(--text-dim);
|
|
2156
|
-
margin: 12px 0 10px;
|
|
2157
|
-
line-height: 1.5;
|
|
2158
|
-
}
|
|
2159
|
-
|
|
2160
|
-
.cap-detail-label {
|
|
2161
|
-
font-size: 10px;
|
|
2162
|
-
font-weight: 600;
|
|
2163
|
-
color: var(--text-dim);
|
|
2164
|
-
text-transform: uppercase;
|
|
2165
|
-
letter-spacing: 0.5px;
|
|
2166
|
-
margin-bottom: 6px;
|
|
2167
|
-
}
|
|
2168
|
-
|
|
2169
|
-
.cap-detail-processes {
|
|
2170
|
-
display: flex;
|
|
2171
|
-
flex-wrap: wrap;
|
|
2172
|
-
gap: 6px;
|
|
2173
|
-
}
|
|
2174
|
-
|
|
2175
|
-
.cap-detail-proc {
|
|
2176
|
-
display: flex;
|
|
2177
|
-
align-items: center;
|
|
2178
|
-
gap: 6px;
|
|
2179
|
-
padding: 4px 10px;
|
|
2180
|
-
background: var(--bg);
|
|
2181
|
-
border: 1px solid var(--border);
|
|
2182
|
-
border-radius: 4px;
|
|
2183
|
-
font-size: 11px;
|
|
2184
|
-
color: var(--text);
|
|
2185
|
-
}
|
|
2186
|
-
|
|
2187
|
-
.cap-detail-proc-dot {
|
|
2188
|
-
width: 5px;
|
|
2189
|
-
height: 5px;
|
|
2190
|
-
border-radius: 50%;
|
|
2191
|
-
}
|
|
2192
|
-
|
|
2193
|
-
/* Events Disclosure */
|
|
2194
|
-
.events-disclosure {
|
|
2195
|
-
margin-top: 8px;
|
|
2196
|
-
}
|
|
2197
|
-
|
|
2198
|
-
.events-disclosure-toggle {
|
|
2199
|
-
display: flex;
|
|
2200
|
-
align-items: center;
|
|
2201
|
-
gap: 8px;
|
|
2202
|
-
padding: 10px 0;
|
|
2203
|
-
cursor: pointer;
|
|
2204
|
-
user-select: none;
|
|
2205
|
-
font-size: 12px;
|
|
2206
|
-
color: var(--text-dim);
|
|
2207
|
-
border: none;
|
|
2208
|
-
background: none;
|
|
2209
|
-
width: 100%;
|
|
2210
|
-
text-align: left;
|
|
2211
|
-
}
|
|
2212
|
-
|
|
2213
|
-
.events-disclosure-toggle:hover {
|
|
2214
|
-
color: var(--text);
|
|
2215
|
-
}
|
|
2216
|
-
|
|
2217
|
-
.events-disclosure-arrow {
|
|
2218
|
-
font-size: 10px;
|
|
2219
|
-
transition: transform 0.2s;
|
|
2220
|
-
}
|
|
2221
|
-
|
|
2222
|
-
.events-disclosure.expanded .events-disclosure-arrow {
|
|
2223
|
-
transform: rotate(90deg);
|
|
2224
|
-
}
|
|
2225
|
-
|
|
2226
|
-
.events-disclosure-body {
|
|
2227
|
-
display: none;
|
|
2228
|
-
background: var(--bg-panel);
|
|
2229
|
-
border: 1px solid var(--border);
|
|
2230
|
-
border-radius: 8px;
|
|
2231
|
-
max-height: 300px;
|
|
2232
|
-
overflow-y: auto;
|
|
2233
|
-
}
|
|
2234
|
-
|
|
2235
|
-
.events-disclosure.expanded .events-disclosure-body {
|
|
2236
|
-
display: block;
|
|
2237
|
-
}
|
|
2238
|
-
|
|
2239
|
-
.systems-event-row {
|
|
2240
|
-
display: flex;
|
|
2241
|
-
align-items: center;
|
|
2242
|
-
gap: 10px;
|
|
2243
|
-
padding: 8px 14px;
|
|
2244
|
-
border-bottom: 1px solid var(--border);
|
|
2245
|
-
font-size: 12px;
|
|
2246
|
-
}
|
|
2247
|
-
|
|
2248
|
-
.systems-event-row:last-child {
|
|
2249
|
-
border-bottom: none;
|
|
2250
|
-
}
|
|
2251
|
-
|
|
2252
|
-
.systems-event-time {
|
|
2253
|
-
color: var(--text-dim);
|
|
2254
|
-
white-space: nowrap;
|
|
2255
|
-
font-size: 11px;
|
|
2256
|
-
min-width: 60px;
|
|
2257
|
-
}
|
|
2258
|
-
|
|
2259
|
-
.systems-event-text {
|
|
2260
|
-
color: var(--text);
|
|
2261
|
-
flex: 1;
|
|
2262
|
-
}
|
|
1963
|
+
.cap-card-name { font-size: 14px; font-weight: 600; color: var(--text-bright); flex: 1; }
|
|
1964
|
+
.cap-card-arrow { font-size: 11px; color: var(--text-dim); }
|
|
1965
|
+
.cap-card-desc { font-size: 12px; color: var(--text-dim); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
|
|
1966
|
+
.cap-card-metric { font-size: 12px; color: var(--accent); font-weight: 500; padding-top: 4px; border-top: 1px solid var(--border); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
1967
|
+
.cap-card.error .cap-card-metric { color: var(--red); }
|
|
1968
|
+
.cap-card-stats { display: flex; gap: 12px; flex-wrap: wrap; }
|
|
1969
|
+
.cap-stat { font-size: 11px; color: var(--text-dim); }
|
|
1970
|
+
.cap-stat-value { font-weight: 600; color: var(--text); margin-right: 3px; }
|
|
1971
|
+
|
|
1972
|
+
/* Detail View */
|
|
1973
|
+
.cap-detail-view { display: none; }
|
|
1974
|
+
.cap-detail-view.active { display: block; }
|
|
1975
|
+
.cap-detail-back { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-dim); cursor: pointer; border: none; background: none; padding: 0; margin-bottom: 16px; }
|
|
1976
|
+
.cap-detail-back:hover { color: var(--text); }
|
|
1977
|
+
.cap-detail-header { margin-bottom: 20px; }
|
|
1978
|
+
.cap-detail-title { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
|
|
1979
|
+
.cap-detail-title h3 { font-size: 18px; font-weight: 600; color: var(--text-bright); margin: 0; }
|
|
1980
|
+
.cap-detail-description { font-size: 13px; color: var(--text-dim); line-height: 1.6; max-width: 700px; }
|
|
1981
|
+
.cap-stats-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin-bottom: 24px; }
|
|
1982
|
+
.cap-stat-card { background: var(--bg-panel); border: 1px solid var(--border); border-radius: 8px; padding: 12px 14px; text-align: center; }
|
|
1983
|
+
.cap-stat-card-value { font-size: 20px; font-weight: 700; color: var(--text-bright); }
|
|
1984
|
+
.cap-stat-card-label { font-size: 10px; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.3px; margin-top: 4px; }
|
|
1985
|
+
.cap-detail-section { margin-bottom: 20px; }
|
|
1986
|
+
.cap-detail-section-title { font-size: 11px; font-weight: 600; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 10px; padding-bottom: 6px; border-bottom: 1px solid var(--border); }
|
|
1987
|
+
.cap-process-list { display: flex; flex-direction: column; gap: 6px; }
|
|
1988
|
+
.cap-process-row { display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: var(--bg-panel); border: 1px solid var(--border); border-radius: 6px; }
|
|
1989
|
+
.cap-process-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
|
|
1990
|
+
.cap-process-name { font-size: 13px; color: var(--text-bright); font-weight: 500; flex: 1; }
|
|
1991
|
+
.cap-process-status { font-size: 11px; color: var(--text-dim); }
|
|
1992
|
+
.cap-last-activity { font-size: 11px; color: var(--text-dim); margin-top: 4px; }
|
|
1993
|
+
|
|
1994
|
+
/* Events */
|
|
1995
|
+
.events-disclosure { margin-top: 8px; }
|
|
1996
|
+
.events-disclosure-toggle { display: flex; align-items: center; gap: 8px; padding: 10px 0; cursor: pointer; user-select: none; font-size: 12px; color: var(--text-dim); border: none; background: none; width: 100%; text-align: left; }
|
|
1997
|
+
.events-disclosure-toggle:hover { color: var(--text); }
|
|
1998
|
+
.events-disclosure-arrow { font-size: 10px; transition: transform 0.2s; }
|
|
1999
|
+
.events-disclosure.expanded .events-disclosure-arrow { transform: rotate(90deg); }
|
|
2000
|
+
.events-disclosure-body { display: none; background: var(--bg-panel); border: 1px solid var(--border); border-radius: 8px; max-height: 300px; overflow-y: auto; }
|
|
2001
|
+
.events-disclosure.expanded .events-disclosure-body { display: block; }
|
|
2002
|
+
.systems-event-row { display: flex; align-items: center; gap: 10px; padding: 8px 14px; border-bottom: 1px solid var(--border); font-size: 12px; }
|
|
2003
|
+
.systems-event-row:last-child { border-bottom: none; }
|
|
2004
|
+
.systems-event-time { color: var(--text-dim); white-space: nowrap; font-size: 11px; min-width: 60px; }
|
|
2005
|
+
.systems-event-text { color: var(--text); flex: 1; }
|
|
2263
2006
|
|
|
2264
2007
|
.discovery-container {
|
|
2265
2008
|
grid-column: 1 / -1;
|
|
@@ -3007,16 +2750,24 @@
|
|
|
3007
2750
|
<!-- Systems Tab -->
|
|
3008
2751
|
<div class="systems-container" id="systemsTab" style="display:none">
|
|
3009
2752
|
<div class="systems-main">
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
<
|
|
2753
|
+
<!-- Overview (card grid) -->
|
|
2754
|
+
<div id="systemsOverview">
|
|
2755
|
+
<div class="systems-header">
|
|
2756
|
+
<h2>Systems</h2>
|
|
2757
|
+
<button class="systems-refresh" onclick="loadSystems()">Refresh</button>
|
|
2758
|
+
</div>
|
|
2759
|
+
<div id="systemsBanner">
|
|
2760
|
+
<div style="padding:20px;color:var(--text-dim);text-align:center">Loading...</div>
|
|
2761
|
+
</div>
|
|
2762
|
+
<div id="systemsIssues"></div>
|
|
2763
|
+
<div id="systemsCapabilities"></div>
|
|
2764
|
+
<div id="systemsEvents"></div>
|
|
3013
2765
|
</div>
|
|
3014
|
-
|
|
3015
|
-
|
|
2766
|
+
<!-- Detail view (single capability) -->
|
|
2767
|
+
<div class="cap-detail-view" id="systemsDetailView">
|
|
2768
|
+
<button class="cap-detail-back" onclick="showSystemsOverview()">◀ Back to overview</button>
|
|
2769
|
+
<div id="systemsDetailContent"></div>
|
|
3016
2770
|
</div>
|
|
3017
|
-
<div id="systemsIssues"></div>
|
|
3018
|
-
<div id="systemsCapabilities"></div>
|
|
3019
|
-
<div id="systemsEvents"></div>
|
|
3020
2771
|
</div>
|
|
3021
2772
|
</div>
|
|
3022
2773
|
|
package/dist/cli.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-03-
|
|
5
|
-
"instarVersion": "0.24.
|
|
4
|
+
"generatedAt": "2026-03-29T00:58:31.406Z",
|
|
5
|
+
"instarVersion": "0.24.19",
|
|
6
6
|
"entryCount": 179,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- bump: patch -->
|
|
4
|
+
|
|
5
|
+
## What Changed
|
|
6
|
+
|
|
7
|
+
### Systems Dashboard CSS Fix — v3 Styles Restored
|
|
8
|
+
|
|
9
|
+
The Systems dashboard CSS was still referencing old v2 class names (`.capability-card`, `.cap-info`, `.cap-label`) while the JavaScript had been updated to generate v3 classes (`.cap-card`, `.cap-card-name`, `.cap-card-desc`, `.cap-grid`). This mismatch caused the dashboard cards to render without proper styling.
|
|
10
|
+
|
|
11
|
+
The CSS has been fully replaced with v3 styles covering: card grid layout, detail views, stat cards, process list indicators, and responsive grid breakpoints.
|
|
12
|
+
|
|
13
|
+
## What to Tell Your User
|
|
14
|
+
|
|
15
|
+
The Systems dashboard styling has been fixed. If the cards and layout looked broken or unstyled, that's now resolved — everything renders cleanly with the new card grid design.
|
|
16
|
+
|
|
17
|
+
## Summary of New Capabilities
|
|
18
|
+
|
|
19
|
+
| Capability | How to Use |
|
|
20
|
+
|-----------|-----------|
|
|
21
|
+
| Systems dashboard CSS fix | Automatic — dashboard renders correctly now |
|
package/upgrades/0.24.14.md
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# Upgrade Guide — v0.24.14
|
|
2
|
-
|
|
3
|
-
## What Changed
|
|
4
|
-
|
|
5
|
-
### Server Supervisor Self-Healing
|
|
6
|
-
|
|
7
|
-
The ServerSupervisor now runs preflight diagnostics before every server spawn attempt. Previously, if the shadow install was missing or the node symlink was broken, the server would crash immediately on startup — and restarting via `/lifeline restart` would just repeat the same failure.
|
|
8
|
-
|
|
9
|
-
Now, before each spawn, the supervisor checks and auto-repairs:
|
|
10
|
-
|
|
11
|
-
- **Missing shadow install** — reinstalls via npm automatically
|
|
12
|
-
- **Broken node symlink** — recreates it from available node binaries
|
|
13
|
-
- **Stale lifeline locks** — removes locks older than 10 minutes
|
|
14
|
-
|
|
15
|
-
This means `/lifeline restart` now actually fixes the problem instead of blindly retrying a broken state. Agents on remote machines can self-recover from common post-update failures without manual SSH intervention.
|
|
16
|
-
|
|
17
|
-
## What to Tell Your User
|
|
18
|
-
|
|
19
|
-
Your agent's server is now more resilient. If the server goes down due to a missing or corrupted install, the system will automatically detect and fix the issue before restarting. The /lifeline restart command in Telegram now does real recovery, not just a blind retry.
|
|
20
|
-
|
|
21
|
-
## Summary of New Capabilities
|
|
22
|
-
|
|
23
|
-
- **Preflight self-healing**: Server supervisor diagnoses and fixes common startup failures before each spawn
|
|
24
|
-
- **Shadow install auto-repair**: Missing shadow installs are reinstalled automatically
|
|
25
|
-
- **Node symlink recovery**: Broken node symlinks are recreated from available binaries
|
|
26
|
-
- **Stale lock cleanup**: Old lifeline locks are removed to prevent restart deadlocks
|
package/upgrades/NEXT.md
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Upgrade Guide — vNEXT
|
|
2
|
-
|
|
3
|
-
<!-- bump: patch -->
|
|
4
|
-
<!-- Valid values: patch, minor, major -->
|
|
5
|
-
<!-- patch = bug fixes, refactors, test additions, doc updates -->
|
|
6
|
-
<!-- minor = new features, new APIs, new capabilities (backwards-compatible) -->
|
|
7
|
-
<!-- major = breaking changes to existing APIs or behavior -->
|
|
8
|
-
|
|
9
|
-
## What Changed
|
|
10
|
-
|
|
11
|
-
<!-- Describe what changed technically. What new features, APIs, behavioral changes? -->
|
|
12
|
-
<!-- Write this for the AGENT — they need to understand the system deeply. -->
|
|
13
|
-
|
|
14
|
-
## What to Tell Your User
|
|
15
|
-
|
|
16
|
-
<!-- Write talking points the agent should relay to their user. -->
|
|
17
|
-
<!-- This should be warm, conversational, user-facing — not a changelog. -->
|
|
18
|
-
<!-- Focus on what THEY can now do, not internal plumbing. -->
|
|
19
|
-
<!-- -->
|
|
20
|
-
<!-- PROHIBITED in this section (will fail validation): -->
|
|
21
|
-
<!-- camelCase config keys: silentReject, maxRetries, telegramNotify -->
|
|
22
|
-
<!-- Inline code backtick references like silentReject: false -->
|
|
23
|
-
<!-- Fenced code blocks -->
|
|
24
|
-
<!-- Instructions to edit files or run commands -->
|
|
25
|
-
<!-- -->
|
|
26
|
-
<!-- CORRECT style: "I can turn that on for you" not "set X to false" -->
|
|
27
|
-
<!-- The agent relays this to their user — keep it human. -->
|
|
28
|
-
|
|
29
|
-
- **[Feature name]**: "[Brief, friendly description of what this means for the user]"
|
|
30
|
-
|
|
31
|
-
## Summary of New Capabilities
|
|
32
|
-
|
|
33
|
-
| Capability | How to Use |
|
|
34
|
-
|-----------|-----------|
|
|
35
|
-
| [Capability] | [Endpoint, command, or "automatic"] |
|
|
File without changes
|
|
File without changes
|