agentgui 1.0.746 → 1.0.748

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/CLAUDE.md CHANGED
@@ -257,6 +257,23 @@ Server broadcasts:
257
257
 
258
258
  **WSOptimizer** (`lib/ws-optimizer.js`): Per-client priority queue. High-priority events flush immediately; normal/low batch by latency tier (16ms excellent → 200ms bad). Rate limit: 100 msg/sec — overflow is re-queued (not dropped). No `lastKey` deduplication (was removed — caused valid event drops).
259
259
 
260
+ ### WS RPC Methods (85 total)
261
+
262
+ **agent:** `agent.auth`, `agent.authstat`, `agent.desc`, `agent.get`, `agent.ls`, `agent.models`, `agent.search`, `agent.subagents`, `agent.update`
263
+ **auth:** `auth.configs`, `auth.save`
264
+ **codex:** `codex.complete`, `codex.relay`, `codex.start`, `codex.status`
265
+ **conv:** `conv.cancel`, `conv.chunks`, `conv.chunks.earlier`, `conv.del`, `conv.del.all`, `conv.export`, `conv.full`, `conv.get`, `conv.inject`, `conv.ls`, `conv.new`, `conv.prune`, `conv.run-script`, `conv.scripts`, `conv.search`, `conv.steer`, `conv.stop-script`, `conv.sync`, `conv.tags`, `conv.upd`
266
+ **gemini:** `gemini.complete`, `gemini.relay`, `gemini.start`, `gemini.status`
267
+ **git:** `git.check`, `git.push`
268
+ **msg:** `msg.get`, `msg.ls`, `msg.ls.earlier`, `msg.send`, `msg.stream`
269
+ **q:** `q.del`, `q.ls`, `q.upd`
270
+ **run:** `run.cancel`, `run.del`, `run.get`, `run.new`, `run.resume`, `run.search`, `run.stream`, `run.stream.get`, `run.wait`
271
+ **sess:** `sess.chunks`, `sess.exec`, `sess.get`, `sess.latest`
272
+ **speech:** `speech.download`, `speech.status`
273
+ **thread:** `thread.copy`, `thread.del`, `thread.get`, `thread.history`, `thread.new`, `thread.run.cancel`, `thread.run.steer`, `thread.run.stream`, `thread.run.stream.get`, `thread.search`, `thread.upd`
274
+ **tools:** `tools.list`
275
+ **util:** `clone`, `discover.claude`, `folders`, `home`, `import.claude`, `voice.cache`, `voice.generate`, `voices`, `ws.stats`
276
+
260
277
  ## Steering
261
278
 
262
279
  Steering stops the running agent (SIGKILL) and immediately resumes with the new message:
package/database.js CHANGED
@@ -422,7 +422,8 @@ try {
422
422
  isStreaming: 'INTEGER DEFAULT 0',
423
423
  model: 'TEXT',
424
424
  subAgent: 'TEXT',
425
- pinned: 'INTEGER DEFAULT 0'
425
+ pinned: 'INTEGER DEFAULT 0',
426
+ tags: 'TEXT'
426
427
  };
427
428
 
428
429
  let addedColumns = false;
@@ -682,11 +683,12 @@ export const queries = {
682
683
  const model = data.model !== undefined ? data.model : conv.model;
683
684
  const subAgent = data.subAgent !== undefined ? data.subAgent : conv.subAgent;
684
685
  const pinned = data.pinned !== undefined ? (data.pinned ? 1 : 0) : (conv.pinned || 0);
686
+ const tags = data.tags !== undefined ? (Array.isArray(data.tags) ? data.tags.join(',') : data.tags) : (conv.tags || null);
685
687
 
686
688
  const stmt = prep(
687
- `UPDATE conversations SET title = ?, status = ?, agentId = ?, agentType = ?, model = ?, subAgent = ?, pinned = ?, updated_at = ? WHERE id = ?`
689
+ `UPDATE conversations SET title = ?, status = ?, agentId = ?, agentType = ?, model = ?, subAgent = ?, pinned = ?, tags = ?, updated_at = ? WHERE id = ?`
688
690
  );
689
- stmt.run(title, status, agentId, agentType, model, subAgent, pinned, now, id);
691
+ stmt.run(title, status, agentId, agentType, model, subAgent, pinned, tags, now, id);
690
692
 
691
693
  return {
692
694
  ...conv,
@@ -697,6 +699,7 @@ export const queries = {
697
699
  model,
698
700
  subAgent,
699
701
  pinned,
702
+ tags,
700
703
  updated_at: now
701
704
  };
702
705
  },
@@ -22,11 +22,19 @@ export function register(router, deps) {
22
22
  getJsonlWatcher = () => null } = deps;
23
23
 
24
24
  router.handle('conv.ls', () => {
25
- const conversations = queries.getConversationsList();
25
+ let conversations = queries.getConversationsList();
26
26
  for (const c of conversations) { if (c.isStreaming && !execMachine.isActive(c.id)) c.isStreaming = 0; }
27
+ if (p.tag) conversations = conversations.filter(c => c.tags && c.tags.split(',').includes(p.tag));
27
28
  return { conversations };
28
29
  });
29
30
 
31
+ router.handle('conv.tags', () => {
32
+ const convs = queries.getConversationsList();
33
+ const tagSet = new Set();
34
+ for (const c of convs) { if (c.tags) c.tags.split(',').forEach(t => { if (t.trim()) tagSet.add(t.trim()); }); }
35
+ return { tags: [...tagSet].sort() };
36
+ });
37
+
30
38
  router.handle('conv.new', (p) => {
31
39
  p = validate(ConvNewSchema, p);
32
40
  const wd = p.workingDirectory ? path.resolve(expandTilde(p.workingDirectory)) : null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentgui",
3
- "version": "1.0.746",
3
+ "version": "1.0.748",
4
4
  "description": "Multi-agent ACP client with real-time communication",
5
5
  "type": "module",
6
6
  "main": "electron/main.js",