seo-intel 1.2.3 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.2.4 (2026-03-31)
4
+
5
+ ### Fixes
6
+ - Fix favicon serving — explicit `Content-Type: image/png` header prevents browser showing cached favicon from crawled sites
7
+ - Favicon link tag now cache-busts on dashboard regeneration
8
+
3
9
  ## 1.2.3 (2026-03-28)
4
10
 
5
11
  ### Dashboard
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "seo-intel",
3
- "version": "1.2.3",
3
+ "version": "1.2.4",
4
4
  "description": "Local Ahrefs-style SEO competitor intelligence. Crawl → SQLite → cloud analysis.",
5
5
  "type": "module",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -208,7 +208,7 @@ function buildHtmlTemplate(data, opts = {}) {
208
208
  <meta charset="UTF-8">
209
209
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
210
210
  <title>SEO Intel ${pro ? 'Dashboard' : 'Preview'} — ${project.toUpperCase()}</title>
211
- <link rel="icon" type="image/png" href="/favicon.png">
211
+ <link rel="icon" type="image/png" href="/favicon.png?v=${Date.now()}">
212
212
  <link rel="preconnect" href="https://fonts.googleapis.com">
213
213
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
214
214
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Syne:wght@600;700;800&display=swap" rel="stylesheet">
package/server.js CHANGED
@@ -678,7 +678,11 @@ async function handleRequest(req, res) {
678
678
  if (req.method === 'GET' && (path === '/favicon.ico' || path === '/favicon.png')) {
679
679
  const faviconPath = join(__dirname, 'seo-intel.png');
680
680
  if (existsSync(faviconPath)) {
681
- serveFile(res, faviconPath);
681
+ res.writeHead(200, {
682
+ 'Content-Type': 'image/png',
683
+ 'Cache-Control': 'public, max-age=3600',
684
+ });
685
+ res.end(readFileSync(faviconPath));
682
686
  } else {
683
687
  res.writeHead(204); res.end();
684
688
  }