@masslessai/push-todo 3.10.0 → 3.10.1

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/connect.js CHANGED
@@ -953,8 +953,8 @@ async function registerProjectWithBackend(apiKey, clientType = 'claude-code', ke
953
953
  const CLIENT_TO_ACTION_TYPE = {
954
954
  'claude-code': 'claude-code',
955
955
  'openai-codex': 'openai-codex',
956
- 'openclaw': 'clawdbot',
957
- 'clawdbot': 'clawdbot',
956
+ 'openclaw': 'openclaw',
957
+ 'clawdbot': 'openclaw', // legacy alias
958
958
  };
959
959
 
960
960
  // ============================================================================
package/lib/fetch.js CHANGED
@@ -58,13 +58,22 @@ function decryptTaskFields(task) {
58
58
  * @returns {Promise<void>}
59
59
  */
60
60
  export async function listTasks(options = {}) {
61
- // Determine git remote
61
+ // Determine git remote and action type for scoping
62
62
  let gitRemote = null;
63
+ let actionType = null;
63
64
  if (!options.allProjects) {
64
65
  gitRemote = getGitRemote();
65
66
  if (!gitRemote && isGitRepo()) {
66
67
  console.error(yellow('Warning: In a git repo but no remote configured.'));
67
68
  }
69
+ // Look up action type from project registry for proper multi-agent scoping
70
+ if (gitRemote) {
71
+ const registry = getRegistry();
72
+ const project = registry.findProject(gitRemote);
73
+ if (project) {
74
+ actionType = project.actionType;
75
+ }
76
+ }
68
77
  }
69
78
 
70
79
  // Fetch tasks
@@ -72,7 +81,8 @@ export async function listTasks(options = {}) {
72
81
  backlogOnly: options.backlog,
73
82
  includeBacklog: options.includeBacklog,
74
83
  completedOnly: options.completed,
75
- includeCompleted: options.includeCompleted
84
+ includeCompleted: options.includeCompleted,
85
+ actionType,
76
86
  });
77
87
 
78
88
  // Decrypt if E2EE is available
@@ -103,7 +103,7 @@ class ProjectRegistry {
103
103
  * Format: "gitRemote::actionType" (e.g., "github.com/user/repo::claude-code")
104
104
  *
105
105
  * @param {string} gitRemote - Normalized git remote
106
- * @param {string} actionType - Action type (e.g., "claude-code", "clawdbot")
106
+ * @param {string} actionType - Action type (e.g., "claude-code", "openclaw")
107
107
  * @returns {string}
108
108
  */
109
109
  _makeKey(gitRemote, actionType) {
@@ -116,7 +116,7 @@ class ProjectRegistry {
116
116
  * @param {string} gitRemote - Normalized git remote (e.g., "github.com/user/repo")
117
117
  * @param {string} localPath - Absolute local path
118
118
  * @param {Object} [actionMeta] - Action metadata from register-project response
119
- * @param {string} [actionMeta.actionType] - Action type (e.g., "claude-code", "clawdbot")
119
+ * @param {string} [actionMeta.actionType] - Action type (e.g., "claude-code", "openclaw")
120
120
  * @param {string} [actionMeta.actionId] - Action UUID
121
121
  * @param {string} [actionMeta.actionName] - Action display name
122
122
  * @returns {boolean} True if newly registered, false if updated existing
@@ -345,6 +345,18 @@ class ProjectRegistry {
345
345
  return Object.keys(this._data.projects).length;
346
346
  }
347
347
 
348
+ /**
349
+ * Find a project entry by gitRemote and optional actionType.
350
+ * Public wrapper for _findProject.
351
+ *
352
+ * @param {string} gitRemote
353
+ * @param {string} [actionType]
354
+ * @returns {Object|null} Project entry with {gitRemote, localPath, actionType, ...}
355
+ */
356
+ findProject(gitRemote, actionType) {
357
+ return this._findProject(gitRemote, actionType);
358
+ }
359
+
348
360
  /**
349
361
  * Check if a project is registered.
350
362
  * Checks both composite keys and plain gitRemote.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@masslessai/push-todo",
3
- "version": "3.10.0",
3
+ "version": "3.10.1",
4
4
  "description": "Voice tasks from Push iOS app for Claude Code",
5
5
  "type": "module",
6
6
  "bin": {