@syke1/mcp-server 1.3.15 → 1.3.17

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.
@@ -237,7 +237,7 @@ async function loadGraph() {
237
237
  .nodeColor(node => getNodeColor(node))
238
238
  .nodeVal(node => {
239
239
  if (!isNodeVisible(node)) return 0.001;
240
- const base = Math.max(8, Math.sqrt(node.lineCount) * 0.8);
240
+ const base = Math.max(30, Math.sqrt(node.lineCount) * 3);
241
241
  const hb = heartbeatNodes.get(node.id);
242
242
  if (hb) {
243
243
  const elapsed = Date.now() - hb.startTime;
@@ -272,31 +272,31 @@ async function loadGraph() {
272
272
  })
273
273
 
274
274
  .linkColor(link => getLinkColor(link))
275
- .linkWidth(link => highlightLinks.has(link) ? 1.2 : 0.4)
276
- .linkOpacity(0.8)
275
+ .linkWidth(link => highlightLinks.has(link) ? 4.0 : 1.5)
276
+ .linkOpacity(0.9)
277
277
  .linkVisibility(link => isLinkVisible(link))
278
278
  .linkCurvature(link => 0.12 + (hc(getSrcId(link) + getTgtId(link)) % 20) * 0.01)
279
279
  .linkCurveRotation(link => (hc(getTgtId(link) + getSrcId(link)) % 628) / 100)
280
280
 
281
281
  .linkDirectionalParticles(link => {
282
- if (highlightLinks.has(link)) return 12;
282
+ if (highlightLinks.has(link)) return 14;
283
283
  const isActive = modifyingNodes.size > 0 || heartbeatNodes.size > 0;
284
- return isActive ? 3 : 4;
284
+ return isActive ? 4 : 6;
285
285
  })
286
286
  .linkDirectionalParticleWidth(link => {
287
- if (highlightLinks.has(link)) return 0.8;
287
+ if (highlightLinks.has(link)) return 3.0;
288
288
  const isActive = modifyingNodes.size > 0 || heartbeatNodes.size > 0;
289
- return isActive ? 0.3 : 0.4;
289
+ return isActive ? 1.5 : 2.0;
290
290
  })
291
- .linkDirectionalParticleSpeed(link => highlightLinks.has(link) ? 0.012 : 0.005)
291
+ .linkDirectionalParticleSpeed(link => highlightLinks.has(link) ? 0.012 : 0.006)
292
292
  .linkDirectionalParticleColor(link => {
293
293
  if (highlightLinks.has(link)) return "#ff2d55";
294
294
  const isActive = modifyingNodes.size > 0 || heartbeatNodes.size > 0;
295
- if (isActive) return "rgba(150,180,220,0.3)";
295
+ if (isActive) return "rgba(150,180,220,0.6)";
296
296
  return LAYER_HEX[srcLayer(link)] || "#ff69b4";
297
297
  })
298
298
 
299
- .linkDirectionalArrowLength(2)
299
+ .linkDirectionalArrowLength(4)
300
300
  .linkDirectionalArrowRelPos(1)
301
301
  .linkDirectionalArrowColor(link => {
302
302
  if (highlightLinks.has(link)) return "#ff2d55";
@@ -2719,17 +2719,29 @@ async function loadProjectInfo() {
2719
2719
  }
2720
2720
  hideServerOffline();
2721
2721
  updateLicenseBadge(info.plan, info.expiresAt);
2722
- // Bottom bar: version + update date
2723
- const verEl = document.getElementById("bottom-version");
2724
- const updEl = document.getElementById("bottom-updated");
2725
- if (verEl && info.sykeVersion) verEl.textContent = "SYKE v" + info.sykeVersion;
2726
- if (updEl) updEl.textContent = "Updated: " + new Date().toISOString().slice(0, 10);
2722
+ // Bottom bar: fetch version from npm registry
2723
+ updateBottomBar(info.sykeVersion);
2727
2724
  } catch (e) {
2728
2725
  console.warn("[SYKE] Failed to load project info:", e);
2729
2726
  // Don't immediately show offline — let health check handle it
2730
2727
  }
2731
2728
  }
2732
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
+
2733
2745
  let browsePath = null; // current path in folder browser
2734
2746
 
2735
2747
  async function browseDir(dirPath) {
@@ -298,8 +298,7 @@
298
298
 
299
299
  <!-- Bottom status bar -->
300
300
  <div id="bottom-bar">
301
- <span id="bottom-version">SYKE v---</span>
302
- <span id="bottom-updated">Updated: ---</span>
301
+ <span id="bottom-info">SYKE v--- · ---</span>
303
302
  </div>
304
303
 
305
304
  <script src="app.js"></script>
@@ -2333,12 +2333,12 @@ main {
2333
2333
  border-top: 1px solid rgba(0, 212, 255, 0.1);
2334
2334
  display: flex;
2335
2335
  align-items: center;
2336
- justify-content: space-between;
2336
+ justify-content: center;
2337
2337
  padding: 0 16px;
2338
2338
  font-family: 'JetBrains Mono', monospace;
2339
2339
  font-size: 11px;
2340
- color: rgba(160, 180, 210, 0.6);
2340
+ color: rgba(160, 180, 210, 0.5);
2341
+ letter-spacing: 0.5px;
2341
2342
  z-index: 50;
2342
2343
  backdrop-filter: blur(8px);
2343
2344
  }
2344
- #bottom-bar span { letter-spacing: 0.5px; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syke1/mcp-server",
3
- "version": "1.3.15",
3
+ "version": "1.3.17",
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",