From b32614bf91cd25093d8c163bf56e4f021a8f6155 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 9 Nov 2026 13:12:21 -0500 Subject: [PATCH] The share server's real address: node-share.sven-f70.workers.dev Cloudflare named the account's workers.dev subdomain sven-f70. NODE (share links and the active count) and the website's /t/ pages now use it. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_011V7Bv7WZ9Q92MZoNWYwevQ --- core/share-link.js | 4 +++- docs/05-changelog.md | 1 + site/vercel.json | 2 +- worker/README.md | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/core/share-link.js b/core/share-link.js index bc332ef..b69554f 100644 --- a/core/share-link.js +++ b/core/share-link.js @@ -11,7 +11,9 @@ const MAGIC = Buffer.from("NT1"); const MAX_BYTES = 1024 * 1024; // Links are on the NODE website, which passes /t/… to the share server. const LINK_BASE = "https://noderesearch.app"; -const API_BASE = process.env.NODE_SHARE_API || "https://node-share.westerncasa.workers.dev"; +// The share Worker on the Cloudflare account's workers.dev name (sven-f70, chosen +// by Cloudflare on 2026-11-09). Change it here and in site/vercel.json together. +const API_BASE = process.env.NODE_SHARE_API || "https://node-share.sven-f70.workers.dev"; const b64url = (buf) => Buffer.from(buf).toString("base64").replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, ""); const fromB64url = (s) => Buffer.from(s.replace(/-/g, "+").replace(/_/g, "/"), "base64"); diff --git a/docs/05-changelog.md b/docs/05-changelog.md index 3dfd32a..303ca51 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-09 | (PR #76) | **The share server's real address.** The Cloudflare account was set up on 2026-11-09 and Cloudflare named its workers.dev subdomain `sven-f70`, so the share Worker is `node-share.sven-f70.workers.dev`, not `node-share.westerncasa.workers.dev`. Changed in `core/share-link.js` (NODE's share links and the active count, B116), `site/vercel.json` (the website's `/t/…` pages) and `worker/README.md`. Before this, the Worker had never been deployed (the deploy secrets were not set), so share links stayed hidden in NODE and no counts were lost. | | 2026-11-09 | (PR #75) | **B116: automatic active count.** Once a day while NODE is in use (window focused, input in the last two minutes), installed copies send one request to the share Worker with NODE's version, the operating system (mac, windows, linux) and two marks: first count this week, first this month. No id, pages, addresses or keywords; Node's fetch, no cookies. Weekly and monthly users are counted from the marks, so no id is needed. On by default (Sven, 2026-11-05); the welcome screen says so, and Settings → Help has **Send one anonymous count a day** with what it sends. NODE keeps only the day, week and month of the last count it sent (`userData/active-count.json`); a failed send is tried again later. The Worker (`POST /api/active`) checks the shape, stores one empty R2 object named `a/////` (no address; the address is used only for a 5-a-minute limit in memory), and an R2 rule deletes counts after 400 days. `GET /api/active?days=30` returns counts per day (by OS and version), ISO week and month, with the `NODE_STATS_TOKEN` repository secret (set as the Worker secret `STATS_TOKEN` on deploy). README "What NODE sends" and the 0.11.0 release notes updated. Tests: `test/active-count-demo.js` (`npm run test:active`, in `test:unit`), 4 more checks in `test/share-worker-demo.js`, new `test/e2e/55-active-count.js` (11 checks, in CI). | | 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). | diff --git a/site/vercel.json b/site/vercel.json index 9f1c4a2..085fa35 100644 --- a/site/vercel.json +++ b/site/vercel.json @@ -4,7 +4,7 @@ "rewrites": [ { "source": "/t/:id", - "destination": "https://node-share.westerncasa.workers.dev/t/:id" + "destination": "https://node-share.sven-f70.workers.dev/t/:id" }, { "source": "/fun", diff --git a/worker/README.md b/worker/README.md index adef20c..7df1ea6 100644 --- a/worker/README.md +++ b/worker/README.md @@ -29,7 +29,7 @@ The first run creates the `node-share-trails` bucket and the 30-day rule. Each r To read the active counts, add a third repository secret, `NODE_STATS_TOKEN` (any long random text), and run the workflow. Then: ``` -curl -H "Authorization: Bearer " https://node-share.westerncasa.workers.dev/api/active?days=30 +curl -H "Authorization: Bearer " https://node-share.sven-f70.workers.dev/api/active?days=30 ``` ## Testing