Repository navigation
feat!: remove semantic rename from CLI and agent surfaces - #801
Conversation
Drop `wright rename` and the `semanticRename`/`providerSemanticRename` operations from `wright serve`, MCP, `wright agent tools`, and the `wright-agent/v1` schema, plus the raw-Workshop rename implementation only they used. Agents edit source directly and re-verify with `check`, or propose transactions through `validateEditTransaction` and `providerValidateEdit`, which keep the stale-source, atomic-write, and rollback contract unchanged. Editor rename is unchanged: LSP `textDocument/rename` still routes through the provider (`wright_driver::provider_edit::semantic_rename`), and the deprecated `rename_symbol` helper stays for `wright-embedding/v1` source compatibility. Fixes #780
The vendored guide was hand-edited instead of synced; re-vendor it from wrightkit/skills@cdd694f (post-skills#26) so the pinned copies match and the CI agent-guide check passes. Also reword the README feature bullet and the metrics comment that still named the removed operation. Refs #780
Teakowa
left a comment
There was a problem hiding this comment.
Reviewed the removal end to end: CLI/agent-serve/MCP/completion surfaces and the raw-Workshop-only rename code are gone; LSP textDocument/rename, provider_edit::semantic_rename, validateEditTransaction/providerValidateEdit, and lint --fix are untouched. The metrics.py comment edit is the only CODEOWNERS path touched and it is documentation-only. Local wright-cli suite passes (268 tests) including the unknown-subcommand regression; 34/34 required checks green.
One note: the vendored guide was synced from wrightkit/skills@cdd694f (post-skills#26). The skills-side PR merged ahead of the release, so the published guide already assumes this change ships in the next release — keep the feat! title so release-please marks it breaking.
Summary
Implements #780: semantic rename is removed from Wright's CLI and agent-facing interfaces. Agents edit source directly and re-verify with
check, or propose transactions through the retained validated-edit operations.Removed:
wright rename <NAME> <NEW_NAME> [INPUT](raw Workshop and OPY input), including shell completions and docs — it now parses as an ordinary unknown subcommandsemanticRenameandproviderSemanticRenamefromwright serve(stdio/JSON-RPC), MCP tools,wright agent tools, capabilities, andschemas/wright-agent-v1.schema.jsonwright-driver(RenameTarget,SemanticRename,CompilerSession::{semantic_rename, rename}) and the provider-sidenamed_rename/ProviderNamedRenameRequestthat only the removed surfaces used, plus their testsPreserved:
textDocument/renameon source-language documents, still routed throughwright_driver::provider_edit::semantic_rename(provider-owned, versioned workspace edits)validateEditTransactionandproviderValidateEdit— the supported caller-proposed edit path — with stale-source refusals, all-or-nothing validation, atomic writes, and rollback intact (Multi-source edit writes are not atomic when a later file fails #734)lint --fixfix transactions through the same validated-edit machineryRenameRequest/rename_symbolhelpers forwright-embedding/v1source compatibilityopy-rsand the LPP specification are untouched; no replacement edit operation is addedThe vendored agent guide (
agent-guide/wright/) is synced towrightkit/skills@cdd694f, which dropped the rename surfaces upstream (wrightkit/skills#26, landed via #27); both pins (agent-guide/UPSTREAM.md,agent.rs) updated and the--checkpasses.Verification
cargo fmt --all -- --check: cleancargo clippy --workspace --all-targets --all-features -- -D warnings: clean on stable andcargo +1.85.0cargo test --workspace --all-targets --all-features: all suites pass, 0 failures — including thewright-lsprename tests (versioned-edit negotiation, per-document grouping, provider routing) and thevalidateEditTransaction/providerValidateEdit/lint --fixtestsgit diff --check: cleanpython3 scripts/sync-agent-guide.py --check: vendored guide matcheswrightkit/skills@cdd694fwright rename score totalexits 2 asunrecognized subcommand;semanticRenameandproviderSemanticRenamerequests over stdio answermalformed-requestnaming the 21 surviving ops;capabilitiesno longer advertises the removed ops; MCPtools/listshows 19 tools withwright_validate_edit_transaction/wright_provider_validate_editretained;wright agent toolsemits 21 defs with no rename; generated bash/zsh/fish/powershell completions contain norenameFixes #780