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.
@@ -1921,345 +1921,88 @@
1921
1921
  .spark.s-skipped { background: #333; }
1922
1922
 
1923
1923
  /* ── Discovery Tab ──────────────────────────────────────── */
1924
- /* Systems Tab */
1925
- .systems-container {
1926
- grid-column: 1 / -1;
1927
- overflow-y: auto;
1928
- background: var(--bg);
1929
- padding: 20px;
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
- display: flex;
1968
- align-items: center;
1969
- gap: 16px;
1970
- padding: 20px 24px;
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
- flex: 1;
2003
- }
2004
-
2005
- .health-title {
2006
- font-size: 16px;
2007
- font-weight: 600;
2008
- color: var(--text-bright);
2009
- margin-bottom: 4px;
2010
- }
2011
-
2012
- .health-meta {
2013
- font-size: 12px;
2014
- color: var(--text-dim);
2015
- }
2016
-
2017
- /* Issues Panel */
2018
- .issues-panel {
2019
- margin-bottom: 24px;
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-info {
2112
- flex: 1;
2113
- min-width: 0;
2114
- }
2115
-
2116
- .cap-label {
2117
- font-size: 13px;
2118
- color: var(--text-bright);
2119
- font-weight: 500;
2120
- margin-bottom: 2px;
2121
- }
2122
-
2123
- .cap-metric {
2124
- font-size: 11px;
2125
- color: var(--text-dim);
2126
- white-space: nowrap;
2127
- overflow: hidden;
2128
- text-overflow: ellipsis;
2129
- }
2130
-
2131
- .cap-arrow {
2132
- font-size: 10px;
2133
- color: var(--text-dim);
2134
- transition: transform 0.2s;
2135
- flex-shrink: 0;
2136
- }
2137
-
2138
- .capability-card.expanded .cap-arrow {
2139
- transform: rotate(90deg);
2140
- }
2141
-
2142
- /* Capability Detail (expandable) */
2143
- .cap-detail {
2144
- display: none;
2145
- padding: 0 16px 14px;
2146
- border-top: 1px solid var(--border);
2147
- }
2148
-
2149
- .capability-card.expanded .cap-detail {
2150
- display: block;
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
- <div class="systems-header">
3011
- <h2>Systems</h2>
3012
- <button class="systems-refresh" onclick="loadSystems()">Refresh</button>
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
- <div id="systemsBanner">
3015
- <div style="padding:20px;color:var(--text-dim);text-align:center">Loading...</div>
2766
+ <!-- Detail view (single capability) -->
2767
+ <div class="cap-detail-view" id="systemsDetailView">
2768
+ <button class="cap-detail-back" onclick="showSystemsOverview()">&#9664; 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,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "0.24.18-beta.0",
3
+ "version": "0.24.19",
4
4
  "description": "Persistent autonomy infrastructure for AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-03-28T19:25:57.958Z",
5
- "instarVersion": "0.24.18-beta.0",
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 |
@@ -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