Skip to content

Releases: git-scarrow/notion-forge

v0.5.0 — Fix MAIN world injection

01 Mar 19:46

Choose a tag to compare

What's fixed

  • Extension wasn't capturing anything: Firefox's manifest "world": "MAIN" for content scripts doesn't reliably inject into the page context across all Firefox versions and install methods. The interceptor was running in the isolated world, unable to patch Notion's actual window.fetch.

    Fix: bridge.js now injects interceptor.js into the MAIN world via a <script> tag — the proven cross-version approach. interceptor.js is declared as a web_accessible_resource.

  • Page scoping (from v0.4.2): passes current page ID from URL as fallback when thread parent_id doesn't match.

  • Markdown export filter (from v0.4.2): was still using threadId instead of pageId.

Install

Download the .xpi below → Firefox about:addons → gear ⚙️ → Install Add-on From File...

After installing, clear old data (popup → Clear) and re-visit your Notion AI chat pages.

v0.4.2 — Fix conversation capture + page scoping

01 Mar 19:29

Choose a tag to compare

What's fixed

  • Conversations not appearing: Thread parent_id from Notion sync records doesn't reliably contain the URL page ID. Now passes the current page ID from the URL as a fallback, so conversations are correctly associated with pages.
  • Blank markdown exports: exportMarkdown was still filtering by threadId instead of pageId (missed in v0.4.1 fix). Now consistent with JSON export.

Install

Download the .xpi below → Firefox about:addons → gear ⚙️ → Install Add-on From File...

Important: If upgrading from v0.4.0/v0.4.1, clear captured data first (popup → Clear) and re-visit your Notion AI chat pages to re-capture with correct page IDs.

v0.4.1 — Fix page-scoping filter

01 Mar 19:14

Choose a tag to compare

What's fixed

  • Page filter bug: v0.4.0 accidentally compared the thread's internal UUID to the page ID from the URL — these are different identifiers. This caused the popup and exports to show nothing on pages with historical conversations. Now stores and compares the thread's parent_id (which is the owning page ID), matching the URL correctly.

Changes since v0.4.0

  • Store pageId (thread parent_id) on historical entries, location.pathname match on live entries
  • Filter popup list and exports on pageId, not threadId

Install

Download the .xpi below → Firefox about:addons → gear ⚙️ → Install Add-on From File...

v0.4.0

01 Mar 18:47

Choose a tag to compare

Install

Firefox extension: Download b15a32879c164cfbb0d7-0.4.0.xpi below, then in Firefox: about:addons → gear ⚙️ → Install Add-on From File...

Tampermonkey: Install from Greasy Fork

What's new in 0.4.0

  • Popup and exports now scoped to the current Notion page only
  • Deduplicates live and historical captures of the same conversation
  • Merges consecutive assistant turns (tool-call steps collapse into one)
  • Auto-titles untitled threads from first user message
  • Pretty export filenames based on conversation title
  • CI lint badge on README

v0.3.2

01 Mar 06:22

Choose a tag to compare

Install

Firefox extension: Download notion-ai-scraper-0.3.2.xpi below, then in Firefox: about:addons → gear ⚙️ → Install Add-on From File...

Tampermonkey: Install from Greasy Fork

What's new in 0.3.x

  • Full historical chat capture from syncRecordValuesSpaceInitial records
  • Live capture of streaming NDJSON responses with user messages
  • Tampermonkey userscript (@grant unsafeWindow) for non-extension installs
  • Resolves Notion inline page/user/agent mentions ([page:id])
  • Filters 0-turn conversations from exports
  • Custom icon, signed for permanent Firefox installation
  • Popup uses safe DOM methods (no innerHTML)

Notes

  • Clear Notion's IndexedDB cache to force re-fetch of cached historical messages
  • in assistant text cannot be resolved (no annotation metadata in streamed responses)