-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Codex/storage optimization #789
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
ca1cc7d
b9d3e2c
6fbb15b
df9c4bd
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -858,6 +858,44 @@ interface Window { | |||||||||||||||||||||||||||||||||||||||||||||||||||
| message?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| error?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| }>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| getStorageStatus: () => Promise<{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| success: boolean; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| workspaceRoot?: string | null; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| recordingsDir?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| projectsDir?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| tempDir?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| cacheDir?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| configuredTempDir?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| configuredCacheDir?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| restartRequired?: boolean; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| initializationError?: string | null; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| usage?: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| recordingsBytes: number; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| projectsBytes: number; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| tempBytes: number; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| cacheBytes: number; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| totalBytes: number; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | null; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| error?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| }>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| chooseWorkspaceDirectory: () => Promise<{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| success: boolean; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| canceled?: boolean; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| workspaceRoot?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| recordingsDir?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| projectsDir?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| tempDir?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| cacheDir?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| restartRequired?: boolean; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| error?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| }>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| openWorkspaceDirectory: () => Promise<{ success: boolean; error?: string }>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+881
to
+892
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win Add missing
Proposed fix chooseWorkspaceDirectory: () => Promise<{
success: boolean;
canceled?: boolean;
workspaceRoot?: string;
recordingsDir?: string;
projectsDir?: string;
tempDir?: string;
cacheDir?: string;
restartRequired?: boolean;
+ message?: string;
error?: string;
}>;
- openWorkspaceDirectory: () => Promise<{ success: boolean; error?: string }>;
+ openWorkspaceDirectory: () => Promise<{ success: boolean; path?: string; error?: string }>;📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||
| cleanupRecordlyTemporaryFiles: () => Promise<{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| success: boolean; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| removedCount?: number; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| removedBytes?: number; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| error?: string; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| }>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| getShortcuts: () => Promise<Record<string, unknown> | null>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| saveShortcuts: (shortcuts: unknown) => Promise<{ success: boolean; error?: string }>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| getAppSetting: (key: string) => unknown; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: webadderallorg/Recordly
Length of output: 12176
🏁 Script executed:
Repository: webadderallorg/Recordly
Length of output: 252
🌐 Web query:
electron-builder 26.7.0 portable target autoUpdater portable auto-updates manual download only💡 Result:
In electron-builder, the portable target is explicitly designed for scenarios where no installation is desired, and as a result, it does not support the built-in auto-update mechanism provided by the electron-updater package [1][2]. Official documentation and maintainer guidance confirm that auto-updates are currently only supported for standard installer-based targets on Windows, such as the NSIS target [1][3][4]. Because the portable target does not produce the necessary metadata (such as latest.yml) required for the electron-updater to function, you cannot use the standard auto-update flow [3][5][2]. To achieve update functionality for a portable application, you must implement a custom solution [1][2]. Common approaches for implementing custom "manual download only" updates include: 1. Custom Update Check: Your application can periodically query a remote JSON file (hosted on your own server or GitHub releases) that contains version and download URL information [3][5]. 2. Manual Download & Replace: If a newer version is detected, you can prompt the user to download the new executable [6][7]. Since a portable executable cannot easily self-update (replace its own file while running), this process typically involves: - Directing the user to a download page via the browser (shell.openExternal). - Downloading the new version to a temporary directory. - Using a small helper script or a secondary process to replace the old executable with the new one upon next launch. If your requirements allow for standard installers, migrating to the NSIS target is the recommended way to gain automatic, seamless updates with minimal configuration [1][3][4].
Citations:
🌐 Web query:
electron-updater 6.8.3 portable portableExecutables path auto-download quitAndInstall portable💡 Result:
Electron-updater is designed primarily for applications installed via standard installers (like NSIS) [1][2]. It does not natively support an auto-update and "quitAndInstall" flow for applications built with the
portabletarget [3]. Key technical details regarding your query: 1. Portable vs. Installer: Theportabletarget in electron-builder creates a self-contained executable that does not require installation [3]. Because it lacks an underlying installation directory and registry presence, the standardquitAndInstallmechanism—which typically replaces files in an installation folder—is not compatible with the portable format [4][5]. 2. Auto-Download and quitAndInstall: While you can useelectron-updaterto check for and download updates in a portable app, thequitAndInstall()method will not perform an in-place update for a portable executable [4][5]. If you attempt to use it, the process will fail to replace the running executable because the file is locked by the operating system. 3. Managing Portable Updates: To update a portable application, the standard pattern is to download the new portable executable to a temporary location (e.g., usingelectron-updater's manual download features or a custom downloader) [6][1]. Your application must then launch the new executable, close itself, and allow the new version to overwrite or replace the old one, often facilitated by a small wrapper or updater script that handles the file replacement after the main process exits. 4. Pathing: Portable apps provide environment variables to help you locate your runtime context [3]: - PORTABLE_EXECUTABLE_DIR: The directory where your current portable executable is located. - PORTABLE_EXECUTABLE_FILE: The full path to the currently running portable executable. If you require seamless "quit and install" auto-updating, consider using the NSIS target instead, which is explicitly designed to handle file replacement and installation workflows [1][3].Citations:
🏁 Script executed:
Repository: webadderallorg/Recordly
Length of output: 19831
🏁 Script executed:
Repository: webadderallorg/Recordly
Length of output: 12970
Handle updates separately for portable builds.
electron-updateris initialized for all packaged releases and offers NSIS-style auto-download, download-and-install, andautoUpdater.quitAndInstall()paths. WithpublishAutoUpdateenabled and bothnsisandportabletargets added, portable builds can show update actions that target an installer-only flow. Add a portable-specific update path, such as offering only the portable download, or disableelectron-updaterwhen the portable executable is detected.🤖 Prompt for AI Agents
Source: MCP tools