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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions