@syke1/mcp-server 1.3.14 → 1.3.16

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.
@@ -2719,12 +2719,29 @@ async function loadProjectInfo() {
2719
2719
  }
2720
2720
  hideServerOffline();
2721
2721
  updateLicenseBadge(info.plan, info.expiresAt);
2722
+ // Bottom bar: fetch version from npm registry
2723
+ updateBottomBar(info.sykeVersion);
2722
2724
  } catch (e) {
2723
2725
  console.warn("[SYKE] Failed to load project info:", e);
2724
2726
  // Don't immediately show offline — let health check handle it
2725
2727
  }
2726
2728
  }
2727
2729
 
2730
+ async function updateBottomBar(apiVersion) {
2731
+ const el = document.getElementById("bottom-info");
2732
+ if (!el) return;
2733
+ let version = apiVersion;
2734
+ if (!version) {
2735
+ try {
2736
+ const r = await fetch("https://registry.npmjs.org/@syke1/mcp-server/latest");
2737
+ const pkg = await r.json();
2738
+ version = pkg.version;
2739
+ } catch { version = "?"; }
2740
+ }
2741
+ const today = new Date().toISOString().slice(0, 10);
2742
+ el.textContent = "SYKE v" + version + " · Latest update " + today;
2743
+ }
2744
+
2728
2745
  let browsePath = null; // current path in folder browser
2729
2746
 
2730
2747
  async function browseDir(dirPath) {
@@ -296,6 +296,11 @@
296
296
  </div>
297
297
  </div>
298
298
 
299
+ <!-- Bottom status bar -->
300
+ <div id="bottom-bar">
301
+ <span id="bottom-info">SYKE v--- · ---</span>
302
+ </div>
303
+
299
304
  <script src="app.js"></script>
300
305
  </body>
301
306
  </html>
@@ -2321,3 +2321,24 @@ main {
2321
2321
  font-size: 14px;
2322
2322
  opacity: 0.5;
2323
2323
  }
2324
+
2325
+ /* ── Bottom status bar ── */
2326
+ #bottom-bar {
2327
+ position: fixed;
2328
+ bottom: 0;
2329
+ left: 0;
2330
+ right: 380px;
2331
+ height: 28px;
2332
+ background: rgba(5, 10, 24, 0.85);
2333
+ border-top: 1px solid rgba(0, 212, 255, 0.1);
2334
+ display: flex;
2335
+ align-items: center;
2336
+ justify-content: center;
2337
+ padding: 0 16px;
2338
+ font-family: 'JetBrains Mono', monospace;
2339
+ font-size: 11px;
2340
+ color: rgba(160, 180, 210, 0.5);
2341
+ letter-spacing: 0.5px;
2342
+ z-index: 50;
2343
+ backdrop-filter: blur(8px);
2344
+ }
@@ -732,6 +732,13 @@ function createWebServer(getGraphFn, initialFileCache, switchProjectFn, getProje
732
732
  for (const deps of graph.forward.values())
733
733
  edgeCount += deps.length;
734
734
  const license = getLicenseStatus?.();
735
+ // Read SYKE version from package.json
736
+ let sykeVersion = "unknown";
737
+ try {
738
+ const pkg = JSON.parse(fs.readFileSync(path.join(__dirname, "..", "package.json"), "utf-8"));
739
+ sykeVersion = pkg.version || "unknown";
740
+ }
741
+ catch { }
735
742
  res.json({
736
743
  projectRoot: getProjectRoot ? getProjectRoot() : graph.projectRoot,
737
744
  packageName: getPackageName ? getPackageName() : "",
@@ -741,6 +748,7 @@ function createWebServer(getGraphFn, initialFileCache, switchProjectFn, getProje
741
748
  plan: license?.plan || "free",
742
749
  expiresAt: license?.expiresAt || null,
743
750
  freeFileLimit: 50,
751
+ sykeVersion,
744
752
  });
745
753
  });
746
754
  // GET /api/browse-dirs — List subdirectories for folder browser
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syke1/mcp-server",
3
- "version": "1.3.14",
3
+ "version": "1.3.16",
4
4
  "mcpName": "io.github.khalomsky/syke",
5
5
  "description": "AI code impact analysis MCP server — dependency graphs, cascade detection, and a mandatory build gate for AI coding agents",
6
6
  "main": "dist/index.js",