superproductivity-mcp 1.2.6.dev9__tar.gz → 1.2.6.dev10__tar.gz

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 (26) hide show
  1. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/PKG-INFO +1 -1
  2. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/plugin/manifest.json +1 -1
  3. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/plugin/plugin.js +14 -15
  4. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/pyproject.toml +1 -1
  5. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/.github/workflows/build.yml +0 -0
  6. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/.github/workflows/publish-dev.yml +0 -0
  7. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/.github/workflows/publish.yml +0 -0
  8. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/.github/workflows/release.yml +0 -0
  9. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/.github/workflows/version-gate.yml +0 -0
  10. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/.gitignore +0 -0
  11. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/.mcp.json.example +0 -0
  12. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/.mise.toml +0 -0
  13. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/LICENSE.txt +0 -0
  14. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/README.md +0 -0
  15. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/build-plugin.sh +0 -0
  16. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/docs/superpowers/plans/2026-04-29-packaging-distribution.md +0 -0
  17. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/docs/superpowers/plans/2026-04-30-gitflow-ci.md +0 -0
  18. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/docs/superpowers/specs/2026-04-29-gitflow-ci-design.md +0 -0
  19. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/docs/superpowers/specs/2026-04-29-packaging-distribution-design.md +0 -0
  20. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/plugin/index.html +0 -0
  21. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/src/superproductivity_mcp/__init__.py +0 -0
  22. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/src/superproductivity_mcp/__main__.py +0 -0
  23. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/src/superproductivity_mcp/server.py +0 -0
  24. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/tests/__init__.py +0 -0
  25. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/tests/test_mcp_logic.py +0 -0
  26. {superproductivity_mcp-1.2.6.dev9 → superproductivity_mcp-1.2.6.dev10}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superproductivity-mcp
3
- Version: 1.2.6.dev9
3
+ Version: 1.2.6.dev10
4
4
  Summary: Super Productivity MCP server for Claude Desktop integration
5
5
  Project-URL: Homepage, https://github.com/ben-elliot-nice/superproductivity-mcp
6
6
  License-File: LICENSE.txt
@@ -2,7 +2,7 @@
2
2
  "id": "sp-mcp-bridge",
3
3
  "name": "MCP Bridge",
4
4
  "description": "Bridge between Super Productivity and MCP (Model Context Protocol) servers for Claude Desktop integration",
5
- "version": "1.2.6.dev9",
5
+ "version": "1.2.6.dev10",
6
6
  "manifestVersion": 1,
7
7
  "author": "Super Productivity Team",
8
8
  "homepage": "https://github.com/johannesjo/super-productivity",
@@ -556,26 +556,25 @@ class MCPBridgePlugin {
556
556
  }
557
557
  }
558
558
 
559
- // Step 2: Remove subtasks from project taskIds tasks created without parentId
560
- // get added to project.taskIds by SP; later setting parentId doesn't remove them,
561
- // causing double-display (root AND nested). Fix: remove any task with parentId from
562
- // its project's taskIds, grouped by project to avoid multiple updates per project.
559
+ // Step 2: Build authoritative set of all task IDs that are subtasks of anything.
560
+ // Use subTaskIds scan (not parentId) more reliable since parentId may be stale/missing.
561
+ const knownSubtaskIds = new Set(
562
+ allTasks.flatMap(t => t.subTaskIds || [])
563
+ );
564
+
565
+ // Remove any task from project.taskIds that is a known subtask.
566
+ // Tasks created without parentId get added to project.taskIds by SP; later
567
+ // parentId/subTaskIds updates don't remove them, causing double-display.
563
568
  const projects = await PluginAPI.getAllProjects();
564
569
  for (const project of projects) {
565
- const subtaskIdsInProject = (project.taskIds || []).filter(id => {
566
- const t = taskMap.get(id);
567
- return t && t.parentId;
568
- });
569
- if (subtaskIdsInProject.length > 0) {
570
+ const wronglyInProject = (project.taskIds || []).filter(id => knownSubtaskIds.has(id));
571
+ if (wronglyInProject.length > 0) {
570
572
  try {
571
- const cleaned = (project.taskIds || []).filter(id => {
572
- const t = taskMap.get(id);
573
- return !t || !t.parentId;
574
- });
573
+ const cleaned = (project.taskIds || []).filter(id => !knownSubtaskIds.has(id));
575
574
  await PluginAPI.updateProject(project.id, { taskIds: cleaned });
576
- fixes.push(`project taskIds: removed ${subtaskIdsInProject.length} subtasks from "${project.title}"`);
575
+ fixes.push(`project "${project.title}": removed ${wronglyInProject.length} subtasks from root list`);
577
576
  } catch (e) {
578
- errors.push(`failed to fix taskIds for project "${project.title}": ${e.message}`);
577
+ errors.push(`failed to clean project "${project.title}": ${e.message}`);
579
578
  }
580
579
  }
581
580
  }
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "superproductivity-mcp"
3
- version = "1.2.6.dev9"
3
+ version = "1.2.6.dev10"
4
4
  description = "Super Productivity MCP server for Claude Desktop integration"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"