@trusty-squire/mcp 0.7.3 → 0.7.5

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.
@@ -29,7 +29,25 @@
29
29
  flex: none; }
30
30
  #dot.ok { background: #3fb950; }
31
31
  #dot.err { background: #f85149; }
32
- #screen { flex: 1; position: relative; background: #0f1115; min-height: 0; }
32
+ /* noVNC's scaleViewport is unreliable on mobile its measurement
33
+ races flex layout and we've burned three releases on it. Just
34
+ do the scaling ourselves: width:100% + height:auto on the
35
+ canvas, with the screen DIV flex-centering whatever's inside.
36
+ The browser does aspect-preserving scaling from the canvas's
37
+ intrinsic dimensions (the framebuffer width/height attributes)
38
+ — exactly what we want, no JS involved. The !important is
39
+ required because noVNC writes inline `style.width`/`style.height`
40
+ on the canvas; without !important those would beat our rule. */
41
+ #screen { flex: 1; position: relative; background: #0f1115;
42
+ min-height: 0; min-width: 0; width: 100%;
43
+ overflow: hidden;
44
+ display: flex; align-items: center; justify-content: center; }
45
+ #screen > canvas {
46
+ display: block !important;
47
+ width: 100% !important;
48
+ height: auto !important;
49
+ max-height: 100% !important;
50
+ }
33
51
  /* Overlay siblings of #screen — `position: fixed` against the
34
52
  viewport, NOT positioned inside #screen. RFB appends a <canvas>
35
53
  child to #screen at connect time, and that canvas can cover any
@@ -110,14 +128,12 @@
110
128
  let rfb;
111
129
  try {
112
130
  rfb = new RFB(screen, wsUrl, { credentials: { password }, shared: true });
113
- // Mobile-friendly geometry. resizeSession asks the X server to
114
- // reshape its desktop to the canvas size, so the Chrome window
115
- // ends up sized to fit a phone instead of a 1280×720 viewport
116
- // that the user has to pan around. scaleViewport stays on as a
117
- // safety net for X servers without RandR (Xvfb has it; older
118
- // x11vnc builds occasionally drop the SetDesktopSize message).
119
- rfb.scaleViewport = true;
120
- rfb.resizeSession = true;
131
+ // Disable BOTH server-side resize and noVNC's CSS scaling. The
132
+ // canvas styling above does aspect-preserving fit-to-width in
133
+ // pure CSS; touching either of these from JS introduces races
134
+ // we can't win on first paint.
135
+ rfb.scaleViewport = false;
136
+ rfb.resizeSession = false;
121
137
  } catch (err) {
122
138
  dot.className = "err";
123
139
  msg.textContent = "Could not start the login window: " + err;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trusty-squire/mcp",
3
- "version": "0.7.3",
3
+ "version": "0.7.5",
4
4
  "mcpName": "io.github.Trusty-Squire/mcp",
5
5
  "type": "module",
6
6
  "description": "Local MCP server vibe coding agents install. Thin relay to the Trusty Squire API, with the bundled universal signup bot.",