Bugfixes and documentation cleanup for v1.0 release.
All checks were successful
ci/woodpecker/tag/release Pipeline was successful

This commit is contained in:
2026-05-01 11:30:29 -05:00
parent c9e98e14b5
commit f20f06db12
17 changed files with 332 additions and 177 deletions

View File

@@ -184,7 +184,7 @@ func nearestPriorMatch(segments []model.Segment, consumed []bool, index int) int
if consumed[candidate] {
continue
}
if sharesDerivedFrom(segments[index], segments[candidate]) {
if segments[index].Speaker == segments[candidate].Speaker && sharesDerivedFrom(segments[index], segments[candidate]) {
return candidate
}
}
@@ -196,7 +196,7 @@ func nearestSubsequentMatch(segments []model.Segment, consumed []bool, index int
if consumed[candidate] {
continue
}
if sharesDerivedFrom(segments[index], segments[candidate]) {
if segments[index].Speaker == segments[candidate].Speaker && sharesDerivedFrom(segments[index], segments[candidate]) {
return candidate
}
}

View File

@@ -51,6 +51,30 @@ func TestApplyUsesAnyDerivedFromIntersection(t *testing.T) {
assertSegment(t, got.Segments[0], "resolve-danglers:1", "target end.", 1, 4, []string{"source#1", "source#2", "source#3"})
}
func TestApplyDoesNotMergeDanglersAcrossSpeakersBackward(t *testing.T) {
in := transcript(
segment("a", "Alice", 1, 2, "target", []string{"source#1"}),
segment("b", "Bob", 3, 4, "end.", []string{"source#1"}),
)
got, summary := Apply(in)
if summary.DanglersMerged != 0 || !reflect.DeepEqual(got, in) {
t.Fatalf("unexpected merge:\ngot %#v\nwant %#v", got, in)
}
}
func TestApplyDoesNotMergeDanglersAcrossSpeakersForward(t *testing.T) {
in := transcript(
segment("a", "Alice", 1, 2, "start", []string{"source#1"}),
segment("b", "Bob", 3, 4, "target", []string{"source#1"}),
)
got, summary := Apply(in)
if summary.DanglersMerged != 0 || !reflect.DeepEqual(got, in) {
t.Fatalf("unexpected merge:\ngot %#v\nwant %#v", got, in)
}
}
func TestApplyDoesNotMergeWithoutSharedProvenance(t *testing.T) {
in := transcript(
segment("a", "Alice", 1, 2, "target", []string{"source#1"}),