clay-server 2.23.0-beta.7 → 2.23.0

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/lib/os-users.js CHANGED
@@ -47,7 +47,7 @@ function fsAsUser(op, args, osUserInfo) {
47
47
  " result.push({ name: e.name, isDir: e.isDirectory(), size: stat.size, mtime: stat.mtimeMs });",
48
48
  "}",
49
49
  "process.stdout.write(JSON.stringify(result));",
50
- ].join("\n");
50
+ ].join(" ");
51
51
  } else if (op === "read") {
52
52
  script = [
53
53
  "var fs = require('fs');",
@@ -58,14 +58,14 @@ function fsAsUser(op, args, osUserInfo) {
58
58
  " result.content = fs.readFileSync(f, 'utf8');",
59
59
  "}",
60
60
  "process.stdout.write(JSON.stringify(result));",
61
- ].join("\n");
61
+ ].join(" ");
62
62
  } else if (op === "stat") {
63
63
  script = [
64
64
  "var fs = require('fs');",
65
65
  "var f = " + JSON.stringify(args.file) + ";",
66
66
  "var stat = fs.statSync(f);",
67
67
  "process.stdout.write(JSON.stringify({ size: stat.size, isDir: stat.isDirectory(), mtime: stat.mtimeMs }));",
68
- ].join("\n");
68
+ ].join(" ");
69
69
  } else if (op === "read_binary") {
70
70
  // Read file as base64 for binary content (images, etc.)
71
71
  script = [
@@ -73,7 +73,7 @@ function fsAsUser(op, args, osUserInfo) {
73
73
  "var f = " + JSON.stringify(args.file) + ";",
74
74
  "var buf = fs.readFileSync(f);",
75
75
  "process.stdout.write(buf.toString('base64'));",
76
- ].join("\n");
76
+ ].join(" ");
77
77
  var binOutput = execSync(process.execPath + " -e " + JSON.stringify(script), {
78
78
  encoding: "utf8",
79
79
  timeout: 10000,
@@ -89,7 +89,7 @@ function fsAsUser(op, args, osUserInfo) {
89
89
  "var content = " + JSON.stringify(args.content || "") + ";",
90
90
  "fs.writeFileSync(f, content, 'utf8');",
91
91
  "process.stdout.write(JSON.stringify({ ok: true }));",
92
- ].join("\n");
92
+ ].join(" ");
93
93
  } else {
94
94
  throw new Error("Unknown fsAsUser operation: " + op);
95
95
  }
package/lib/public/app.js CHANGED
@@ -31,7 +31,7 @@ import { initMateWizard, openMateWizard, closeMateWizard, handleMateCreated } fr
31
31
  import { initCommandPalette, handlePaletteSessionSwitch, setPaletteVersion } from './modules/command-palette.js';
32
32
  import { initLongPress } from './modules/longpress.js';
33
33
  import { initMention, handleMentionStart, handleMentionStream, handleMentionDone, handleMentionError, handleMentionActivity, renderMentionUser, renderMentionResponse } from './modules/mention.js';
34
- import { initDebate, handleDebateStarted, handleDebateResumed, handleDebateTurn, handleDebateActivity, handleDebateStream, handleDebateTurnDone, handleDebateCommentQueued, handleDebateCommentInjected, handleDebateEnded, handleDebateError, renderDebateStarted, renderDebateTurnDone, renderDebateEnded, renderDebateCommentInjected, renderDebateUserResume, openDebateModal, closeDebateModal, openQuickDebateModal, handleDebateBriefReady, renderDebateBriefReady, isDebateActive } from './modules/debate.js';
34
+ import { initDebate, handleDebateStarted, handleDebateResumed, handleDebateTurn, handleDebateActivity, handleDebateStream, handleDebateTurnDone, handleDebateCommentQueued, handleDebateCommentInjected, handleDebateEnded, handleDebateError, renderDebateStarted, renderDebateTurnDone, renderDebateEnded, renderDebateCommentInjected, renderDebateUserResume, openDebateModal, closeDebateModal, openQuickDebateModal, handleDebateBriefReady, renderDebateBriefReady, isDebateActive, resetDebateState } from './modules/debate.js';
35
35
 
36
36
  // --- Base path for multi-project routing ---
37
37
  var slugMatch = location.pathname.match(/^\/p\/([a-z0-9_-]+)/);
@@ -3666,7 +3666,9 @@ import { initDebate, handleDebateStarted, handleDebateResumed, handleDebateTurn,
3666
3666
  hideSuggestionChips();
3667
3667
  closeSessionInfoPopover();
3668
3668
  stopUrgentBlink();
3669
- // Clear debate UI from previous session
3669
+ // Clear debate UI and state from previous session
3670
+ debateStickyState = null;
3671
+ resetDebateState();
3670
3672
  var debateBadges = document.querySelectorAll(".debate-header-badge");
3671
3673
  for (var dbi = 0; dbi < debateBadges.length; dbi++) debateBadges[dbi].remove();
3672
3674
  removeDebateBottomBar();
@@ -3674,6 +3676,8 @@ import { initDebate, handleDebateStarted, handleDebateResumed, handleDebateTurn,
3674
3676
  if (handBar) handBar.remove();
3675
3677
  var debateSticky = document.getElementById("debate-sticky");
3676
3678
  if (debateSticky) { debateSticky.classList.add("hidden"); debateSticky.innerHTML = ""; }
3679
+ var debateFloat = document.getElementById("debate-info-float");
3680
+ if (debateFloat) { debateFloat.classList.add("hidden"); debateFloat.innerHTML = ""; }
3677
3681
  }
3678
3682
 
3679
3683
  // --- Project switching (no full reload) ---
@@ -23,6 +23,16 @@ export function initDebate(_ctx) {
23
23
  ctx = _ctx;
24
24
  }
25
25
 
26
+ export function resetDebateState() {
27
+ debateActive = false;
28
+ debateTopic = "";
29
+ debateRound = 0;
30
+ debatePhase = "idle";
31
+ flushTurnStream();
32
+ currentTurnEl = null;
33
+ currentTurnMateId = null;
34
+ }
35
+
26
36
  function buildAvatarUrl(meta) {
27
37
  return "https://api.dicebear.com/7.x/" + (meta.avatarStyle || "bottts") + "/svg?seed=" + encodeURIComponent(meta.avatarSeed || meta.mateId || "mate");
28
38
  }
@@ -274,9 +274,13 @@ export function handleFsList(msg) {
274
274
  treeData[dirPath] = { loaded: true, children: msg.entries || [] };
275
275
 
276
276
  if (msg.error) {
277
- var errEl = ctx.fileTreeEl.querySelector('.file-tree-children[data-parent-path="' + dirPath + '"]');
278
- if (errEl) {
279
- errEl.innerHTML = '<div class="file-tree-error">' + escapeHtml(msg.error) + '</div>';
277
+ if (dirPath === ".") {
278
+ ctx.fileTreeEl.innerHTML = '<div class="file-tree-error">' + escapeHtml(msg.error) + '</div>';
279
+ } else {
280
+ var errEl = ctx.fileTreeEl.querySelector('.file-tree-children[data-parent-path="' + dirPath + '"]');
281
+ if (errEl) {
282
+ errEl.innerHTML = '<div class="file-tree-error">' + escapeHtml(msg.error) + '</div>';
283
+ }
280
284
  }
281
285
  return;
282
286
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clay-server",
3
- "version": "2.23.0-beta.7",
3
+ "version": "2.23.0",
4
4
  "description": "Self-hosted Claude Code in your browser. Multi-session, multi-user, push notifications.",
5
5
  "bin": {
6
6
  "clay-server": "./bin/cli.js",