{"id":50221543,"url":"https://github.com/rupok/antigravity-auto-retry","last_synced_at":"2026-05-26T12:09:53.077Z","repository":{"id":352868590,"uuid":"1216987501","full_name":"rupok/antigravity-auto-retry","owner":"rupok","description":"A tiny browser utility that automatically clicks the **Retry** button in the Antigravity panel when it appears.","archived":false,"fork":false,"pushed_at":"2026-04-21T13:13:11.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-21T14:38:22.523Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rupok.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-21T12:37:38.000Z","updated_at":"2026-04-21T13:13:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rupok/antigravity-auto-retry","commit_stats":null,"previous_names":["rupok/antigravity-auto-retry"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/rupok/antigravity-auto-retry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupok%2Fantigravity-auto-retry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupok%2Fantigravity-auto-retry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupok%2Fantigravity-auto-retry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupok%2Fantigravity-auto-retry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rupok","download_url":"https://codeload.github.com/rupok/antigravity-auto-retry/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupok%2Fantigravity-auto-retry/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33519339,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T03:12:49.672Z","status":"ssl_error","status_checked_at":"2026-05-26T03:12:47.976Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-26T12:09:52.229Z","updated_at":"2026-05-26T12:09:53.068Z","avatar_url":"https://github.com/rupok.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# antigravity-auto-retry\n\nTired of clicking **Retry** every time Antigravity shows **\"Our servers are experiencing high traffic...\"** or **\"Agent execution terminated due to error.\"**?\n\nThis auto-clicks Retry for you. Two error patterns covered, with safety guards: visible+enabled button only, 500ms debounce, and a 10-clicks-per-minute circuit breaker. Runs as a VSCode extension that patches Antigravity, or as a one-shot DevTools paste.\n\n---\n\n## Why this exists\n\nAntigravity is a VSCode fork that ships Claude via a bundled extension whose webview is locked down — there's no extension API to reach the Retry button from a third-party extension. So this project patches `workbench.html` to load a small script that clicks Retry when one of the known errors is on screen. There's a no-install DevTools paste too, if you don't want to touch `workbench.html`.\n\n---\n\n## Install\n\n| Method | Effort |\n| --- | --- |\n| **[Ask Antigravity chat](#ask-antigravity-chat-easiest)** | Paste one prompt. Zero clicks after. |\n| **[One-line CLI](#one-line-cli)** | Paste one command in a terminal. |\n| **[Manual install](#manual-install-no-cli)** | Download `.vsix` + pick in command palette. |\n| **[DevTools paste](#devtools-paste-fallback)** | No install. Paste script per window. |\n\n### Ask Antigravity chat (easiest)\n\nAntigravity's agent has terminal and command-palette access. Paste this into the chat:\n\n```\nInstall the Antigravity Auto Retry extension from https://github.com/rupok/antigravity-auto-retry and apply its workbench patch.\n\n1. Run: curl -fL https://github.com/rupok/antigravity-auto-retry/raw/main/antigravity-auto-retry.vsix -o /tmp/antigravity-auto-retry.vsix \u0026\u0026 antigravity --install-extension /tmp/antigravity-auto-retry.vsix\n2. Reload this window so the extension activates.\n3. Run the \"Antigravity Auto Retry: Install\" command from the command palette.\n4. Reload the window again so the patch takes effect.\n```\n\nIf the agent can run command-palette commands, it does all four steps. If it's terminal-only, it stops after step 1 and the extension's first-run notification walks you through the rest — one click.\n\n### One-line CLI\n\n`antigravity` must be on your `PATH` (Antigravity → Command Palette → **Shell Command: Install 'antigravity' command in PATH** if not).\n\n```bash\ncurl -fL https://github.com/rupok/antigravity-auto-retry/raw/main/antigravity-auto-retry.vsix -o /tmp/antigravity-auto-retry.vsix \u0026\u0026 antigravity --install-extension /tmp/antigravity-auto-retry.vsix\n```\n\n### Manual install (no CLI)\n\n1. Download [antigravity-auto-retry.vsix](antigravity-auto-retry.vsix).\n2. Antigravity → Command Palette → **Extensions: Install from VSIX…** and pick the file.\n\n### Apply the patch\n\nAfter install, reload Antigravity. A notification appears — click **Install Patch**, then **Reload Window**. Status bar bottom-right shows **✓ Auto Retry: on**. Dismiss Antigravity's \"installation appears to be corrupt\" banner if it shows up — it's cosmetic (see [Tradeoffs](#tradeoffs)).\n\n**Permission denied?** Antigravity was installed with root-owned files. The modal shows the exact `sudo chown` command — run it in a terminal, then click **Install Patch** again.\n\n### Verify\n\nDevTools (`Cmd+Opt+I` / `Ctrl+Shift+I`) → Console:\n\n```js\nantigravityAutoRetry.status()\n// { isRunning: true, panelFound: true, mode: 'all', ... }\n```\n\nTrigger an error (or wait for one) and you'll see `[Antigravity Auto Retry] Clicked Retry (#1) — matched \"...\".`.\n\n### Build from source\n\n```bash\ngit clone https://github.com/rupok/antigravity-auto-retry.git\ncd antigravity-auto-retry/extension \u0026\u0026 npm install \u0026\u0026 npm run build \u0026\u0026 npm run package\n# writes ../antigravity-auto-retry.vsix — Node 18+ required\n```\n\n---\n\n## Updating\n\nTwo scenarios, two flows.\n\n### Antigravity got updated\n\nAntigravity updates overwrite `workbench.html`, removing the patch. Status bar shows **Auto Retry: reapply** and a notification nudges you. Click the status bar item, or run **Antigravity Auto Retry: Reapply (after update)**, then **Reload Window**.\n\n### New extension version (script fixes, new patterns)\n\nWhen you install a newer `.vsix`, three things need to happen — reinstalling alone isn't enough, because `workbench.html` still has the *old* script content inlined.\n\n1. Reload the window so the new extension code activates.\n2. Run **Antigravity Auto Retry: Refresh Retry Script** → choose **Back up \u0026 Refresh**. This overwrites your local script with the bundled version *and* re-patches `workbench.html` in one shot.\n3. Click **Reload Window** on the prompt.\n\nStuck on a pre-fix `Refresh` command (which used to skip the re-patch step)? The escape hatch is:\n\n```bash\nrm ~/.antigravity-auto-retry/antigravity-auto-retry.js\n```\n\nThen run **Antigravity Auto Retry: Reapply** → **Reload Window**. Reapply re-seeds the script from the new bundle (since the file is missing) and re-patches `workbench.html`.\n\n---\n\n## DevTools paste fallback\n\nNo install, no patching. One-off use, locked-down machines, or quick tests after editing the script. Runs until you reload — paste again next session.\n\n1. DevTools (`Cmd+Opt+I` / `Ctrl+Shift+I`) → **Console**.\n2. If Antigravity prompts, type `allow pasting`.\n3. Copy [extension/antigravity-auto-retry.js](extension/antigravity-auto-retry.js), paste, hit Enter.\n\n---\n\n## How it works\n\nThe script:\n\n1. Starts a `MutationObserver` on the Antigravity workbench.\n2. Watches for a visible, enabled `Retry` button whose ancestor container text matches one of:\n   - `/high\\s+traffic/i` — the transient overload error\n   - `/agent\\s+(execution\\s+)?terminated\\s+due\\s+to\\s+error/i` — generic \"Agent terminated\" / \"Agent execution terminated due to error\" failure\n3. Clicks it, at most once per 500 ms.\n4. Auto-stops after 10 clicks in 60 s — circuit breaker against UI-induced click storms.\n\nNo network calls. No telemetry.\n\n### Retry mode\n\nDefault is `all` (both patterns). To narrow to just the transient overload error:\n\n```js\nlocalStorage.antigravityAutoRetryMode = 'high-traffic-only'\n```\n\nReload to apply. Set to `'all'` or remove the key to go back.\n\n---\n\n## Console API\n\n```js\nantigravityAutoRetry.start()\nantigravityAutoRetry.stop()\nantigravityAutoRetry.status()\nantigravityAutoRetry.reset()   // clears the circuit breaker\n\nlocalStorage.antigravityAutoRetryDebug = '1'  // verbose per-scan logging\n```\n\n`status()` returns:\n\n```js\n{\n  isRunning: true, isTripped: false, panelFound: true,\n  retryClickCount: 5, scanCount: 20, recentClicks: 1,\n  minClickIntervalMs: 500, mode: 'all',\n  activePatterns: ['high traffic', 'agent terminated']\n}\n```\n\n---\n\n## Commands\n\n| Command | What it does |\n| --- | --- |\n| Install | First-time install. Backs up `workbench.html`, seeds the retry script, applies the patch. |\n| Reapply (after update) | Re-patches `workbench.html` after an Antigravity update reverted it. |\n| Refresh Retry Script | Pulls the latest bundled script into `~/.antigravity-auto-retry/` and re-patches `workbench.html`. Run after upgrading the extension. Optional backup of your current script. |\n| Uninstall | Restores `workbench.html` from backup. Leaves your retry script in place. |\n| Show Status | Prints current state and paths. |\n| Open Retry Script | Opens `~/.antigravity-auto-retry/antigravity-auto-retry.js` for editing. |\n\n---\n\n## Safety\n\n- Only clicks a visible, enabled `Retry` button inside a container matching a known error pattern. Other Retry buttons (Git dialogs, etc.) are ignored.\n- 500 ms minimum between clicks.\n- Auto-disables after 10 clicks in 60 s. Worst case if a non-transient error keeps re-triggering: 10 wasted clicks, then the circuit breaker stops everything.\n- Extension only writes to `workbench.html` and `~/.antigravity-auto-retry/`. The `.bak` next to `workbench.html` is the unmodified original for one-command uninstall.\n\n---\n\n## Tradeoffs\n\nThese apply to the extension path only — the DevTools paste is transient and leaves nothing behind.\n\n- **\"Installation appears to be corrupt\" banner.** Antigravity checksums its bundle; patching `workbench.html` trips that. Dismissable, cosmetic.\n- **Antigravity updates revert the patch.** Use **Reapply** — the extension nudges you.\n- **Selector drift.** If Antigravity rearranges the Retry button or rewords the errors, edit `~/.antigravity-auto-retry/antigravity-auto-retry.js` and reload (or open an issue and I'll update the patterns).\n- **Non-transient errors.** The `agent terminated` pattern can also fire on auth/quota/code errors. Circuit breaker caps damage; switch to `high-traffic-only` mode if you'd rather click those manually.\n- **Cross-origin webview.** If Antigravity moves the chat into an isolated webview, this approach stops working. CDP-via-external-process would be a different project.\n\n---\n\n## License\n\nMIT. Personal productivity tool, not endorsed by Google or Antigravity.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frupok%2Fantigravity-auto-retry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frupok%2Fantigravity-auto-retry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frupok%2Fantigravity-auto-retry/lists"}