@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.
Files changed (147) hide show
  1. package/_standalone/.mindos-build-version +1 -1
  2. package/_standalone/.next/BUILD_ID +1 -1
  3. package/_standalone/.next/app-path-routes-manifest.json +20 -20
  4. package/_standalone/.next/build-manifest.json +3 -3
  5. package/_standalone/.next/cache/.previewinfo +1 -1
  6. package/_standalone/.next/cache/.rscinfo +1 -1
  7. package/_standalone/.next/cache/config.json +3 -3
  8. package/_standalone/.next/prerender-manifest.json +3 -3
  9. package/_standalone/.next/react-loadable-manifest.json +1 -1
  10. package/_standalone/.next/server/app/.well-known/agent-card.json/route_client-reference-manifest.js +1 -1
  11. package/_standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/_standalone/.next/server/app/_global-error.html +2 -2
  13. package/_standalone/.next/server/app/_global-error.rsc +1 -1
  14. package/_standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/_standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  16. package/_standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  17. package/_standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  18. package/_standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  19. package/_standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/_standalone/.next/server/app/_not-found/page.js +1 -1
  21. package/_standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  22. package/_standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/_standalone/.next/server/app/agents/[agentKey]/page.js +1 -1
  24. package/_standalone/.next/server/app/agents/[agentKey]/page.js.nft.json +1 -1
  25. package/_standalone/.next/server/app/agents/[agentKey]/page_client-reference-manifest.js +1 -1
  26. package/_standalone/.next/server/app/agents/page.js +1 -1
  27. package/_standalone/.next/server/app/agents/page.js.nft.json +1 -1
  28. package/_standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  29. package/_standalone/.next/server/app/api/a2a/agents/route_client-reference-manifest.js +1 -1
  30. package/_standalone/.next/server/app/api/a2a/delegations/route_client-reference-manifest.js +1 -1
  31. package/_standalone/.next/server/app/api/a2a/discover/route_client-reference-manifest.js +1 -1
  32. package/_standalone/.next/server/app/api/a2a/route_client-reference-manifest.js +1 -1
  33. package/_standalone/.next/server/app/api/acp/config/route_client-reference-manifest.js +1 -1
  34. package/_standalone/.next/server/app/api/acp/detect/route_client-reference-manifest.js +1 -1
  35. package/_standalone/.next/server/app/api/acp/install/route_client-reference-manifest.js +1 -1
  36. package/_standalone/.next/server/app/api/acp/registry/route_client-reference-manifest.js +1 -1
  37. package/_standalone/.next/server/app/api/acp/session/route_client-reference-manifest.js +1 -1
  38. package/_standalone/.next/server/app/api/agent-activity/route_client-reference-manifest.js +1 -1
  39. package/_standalone/.next/server/app/api/ask/route_client-reference-manifest.js +1 -1
  40. package/_standalone/.next/server/app/api/ask-sessions/route_client-reference-manifest.js +1 -1
  41. package/_standalone/.next/server/app/api/auth/route_client-reference-manifest.js +1 -1
  42. package/_standalone/.next/server/app/api/backlinks/route_client-reference-manifest.js +1 -1
  43. package/_standalone/.next/server/app/api/bootstrap/route_client-reference-manifest.js +1 -1
  44. package/_standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
  45. package/_standalone/.next/server/app/api/export/route_client-reference-manifest.js +1 -1
  46. package/_standalone/.next/server/app/api/extract-pdf/route_client-reference-manifest.js +1 -1
  47. package/_standalone/.next/server/app/api/file/import/route_client-reference-manifest.js +1 -1
  48. package/_standalone/.next/server/app/api/file/raw/route_client-reference-manifest.js +1 -1
  49. package/_standalone/.next/server/app/api/file/route_client-reference-manifest.js +1 -1
  50. package/_standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  51. package/_standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  52. package/_standalone/.next/server/app/api/graph/route_client-reference-manifest.js +1 -1
  53. package/_standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  54. package/_standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
  55. package/_standalone/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  56. package/_standalone/.next/server/app/api/mcp/agents/route_client-reference-manifest.js +1 -1
  57. package/_standalone/.next/server/app/api/mcp/install/route_client-reference-manifest.js +1 -1
  58. package/_standalone/.next/server/app/api/mcp/install-skill/route_client-reference-manifest.js +1 -1
  59. package/_standalone/.next/server/app/api/mcp/restart/route_client-reference-manifest.js +1 -1
  60. package/_standalone/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
  61. package/_standalone/.next/server/app/api/mcp/uninstall/route_client-reference-manifest.js +1 -1
  62. package/_standalone/.next/server/app/api/monitoring/route_client-reference-manifest.js +1 -1
  63. package/_standalone/.next/server/app/api/recent-files/route_client-reference-manifest.js +1 -1
  64. package/_standalone/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  65. package/_standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  66. package/_standalone/.next/server/app/api/settings/list-models/route_client-reference-manifest.js +1 -1
  67. package/_standalone/.next/server/app/api/settings/reset-token/route_client-reference-manifest.js +1 -1
  68. package/_standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  69. package/_standalone/.next/server/app/api/settings/test-key/route_client-reference-manifest.js +1 -1
  70. package/_standalone/.next/server/app/api/setup/check-path/route_client-reference-manifest.js +1 -1
  71. package/_standalone/.next/server/app/api/setup/check-port/route_client-reference-manifest.js +1 -1
  72. package/_standalone/.next/server/app/api/setup/generate-token/route_client-reference-manifest.js +1 -1
  73. package/_standalone/.next/server/app/api/setup/ls/route_client-reference-manifest.js +1 -1
  74. package/_standalone/.next/server/app/api/setup/route_client-reference-manifest.js +1 -1
  75. package/_standalone/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  76. package/_standalone/.next/server/app/api/sync/route_client-reference-manifest.js +1 -1
  77. package/_standalone/.next/server/app/api/tree-version/route_client-reference-manifest.js +1 -1
  78. package/_standalone/.next/server/app/api/uninstall/route_client-reference-manifest.js +1 -1
  79. package/_standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  80. package/_standalone/.next/server/app/api/update-check/route_client-reference-manifest.js +1 -1
  81. package/_standalone/.next/server/app/api/update-status/route_client-reference-manifest.js +1 -1
  82. package/_standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
  83. package/_standalone/.next/server/app/changes/page.js +1 -1
  84. package/_standalone/.next/server/app/changes/page.js.nft.json +1 -1
  85. package/_standalone/.next/server/app/changes/page_client-reference-manifest.js +1 -1
  86. package/_standalone/.next/server/app/echo/[segment]/page.js +1 -1
  87. package/_standalone/.next/server/app/echo/[segment]/page.js.nft.json +1 -1
  88. package/_standalone/.next/server/app/echo/[segment]/page_client-reference-manifest.js +1 -1
  89. package/_standalone/.next/server/app/echo/page.js +1 -1
  90. package/_standalone/.next/server/app/echo/page.js.nft.json +1 -1
  91. package/_standalone/.next/server/app/echo/page_client-reference-manifest.js +1 -1
  92. package/_standalone/.next/server/app/explore/page.js +1 -1
  93. package/_standalone/.next/server/app/explore/page.js.nft.json +1 -1
  94. package/_standalone/.next/server/app/explore/page_client-reference-manifest.js +1 -1
  95. package/_standalone/.next/server/app/help/page.js +1 -1
  96. package/_standalone/.next/server/app/help/page.js.nft.json +1 -1
  97. package/_standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
  98. package/_standalone/.next/server/app/inbox/history/page.js +1 -1
  99. package/_standalone/.next/server/app/inbox/history/page.js.nft.json +1 -1
  100. package/_standalone/.next/server/app/inbox/history/page_client-reference-manifest.js +1 -1
  101. package/_standalone/.next/server/app/login/page.js +1 -1
  102. package/_standalone/.next/server/app/login/page.js.nft.json +1 -1
  103. package/_standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  104. package/_standalone/.next/server/app/page.js +1 -1
  105. package/_standalone/.next/server/app/page.js.nft.json +1 -1
  106. package/_standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  107. package/_standalone/.next/server/app/setup/page.js +1 -1
  108. package/_standalone/.next/server/app/setup/page.js.nft.json +1 -1
  109. package/_standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  110. package/_standalone/.next/server/app/trash/page.js +3 -3
  111. package/_standalone/.next/server/app/trash/page_client-reference-manifest.js +1 -1
  112. package/_standalone/.next/server/app/view/[...path]/page.js +3 -3
  113. package/_standalone/.next/server/app/view/[...path]/page.js.nft.json +1 -1
  114. package/_standalone/.next/server/app/view/[...path]/page_client-reference-manifest.js +1 -1
  115. package/_standalone/.next/server/app/wiki/page.js +1 -1
  116. package/_standalone/.next/server/app/wiki/page.js.nft.json +1 -1
  117. package/_standalone/.next/server/app/wiki/page_client-reference-manifest.js +1 -1
  118. package/_standalone/.next/server/app-paths-manifest.json +20 -20
  119. package/_standalone/.next/server/chunks/530.js +26 -26
  120. package/_standalone/.next/server/chunks/{6054.js → 7543.js} +2 -2
  121. package/_standalone/.next/server/chunks/8388.js +1 -1
  122. package/_standalone/.next/server/chunks/953.js +1 -1
  123. package/_standalone/.next/server/middleware-build-manifest.js +1 -1
  124. package/_standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  125. package/_standalone/.next/server/pages/500.html +2 -2
  126. package/_standalone/.next/server/server-reference-manifest.js +1 -1
  127. package/_standalone/.next/server/server-reference-manifest.json +1 -1
  128. package/_standalone/.next/static/chunks/{2872.045858d00bd8307f.js → 2872.c8c8593be1ba4735.js} +2 -2
  129. package/_standalone/.next/static/chunks/app/{layout-8eacff5813458190.js → layout-d5f28933c5e14d74.js} +45 -45
  130. package/_standalone/.next/static/chunks/app/{page-5a6c9455efe8a0df.js → page-45140253e07a135a.js} +2 -2
  131. package/_standalone/.next/static/chunks/app/trash/page-c7f14311f040009e.js +1 -0
  132. package/_standalone/.next/static/chunks/app/view/[...path]/{page-e8699f96589c0979.js → page-62cfae628e31d411.js} +1 -1
  133. package/_standalone/.next/static/chunks/{webpack-73c9da80c6c1ebfe.js → webpack-521ae5a2ddf0e396.js} +1 -1
  134. package/_standalone/.next/trace +64 -64
  135. package/_standalone/__tests__/settings/update-tab-desktop.test.tsx +40 -0
  136. package/_standalone/components/Breadcrumb.tsx +10 -6
  137. package/_standalone/components/settings/UpdateTab.tsx +18 -2
  138. package/_standalone/tsconfig.tsbuildinfo +1 -1
  139. package/app/app/page.tsx +3 -3
  140. package/app/components/Breadcrumb.tsx +10 -6
  141. package/app/components/settings/UpdateTab.tsx +18 -2
  142. package/app/lib/fs.ts +1 -1
  143. package/bin/lib/clean-env.js +1 -1
  144. package/package.json +1 -1
  145. package/_standalone/.next/static/chunks/app/trash/page-72d0ae3649ac4b6c.js +0 -1
  146. /package/_standalone/.next/static/{2hrwFOLEOZhHQHfrIt-Dw → 3gMJ8EaZfDgHmB0NR0Q4T}/_buildManifest.js +0 -0
  147. /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-1 text-xs text-muted-foreground flex-wrap">
17
- <Link href="/" className="hover:text-foreground transition-colors">
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-1">
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-0.5 rounded-md hover:bg-muted/50 transition-colors truncate max-w-[200px]" title={part}>
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) setCurrentVersion(info.currentVersion);
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
- if (result?.version) setCurrentVersion(result.version);
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); });