From 21850d1ea3be6906cf84db7b26ae33276acf4314 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 8 Nov 2026 20:22:13 -0500 Subject: [PATCH] 0.11.0: version and release notes Search past trails, media moments, saved copies, how each page was reached, rename and delete trails, the check before sharing, Library media on the canvas and canvas depth. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_011V7Bv7WZ9Q92MZoNWYwevQ --- docs/05-changelog.md | 1 + docs/release-notes/v0.11.0.md | 82 +++++++++++++++++++++++++++++++++++ package-lock.json | 4 +- package.json | 2 +- 4 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 docs/release-notes/v0.11.0.md diff --git a/docs/05-changelog.md b/docs/05-changelog.md index 7eb2c30..44ccaa9 100644 --- a/docs/05-changelog.md +++ b/docs/05-changelog.md @@ -4,6 +4,7 @@ Newest first. Commit hashes refer to the git history inside the delivered zip fi | Date | Commit | Change | | --- | --- | --- | +| 2026-11-08 | (PR #74) | **0.11.0 prepared.** Version 0.11.0, release notes `release-notes/v0.11.0.md`: search past trails (B89), media moments (B88), saved copies (B87), how each page was reached (B83), rename and delete trails (B115), the check before sharing (B86), Library media on the canvas (B114), canvas depth (B113). Desktop (Electron) only. Full end-to-end suite run on the release commit. Not tagged until Sven has tried it. | | 2026-11-08 | (PR #73) | **B86: a check before sharing.** The share sheet now lists the contact details in what you share, for the trail file and for share links: email addresses and phone numbers in card titles and text, notes, questions and replies, group names, timeline titles and the note typed for the reader (Sven chose contact details only, not names or social posts). Each is ticked, with where it first appears ("Email jo@mill.example · Note: Miller: …, and 1 more place"). Unticking one leaves it out of what is shared: it shows as "[email left out]" or "[phone number left out]" everywhere it appears, in the preview and the saved file or link. The trail itself is not changed. Dates, times, years, ids and quantities are not taken for phone numbers. Trails stay private: nothing is shared unless you share it. Agents (MCP `get_research_session` and the session resource) now get an opened trail file with a first line saying it came from someone else and is untrusted data, not instructions. The red-team set (B58) gains `site/redteam/injected.trail.md` and part C of `18-redteam`: the file opens read only, agents get it marked untrusted, and Ask about this trail with a compromised model shows its answer as text with no attacker image or request. New `core/share-check.js` (no platform imports), channel `trail:share-check`, share options `leaveOut`. Tests: `test/share-check-demo.js` (`npm run test:share-check`, in `test:unit`, 6 checks), new `test/e2e/54-share-check.js` (10 checks, in CI), `18-redteam` (4 more checks). | | 2026-11-08 | (PR #71) | **B87: saved copies of trail pages.** Offered, never forced. **Save a Copy of This Page** (File menu, or right-click a page) and **Save a copy** on a selected page card (with no tab open, the page loads out of sight) save the page as it looks now as one MHTML file, named by its SHA-256, with its readable text beside it, on this computer (userData/copies). The page becomes a card if it wasn't. Saving again when the page's text hasn't changed keeps the one copy ("This page hasn't changed since its copy of 8 Nov 10:05."). **Keep copies** in a trail's … menu (off by default) saves a copy of each page that becomes a card in that trail. The card shows "Copy · 8 Nov 10:05" (and "· 2 copies" when there are more); clicking it opens the copy in a tab after checking its SHA-256, and a copy that changed on disk is not opened. Sign-in, account and payment pages (B66), private tabs and opened (read-only) trails get no copies. Sharing: trail files list each copy ("Copy: 8 Nov 2026 10:05 · SHA-256 …"); copies are sent only when **Saved copies of pages** is ticked in the share sheet, as files in a folder " copies" beside the trail file, linked from the file (doc 26). Opening such a file keeps each copy whose SHA-256 matches and marks one that doesn't as changed. Copy files no trail names are deleted at start-up, after deleted trails are purged. New `TrailStore.addCopy`, `copyHashes`, `setKeepCopies` (event `copied`), channels `trail:copy-save`, `trail:copy-open`, `trail:keep-copies`. Electron build only. Tests: `test/copies-demo.js` (`npm run test:copies`, in `test:unit`, 4 checks), new `test/e2e/53-saved-copies.js` (20 checks, in CI). | | 2026-11-07 | (PR #68) | **B88: media moments.** On a page with video or audio, ⌘⇧K (View → Save Moment: Start / End, or right-click a video) marks the start and playback goes on; pressing it again marks the end, saves the moment and pauses. With a loop set (B70), one press saves the loop's range. ⌘⇧J (Save the Last 30 Seconds) saves the 30 seconds up to now and pauses. A moment is a card next to its page's card (the page becomes a card if it wasn't), with a grey "moment from" line, the start and end, and the captions shown during it when the site had captions (text tracks, YouTube and Vimeo captions; up to 1,200 characters). On the card: click the times to change them ("41:12–42:30"), **Play** opens the page at the start and loops the range, and **Ask for ID** adds a question "ID at 41:12?" that the moment raises, for others to answer. The timeline shows "Moment 41:12–42:30 · title", Replay says "You saved a moment of “…”, 41:12 to 42:30.", trail files carry moment cards (doc 26), and search past trails (B89) finds moments by their captions or the word "moment". Private tabs and opened (read-only) trails save no moments. New `TrailStore.momentCard` and `momentTimes` (event `edited`), `momentScript` in `core/page-scripts.js`, `loopScript` op `range`, channels `tab:moment`, `trail:moment-play`, `trail:moment-times`, `trail:moment-id`. Electron build only. Also: the B62 row now says Mac signing is done and the passkey entitlement is waiting on Apple. Tests: `test/moment-demo.js` (`npm run test:moment`, in `test:unit`, 7 checks), new `test/e2e/52-media-moments.js` (17 checks, in CI). | diff --git a/docs/release-notes/v0.11.0.md b/docs/release-notes/v0.11.0.md new file mode 100644 index 0000000..ba04236 --- /dev/null +++ b/docs/release-notes/v0.11.0.md @@ -0,0 +1,82 @@ +NODE 0.11.0 is about finding things again and keeping a record of them. Search all your trails by what you remember, save moments from videos, keep copies of pages, and see how you reached each page. Thank you for testing. + +NODE updates itself on Windows, and on a Mac from 0.9.6 on. Copies of 0.9.5 or earlier on a Mac need this version downloaded by hand once. + +## What's new + +- **Search past trails by what you remember.** Type in the CommandBar (⌘L or ⌘T) or the canvas search bar, and matches from all your trails show under **In your trails**, with why each matched, the day and the trail. NODE understands: + - words in titles, sites, notes, questions and replies; + - times: "yesterday", "last Tuesday", "last week", "in October", "3 days ago"; + - order: "after the Discogs page", "before hydration"; + - kinds: "video", "podcast", "question", "note", "moment"; + - a trail: "in Rye breads". + + Pick a result to go to its card, or to its row in the timeline if it never became a card. This runs on your computer with no AI. +- **Media moments.** On a page with video or audio: + - ⌘⇧K marks the start and keeps playing; press it again to mark the end. NODE saves the moment and pauses. With a loop set, one press saves the loop. + - ⌘⇧J saves the last 30 seconds. + + Both are in the View menu and when you right-click a video. A moment is a card next to its page, with its start and end and the captions shown during it (when the site has captions). Click the times to change them. **Play** opens the page at the start and loops the moment. **Ask for ID** adds a question like "ID at 41:12?" for others to answer. +- **Saved copies of pages.** **Save a Copy of This Page** (File menu, or right-click a page), or **Save a copy** on a selected page card, saves the page as it looks now, on your computer. Each copy has a fingerprint (SHA-256) so NODE can tell if it was ever changed. The card shows "Copy · 8 Nov 10:05"; click it to open the copy. Turn on **Keep copies** in a trail's … menu to save a copy of each page that becomes a card. Sign-in, account and payment pages are never saved. +- **How you reached each page.** Page cards now show how you got there: "Link from reddit.com", "Search “levain”", "Typed address", "Suggested by NODE for “rye flour”", "Found by agent", or "Auto-played next" when a site moved to the next video by itself. NODE's and the site's picks are in violet. Replay and shared files say it too. +- **Rename and delete trails from the switcher.** Each trail in the switcher has a **…** button with **Rename** and **Delete…**. You can also double-click the trail's name, or press F2 in the menu, to rename. Delete asks first, closes the trail's tabs, and offers **Undo** for 10 seconds. +- **A check before sharing.** The share sheet lists email addresses and phone numbers in what you're about to share, for files and share links. Untick one to leave it out; it shows as "[email left out]". Your trail itself doesn't change. +- **Library media on the canvas.** Images, screenshots, videos and audio from your Library can go on the canvas: choose **Put on canvas**, or drag them out of the Library or from your computer. Videos and audio play on the card; double-click for a larger view. +- **Canvas depth.** The dot grid moves faster than the cards when you pan, for a sense of depth. With Reduce Motion on, it moves with the cards. + +## Sharing + +- When you share a trail file, saved copies of pages go only if you tick **Saved copies of pages**. They go in a folder named " copies" next to the file; send the file and the folder together. When someone opens the file, NODE checks each copy's fingerprint and marks any that changed. +- A trail file someone sent you opens read only. AI tools connected to NODE are now told its contents came from someone else and are not instructions. + +## Which file to download + +Scroll down to **Assets** and download one file: + +| Your computer | Download | +| --- | --- | +| Mac with an Apple chip (M1, M2, M3, M4 or later) | `NODE-0.11.0-mac-arm64.dmg` | +| Mac with an Intel processor | `NODE-0.11.0-mac-x64.dmg` | +| Windows | `NODE-0.11.0-win-x64.exe` | +| Linux | `NODE-0.11.0-linux-x86_64.AppImage` | + +Not sure which Mac you have? Click the Apple menu in the top-left corner and choose **About This Mac**. If the line "Chip" says Apple M1, M2, M3 or M4, download the Apple chip file. If it says "Processor" with Intel, download the Intel file. + +You can ignore the other files, including **Source code (zip)** and **Source code (tar.gz)**. They are for developers. + +## Installing on a Mac + +If you have 0.9.6 or later, NODE updates itself: when the update is ready it offers to restart. Otherwise: + +1. Open the downloaded `.dmg` file. +2. Drag **NODE** into the **Applications** folder, replacing the old one if you have it. +3. Open NODE from Applications. + +NODE is signed and checked by Apple, so it opens like any other app. + +## Installing on Windows + +1. If your browser warns about the download, choose **Keep**. +2. Open the `.exe` file. If you see "Windows protected your PC", click **More info**, then **Run anyway**. +3. Follow the installer. + +Windows copies of NODE check for updates and install them by themselves. + +## Installing on Linux + +Download the `.AppImage` file, make it executable (right-click → Properties → Allow executing, or `chmod +x`), and open it. + +## Known limits + +- The new features in this version are in the desktop app only, not yet in the phone app or the Chromium build. +- Captions in media moments come from what the site shows. On YouTube, turn captions on in the player first. +- Searching past trails doesn't search the text of saved copies yet. +- Share links (Create Link) still use the older trail format: they carry pages, threads and notes, not the canvas layout. To share the canvas, use **Save File**. +- Trail files from 0.9.x open in the preview as before, with **Open as New Trail** and **Merge**. Merging is not available for the new canvas files yet. +- Screenshots and voice notes are not included when you share a trail. +- On a Mac, passkeys (Touch ID / iCloud Keychain sign-in) are turned off; sites offer password sign-in instead. +- Signing in to Google accounts opens in a separate Chrome-based window. + +## Reporting a problem + +In NODE's menu bar, choose **Help → Report a Problem…**. NODE copies its diagnostics and opens a short bug form on GitHub. Paste them where the form asks, with what you were doing when it went wrong. diff --git a/package-lock.json b/package-lock.json index ac9beb2..5c83958 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "scout", - "version": "0.10.0", + "version": "0.11.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "scout", - "version": "0.10.0", + "version": "0.11.0", "license": "MIT", "dependencies": { "@ghostery/adblocker-electron": "2.19", diff --git a/package.json b/package.json index 314015b..ce8a4ae 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "scout", - "version": "0.10.0", + "version": "0.11.0", "description": "Research browser that suggests the next pages to read, plays media across tabs, and keeps a research trail.", "main": "main.js", "author": "Sven Manzanarez",