Skip to content

change inconsistency infrastructure to allow UI integrations#134

Merged
georghinkel merged 4 commits intomainfrom
inconsistency-management
Mar 19, 2026
Merged

change inconsistency infrastructure to allow UI integrations#134
georghinkel merged 4 commits intomainfrom
inconsistency-management

Conversation

@georghinkel
Copy link
Copy Markdown
Contributor

@georghinkel georghinkel commented Mar 18, 2026

Summary by MergeMonkey

  • Docs & Guides:
    • Added new interfaces IInconsistencyDescriptor and IInconsistencyDescriptorSyntax for describing inconsistencies
    • Extended IInconsistency interface with LeftElement, RightElement, DescribeLeft and DescribeRight properties
  • Just Shipped:
    • Added code lens integration to display and resolve inconsistencies from UI
    • Added PrepareUpdate/CompleteUpdate/GetSynchronizations methods to SynchronizationService for UI orchestration
    • Added RepairLeft and RepairRight commands for resolving inconsistencies via LSP
  • Infrastructure:
    • Refactored collection synchronization to pass descriptor objects through call chain
    • Added element context parameters to inconsistency creation for UI anchoring
    • Refactored code action/lens dictionaries to track per-document state with URI

@mergemonkeyhq
Copy link
Copy Markdown

mergemonkeyhq bot commented Mar 18, 2026

Risk AssessmentNEEDS-TESTING · ~25 min review

Focus areas: inconsistency descriptor interface design · LSP code lens integration · repair command security

Assessment: New infrastructure for UI integrations with code lens and repair commands.

Changes

Files Summary
Inconsistency Infrastructure Interfaces
Synchronizations/Synchronizations/Inconsistencies/IInconsistency.cs, IInconsistencyDescriptor.cs, IInconsistencyDescriptorSyntax.cs
Added new interfaces to expose inconsistency descriptions and element anchors for UI integration
Inconsistency Classes Updates
Synchronizations/Synchronizations/Inconsistencies/MissingItemInconsistency.cs, PropertyInequality.cs, IncrementalPropertyConsistencyCheck.cs, IncrementalReferenceConsistencyCheck.cs, ReferenceInconsistency.cs
Extended inconsistency classes with DescribeLeft/DescribeRight methods and LeftElement/RightElement properties
Collection Synchronization Descriptor Passing
Synchronizations/Synchronizations/CollectionUtils.cs, CollectionSynchronizationJob.cs, SynchronizationRule.cs, SynchronizationMultipleDependency.cs
Refactored collection sync methods to pass IInconsistencyDescriptor through call chain for UI descriptions
LSP Code Lens Integration
AnyText/AnyText.Synchronizations/SynchronizingLspServer.cs
AnyText/AnyText.Lsp/LspServer.CodeLens.cs
AnyText/AnyText.Lsp/LspServer.ExecuteCommand.cs
Added code lens generation for inconsistencies with repair commands in LSP server
Synchronization Service UI Methods
AnyText/AnyText.Synchronizations/SynchronizationService.cs, IRunningSynchronization.cs, RunningSynchronization.cs
Added PrepareUpdate, CompleteUpdate, GetSynchronizations and Inconsistencies properties for UI orchestration
Code Action State Management
AnyText/AnyText.Lsp/LspServer.CodeAction.cs
Refactored dictionary to track rule applications per document URI for proper cleanup

Sequence Diagram

sequenceDiagram
participant User
participant LSP
participant SyncService
participant SyncRule
participant Inconsistency
User->>LSP: Requests CodeLenses
LSP->>SyncService: GetSynchronizations(doc)
SyncService->>LSP: RunningSynchronizations
LSP->>Inconsistency: For each inconsistency
Inconsistency->>LSP: DescribeLeft(), DescribeRight(), LeftElement, RightElement
LSP->>User: CodeLens with repair command
User->>LSP: Executes repairLeft command
LSP->>SyncService: PreparePartnerUpdate(uri)
LSP->>Inconsistency: ResolveLeft()
Inconsistency->>SyncRule: Updates model
SyncService->>LSP: CompleteUpdate(uri)
Loading

Dig Deeper With Commands

  • /review <file-path> <function-optional>
  • /chat <file-path> "<question>"
  • /roast <file-path>

Runs only when explicitly triggered.

@georghinkel
Copy link
Copy Markdown
Contributor Author

/review --force

Comment thread AnyText/AnyText.Synchronizations/SynchronizingLspServer.cs
@mergemonkeyhq
Copy link
Copy Markdown

mergemonkeyhq bot commented Mar 18, 2026

Actionable Comments Posted: 2

🧾 Coverage Summary
✔️ Covered (38 files)
- AnyText/AnyText.Core/CodeLensApplication.cs
- AnyText/AnyText.Core/CodeLensInfo.cs
- AnyText/AnyText.Core/Matcher.cs
- AnyText/AnyText.Core/Parser.cs
- AnyText/AnyText.Core/Rules/RuleApplication.cs
- AnyText/AnyText.Lsp/LspServer.CodeLens.cs
- AnyText/AnyText.Lsp/LspServer.ExecuteCommand.cs
- AnyText/AnyText.Lsp/LspServer.Registration.cs
- AnyText/AnyText.Synchronizations/IRunningSynchronization.cs
- AnyText/AnyText.Synchronizations/ModelSynchronization.cs
- AnyText/AnyText.Synchronizations/RunningSynchronization.cs
- AnyText/AnyText.Synchronizations/SynchronizationService.cs
- AnyText/AnyText.Synchronizations/SynchronizingLspServer.cs
- AnyText/AnyText.Synchronizations/TextSynchronization.cs
- AnyText/AnyText.history
- AnyText/AnyText/Grammars/AnyTextGrammar.manual.Actions.cs
- Synchronizations/Synchronizations.history
- Synchronizations/Synchronizations/CollectionSynchronizationJob.cs
- Synchronizations/Synchronizations/CollectionUtils.cs
- Synchronizations/Synchronizations/Inconsistencies/IInconsistency.cs
- Synchronizations/Synchronizations/Inconsistencies/IInconsistencyDescriptor.cs
- Synchronizations/Synchronizations/Inconsistencies/IInconsistencyDescriptorSyntax.cs
- Synchronizations/Synchronizations/Inconsistencies/IncrementalPropertyConsistencyCheck.cs
- Synchronizations/Synchronizations/Inconsistencies/IncrementalReferenceConsistencyCheck.cs
- Synchronizations/Synchronizations/Inconsistencies/MissingItemInconsistency.cs
- Synchronizations/Synchronizations/Inconsistencies/PropertyInequality.cs
- Synchronizations/Synchronizations/Inconsistencies/ReferenceInconsistency.cs
- Synchronizations/Synchronizations/LeftToRightPropertySynchronizationJob.cs
- Synchronizations/Synchronizations/OneWayCollectionSynchronizationJob.cs
- Synchronizations/Synchronizations/OneWayPropertySynchronizationJob.cs
- Synchronizations/Synchronizations/OneWaySynchronizationMultipleDependency.cs
- Synchronizations/Synchronizations/PropertySynchronization.cs
- Synchronizations/Synchronizations/PropertySynchronizationJob.cs
- Synchronizations/Synchronizations/RightToLeftPropertySynchronizationJob.cs
- Synchronizations/Synchronizations/SynchronizationMultipleDependency.cs
- Synchronizations/Synchronizations/SynchronizationRule.cs
- Synchronizations/Synchronizations/SynchronizationRuleBase.cs
- Synchronizations/Synchronizations/SynchronizationSingleDependency.cs

Comment thread Synchronizations/Synchronizations/Inconsistencies/MissingItemInconsistency.cs Outdated
@mergemonkeyhq
Copy link
Copy Markdown

mergemonkeyhq bot commented Mar 19, 2026

Actionable Comments Posted: 0

♻️ Duplicate comments (1)
DescribeRight now reports the wrong side for left-missing items - Synchronizations/Synchronizations/Inconsistencies/MissingItemInconsistency.cs (174)
This branch was flipped, so right-side UI actions now describe the opposite repair when \`IsLeftMissing\` is true. In the LSP integration, that text is shown directly as the code-lens title, so users will get misleading repair labels for these inconsistencies.

Restore the old condition \(\`if \(\!IsLeftMissing\)\`\) in both \`DescribeRight\(\)\` implementations so right-side repair labels match the actual missing side again.
🧾 Coverage Summary
✔️ Covered (1 files)
- Synchronizations/Synchronizations/Inconsistencies/MissingItemInconsistency.cs
💤 Omitted (38 files)
- AnyText/AnyText.Core/CodeLensApplication.cs
- AnyText/AnyText.Core/CodeLensInfo.cs
- AnyText/AnyText.Core/Matcher.cs
- AnyText/AnyText.Core/Parser.cs
- AnyText/AnyText.Core/Rules/RuleApplication.cs
- AnyText/AnyText.Lsp/LspServer.CodeAction.cs
- AnyText/AnyText.Lsp/LspServer.CodeLens.cs
- AnyText/AnyText.Lsp/LspServer.ExecuteCommand.cs
- AnyText/AnyText.Lsp/LspServer.Registration.cs
- AnyText/AnyText.Synchronizations/IRunningSynchronization.cs
- AnyText/AnyText.Synchronizations/ModelSynchronization.cs
- AnyText/AnyText.Synchronizations/RunningSynchronization.cs
- AnyText/AnyText.Synchronizations/SynchronizationService.cs
- AnyText/AnyText.Synchronizations/SynchronizingLspServer.cs
- AnyText/AnyText.Synchronizations/TextSynchronization.cs
- AnyText/AnyText.history
- AnyText/AnyText/Grammars/AnyTextGrammar.manual.Actions.cs
- Synchronizations/Synchronizations.history
- Synchronizations/Synchronizations/CollectionSynchronizationJob.cs
- Synchronizations/Synchronizations/CollectionUtils.cs
- Synchronizations/Synchronizations/Inconsistencies/IInconsistency.cs
- Synchronizations/Synchronizations/Inconsistencies/IInconsistencyDescriptor.cs
- Synchronizations/Synchronizations/Inconsistencies/IInconsistencyDescriptorSyntax.cs
- Synchronizations/Synchronizations/Inconsistencies/IncrementalPropertyConsistencyCheck.cs
- Synchronizations/Synchronizations/Inconsistencies/IncrementalReferenceConsistencyCheck.cs
- Synchronizations/Synchronizations/Inconsistencies/PropertyInequality.cs
- Synchronizations/Synchronizations/Inconsistencies/ReferenceInconsistency.cs
- Synchronizations/Synchronizations/LeftToRightPropertySynchronizationJob.cs
- Synchronizations/Synchronizations/OneWayCollectionSynchronizationJob.cs
- Synchronizations/Synchronizations/OneWayPropertySynchronizationJob.cs
- Synchronizations/Synchronizations/OneWaySynchronizationMultipleDependency.cs
- Synchronizations/Synchronizations/PropertySynchronization.cs
- Synchronizations/Synchronizations/PropertySynchronizationJob.cs
- Synchronizations/Synchronizations/RightToLeftPropertySynchronizationJob.cs
- Synchronizations/Synchronizations/SynchronizationMultipleDependency.cs
- Synchronizations/Synchronizations/SynchronizationRule.cs
- Synchronizations/Synchronizations/SynchronizationRuleBase.cs
- Synchronizations/Synchronizations/SynchronizationSingleDependency.cs

@georghinkel
Copy link
Copy Markdown
Contributor Author

/review Synchronizations/Synchronizations/Inconsistencies/MissingItemInconsistency.cs

Copy link
Copy Markdown

@mergemonkeyhq mergemonkeyhq bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/review Synchronizations/Synchronizations/Inconsistencies/MissingItemInconsistency.cs

No issues found - this code looks good!

📋 Review Summary

Adds source/target element tracking and descriptor-based descriptions to MissingItemInconsistency classes for richer inconsistency reporting

@georghinkel georghinkel merged commit d502670 into main Mar 19, 2026
1 check passed
@georghinkel georghinkel deleted the inconsistency-management branch March 19, 2026 06:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant