claudeup 4.10.1 → 4.10.2
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/package.json +1 -1
- package/src/ui/App.js +16 -10
- package/src/ui/App.tsx +18 -17
package/package.json
CHANGED
package/src/ui/App.js
CHANGED
|
@@ -166,7 +166,7 @@ MCP Servers
|
|
|
166
166
|
function UpdateBanner({ result }) {
|
|
167
167
|
if (!result.updateAvailable)
|
|
168
168
|
return null;
|
|
169
|
-
return (_jsxs("box", { paddingLeft: 1, paddingRight: 1, children: [_jsx("text", { bg: "yellow", fg: "black", children: _jsx("strong", { children: " UPDATE " }) }), _jsxs("text", { fg: "yellow", children: [" ", "v", result.currentVersion, " \u2192 v", result.latestVersion] }), _jsx("text", { fg: "gray", children: " Run: " }), _jsx("text", { fg: "cyan", children: "
|
|
169
|
+
return (_jsxs("box", { paddingLeft: 1, paddingRight: 1, children: [_jsx("text", { bg: "yellow", fg: "black", children: _jsx("strong", { children: " UPDATE " }) }), _jsxs("text", { fg: "yellow", children: [" ", "v", result.currentVersion, " \u2192 v", result.latestVersion] }), _jsx("text", { fg: "gray", children: " Run: " }), _jsx("text", { fg: "cyan", children: "claudeup update" })] }));
|
|
170
170
|
}
|
|
171
171
|
/**
|
|
172
172
|
* ProgressIndicator Component
|
|
@@ -180,6 +180,13 @@ function AppContentInner({ showDebug, onDebugToggle, updateInfo, onExit, }) {
|
|
|
180
180
|
const { progress } = state;
|
|
181
181
|
const dimensions = useDimensions();
|
|
182
182
|
const [recoveryReport, setRecoveryReport] = useState(null);
|
|
183
|
+
// Auto-dismiss recovery banner after 5 seconds
|
|
184
|
+
useEffect(() => {
|
|
185
|
+
if (!recoveryReport)
|
|
186
|
+
return;
|
|
187
|
+
const timer = setTimeout(() => setRecoveryReport(null), 5000);
|
|
188
|
+
return () => clearTimeout(timer);
|
|
189
|
+
}, [recoveryReport]);
|
|
183
190
|
// Auto-refresh marketplaces on startup
|
|
184
191
|
useEffect(() => {
|
|
185
192
|
const noRefresh = process.argv.includes("--no-refresh");
|
|
@@ -194,29 +201,28 @@ function AppContentInner({ showDebug, onDebugToggle, updateInfo, onExit, }) {
|
|
|
194
201
|
// Recover stale marketplace registry entries (e.g. "directory" → "github")
|
|
195
202
|
recoverMarketplaceSettings()
|
|
196
203
|
.then(async (recovery) => {
|
|
197
|
-
const
|
|
204
|
+
const parts = [];
|
|
198
205
|
if (recovery.reregistered.length > 0) {
|
|
199
|
-
msgs.push(`Re-registered as GitHub: ${recovery.reregistered.join(", ")}`);
|
|
200
206
|
// Update the marketplace clone now that the source is fixed
|
|
201
207
|
const { updateMarketplace } = await import("../services/claude-cli.js");
|
|
202
208
|
for (const mp of recovery.reregistered) {
|
|
203
209
|
try {
|
|
204
210
|
await updateMarketplace(mp);
|
|
205
|
-
|
|
211
|
+
parts.push(`${mp} refreshed`);
|
|
206
212
|
}
|
|
207
213
|
catch {
|
|
208
|
-
|
|
214
|
+
parts.push(`${mp} (update failed)`);
|
|
209
215
|
}
|
|
210
216
|
}
|
|
211
217
|
}
|
|
212
218
|
if (recovery.enabledAutoUpdate.length > 0) {
|
|
213
|
-
|
|
219
|
+
parts.push(`auto-update: ${recovery.enabledAutoUpdate.join(", ")}`);
|
|
214
220
|
}
|
|
215
221
|
if (recovery.removed.length > 0) {
|
|
216
|
-
|
|
222
|
+
parts.push(`removed: ${recovery.removed.join(", ")}`);
|
|
217
223
|
}
|
|
218
|
-
if (
|
|
219
|
-
setRecoveryReport(
|
|
224
|
+
if (parts.length > 0) {
|
|
225
|
+
setRecoveryReport(parts.join(" | "));
|
|
220
226
|
}
|
|
221
227
|
})
|
|
222
228
|
.catch(() => { }); // non-fatal
|
|
@@ -229,7 +235,7 @@ function AppContentInner({ showDebug, onDebugToggle, updateInfo, onExit, }) {
|
|
|
229
235
|
dispatch({ type: "HIDE_PROGRESS" });
|
|
230
236
|
});
|
|
231
237
|
}, [dispatch]);
|
|
232
|
-
return (_jsxs("box", { flexDirection: "column", height: dimensions.terminalHeight, children: [updateInfo?.updateAvailable && _jsx(UpdateBanner, { result: updateInfo }), recoveryReport && (
|
|
238
|
+
return (_jsxs("box", { flexDirection: "column", height: dimensions.terminalHeight, children: [updateInfo?.updateAvailable && _jsx(UpdateBanner, { result: updateInfo }), recoveryReport && (_jsx("box", { paddingLeft: 1, paddingRight: 1, children: _jsxs("text", { fg: "green", children: ["\u2713 Fixed: ", recoveryReport] }) })), showDebug && (_jsx("box", { paddingLeft: 1, paddingRight: 1, children: _jsxs("text", { fg: "#888888", children: ["DEBUG: ", dimensions.terminalWidth, "x", dimensions.terminalHeight, " | content=", dimensions.contentHeight, " | screen=", state.currentRoute.screen] }) })), progress && _jsx(ProgressIndicator, { ...progress }), _jsx("box", { flexDirection: "column", height: dimensions.contentHeight, paddingLeft: 1, paddingRight: 1, children: _jsx(Router, {}) }), _jsx(GlobalKeyHandler, { onDebugToggle: onDebugToggle, onExit: onExit }), _jsx(ModalContainer, {})] }));
|
|
233
239
|
}
|
|
234
240
|
function AppContent({ onExit }) {
|
|
235
241
|
const { state } = useApp();
|
package/src/ui/App.tsx
CHANGED
|
@@ -216,7 +216,7 @@ function UpdateBanner({ result }: { result: VersionCheckResult }) {
|
|
|
216
216
|
v{result.currentVersion} → v{result.latestVersion}
|
|
217
217
|
</text>
|
|
218
218
|
<text fg="gray"> Run: </text>
|
|
219
|
-
<text fg="cyan">
|
|
219
|
+
<text fg="cyan">claudeup update</text>
|
|
220
220
|
</box>
|
|
221
221
|
);
|
|
222
222
|
}
|
|
@@ -263,6 +263,13 @@ function AppContentInner({
|
|
|
263
263
|
const dimensions = useDimensions();
|
|
264
264
|
const [recoveryReport, setRecoveryReport] = useState<string | null>(null);
|
|
265
265
|
|
|
266
|
+
// Auto-dismiss recovery banner after 5 seconds
|
|
267
|
+
useEffect(() => {
|
|
268
|
+
if (!recoveryReport) return;
|
|
269
|
+
const timer = setTimeout(() => setRecoveryReport(null), 5000);
|
|
270
|
+
return () => clearTimeout(timer);
|
|
271
|
+
}, [recoveryReport]);
|
|
272
|
+
|
|
266
273
|
// Auto-refresh marketplaces on startup
|
|
267
274
|
useEffect(() => {
|
|
268
275
|
const noRefresh = process.argv.includes("--no-refresh");
|
|
@@ -279,11 +286,8 @@ function AppContentInner({
|
|
|
279
286
|
// Recover stale marketplace registry entries (e.g. "directory" → "github")
|
|
280
287
|
recoverMarketplaceSettings()
|
|
281
288
|
.then(async (recovery) => {
|
|
282
|
-
const
|
|
289
|
+
const parts: string[] = [];
|
|
283
290
|
if (recovery.reregistered.length > 0) {
|
|
284
|
-
msgs.push(
|
|
285
|
-
`Re-registered as GitHub: ${recovery.reregistered.join(", ")}`,
|
|
286
|
-
);
|
|
287
291
|
// Update the marketplace clone now that the source is fixed
|
|
288
292
|
const { updateMarketplace } = await import(
|
|
289
293
|
"../services/claude-cli.js"
|
|
@@ -291,24 +295,24 @@ function AppContentInner({
|
|
|
291
295
|
for (const mp of recovery.reregistered) {
|
|
292
296
|
try {
|
|
293
297
|
await updateMarketplace(mp);
|
|
294
|
-
|
|
298
|
+
parts.push(`${mp} refreshed`);
|
|
295
299
|
} catch {
|
|
296
|
-
|
|
300
|
+
parts.push(`${mp} (update failed)`);
|
|
297
301
|
}
|
|
298
302
|
}
|
|
299
303
|
}
|
|
300
304
|
if (recovery.enabledAutoUpdate.length > 0) {
|
|
301
|
-
|
|
302
|
-
`
|
|
305
|
+
parts.push(
|
|
306
|
+
`auto-update: ${recovery.enabledAutoUpdate.join(", ")}`,
|
|
303
307
|
);
|
|
304
308
|
}
|
|
305
309
|
if (recovery.removed.length > 0) {
|
|
306
|
-
|
|
307
|
-
`
|
|
310
|
+
parts.push(
|
|
311
|
+
`removed: ${recovery.removed.join(", ")}`,
|
|
308
312
|
);
|
|
309
313
|
}
|
|
310
|
-
if (
|
|
311
|
-
setRecoveryReport(
|
|
314
|
+
if (parts.length > 0) {
|
|
315
|
+
setRecoveryReport(parts.join(" | "));
|
|
312
316
|
}
|
|
313
317
|
})
|
|
314
318
|
.catch(() => {}); // non-fatal
|
|
@@ -328,10 +332,7 @@ function AppContentInner({
|
|
|
328
332
|
{updateInfo?.updateAvailable && <UpdateBanner result={updateInfo} />}
|
|
329
333
|
{recoveryReport && (
|
|
330
334
|
<box paddingLeft={1} paddingRight={1}>
|
|
331
|
-
<text
|
|
332
|
-
<strong> RECOVERED </strong>
|
|
333
|
-
</text>
|
|
334
|
-
<text fg="green"> {recoveryReport.split("\n").join(" | ")}</text>
|
|
335
|
+
<text fg="green">✓ Fixed: {recoveryReport}</text>
|
|
335
336
|
</box>
|
|
336
337
|
)}
|
|
337
338
|
{showDebug && (
|