Skip to content

fix(chatgpt): support copying conversations inside projects - #12

Open
JGSnapp wants to merge 1 commit into
nicepkg:mainfrom
JGSnapp:fix/chatgpt-project-conversations
Open

JGSnapp wants to merge 1 commit into
nicepkg:mainfrom
JGSnapp:fix/chatgpt-project-conversations

Conversation

@JGSnapp

@JGSnapp JGSnapp commented Sep 14, 2026

Copy link
Copy Markdown

Description

Copying a ChatGPT conversation that belongs to a Project failed with a CtxPort · Copy failed — Unknown error toast.

Project conversations live at https://chatgpt.com/g/g-p-<project>/c/<id>, but CONVERSATION_PATTERN only matched /c/<id> directly after the host, so extract() threw E-PARSE-001 ("Not a ChatGPT conversation page").

Changes:

  • core-plugins: the ChatGPT conversation pattern now accepts an optional /g/<project>/ prefix. Regular /c/<id> URLs are unaffected.
  • browser-extension: useCopyConversation showed "Unknown error" for every plugin failure, because plugins throw plain AppError objects (from createAppError), not Error instances. The toast now shows the AppError detail/message.
  • Tests: added chatgpt/__tests__/plugin.test.ts, which covers a regular conversation, a project conversation, and a non-conversation project page.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation (not needed)
  • My changes generate no new warnings
  • Any dependent changes have been merged and published (none)

Testing

  • vitest run in packages/core-plugins: 14/14 passed
  • pnpm typecheck in apps/browser-extension: passed
  • Manually: built the Chrome MV3 extension and copied a conversation inside a ChatGPT project successfully

🤖 Generated with Claude Code

Conversations that belong to a ChatGPT project live under
/g/<project>/c/<id>, which the conversation URL pattern did not match,
so copying failed with "Not a ChatGPT conversation page".

Also surface AppError details in the copy toast instead of
"Unknown error", since plugins throw plain AppError objects.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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