@vheins/local-memory-mcp 0.8.32 → 0.8.34

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.
@@ -3,8 +3,8 @@ import { fileURLToPath } from "url";
3
3
  import path from "path";
4
4
  var __dirname = path.dirname(fileURLToPath(import.meta.url));
5
5
  var pkgVersion = "0.1.0";
6
- if ("0.8.32") {
7
- pkgVersion = "0.8.32";
6
+ if ("0.8.34") {
7
+ pkgVersion = "0.8.34";
8
8
  } else {
9
9
  let searchDir = __dirname;
10
10
  for (let i = 0; i < 5; i++) {
@@ -3235,7 +3235,7 @@ var TOOL_DEFINITIONS = [
3235
3235
  {
3236
3236
  name: "task-list",
3237
3237
  title: "Task List",
3238
- description: "PRIMARY navigation and search tool for tasks. Returns a compact tabular list of tasks (id, task_code, title, status, priority). Defaults to in_progress and pending tasks. Use 'query' to filter by code, title, or description. Use 'status' (comma-separated) for specific filters. AGENTS: call this once at start, pick ONE task, then call task-detail.",
3238
+ description: "PRIMARY navigation and search tool for tasks. Returns a compact tabular list of tasks (id, task_code, title, status, priority, updated_at). Defaults to in_progress and pending tasks. Use 'query' to filter by code, title, or description. Use 'status' (comma-separated) for specific filters. AGENTS: call this once at start, pick ONE task, then call task-detail.",
3239
3239
  annotations: {
3240
3240
  readOnlyHint: true,
3241
3241
  idempotentHint: true,
@@ -3292,12 +3292,12 @@ var TOOL_DEFINITIONS = [
3292
3292
  columns: {
3293
3293
  type: "array",
3294
3294
  items: { type: "string" },
3295
- description: "Column names in order: id, task_code, title, status, priority, comments_count"
3295
+ description: "Column names in order: id, task_code, title, status, priority, updated_at, comments_count"
3296
3296
  },
3297
3297
  rows: {
3298
3298
  type: "array",
3299
3299
  items: { type: "array" },
3300
- description: "Each row: [id, task_code, title, status, priority, comments_count]. Use task-detail to fetch full task."
3300
+ description: "Each row: [id, task_code, title, status, priority, updated_at, comments_count]. Use task-detail to fetch full task."
3301
3301
  }
3302
3302
  },
3303
3303
  required: ["columns", "rows"]
@@ -8,7 +8,7 @@ import {
8
8
  createFileSink,
9
9
  listResources,
10
10
  logger
11
- } from "../chunk-NVK5O7VL.js";
11
+ } from "../chunk-OKUMIBPQ.js";
12
12
 
13
13
  // src/dashboard/server.ts
14
14
  import express from "express";
@@ -43,7 +43,7 @@ import {
43
43
  setLogLevel,
44
44
  updateSessionFromInitialize,
45
45
  updateSessionRoots
46
- } from "../chunk-NVK5O7VL.js";
46
+ } from "../chunk-OKUMIBPQ.js";
47
47
 
48
48
  // src/mcp/server.ts
49
49
  import readline from "readline";
@@ -754,9 +754,10 @@ function buildTaskListSummary(repo, count, status, phase, search, tasksByStatus)
754
754
  if (items.length > 0) {
755
755
  parts.push("");
756
756
  parts.push(`${capitalize3(taskStatus)}:`);
757
- parts.push("- code|status|priority|title");
757
+ parts.push("- code|status|priority|last_updated|title");
758
758
  for (const t of items) {
759
- parts.push(`- ${t.task_code}|${t.status}|${t.priority}|${t.title}`);
759
+ const lastUpdated = t.updated_at ? t.updated_at.slice(0, 16).replace("T", " ") : "never";
760
+ parts.push(`- ${t.task_code}|${t.status}|${t.priority}|${lastUpdated}|${t.title}`);
760
761
  }
761
762
  }
762
763
  }
@@ -858,13 +859,14 @@ async function handleTaskList(args, storage) {
858
859
  }
859
860
  const tasks = storage.tasks.getTasksByMultipleStatuses(repo, statuses, limit, offset, query);
860
861
  const filteredTasks = phase ? tasks.filter((t) => t.phase.toLowerCase() === phase.toLowerCase()) : tasks;
861
- const COLUMNS = ["id", "task_code", "title", "status", "priority", "comments_count"];
862
+ const COLUMNS = ["id", "task_code", "title", "status", "priority", "updated_at", "comments_count"];
862
863
  const rows = filteredTasks.map((t) => [
863
864
  t.id,
864
865
  t.task_code,
865
866
  t.title,
866
867
  t.status,
867
868
  t.priority,
869
+ t.updated_at,
868
870
  t.comments_count || 0
869
871
  ]);
870
872
  const structuredData = {
@@ -11,6 +11,11 @@ agent: Task Executor
11
11
  2. **List**: Call `task-list` ONCE for active tasks.
12
12
  3. **Audit**: Identify stale `in_progress` tasks (>30m no update). Hydrate via `task-detail` to check timestamps.
13
13
 
14
+ ## Task Cache (MANDATORY)
15
+ - `task-detail` MUST be called at most ONCE per task
16
+ - result MUST be reused across all steps
17
+ - do NOT re-fetch or re-inject full detail
18
+
14
19
  ## 2. EXECUTION LOOP
15
20
  1. **Parallelism & Sub-Agents**:
16
21
  - **MANDATORY**: Tasks MUST be delegated to sub-agents if the current agent has sub-agent capabilities.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vheins/local-memory-mcp",
3
- "version": "0.8.32",
3
+ "version": "0.8.34",
4
4
  "description": "MCP Local Memory Service for coding copilot agents",
5
5
  "mcpName": "io.github.vheins/local-memory-mcp",
6
6
  "type": "module",