### Description
In a multi-tag workspace, I am seeing two related MCP consistency issues:
1. `set_task_status` can return success even when `.taskmaster/tasks/tasks.json` does not change.
2. `next_task(tag="phase3")` can respond in `master` context instead of the requested tag.
This makes the MCP unsafe to trust without re-reading the on-disk `tasks.json`.
### Steps to Reproduce
1. Use a multi-tag `tasks.json` (for example `master`, `phase2`, `phase3`).
2. Call:
```json
{
"server": "user-task-master",
"toolName": "set_task_status",
"arguments": {
"projectRoot": "/Users/andy/Projects/pinescrow-transactions",
"tag": "phase3",
"id": "41",
"status": "pending"
}
}
{
"server": "user-task-master",
"toolName": "next_task",
"arguments": {
"projectRoot": "/Users/andy/Projects/pinescrow-transactions",
"tag": "phase3",
"file": "/Users/andy/Projects/pinescrow-transactions/.taskmaster/tasks/tasks.json"
}
}
get_taskfor task41onphase3..taskmaster/tasks/tasks.json.{ "server": "user-task-master", "toolName": "next_task", "arguments": { "projectRoot": "/Users/andy/Projects/pinescrow-transactions", "tag": "phase3", "file": "/Users/andy/Projects/pinescrow-transactions/.taskmaster/tasks/tasks.json" } }Expected Behavior
set_task_statusshould update both MCP reads and the on-disk file consistently.get_taskshould match the durable file after a successful write.next_task(tag="phase3")should stay inphase3context and respect completed cross-tag dependencies.Actual Behavior
set_task_statusreturns success, butget_taskand.taskmaster/tasks/tasks.jsoncan still show the old status.next_task(tag="phase3")can return a response taggedmaster.next_task(tag="phase3")reported no eligible task even though pendingphase3tasks had dependencies already completed inphase2.Screenshots or Logs
Representative symptoms:
set_task_status(id="41", status="pending")returned successget_task("41", tag="phase3")still reporteddone.taskmaster/tasks/tasks.jsonstill showeddonenext_task(tag="phase3")responded withtag: "master"Environment
0.43.1v25.8.1macOS(Darwin24.6.0)CursorAdditional Context
This seems related to:
The additional symptom here is that
set_task_statusacknowledgements can also disagree with bothget_taskand the durable file.