diff --git a/catalog/index.html b/catalog/index.html index 6afa345..7d20915 100644 --- a/catalog/index.html +++ b/catalog/index.html @@ -676,7 +676,7 @@

SyncPad

diff --git a/categories/apis/index.html b/categories/apis/index.html index 4175a4c..b12e7da 100644 --- a/categories/apis/index.html +++ b/categories/apis/index.html @@ -175,7 +175,7 @@

Anthropic API

diff --git a/categories/clis/index.html b/categories/clis/index.html index 81b6211..aaabad1 100644 --- a/categories/clis/index.html +++ b/categories/clis/index.html @@ -175,7 +175,7 @@

Wrangler

diff --git a/categories/desktop-apps/index.html b/categories/desktop-apps/index.html index c98a026..4df671e 100644 --- a/categories/desktop-apps/index.html +++ b/categories/desktop-apps/index.html @@ -141,7 +141,7 @@

SyncPad

diff --git a/categories/index.html b/categories/index.html index c9acbbd..64bb4cf 100644 --- a/categories/index.html +++ b/categories/index.html @@ -228,7 +228,7 @@

Desktop Apps

diff --git a/categories/mcps/index.html b/categories/mcps/index.html index f862d74..30e54c8 100644 --- a/categories/mcps/index.html +++ b/categories/mcps/index.html @@ -175,7 +175,7 @@

Playwright MCP

diff --git a/categories/web-apps/index.html b/categories/web-apps/index.html index cb3bc04..c35f706 100644 --- a/categories/web-apps/index.html +++ b/categories/web-apps/index.html @@ -209,7 +209,7 @@

Strudel Studio

diff --git a/categories/web-services/index.html b/categories/web-services/index.html index cf70f1a..15036a9 100644 --- a/categories/web-services/index.html +++ b/categories/web-services/index.html @@ -175,7 +175,7 @@

Make

diff --git a/categories/websites/index.html b/categories/websites/index.html index 999627d..1c17ed0 100644 --- a/categories/websites/index.html +++ b/categories/websites/index.html @@ -175,7 +175,7 @@

Hugging Face

diff --git a/collections/index.html b/collections/index.html index ae64571..c24ecb3 100644 --- a/collections/index.html +++ b/collections/index.html @@ -175,7 +175,7 @@

From the Stack Scout Lab

diff --git a/data/categories-manifest.json b/data/categories-manifest.json index 78826b4..0e2dc9c 100644 --- a/data/categories-manifest.json +++ b/data/categories-manifest.json @@ -1,7 +1,7 @@ { "title": "Stack Scout // Categories", - "generatedAt": "2026-06-04", - "updatedAt": "2026-06-04", + "generatedAt": "2026-06-06", + "updatedAt": "2026-06-06", "categories": [ { "slug": "websites", diff --git a/data/collections-manifest.json b/data/collections-manifest.json index c6f8013..871d976 100644 --- a/data/collections-manifest.json +++ b/data/collections-manifest.json @@ -1,7 +1,7 @@ { "title": "Stack Scout // Collections", - "generatedAt": "2026-06-04", - "updatedAt": "2026-06-04", + "generatedAt": "2026-06-06", + "updatedAt": "2026-06-06", "collections": [ { "slug": "creator-stack", diff --git a/data/methodology-manifest.json b/data/methodology-manifest.json index f57652d..0f23911 100644 --- a/data/methodology-manifest.json +++ b/data/methodology-manifest.json @@ -1,7 +1,7 @@ { "title": "Stack Scout // Methodology", - "generatedAt": "2026-06-04", - "updatedAt": "2026-06-04", + "generatedAt": "2026-06-06", + "updatedAt": "2026-06-06", "thesis": "Stack Scout is a public guide, not a benchmark lab. We badge selectively, update from official sources where possible, and avoid pretending every fast-moving tool deserves a fixed numeric score.", "principles": [ { diff --git a/data/page-registry.json b/data/page-registry.json index 33a29ae..b3cacce 100644 --- a/data/page-registry.json +++ b/data/page-registry.json @@ -1,6 +1,6 @@ { "title": "Stack Scout // Page Registry", - "generatedAt": "2026-06-04", + "generatedAt": "2026-06-06", "pages": [ { "key": "home", diff --git a/data/radar-manifest.json b/data/radar-manifest.json index 7d7a77b..29ddbed 100644 --- a/data/radar-manifest.json +++ b/data/radar-manifest.json @@ -1,7 +1,7 @@ { "title": "Stack Scout // Radar", - "generatedAt": "2026-06-04", - "updatedAt": "2026-06-04", + "generatedAt": "2026-06-06", + "updatedAt": "2026-06-06", "items": [ { "title": "Azure MCP Server", diff --git a/data/tools-manifest.json b/data/tools-manifest.json index dee2917..8074788 100644 --- a/data/tools-manifest.json +++ b/data/tools-manifest.json @@ -1,7 +1,7 @@ { "title": "Stack Scout // Tools Manifest", - "generatedAt": "2026-06-04", - "updatedAt": "2026-06-04", + "generatedAt": "2026-06-06", + "updatedAt": "2026-06-06", "summary": "Public-safe catalog for Stack Scout.", "counts": { "total": 14, diff --git a/data/updates-manifest.json b/data/updates-manifest.json index 779cf1b..21ac358 100644 --- a/data/updates-manifest.json +++ b/data/updates-manifest.json @@ -1,7 +1,7 @@ { "title": "Stack Scout // Updates", - "generatedAt": "2026-06-04", - "updatedAt": "2026-06-04", + "generatedAt": "2026-06-06", + "updatedAt": "2026-06-06", "summary": "Public-safe activity stream seeded from official or first-party sources.", "items": [ { diff --git a/index.html b/index.html index ec7781b..7805e61 100644 --- a/index.html +++ b/index.html @@ -833,7 +833,7 @@

From the Stack Scout Lab

diff --git a/method/index.html b/method/index.html index aa83e0d..6a0e17f 100644 --- a/method/index.html +++ b/method/index.html @@ -201,7 +201,7 @@

Verdict language

diff --git a/radar/index.html b/radar/index.html index 4bc907f..cbc054e 100644 --- a/radar/index.html +++ b/radar/index.html @@ -164,7 +164,7 @@

GitHub skills ecosystem

diff --git a/scripts/build-stackscout.js b/scripts/build-stackscout.js index d390a74..1296d98 100644 --- a/scripts/build-stackscout.js +++ b/scripts/build-stackscout.js @@ -1273,6 +1273,21 @@ ${routes.map((route) => ` ${PUBLIC_BASE_URL}${route}`).jo ` } +function updateServiceWorkerCacheName() { + const serviceWorkerPath = 'service-worker.js' + const current = fs.readFileSync(path.join(ROOT_DIR, serviceWorkerPath), 'utf8') + const cacheNamePattern = /const CACHE_NAME = ['"]stackscout-\d{4}-\d{2}-\d{2}['"]/ + + if (!cacheNamePattern.test(current)) { + throw new Error('service-worker.js cache name was not updated; expected stackscout-YYYY-MM-DD declaration.') + } + + const next = current.replace(cacheNamePattern, `const CACHE_NAME = 'stackscout-${GENERATED_AT}'`) + if (next !== current) { + writeFile(serviceWorkerPath, next) + } +} + function main() { const privatePreviewExport = resolvePrivatePreviewExportPath() const site = readJson('site-source.json') @@ -1333,6 +1348,7 @@ function main() { ] writeFile('sitemap.xml', buildSitemap(sitemapRoutes)) + updateServiceWorkerCacheName() console.log( `Stack Scout build complete. Generated ${tools.length} tool pages, ${categories.length} category pages, and ${updates.length} updates.`, ) diff --git a/scripts/verify-launch-safety.js b/scripts/verify-launch-safety.js index 282dedd..e7a3b97 100644 --- a/scripts/verify-launch-safety.js +++ b/scripts/verify-launch-safety.js @@ -45,9 +45,10 @@ const REQUIRED_PUBLIC_FILES = [ ] const TEXT_EXTENSIONS = new Set(['.css', '.html', '.js', '.json', '.svg', '.txt', '.xml']) const PRIVATE_PATTERNS = [ - { label: 'Windows drive path', pattern: /\b[A-Z]:[\\/][^\s"'<>)]*/i }, - { label: 'UNC path', pattern: /\\\\[A-Za-z0-9._-]+[\\/][^\s"'<>)]*/i }, - { label: 'local-only surface marker', pattern: /\b(?:tools-hub-local|LOCAL-ONLY|_local)\b/i }, + { label: 'Kol Windows user path', pattern: /\b[A-Z]:[\\/]Users[\\/](?:koltregaskes|kolin)[\\/][^\s"'<>)]*/i }, + { label: 'W drive estate path', pattern: /\bW:[\\/][^\s"'<>)]*/i }, + { label: 'estate UNC path', pattern: /\\\\(?:\?\\)?(?:nas_storage_1|MINI-PC|localhost|127\.0\.0\.1)[\\/][^\s"'<>)]*/i }, + { label: 'local-only surface marker', pattern: /\b(?:tools-hub-local|LOCAL-ONLY|_local)\b/ }, { label: 'private operations wording', pattern: /\b(?:manager inbox|review evidence|session state)\b/i }, ] const REQUIRED_GITIGNORE_PATTERNS = ['.env', '.env.*', '*.local.md', '.local/', 'local-hub/'] diff --git a/service-worker.js b/service-worker.js index 9ff0fb2..65ca957 100644 --- a/service-worker.js +++ b/service-worker.js @@ -1,4 +1,4 @@ -const CACHE_NAME = 'stackscout-2026-06-04' +const CACHE_NAME = 'stackscout-2026-06-06' const APP_SHELL = [ '', 'index.html', diff --git a/tools/anthropic-api/index.html b/tools/anthropic-api/index.html index 9274b4a..de44888 100644 --- a/tools/anthropic-api/index.html +++ b/tools/anthropic-api/index.html @@ -311,7 +311,7 @@

n8n

diff --git a/tools/canvas-planner/index.html b/tools/canvas-planner/index.html index a333ebe..d247d4c 100644 --- a/tools/canvas-planner/index.html +++ b/tools/canvas-planner/index.html @@ -277,7 +277,7 @@

SyncPad

diff --git a/tools/gh-cli/index.html b/tools/gh-cli/index.html index 3206296..f810be3 100644 --- a/tools/gh-cli/index.html +++ b/tools/gh-cli/index.html @@ -277,7 +277,7 @@

Wrangler

diff --git a/tools/github-mcp-server/index.html b/tools/github-mcp-server/index.html index cedcfb4..34f46cc 100644 --- a/tools/github-mcp-server/index.html +++ b/tools/github-mcp-server/index.html @@ -311,7 +311,7 @@

Wrangler

diff --git a/tools/hugging-face/index.html b/tools/hugging-face/index.html index 8e6dee2..437555c 100644 --- a/tools/hugging-face/index.html +++ b/tools/hugging-face/index.html @@ -311,7 +311,7 @@

GitHub MCP Server

diff --git a/tools/make/index.html b/tools/make/index.html index cb9981e..157e8cc 100644 --- a/tools/make/index.html +++ b/tools/make/index.html @@ -311,7 +311,7 @@

Anthropic API

diff --git a/tools/n8n/index.html b/tools/n8n/index.html index 2b209f0..e546569 100644 --- a/tools/n8n/index.html +++ b/tools/n8n/index.html @@ -311,7 +311,7 @@

Anthropic API

diff --git a/tools/openai-api/index.html b/tools/openai-api/index.html index b5b70ae..b717fbb 100644 --- a/tools/openai-api/index.html +++ b/tools/openai-api/index.html @@ -345,7 +345,7 @@

Playwright MCP

diff --git a/tools/perplexity/index.html b/tools/perplexity/index.html index 226bd85..cc49f23 100644 --- a/tools/perplexity/index.html +++ b/tools/perplexity/index.html @@ -277,7 +277,7 @@

OpenAI API

diff --git a/tools/playwright-mcp/index.html b/tools/playwright-mcp/index.html index d2b6b07..59e65bd 100644 --- a/tools/playwright-mcp/index.html +++ b/tools/playwright-mcp/index.html @@ -311,7 +311,7 @@

Anthropic API

diff --git a/tools/signal-stack/index.html b/tools/signal-stack/index.html index df9fb37..546b067 100644 --- a/tools/signal-stack/index.html +++ b/tools/signal-stack/index.html @@ -255,7 +255,7 @@

Strudel Studio

diff --git a/tools/strudel-studio/index.html b/tools/strudel-studio/index.html index dbd10d1..0d7dbc5 100644 --- a/tools/strudel-studio/index.html +++ b/tools/strudel-studio/index.html @@ -277,7 +277,7 @@

OpenAI API

diff --git a/tools/syncpad/index.html b/tools/syncpad/index.html index a5b9964..741d63b 100644 --- a/tools/syncpad/index.html +++ b/tools/syncpad/index.html @@ -221,7 +221,7 @@

Canvas Planner

diff --git a/tools/wrangler/index.html b/tools/wrangler/index.html index 2bf1dc5..32cd6f1 100644 --- a/tools/wrangler/index.html +++ b/tools/wrangler/index.html @@ -277,7 +277,7 @@

Playwright MCP

diff --git a/updates/index.html b/updates/index.html index a824e2d..63d8716 100644 --- a/updates/index.html +++ b/updates/index.html @@ -364,7 +364,7 @@

Wrangler 4.58.0 improved command grouping and auth ergonomics