Verify identity lifecycle and update agent-facing contracts #124
Description
Delivered
Added focused service, OAuth, and MCP tests for same-owner normalized duplicates, cross-owner names, concurrent create/rename, fresh OAuth Agents, explicit credential reuse, revocation, owner labels, and stable public references. Updated task_assignee_list metadata, system guide v14, server instructions, Connect setup text, and the Agents UI.
The roster -> resolve -> assign -> rename -> get workflow retains the same immutable agent reference. Historical memory attribution follows the same Agent after rename. External Agents include ownerLabel; own Agents do not. Agents must send roster references unchanged and never reconstruct them from names.
Rechecked #105/#115: the old ambiguity report is resolved. Full replacement updates can now preserve an exact existing stable assignee reference even after that Agent becomes inactive, while new assignment to an inactive Agent remains rejected. #105's parent description was updated in production without changing its assignee.
Evidence
Commit 580f8b8 deployed successfully. system_memory returns v14 in production. Full ProjectMemory.Web.Tests result: 62 passed, 0 failed.