feat: add option to disable update checker #502

Merged
ZacharyZcR merged 2 commits from feat/disable-update-checker into dev-1.10.1 2026-01-13 06:02:24 +00:00
29 changed files with 48 additions and 60057 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1957,6 +1957,9 @@
"terminalSettings": "Terminal",
"hostSidebarSettings": "Host & Sidebar",
"snippetsSettings": "Snippets",
"updateSettings": "Updates",
"disableUpdateCheck": "Disable Update Check",
"disableUpdateCheckDesc": "Stop checking for new versions on startup and dashboard. Reduces network requests.",
"currentPassword": "Current Password",
"passwordChangedSuccess": "Password changed successfully! Please log in again.",
"failedToChangePassword": "Failed to change password. Please check your current password and try again.",

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -160,13 +160,16 @@ export function Dashboard({
const uptimeInfo = await getUptime();
setUptime(uptimeInfo.formatted);
const versionInfo = await getVersionInfo();
setVersionText(`v${versionInfo.localVersion}`);
if (
versionInfo.status === "up_to_date" ||
versionInfo.status === "requires_update"
) {
setVersionStatus(versionInfo.status);
const updateCheckDisabled = localStorage.getItem("disableUpdateCheck") === "true";
if (!updateCheckDisabled) {
const versionInfo = await getVersionInfo();
setVersionText(`v${versionInfo.localVersion}`);
if (
versionInfo.status === "up_to_date" ||
versionInfo.status === "requires_update"
) {
setVersionStatus(versionInfo.status);
}
}
try {

View File

@@ -30,6 +30,11 @@ export function ElectronVersionCheck({
const lineColor = isDarkMode ? "#151517" : "#f9f9f9";
useEffect(() => {
const updateCheckDisabled = localStorage.getItem("disableUpdateCheck") === "true";
if (updateCheckDisabled) {
onContinue();
return;
}
if (isElectron()) {
checkForUpdates();
} else {

View File

@@ -133,6 +133,9 @@ export function UserProfile({
const saved = localStorage.getItem("showHostTags");
return saved !== null ? saved === "true" : true;
});
const [disableUpdateCheck, setDisableUpdateCheck] = useState<boolean>(
localStorage.getItem("disableUpdateCheck") === "true",
);
const [userRoles, setUserRoles] = useState<UserRole[]>([]);
useEffect(() => {
@@ -212,6 +215,11 @@ export function UserProfile({
window.dispatchEvent(new Event("showHostTagsChanged"));
};
const handleDisableUpdateCheckToggle = (enabled: boolean) => {
setDisableUpdateCheck(enabled);
localStorage.setItem("disableUpdateCheck", enabled.toString());
};
const handleDeleteAccount = async (e: React.FormEvent) => {
e.preventDefault();
setDeleteLoading(true);
@@ -613,6 +621,28 @@ export function UserProfile({
</div>
</div>
</div>
<div className="rounded-lg border-2 border-edge bg-elevated p-4">
<h3 className="text-lg font-semibold mb-4">
{t("profile.updateSettings")}
</h3>
<div className="space-y-4">
<div className="flex items-center justify-between">
<div>
<Label className="text-foreground-secondary">
{t("profile.disableUpdateCheck")}
</Label>
<p className="text-sm text-muted-foreground mt-1">
{t("profile.disableUpdateCheckDesc")}
</p>
</div>
<Switch
checked={disableUpdateCheck}
onCheckedChange={handleDisableUpdateCheckToggle}
/>
</div>
</div>
</div>
</TabsContent>
<TabsContent value="security" className="space-y-4">