Summary
When machineReadable: true, MCP results do not expose what concurrency lock was selected. Consumers can’t confirm lock granularity, explain contention, or implement higher-level orchestration policies confidently.
Expected
Include concurrency lock metadata in machine-readable output:
lockScope: project | solution | workingDirectory | global
lockKey: stable identifier (recommended: normalized full path to the locked .csproj/.sln; acceptable: documented hash)
If contention occurred, also include:
lockContended: true
lockWaitedMs: time spent waiting
lockOwner: optional (PID/session id) if safe/available
Documented lock selection rule
- If
project is provided: lock on that .csproj/.sln
- Else: discover
.csproj/.sln under workingDirectory and lock on the discovered target
Acceptance criteria
- Machine-readable output contains lock info for relevant tools.
- Contention is observable without parsing logs.
- Lock keys are stable across invocations on the same target.
Summary
When
machineReadable: true, MCP results do not expose what concurrency lock was selected. Consumers can’t confirm lock granularity, explain contention, or implement higher-level orchestration policies confidently.Expected
Include concurrency lock metadata in machine-readable output:
lockScope:project | solution | workingDirectory | globallockKey: stable identifier (recommended: normalized full path to the locked.csproj/.sln; acceptable: documented hash)If contention occurred, also include:
lockContended: truelockWaitedMs: time spent waitinglockOwner: optional (PID/session id) if safe/availableDocumented lock selection rule
projectis provided: lock on that.csproj/.sln.csproj/.slnunderworkingDirectoryand lock on the discovered targetAcceptance criteria