vector-task-mcp 1.2.5__tar.gz → 1.2.6__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 (25) hide show
  1. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/PKG-INFO +1 -1
  2. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/pyproject.toml +1 -1
  3. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/src/task_store.py +29 -0
  4. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/vector_task_mcp.egg-info/PKG-INFO +1 -1
  5. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/.mcp.json +0 -0
  6. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/.python-version +0 -0
  7. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/CLAUDE.md +0 -0
  8. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/LICENSE +0 -0
  9. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/MANIFEST.in +0 -0
  10. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/README.md +0 -0
  11. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/claude-desktop-config.example.json +0 -0
  12. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/main.py +0 -0
  13. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/requirements.txt +0 -0
  14. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/run-arm64.sh +0 -0
  15. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/setup.cfg +0 -0
  16. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/src/__init__.py +0 -0
  17. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/src/embeddings.py +0 -0
  18. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/src/models.py +0 -0
  19. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/src/security.py +0 -0
  20. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/tests/test_task_store.py +0 -0
  21. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/vector_task_mcp.egg-info/SOURCES.txt +0 -0
  22. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/vector_task_mcp.egg-info/dependency_links.txt +0 -0
  23. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/vector_task_mcp.egg-info/entry_points.txt +0 -0
  24. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/vector_task_mcp.egg-info/requires.txt +0 -0
  25. {vector_task_mcp-1.2.5 → vector_task_mcp-1.2.6}/vector_task_mcp.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vector-task-mcp
3
- Version: 1.2.5
3
+ Version: 1.2.6
4
4
  Summary: A secure, vector-based task management server for Claude Desktop using sqlite-vec and sentence-transformers
5
5
  Author-email: Xsaven <xsaven@gmail.com>
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "vector-task-mcp"
3
- version = "1.2.5"
3
+ version = "1.2.6"
4
4
  description = "A secure, vector-based task management server for Claude Desktop using sqlite-vec and sentence-transformers"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -236,6 +236,31 @@ class TaskStore:
236
236
  # Recursively check grandparent
237
237
  self._propagate_completed_to_parents(conn, parent_id)
238
238
 
239
+ def _propagate_pending_to_parents(self, conn: sqlite3.Connection, task_id: int) -> None:
240
+ """
241
+ Recursively propagate 'pending' status to parent tasks when ANY child returns to pending.
242
+
243
+ Rules:
244
+ - Parent gets 'pending' when ANY child becomes 'pending'
245
+ - Recursively propagates up the parent chain
246
+
247
+ Args:
248
+ conn: Active database connection (must be within transaction)
249
+ task_id: Current task ID whose status just changed to 'pending'
250
+ """
251
+ # Get parent_id of current task
252
+ cursor = conn.execute('SELECT parent_id FROM tasks WHERE id = ?', (task_id,))
253
+ row = cursor.fetchone()
254
+ if not row or not row[0]: # No parent
255
+ return
256
+
257
+ parent_id = row[0]
258
+
259
+ # Set parent to 'pending' unconditionally
260
+ conn.execute('UPDATE tasks SET status = ? WHERE id = ?', ('pending', parent_id))
261
+ # Recursively propagate to grandparent
262
+ self._propagate_pending_to_parents(conn, parent_id)
263
+
239
264
  def _start_time_session(self, conn: sqlite3.Connection, task_id: int, start_status: str) -> None:
240
265
  """
241
266
  Create new time session record in task_time_log table.
@@ -872,6 +897,10 @@ class TaskStore:
872
897
  if status_changed and new_status in TaskStatus.finish_statuses():
873
898
  self._propagate_completed_to_parents(conn, task_id)
874
899
 
900
+ # Propagate 'pending' status to parent when ANY child returns to pending
901
+ if status_changed and new_status == 'pending':
902
+ self._propagate_pending_to_parents(conn, task_id)
903
+
875
904
  conn.commit()
876
905
 
877
906
  # Fetch updated task
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vector-task-mcp
3
- Version: 1.2.5
3
+ Version: 1.2.6
4
4
  Summary: A secure, vector-based task management server for Claude Desktop using sqlite-vec and sentence-transformers
5
5
  Author-email: Xsaven <xsaven@gmail.com>
6
6
  License: MIT
File without changes
File without changes