Skip to content

install.sh: a hung cursor-agent no longer stalls the installer (ENG-1237) - #291

Merged
felix-xtrace merged 1 commit into
mainfrom
fix/cursor-marketplace-hang
Oct 13, 2026
Merged

felix-xtrace merged 1 commit into
mainfrom
fix/cursor-marketplace-hang

Conversation

@felix-xtrace

Copy link
Copy Markdown
Contributor

Port of XTraceAI/agent-plugins-internal#200 (merged). Public install.sh on main was byte-identical to internal's pre-fix copy, so this is the same patch; after it, the file matches internal main exactly. The next promotion will overwrite it with the same content.

Problem

curl -fsSL .../install.sh | sh hangs forever at the Cursor step:

==> Cursor
Fetching plugins from https://github.com/XTraceAI/agent-plugins...

cursor-agent plugin marketplace add (and marketplace update) waits on Cursor's backend with no timeout of its own. Reproduced on macOS with cursor-agent 2026.09.15-d2fe57e: still waiting after 45s+ (one open TLS connection, no git child), even though xtrace-plugins was already registered. Because the step never returns, the installer never reaches sign-in.

Fix

  • Skip marketplace add when cursor-agent plugin marketplace list already shows $CURSOR_MKT.
  • Run each cursor-agent call under a new with_timeout helper (python3, which the installer already requires; macOS has no timeout). Exit 124 on timeout, as GNU timeout does. The child's stdin is /dev/null, so it can't read the rest of a curl | sh script.
  • If the Cursor add or refresh fails, print a warning and continue, so sign-in still runs. Cursor's install itself is still the manual Add step.

Testing

  • sh -n install.sh
  • diff against internal main's install.sh: identical.
  • with_timeout helper in isolation: a hanging command exits 124, a passing one exits 0, a failing one passes its exit code through.
  • The real-machine and fake-hanging-cursor-agent runs are in the internal PR.

🤖 Generated with Claude Code

Same change as agent-plugins-internal#200, so the public curl installer
stops hanging at the Cursor step until the next promotion overwrites it.

`cursor-agent plugin marketplace add` (and `update`) waits on Cursor's
backend with no timeout of its own, so `curl ... | sh` never reached
sign-in. Now a known marketplace skips `add`, every cursor-agent call
runs under a `with_timeout` helper (python3; macOS has no `timeout`),
and a failed add or refresh prints a warning and continues.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@felix-xtrace
felix-xtrace deployed to production-plugin-release October 13, 2026 02:32 — with GitHub Actions Active
@xtrace-memhub-staging

xtrace-memhub-staging Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

🧠 Session context

1 session behind this pull request.

Team rules that fired while building this

  • A loop tick says what it is for (advise, 1×)
  • Internal plugin tracks the staging backend, not prod (suppressed, 1×)
  • PR title carries its Linear ticket (ENG-n) (gate, 1×)
  • Sign Codex CI in with an OpenAI API key (advise, 1×)
  • Sign Codex CI in with an OpenAI API key (suppressed, 1×)

Effort
1 session · 11m agent time · 3.7M tokens · 81 turns
Bash 28 · ScheduleWakeup 4 · ToolSearch 3 · Monitor 2 · Skill 2 · mcp__plugin_linear_linear__list_issues 1 · skills loop memhub-staging:pr-babysit

Sessions

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-13T02:35:03.409305Z a4f9808 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@felix-xtrace
felix-xtrace had a problem deploying to production-plugin-release October 13, 2026 02:37 — with GitHub Actions Failure
@felix-xtrace
felix-xtrace deployed to production-plugin-release October 13, 2026 02:37 — with GitHub Actions Active
@felix-xtrace
felix-xtrace deployed to production-plugin-release October 13, 2026 02:37 — with GitHub Actions Active
@felix-xtrace
felix-xtrace merged commit 8ea8e6c into main Oct 13, 2026
9 of 10 checks passed

This branch was successfully deployed

1 active deployment
production-plugin-release — a4f98083 Deployed Oct 13, 2026 by felix-xtrace via Real agent session (claude candidate) #94
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant