Implement prepareRename with TypeScript-compatible eligibility, UTF-16 ranges, and protocol errors. Reuse semantic symbol identity; do not create a text-only rename path.
Blocked by: the LSP inventory child issue
Spine anchor: Bass — keep rename behavior in the semantic language-service boundary.
Acceptance: The relevant LSP compatibility gate passes with non-pending evidence and regression coverage for valid and rejected rename positions.
Implement prepareRename with TypeScript-compatible eligibility, UTF-16 ranges, and protocol errors. Reuse semantic symbol identity; do not create a text-only rename path.
Blocked by: the LSP inventory child issue
Spine anchor: Bass — keep rename behavior in the semantic language-service boundary.
Acceptance: The relevant LSP compatibility gate passes with non-pending evidence and regression coverage for valid and rejected rename positions.