aidevops 3.32.37 → 3.32.39
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/README.md +1 -1
- package/VERSION +1 -1
- package/aidevops.sh +1 -1
- package/package.json +1 -1
- package/packages/gui-web/src/useGuiStatus.ts +39 -1
- package/setup.sh +1 -1
package/README.md
CHANGED
|
@@ -60,7 +60,7 @@ The result: an AI operations platform that manages projects across every busines
|
|
|
60
60
|
[](https://github.com/marcusquinn)
|
|
61
61
|
|
|
62
62
|
<!-- Release & Version Info -->
|
|
63
|
-
[](https://github.com/marcusquinn/aidevops/releases)
|
|
64
64
|
[](https://www.npmjs.com/package/aidevops)
|
|
65
65
|
[](https://github.com/marcusquinn/homebrew-tap)
|
|
66
66
|
[](https://github.com/marcusquinn/aidevops)
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.32.
|
|
1
|
+
3.32.39
|
package/aidevops.sh
CHANGED
package/package.json
CHANGED
|
@@ -3,6 +3,8 @@ import { useCallback, useEffect, useRef, useState } from "react";
|
|
|
3
3
|
import { fetchStatus, mockedStatus, unavailableStatus } from "./status-client";
|
|
4
4
|
import { type VaultDialogIntent, vaultDialogIntentForStatus } from "./VaultBadges";
|
|
5
5
|
|
|
6
|
+
const VAULT_TERMINAL_REFRESH_DELAYS_MS = [1200, 3000, 7000] as const;
|
|
7
|
+
|
|
6
8
|
interface GuiStatusController {
|
|
7
9
|
markVaultTerminalLaunch: () => void;
|
|
8
10
|
refreshStatus: () => Promise<void>;
|
|
@@ -18,6 +20,8 @@ export function useGuiStatus(): GuiStatusController {
|
|
|
18
20
|
const [vaultDialogIntent, setVaultDialogIntent] = useState<VaultDialogIntent | null>(null);
|
|
19
21
|
const hasPromptedVaultSetup = useRef(false);
|
|
20
22
|
const refreshVaultAfterTerminal = useRef(false);
|
|
23
|
+
const vaultStatusAtTerminalLaunch = useRef<GuiStatusData["vault"]["status"] | null>(null);
|
|
24
|
+
const vaultTerminalRefreshTimeouts = useRef<number[]>([]);
|
|
21
25
|
const currentVaultIntent = vaultDialogIntentForStatus(status.data.vault);
|
|
22
26
|
const shouldPromptSetup = shouldPromptVaultSetup(statusLoading, status.data.vault, hasPromptedVaultSetup.current);
|
|
23
27
|
|
|
@@ -36,16 +40,48 @@ export function useGuiStatus(): GuiStatusController {
|
|
|
36
40
|
void refreshStatus();
|
|
37
41
|
}, [refreshStatus]);
|
|
38
42
|
|
|
43
|
+
const clearVaultTerminalRefreshes = useCallback(() => {
|
|
44
|
+
for (const timeoutId of vaultTerminalRefreshTimeouts.current) {
|
|
45
|
+
window.clearTimeout(timeoutId);
|
|
46
|
+
}
|
|
47
|
+
vaultTerminalRefreshTimeouts.current = [];
|
|
48
|
+
}, []);
|
|
49
|
+
|
|
50
|
+
const runVaultTerminalRefresh = useCallback(() => {
|
|
51
|
+
if (refreshVaultAfterTerminal.current) {
|
|
52
|
+
void refreshStatus();
|
|
53
|
+
}
|
|
54
|
+
}, [refreshStatus]);
|
|
55
|
+
|
|
56
|
+
const scheduleVaultTerminalRefreshes = useCallback(() => {
|
|
57
|
+
clearVaultTerminalRefreshes();
|
|
58
|
+
vaultTerminalRefreshTimeouts.current = VAULT_TERMINAL_REFRESH_DELAYS_MS.map((delay) => (
|
|
59
|
+
window.setTimeout(runVaultTerminalRefresh, delay)
|
|
60
|
+
));
|
|
61
|
+
}, [clearVaultTerminalRefreshes, runVaultTerminalRefresh]);
|
|
62
|
+
|
|
39
63
|
useEffect(() => {
|
|
40
64
|
const refreshAfterTerminal = () => {
|
|
41
65
|
if (refreshVaultAfterTerminal.current) {
|
|
42
66
|
refreshVaultAfterTerminal.current = false;
|
|
67
|
+
clearVaultTerminalRefreshes();
|
|
43
68
|
void refreshStatus();
|
|
44
69
|
}
|
|
45
70
|
};
|
|
46
71
|
window.addEventListener("focus", refreshAfterTerminal);
|
|
47
72
|
return () => window.removeEventListener("focus", refreshAfterTerminal);
|
|
48
|
-
}, [refreshStatus]);
|
|
73
|
+
}, [clearVaultTerminalRefreshes, refreshStatus]);
|
|
74
|
+
|
|
75
|
+
useEffect(() => {
|
|
76
|
+
if (refreshVaultAfterTerminal.current && status.data.vault.status !== vaultStatusAtTerminalLaunch.current) {
|
|
77
|
+
refreshVaultAfterTerminal.current = false;
|
|
78
|
+
clearVaultTerminalRefreshes();
|
|
79
|
+
}
|
|
80
|
+
}, [clearVaultTerminalRefreshes, status.data.vault.status]);
|
|
81
|
+
|
|
82
|
+
useEffect(() => () => {
|
|
83
|
+
clearVaultTerminalRefreshes();
|
|
84
|
+
}, [clearVaultTerminalRefreshes]);
|
|
49
85
|
|
|
50
86
|
useEffect(() => {
|
|
51
87
|
setVaultDialogIntent((openIntent) => openIntent !== null && openIntent !== currentVaultIntent ? null : openIntent);
|
|
@@ -61,6 +97,8 @@ export function useGuiStatus(): GuiStatusController {
|
|
|
61
97
|
return {
|
|
62
98
|
markVaultTerminalLaunch: () => {
|
|
63
99
|
refreshVaultAfterTerminal.current = true;
|
|
100
|
+
vaultStatusAtTerminalLaunch.current = status.data.vault.status;
|
|
101
|
+
scheduleVaultTerminalRefreshes();
|
|
64
102
|
},
|
|
65
103
|
refreshStatus,
|
|
66
104
|
setVaultDialogIntent,
|
package/setup.sh
CHANGED
|
@@ -17,7 +17,7 @@ fi
|
|
|
17
17
|
# AI Assistant Server Access Framework Setup Script
|
|
18
18
|
# Helps developers set up the framework for their infrastructure
|
|
19
19
|
#
|
|
20
|
-
# Version: 3.32.
|
|
20
|
+
# Version: 3.32.39
|
|
21
21
|
#
|
|
22
22
|
# Quick Install:
|
|
23
23
|
# npm install -g aidevops && aidevops update (recommended)
|