Skip to content

Releases: SyntaxSmith/rosetta

Fix some recall bug

03 May 06:00

Choose a tag to compare

v0.2.3

fix: surface real onPaused errors instead of masking with stuck-pipel…

v0.2.2 — fix redo-loop misfire on slow send pipeline

01 May 12:43

Choose a tag to compare

Fix

Stops the redo workaround (added in 0.2.0 as 7b54098) from misfiring on ChatGPT's now-slower send pipeline, which was causing every multi-turn / Pro / attachment-heavy call to either silently branch the conversation or fail with trigger-failed [no-button] while the message was still successfully sent server-side.

Root cause

The original SEND_CLAIM_WAIT_MS=6000 assumed a short prepare dance. Verified 2026-05-01 by sniffing the actual pipeline:

+9.1s   POST /backend-api/conversation/init
+11.6s  POST /backend-api/f/conversation/prepare
+12.2s  POST /backend-api/conversation/experimental/generate_autocompletions
+14.9s  POST /backend-api/f/conversation                       ← what rosetta waits for
+14.9s  POST /backend-api/sentinel/chat-requirements/prepare
+15.3s  POST /backend-api/sentinel/chat-requirements/finalize

Click-to-/f/conversation is commonly 15–25 s even for trivial prompts, easily 30 s+ on multi-turn Pro with attachments. The 6 s redo would fire mid-pipeline; the redo's click landed when the button had already flipped to stop, raising no-button while the original send completed anyway — orphaning a sibling branch in the conversation tree and returning no result to the caller.

What changed

  • Intercept /f/conversation/prepare via Fetch.enable as a "send pipeline in flight" signal (pass through unmodified, just flip prepareSeen)
  • Replace the 6 s × 3-attempt redo loop with a 25 s base wait, bounded by 120 s total
  • Only redo when both signals say the click was lost: prepare not seen and the send button is still visible+enabled. Either signal alone keeps us waiting
  • Add isSendButtonStillClickable() probe used as the second redo guard
  • Dump composer + button-region DOM to stderr on no-button failures for offline forensics
  • Bump README protocol-tracking date to 2026-05

Compatibility

No API changes. Existing runConversation / MCP consult calls unchanged.

v0.1.0 — initial release

30 Apr 10:15

Choose a tag to compare

Programmatic access to ChatGPT (incl. Pro) from Node, by translating between an auth-holder Chrome page and a clean API.

📦 Install: npm i @syntaxsmith/rosetta · 🌐 npmjs.com/package/@syntaxsmith/rosetta

Highlights

  • Pro supportrunConversation({ model: "gpt-5-5-pro" }) follows the bootstrap → WS second-leg pipeline and aggregates the live CoT until completion. Verified live (29s for trivial prompts).
  • Instant modelsgpt-5-3 and friends return in seconds via the same path.
  • Streaming — optional onChunk(delta) callback emits assistant tokens as they arrive.
  • Multi-turn — pass conversationId + parentMessageId, or use recall: "thread" for cross-call persistence.
  • Concurrency — each call spawns its own Chrome tab; ~0.8 parallelism factor on instant models.
  • Idle-timeout watchdog — long thinks stay alive as long as the WS sends heartbeats (default 90 s of silence to give up); no wall-clock cap kills active CoT.

CLI

npx -y @syntaxsmith/rosetta help

rosetta run "<prompt>"             instant
rosetta run --pro "<prompt>"       Pro thinking
rosetta run --stream "<prompt>"    live tokens to stdout
rosetta run --recall <name> "..."  cross-session named thread
rosetta threads / forget / probe   manage state, list models

MCP integration

Ships a second binary, rosetta-mcp, that speaks Model Context Protocol over stdio. Register in Claude Code, OpenAI Codex CLI, Cline, or any MCP-aware host:

claude mcp add rosetta -- npx -y @syntaxsmith/rosetta rosetta-mcp

The MCP consult tool ties one ChatGPT conversation to each MCP server process — successive calls in the same host session continue the same conversation by default. fresh: true resets it; recall: "<name>" routes to a disk-persisted cross-session thread.

Setup

You need Chrome / Chromium with --remote-debugging-port=9222 and a one-time chatgpt.com login. The README walks through Linux / macOS / Windows commands.

CI

GitHub Actions matrix passes on Ubuntu × macOS × Windows × Node 22.


Not affiliated with OpenAI. Use respectfully and within your account's terms of service.