|
8 | 8 | from __future__ import annotations |
9 | 9 |
|
10 | 10 | from dataclasses import dataclass |
11 | | -from enum import Enum |
| 11 | +from enum import StrEnum |
12 | 12 | from typing import Any |
13 | 13 |
|
14 | 14 | from beartype import beartype |
|
17 | 17 | from specfact_cli.models.project import BundleManifest, ProjectBundle |
18 | 18 |
|
19 | 19 |
|
20 | | -class MergeStrategy(str, Enum): |
| 20 | +class MergeStrategy(StrEnum): |
21 | 21 | """Merge resolution strategy.""" |
22 | 22 |
|
23 | 23 | AUTO = "auto" # Automatic resolution based on persona ownership |
@@ -102,7 +102,7 @@ def resolve( |
102 | 102 | if self._sections_disjoint(ours, theirs): |
103 | 103 | # No conflicts - merge all changes |
104 | 104 | merged = self._merge_sections(base, ours, theirs) |
105 | | - return MergeResolution(merged_bundle=merged, conflicts=[], auto_resolved=0, manual_resolved=0, unresolved=0) |
| 105 | + return MergeResolution(merged, [], 0, 0, 0) |
106 | 106 |
|
107 | 107 | # Rule 2: Find conflicts and resolve based on persona ownership |
108 | 108 | field_conflicts = self._find_conflicts(base, ours, theirs) |
@@ -161,11 +161,11 @@ def resolve( |
161 | 161 | conflicts.append(conflict) |
162 | 162 |
|
163 | 163 | return MergeResolution( |
164 | | - merged_bundle=merged, |
165 | | - conflicts=conflicts, |
166 | | - auto_resolved=auto_resolved, |
167 | | - manual_resolved=manual_resolved, |
168 | | - unresolved=unresolved, |
| 164 | + merged, |
| 165 | + conflicts, |
| 166 | + auto_resolved, |
| 167 | + manual_resolved, |
| 168 | + unresolved, |
169 | 169 | ) |
170 | 170 |
|
171 | 171 | @beartype |
|
0 commit comments