lobstakit-cloud 1.3.11 → 1.3.13

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lobstakit-cloud",
3
- "version": "1.3.11",
3
+ "version": "1.3.13",
4
4
  "description": "LobstaKit Cloud — Setup wizard and management for LobstaCloud gateways",
5
5
  "main": "server.js",
6
6
  "bin": {
@@ -338,7 +338,7 @@ function initTerminal() {
338
338
 
339
339
  runBtn.addEventListener('click', runTerminalCommand);
340
340
  inputEl.addEventListener('keydown', (event) => {
341
- if (event.key === 'Enter') {
341
+ if (event.key === 'Enter' && (event.ctrlKey || event.metaKey)) {
342
342
  event.preventDefault();
343
343
  runTerminalCommand();
344
344
  return;
@@ -1508,6 +1508,13 @@ function updateWebchatSection() {
1508
1508
  var webchatUrl = serve.webchatUrl || serve.url || '';
1509
1509
  var displayUrl = serve.url || '';
1510
1510
 
1511
+ // Auto-attach gateway token so the web chat opens without pairing prompt,
1512
+ // even when accessed via a reverse proxy (Tailscale Serve, nginx, etc.)
1513
+ if (webchatUrl && _gatewayInfo && _gatewayInfo.token) {
1514
+ var sep = webchatUrl.includes('?') ? '&' : '?';
1515
+ webchatUrl = webchatUrl + sep + 'token=' + encodeURIComponent(_gatewayInfo.token);
1516
+ }
1517
+
1511
1518
  if (urlEl) urlEl.textContent = displayUrl;
1512
1519
  if (linkEl) linkEl.href = webchatUrl;
1513
1520
 
@@ -191,7 +191,7 @@
191
191
  <h3>🖥️ Terminal</h3>
192
192
  <div class="terminal-output" id="terminal-output" style="min-height:120px;max-height:300px;overflow-y:auto;background:#0d1117;color:#e6edf3;font-family:monospace;font-size:13px;padding:12px;border-radius:6px;margin-bottom:10px;white-space:pre-wrap;"></div>
193
193
  <div style="display:flex;gap:8px;">
194
- <input type="text" id="terminal-input" placeholder="Enter command..." style="flex:1;font-family:monospace;font-size:13px;color:#e6edf3;background:#0d1117;border:1px solid #30363d;padding:6px 10px;border-radius:6px;outline:none;" />
194
+ <textarea id="terminal-input" placeholder="Enter command... (Ctrl+Enter to run)" rows="2" style="flex:1;font-family:monospace;font-size:13px;color:#e6edf3;background:#0d1117;border:1px solid #30363d;padding:6px 10px;border-radius:6px;outline:none;resize:vertical;"></textarea>
195
195
  <button id="terminal-run-btn" class="btn btn-secondary">Run</button>
196
196
  </div>
197
197
  </div>
package/server.js CHANGED
@@ -904,8 +904,8 @@ app.post('/api/run-command', (req, res) => {
904
904
  if (!command) {
905
905
  return res.status(400).json({ error: 'Command is required' });
906
906
  }
907
- if (command.length > 500) {
908
- return res.status(400).json({ error: 'Command too long (max 500 characters)' });
907
+ if (command.length > 10000) {
908
+ return res.status(400).json({ error: 'Command too long (max 10000 characters)' });
909
909
  }
910
910
 
911
911
  try {