clay-server 4.0.0-beta.16 → 4.0.0-beta.18

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.
Files changed (50) hide show
  1. package/lib/daemon-projects.js +10 -5
  2. package/lib/daemon.js +61 -10
  3. package/lib/project-log-context.js +171 -0
  4. package/lib/project-log-feedback-delivery.js +47 -5
  5. package/lib/project-logs-context-state.js +42 -0
  6. package/lib/project-logs-mcp-server.js +15 -4
  7. package/lib/project-logs-query.js +18 -0
  8. package/lib/project-logs-root.js +8 -0
  9. package/lib/project-logs-service.js +121 -15
  10. package/lib/project-logs-snapshot.js +3 -0
  11. package/lib/project-logs-store.js +29 -32
  12. package/lib/project-logs-versioning.js +6 -2
  13. package/lib/project-logs.js +61 -13
  14. package/lib/project-message-delivery.js +70 -0
  15. package/lib/project-user-message.js +11 -0
  16. package/lib/project.js +6 -1
  17. package/lib/public/app.js +5 -0
  18. package/lib/public/css/command-palette.css +19 -9
  19. package/lib/public/css/project-logs.css +20 -2
  20. package/lib/public/css/sticky-notes.css +7 -0
  21. package/lib/public/index.html +2 -2
  22. package/lib/public/modules/admin.js +8 -8
  23. package/lib/public/modules/app-connection.js +22 -3
  24. package/lib/public/modules/app-messages.js +29 -1
  25. package/lib/public/modules/app-rendering.js +1 -0
  26. package/lib/public/modules/chat-bubble-renderer.js +1 -1
  27. package/lib/public/modules/clay-log-links.js +70 -0
  28. package/lib/public/modules/command-palette.js +52 -15
  29. package/lib/public/modules/input.js +6 -1
  30. package/lib/public/modules/markdown.js +2 -0
  31. package/lib/public/modules/message-delivery.js +97 -0
  32. package/lib/public/modules/project-logs-render.js +48 -2
  33. package/lib/public/modules/project-logs.js +140 -11
  34. package/lib/public/modules/sidebar-session-hierarchy.js +16 -7
  35. package/lib/public/modules/sidebar-sessions.js +3 -1
  36. package/lib/public/modules/sticky-note-markdown.js +5 -0
  37. package/lib/public/modules/sticky-notes-browser.js +2 -0
  38. package/lib/public/modules/sticky-notes-card.js +2 -0
  39. package/lib/public/modules/sticky-notes-editor.js +3 -0
  40. package/lib/public/modules/sticky-notes.js +2 -0
  41. package/lib/public/style.css +1 -1
  42. package/lib/sdk-bridge.js +20 -10
  43. package/lib/server-global-ws.js +4 -0
  44. package/lib/server-home-chat-events.js +3 -0
  45. package/lib/server-home-chat.js +9 -2
  46. package/lib/server-home-clay-entry.js +1 -1
  47. package/lib/server-home-clay-session-links.js +34 -5
  48. package/lib/server.js +14 -3
  49. package/lib/ws-schema.js +8 -2
  50. package/package.json +1 -1
package/lib/server.js CHANGED
@@ -996,17 +996,21 @@ function createServer(opts) {
996
996
 
997
997
  // --- WebSocket ---
998
998
  var wss = new WebSocketServer({ noServer: true });
999
+ var homePreferencesHandler = null;
999
1000
 
1000
1001
  // Slug-less /ws handler: lets a user with no projects yet load the regular
1001
1002
  // app shell and create/add/clone their first one. Only knows about the
1002
- // small set of bootstrap messages (browse_dir, add_project, create_project,
1003
- // clone_project, ping).
1003
+ // small set of bootstrap messages, including the Home preferences required
1004
+ // to dismiss the workspace restoration screen.
1004
1005
  var globalWs = serverGlobalWs.attachGlobalWs({
1005
1006
  osUsers: osUsers,
1006
1007
  usersModule: users,
1007
1008
  onAddProject: onAddProject,
1008
1009
  onCreateProject: onCreateProject,
1009
1010
  onCloneProject: onCloneProject,
1011
+ onHomePreferenceMessage: function (ws, msg) {
1012
+ return homePreferencesHandler ? homePreferencesHandler.handleMessage(ws, msg) : false;
1013
+ },
1010
1014
  });
1011
1015
 
1012
1016
  server.on("upgrade", function (req, socket, head) {
@@ -1241,6 +1245,7 @@ function createServer(opts) {
1241
1245
  title: title || null,
1242
1246
  icon: icon || null,
1243
1247
  projectOwnerId: projectOwnerId || null,
1248
+ projectKnowledgeId: extra.projectKnowledgeId || (worktreeMeta && worktreeMeta.projectKnowledgeId) || null,
1244
1249
  worktreeMeta: worktreeMeta || null,
1245
1250
  isMate: extra.isMate || false,
1246
1251
  mateId: extra.mateId || (extra.isMate ? path.basename(cwd) : null),
@@ -1422,6 +1427,10 @@ function createServer(opts) {
1422
1427
  return true;
1423
1428
  }
1424
1429
 
1430
+ function setProjectLogContextState(slug, status) {
1431
+ return projectLogsService.setContextState(slug, status);
1432
+ }
1433
+
1425
1434
  // --- DM message handler (delegated to server-dm + server-mates inline) ---
1426
1435
  var dmHandler = serverDm.attachDm({
1427
1436
  users: users,
@@ -1442,9 +1451,10 @@ function createServer(opts) {
1442
1451
  projects: projects,
1443
1452
  addProject: addProject,
1444
1453
  workspaceQueryService: workspaceQueryService,
1454
+ projectLogsService: projectLogsService,
1445
1455
  });
1446
1456
 
1447
- var homePreferencesHandler = serverHomePreferences.attachHomePreferences({
1457
+ homePreferencesHandler = serverHomePreferences.attachHomePreferences({
1448
1458
  users: users,
1449
1459
  projects: projects,
1450
1460
  });
@@ -1774,6 +1784,7 @@ function createServer(opts) {
1774
1784
  forEachProject: forEachProject,
1775
1785
  destroyProject: removeProject,
1776
1786
  destroyAll: destroyAll,
1787
+ setProjectLogContextState: setProjectLogContextState,
1777
1788
  };
1778
1789
  }
1779
1790
 
package/lib/ws-schema.js CHANGED
@@ -44,6 +44,8 @@ var schema = {
44
44
  "project_assignment_response": { direction: "c2s", handler: "lib/workspace-assignment-service.js", description: "Approve or cancel an exact-session cross-project assignment proposal" },
45
45
  "home_clay_session_resolve": { direction: "c2s", handler: "lib/server-home-chat.js", description: "Resolve an opaque Mate session reference through the exact bound source session" },
46
46
  "home_clay_session_target": { direction: "s2c", handler: "lib/public/modules/command-palette.js", description: "Return an owner-validated navigation target for a rendered Mate session reference" },
47
+ "home_clay_log_resolve": { direction: "c2s", handler: "lib/server-home-chat.js", description: "Resolve an opaque Project Log reference through the exact bound Clay session" },
48
+ "home_clay_log_target": { direction: "s2c", handler: "lib/public/modules/command-palette.js", description: "Return an owner-validated project target for a rendered Log reference" },
47
49
 
48
50
  "session_list": { direction: "s2c", handler: "lib/public/modules/app-messages.js", description: "Full list of sessions for the sidebar" },
49
51
  "session_switched": { direction: "s2c", handler: "lib/public/modules/app-messages.js", description: "Confirmation that active session changed" },
@@ -81,7 +83,8 @@ var schema = {
81
83
  // -----------------------------------------------------------------------
82
84
  // Chat / streaming
83
85
  // -----------------------------------------------------------------------
84
- "message": { direction: "c2s", handler: "lib/project-user-message.js", description: "Send a user chat message" },
86
+ "message": { direction: "c2s", handler: "lib/project-user-message.js", description: "Send an idempotent user chat message; message_ack confirms persistence" },
87
+ "message_ack": { direction: "s2c", handler: "lib/public/modules/app-messages.js", description: "Confirm that an idempotent user chat message was persisted" },
85
88
  "user_message": { direction: "s2c", handler: "lib/public/modules/app-messages.js", description: "Echo of the user message in the timeline" },
86
89
  "delta": { direction: "s2c", handler: "lib/public/modules/app-messages.js", description: "Incremental text delta from the assistant" },
87
90
  "result": { direction: "s2c", handler: "lib/public/modules/app-messages.js", description: "Final assistant result text" },
@@ -412,12 +415,15 @@ var schema = {
412
415
  "project_logs_list": { direction: "c2s", handler: "lib/project-logs.js", description: "List or search this project's logs (project scope is bound server-side)" },
413
416
  "project_log_read": { direction: "c2s", handler: "lib/project-logs.js", description: "Read one project log entry by opaque ref" },
414
417
  "project_log_comment": { direction: "c2s", handler: "lib/project-logs.js", description: "Append an attributed comment to a project log entry (append-only; author comes from the connection)" },
418
+ "project_log_delete": { direction: "c2s", handler: "lib/project-logs.js", description: "Delete a project log entry (project owner only; scope and identity are bound server-side)" },
415
419
  "project_log_create": { direction: "c2s", handler: "lib/project-logs.js", description: "Retired. Canonical entries are written only by project agent sessions; this is always refused" },
416
420
  "project_log_update": { direction: "c2s", handler: "lib/project-logs.js", description: "Retired. Canonical revisions are written only by project agent sessions; this is always refused" },
417
421
  "project_logs_state": { direction: "s2c", handler: "lib/public/modules/project-logs.js", description: "Correlated project log index for a list or search request" },
418
422
  "project_log_entry": { direction: "s2c", handler: "lib/public/modules/project-logs.js", description: "Correlated full project log entry" },
419
423
  "project_log_commented": { direction: "s2c", handler: "lib/public/modules/project-logs.js", description: "Correlated project log entry after a comment was appended" },
420
- "project_log_updated": { direction: "s2c", handler: "lib/public/modules/project-logs.js", description: "A canonical log entry was created or revised by this project's agent session (bounded ledger metadata only)" },
424
+ "project_log_comment_reviewed": { direction: "s2c", handler: "lib/public/modules/project-logs.js", description: "A Project Driver resolved a log comment; carries identifiers and action only" },
425
+ "project_log_deleted": { direction: "s2c", handler: "lib/public/modules/project-logs.js", description: "Confirm that the project owner deleted a project log entry" },
426
+ "project_log_updated": { direction: "s2c", handler: "lib/public/modules/project-logs.js", description: "A project log entry was created, revised, or deleted (bounded ledger metadata only)" },
421
427
  "project_logs_error": { direction: "s2c", handler: "lib/public/modules/project-logs.js", description: "Correlated project log request failure" },
422
428
 
423
429
  // -----------------------------------------------------------------------
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clay-server",
3
- "version": "4.0.0-beta.16",
3
+ "version": "4.0.0-beta.18",
4
4
  "description": "Self-hosted team workspace for Claude Code and Codex. Multi-user, browser-based, with persistent AI mates.",
5
5
  "bin": {
6
6
  "clay-server": "./bin/cli.js",