Skip to content

[v0.2] Route source mutation semantics through providers #139

Description

@Teakowa

Depends on: #142 and language-provider-protocol#1
Release coordination: #135

Goal

Prove that Wright's validated source-edit and semantic-rename architecture survives provider separation without moving generic transaction safety or transport ownership into providers.

Scope

  • Preserve Wright-owned generic edit transaction semantics: source identity/version preconditions, deterministic ordering, overlap/conflict detection, atomicity, preview, and caller-controlled application.
  • Route language-specific semantic decisions through LPP capabilities: semantic rename target resolution/edit generation, project-aware semantic validation, and provider-owned project semantics.
  • Use the LPP conformance/mock provider for the v0.2 proof rather than creating a temporary half-cutover of opy-rs or del-rs.
  • Keep ToolService/LSP/agent-facing mutation contracts source-oriented and transport-neutral.
  • Ensure provider failures, unsupported capabilities, stale sources, and semantic validation failures produce structured refusals with no partial edit set.
  • Add end-to-end tests for single-file/multi-file edits, collision/stale refusal, unsupported capability, and provider failure through Wright's LPP client.

Non-goals

  • Production OPY or DEL provider cutover.
  • New refactoring categories.
  • Filesystem application inside providers.
  • Exposing provider AST/HIR/WIR over LPP.
  • Whole-source reconstruction as the mutation mechanism.
  • Textual search/replace fallback when semantic capability is unavailable.

Acceptance criteria

  • Wright obtains semantic rename/edit-validation results through LPP while retaining its existing public source-edit transaction guarantees.
  • Generic stale/overlap/atomic/application policy remains Wright-owned; language-specific semantic/project validation is provider-owned.
  • ToolService and LSP adapters remain free of language-specific mutation semantics.
  • The conformance/mock-provider path proves the seam without OPY/DEL-specific protocol changes.
  • Unsupported/missing capabilities and provider failures refuse explicitly with no partial mutation.
  • The seam is directly reusable by later opy-rs and del-rs production cutovers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status
    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions