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