@geminilight/mindos 0.6.54 → 0.6.56
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/_standalone/.mindos-build-version +1 -1
- package/_standalone/.next/BUILD_ID +1 -1
- package/_standalone/.next/app-path-routes-manifest.json +20 -20
- package/_standalone/.next/build-manifest.json +3 -3
- package/_standalone/.next/cache/.previewinfo +1 -1
- package/_standalone/.next/cache/.rscinfo +1 -1
- package/_standalone/.next/cache/config.json +3 -3
- package/_standalone/.next/prerender-manifest.json +3 -3
- package/_standalone/.next/react-loadable-manifest.json +1 -1
- package/_standalone/.next/server/app/.well-known/agent-card.json/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/_global-error.html +2 -2
- package/_standalone/.next/server/app/_global-error.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/_standalone/.next/server/app/_not-found/page.js +1 -1
- package/_standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/agents/[agentKey]/page.js +1 -1
- package/_standalone/.next/server/app/agents/[agentKey]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/agents/[agentKey]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/agents/page.js +1 -1
- package/_standalone/.next/server/app/agents/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/agents/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/delegations/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/discover/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/config/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/detect/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/install/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/registry/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/session/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agent-activity/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/ask/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/ask-sessions/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/auth/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/backlinks/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/bootstrap/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/export/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/extract-pdf/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/import/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/raw/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/graph/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/agents/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/install/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/install-skill/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/restart/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/uninstall/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/monitoring/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/recent-files/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/list-models/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/reset-token/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/test-key/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/check-path/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/check-port/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/generate-token/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/ls/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/sync/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/tree-version/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/uninstall/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/update-check/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/update-status/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/changes/page.js +1 -1
- package/_standalone/.next/server/app/changes/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/changes/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/echo/[segment]/page.js +1 -1
- package/_standalone/.next/server/app/echo/[segment]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/echo/[segment]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/echo/page.js +1 -1
- package/_standalone/.next/server/app/echo/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/echo/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/explore/page.js +1 -1
- package/_standalone/.next/server/app/explore/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/explore/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/help/page.js +1 -1
- package/_standalone/.next/server/app/help/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/inbox/history/page.js +1 -1
- package/_standalone/.next/server/app/inbox/history/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/inbox/history/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/login/page.js +1 -1
- package/_standalone/.next/server/app/login/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/page.js +1 -1
- package/_standalone/.next/server/app/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/setup/page.js +1 -1
- package/_standalone/.next/server/app/setup/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/trash/page.js +3 -3
- package/_standalone/.next/server/app/trash/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/view/[...path]/page.js +3 -3
- package/_standalone/.next/server/app/view/[...path]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/view/[...path]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/wiki/page.js +1 -1
- package/_standalone/.next/server/app/wiki/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/wiki/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app-paths-manifest.json +20 -20
- package/_standalone/.next/server/chunks/530.js +26 -26
- package/_standalone/.next/server/chunks/{6054.js → 7543.js} +2 -2
- package/_standalone/.next/server/chunks/8388.js +1 -1
- package/_standalone/.next/server/chunks/953.js +1 -1
- package/_standalone/.next/server/middleware-build-manifest.js +1 -1
- package/_standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/_standalone/.next/server/pages/500.html +2 -2
- package/_standalone/.next/server/server-reference-manifest.js +1 -1
- package/_standalone/.next/server/server-reference-manifest.json +1 -1
- package/_standalone/.next/static/chunks/{2872.045858d00bd8307f.js → 2872.c8c8593be1ba4735.js} +2 -2
- package/_standalone/.next/static/chunks/app/{layout-8eacff5813458190.js → layout-d5f28933c5e14d74.js} +45 -45
- package/_standalone/.next/static/chunks/app/{page-5a6c9455efe8a0df.js → page-45140253e07a135a.js} +2 -2
- package/_standalone/.next/static/chunks/app/trash/page-c7f14311f040009e.js +1 -0
- package/_standalone/.next/static/chunks/app/view/[...path]/{page-e8699f96589c0979.js → page-62cfae628e31d411.js} +1 -1
- package/_standalone/.next/static/chunks/{webpack-73c9da80c6c1ebfe.js → webpack-521ae5a2ddf0e396.js} +1 -1
- package/_standalone/.next/trace +64 -64
- package/_standalone/__tests__/settings/update-tab-desktop.test.tsx +40 -0
- package/_standalone/components/Breadcrumb.tsx +10 -6
- package/_standalone/components/settings/UpdateTab.tsx +18 -2
- package/_standalone/tsconfig.tsbuildinfo +1 -1
- package/app/app/page.tsx +3 -3
- package/app/components/Breadcrumb.tsx +10 -6
- package/app/components/settings/UpdateTab.tsx +18 -2
- package/app/lib/fs.ts +1 -1
- package/bin/lib/clean-env.js +1 -1
- package/package.json +1 -1
- package/_standalone/.next/static/chunks/app/trash/page-72d0ae3649ac4b6c.js +0 -1
- /package/_standalone/.next/static/{2hrwFOLEOZhHQHfrIt-Dw → 3gMJ8EaZfDgHmB0NR0Q4T}/_buildManifest.js +0 -0
- /package/_standalone/.next/static/{2hrwFOLEOZhHQHfrIt-Dw → 3gMJ8EaZfDgHmB0NR0Q4T}/_ssgManifest.js +0 -0
|
@@ -126,4 +126,44 @@ describe('Desktop UpdateTab error handling', () => {
|
|
|
126
126
|
|
|
127
127
|
expect(host.textContent).toContain("You're up to date");
|
|
128
128
|
});
|
|
129
|
+
|
|
130
|
+
it('resets state to idle on mount to clear stale state after app restart', async () => {
|
|
131
|
+
// This test verifies the fix for: restart → 'state' still 'downloading' → button disabled
|
|
132
|
+
mockBridge.checkUpdate.mockResolvedValue({ available: true, version: '0.2.0' });
|
|
133
|
+
|
|
134
|
+
const { UpdateTab } = await import('@/components/settings/UpdateTab');
|
|
135
|
+
|
|
136
|
+
// First render (before restart)
|
|
137
|
+
await act(async () => { root.render(<UpdateTab />); });
|
|
138
|
+
|
|
139
|
+
const updateBtn = Array.from(host.querySelectorAll('button'))
|
|
140
|
+
.find(b => b.textContent?.includes('Update to v0.2.0'));
|
|
141
|
+
expect(updateBtn).toBeTruthy();
|
|
142
|
+
expect((updateBtn as HTMLButtonElement).disabled).toBe(false);
|
|
143
|
+
|
|
144
|
+
// User clicks update, state becomes 'downloading'
|
|
145
|
+
await act(async () => { updateBtn!.click(); });
|
|
146
|
+
await act(async () => { await Promise.resolve(); });
|
|
147
|
+
|
|
148
|
+
// In real scenario, app restarts here and component remounts
|
|
149
|
+
// Unmount and create new root to simulate fresh load
|
|
150
|
+
await act(async () => { root.unmount(); });
|
|
151
|
+
host.remove();
|
|
152
|
+
|
|
153
|
+
const newHost = document.createElement('div');
|
|
154
|
+
document.body.appendChild(newHost);
|
|
155
|
+
const newRoot = createRoot(newHost);
|
|
156
|
+
|
|
157
|
+
await act(async () => { newRoot.render(<UpdateTab />); });
|
|
158
|
+
|
|
159
|
+
// CRITICAL: After remount, the "Check for Updates" button should be ENABLED
|
|
160
|
+
// (not disabled like before the fix)
|
|
161
|
+
const checkBtn = Array.from(newHost.querySelectorAll('button'))
|
|
162
|
+
.find(b => b.textContent?.includes('Check for Updates'));
|
|
163
|
+
expect(checkBtn).toBeTruthy();
|
|
164
|
+
expect((checkBtn as HTMLButtonElement).disabled).toBe(false); // Must be enabled!
|
|
165
|
+
|
|
166
|
+
await act(async () => { newRoot.unmount(); });
|
|
167
|
+
newHost.remove();
|
|
168
|
+
});
|
|
129
169
|
});
|
|
@@ -13,23 +13,27 @@ function FileTypeIcon({ name }: { name: string }) {
|
|
|
13
13
|
export default function Breadcrumb({ filePath }: { filePath: string }) {
|
|
14
14
|
const parts = filePath.split('/');
|
|
15
15
|
return (
|
|
16
|
-
<nav className="flex items-center gap-
|
|
17
|
-
<Link
|
|
16
|
+
<nav className="flex items-center gap-0.5 text-xs text-muted-foreground flex-wrap">
|
|
17
|
+
<Link
|
|
18
|
+
href="/"
|
|
19
|
+
className="p-1.5 rounded-md hover:bg-muted/50 hover:text-foreground transition-colors"
|
|
20
|
+
title="Home"
|
|
21
|
+
>
|
|
18
22
|
<Home size={14} />
|
|
19
23
|
</Link>
|
|
20
24
|
{parts.map((part, i) => {
|
|
21
25
|
const isLast = i === parts.length - 1;
|
|
22
26
|
const href = '/view/' + parts.slice(0, i + 1).map(encodeURIComponent).join('/');
|
|
23
27
|
return (
|
|
24
|
-
<span key={i} className="flex items-center gap-
|
|
25
|
-
<ChevronRight size={12} className="text-muted-foreground/50" />
|
|
28
|
+
<span key={i} className="flex items-center gap-0.5">
|
|
29
|
+
<ChevronRight size={12} className="text-muted-foreground/50 shrink-0" />
|
|
26
30
|
{isLast ? (
|
|
27
|
-
<span className="flex items-center gap-1.5 text-foreground font-medium">
|
|
31
|
+
<span className="flex items-center gap-1.5 px-2 py-1 text-foreground font-medium">
|
|
28
32
|
<FileTypeIcon name={part} />
|
|
29
33
|
<span suppressHydrationWarning>{part}</span>
|
|
30
34
|
</span>
|
|
31
35
|
) : (
|
|
32
|
-
<Link href={href} className="px-2 py-
|
|
36
|
+
<Link href={href} className="px-2 py-1 rounded-md hover:bg-muted/50 hover:text-foreground transition-colors truncate max-w-[200px]" title={part}>
|
|
33
37
|
<span suppressHydrationWarning>{part}</span>
|
|
34
38
|
</Link>
|
|
35
39
|
)}
|
|
@@ -108,7 +108,15 @@ function DesktopCoreCard() {
|
|
|
108
108
|
// Get current Core version via a check call (also probes for updates)
|
|
109
109
|
try {
|
|
110
110
|
const info = await bridge.checkCoreUpdate?.();
|
|
111
|
-
if (info)
|
|
111
|
+
if (info) {
|
|
112
|
+
setCurrentVersion(info.currentVersion);
|
|
113
|
+
// CRITICAL FIX: If no update available, explicitly set state to 'idle'
|
|
114
|
+
// This ensures the UI refreshes to show the new (current) version
|
|
115
|
+
if (!info.available) {
|
|
116
|
+
setState('idle');
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
112
120
|
} catch { /* ignore */ }
|
|
113
121
|
|
|
114
122
|
// Check for pending download (from previous session)
|
|
@@ -196,7 +204,11 @@ function DesktopCoreCard() {
|
|
|
196
204
|
setState('applying');
|
|
197
205
|
try {
|
|
198
206
|
const result = await bridge.applyCoreUpdate();
|
|
199
|
-
|
|
207
|
+
// CRITICAL FIX: Update currentVersion to the version returned by the main process
|
|
208
|
+
// This ensures the UI immediately shows the new version after the update is applied
|
|
209
|
+
if (result?.version) {
|
|
210
|
+
setCurrentVersion(result.version);
|
|
211
|
+
}
|
|
200
212
|
setState('idle');
|
|
201
213
|
// Page will be reloaded by main process
|
|
202
214
|
} catch (err) {
|
|
@@ -346,6 +358,10 @@ function DesktopShellCard() {
|
|
|
346
358
|
const [errorMsg, setErrorMsg] = useState('');
|
|
347
359
|
|
|
348
360
|
useEffect(() => {
|
|
361
|
+
// CRITICAL: Reset state on mount to clear stale state after app restart
|
|
362
|
+
// (without this, 'state' can be 'downloading' from before the restart)
|
|
363
|
+
setState('idle');
|
|
364
|
+
|
|
349
365
|
bridge.getAppInfo?.().then((info) => {
|
|
350
366
|
if (info?.version) setAppVersion(info.version);
|
|
351
367
|
}).catch((err) => { console.warn("[UpdateTab] getAppInfo failed:", err); });
|