Releases: git-scarrow/notion-forge
v0.5.0 — Fix MAIN world injection
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 actualwindow.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 aweb_accessible_resource. -
Page scoping (from v0.4.2): passes current page ID from URL as fallback when thread
parent_iddoesn't match. -
Markdown export filter (from v0.4.2): was still using
threadIdinstead ofpageId.
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
What's fixed
- Conversations not appearing: Thread
parent_idfrom 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:
exportMarkdownwas still filtering bythreadIdinstead ofpageId(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
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(threadparent_id) on historical entries,location.pathnamematch on live entries - Filter popup list and exports on
pageId, notthreadId
Install
Download the .xpi below → Firefox about:addons → gear ⚙️ → Install Add-on From File...
v0.4.0
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
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
syncRecordValuesSpaceInitialrecords - 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)