Skip to content

Commit 53ea4b2

Browse files
fix(parser): remove legacy provider fallback
Explicit provider factories need to fail as part of the provider construction contract, not only through registry tests. Removing the legacy fallback makes an unhandled AgentDef a loud developer error, while import-only providers keep the non-filesystem export parsers represented explicitly. Provider tests now assert concrete construction without depending on removed legacy types.
1 parent 222d635 commit 53ea4b2

29 files changed

Lines changed: 162 additions & 184 deletions

internal/parser/amp_zencoder_provider_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,15 @@ import (
1212
)
1313

1414
func TestAmpProviderFactoryReplacesLegacyAdapter(t *testing.T) {
15-
factory, ok := ProviderFactoryByType(AgentAmp)
15+
_, ok := ProviderFactoryByType(AgentAmp)
1616
require.True(t, ok)
17-
_, legacyFactory := factory.(legacyProviderFactory)
18-
assert.False(t, legacyFactory)
1917

2018
provider, ok := NewProvider(AgentAmp, ProviderConfig{
2119
Roots: []string{t.TempDir()},
2220
Machine: "devbox",
2321
})
2422
require.True(t, ok)
25-
_, legacyProvider := provider.(*legacyProvider)
26-
assert.False(t, legacyProvider)
23+
require.NotNil(t, provider)
2724
}
2825

2926
func TestAmpProviderSourceMethods(t *testing.T) {
@@ -40,6 +37,7 @@ func TestAmpProviderSourceMethods(t *testing.T) {
4037
Machine: "devbox",
4138
})
4239
require.True(t, ok)
40+
require.NotNil(t, provider)
4341

4442
discovered, err := provider.Discover(context.Background())
4543
require.NoError(t, err)
@@ -80,6 +78,7 @@ func TestAmpProviderSourceMethodsFollowSymlinkedSessionFile(t *testing.T) {
8078
Machine: "devbox",
8179
})
8280
require.True(t, ok)
81+
require.NotNil(t, provider)
8382

8483
discovered, err := provider.Discover(context.Background())
8584
require.NoError(t, err)
@@ -113,6 +112,7 @@ func TestAmpProviderParse(t *testing.T) {
113112
Machine: "devbox",
114113
})
115114
require.True(t, ok)
115+
require.NotNil(t, provider)
116116
sources, err := provider.Discover(context.Background())
117117
require.NoError(t, err)
118118
require.Len(t, sources, 1)
@@ -133,18 +133,15 @@ func TestAmpProviderParse(t *testing.T) {
133133
}
134134

135135
func TestZencoderProviderFactoryReplacesLegacyAdapter(t *testing.T) {
136-
factory, ok := ProviderFactoryByType(AgentZencoder)
136+
_, ok := ProviderFactoryByType(AgentZencoder)
137137
require.True(t, ok)
138-
_, legacyFactory := factory.(legacyProviderFactory)
139-
assert.False(t, legacyFactory)
140138

141139
provider, ok := NewProvider(AgentZencoder, ProviderConfig{
142140
Roots: []string{t.TempDir()},
143141
Machine: "devbox",
144142
})
145143
require.True(t, ok)
146-
_, legacyProvider := provider.(*legacyProvider)
147-
assert.False(t, legacyProvider)
144+
require.NotNil(t, provider)
148145
}
149146

150147
func TestZencoderProviderSourceMethods(t *testing.T) {
@@ -159,6 +156,7 @@ func TestZencoderProviderSourceMethods(t *testing.T) {
159156
Machine: "devbox",
160157
})
161158
require.True(t, ok)
159+
require.NotNil(t, provider)
162160

163161
discovered, err := provider.Discover(context.Background())
164162
require.NoError(t, err)
@@ -198,6 +196,7 @@ func TestZencoderProviderSourceMethodsFollowSymlinkedSessionFile(t *testing.T) {
198196
Machine: "devbox",
199197
})
200198
require.True(t, ok)
199+
require.NotNil(t, provider)
201200

202201
discovered, err := provider.Discover(context.Background())
203202
require.NoError(t, err)
@@ -230,6 +229,7 @@ func TestZencoderProviderParse(t *testing.T) {
230229
Machine: "devbox",
231230
})
232231
require.True(t, ok)
232+
require.NotNil(t, provider)
233233
sources, err := provider.Discover(context.Background())
234234
require.NoError(t, err)
235235
require.Len(t, sources, 1)

internal/parser/antigravity_provider_test.go

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,15 @@ import (
1313
)
1414

1515
func TestAntigravityProviderFactoryReplacesLegacyAdapter(t *testing.T) {
16-
factory, ok := ProviderFactoryByType(AgentAntigravity)
16+
_, ok := ProviderFactoryByType(AgentAntigravity)
1717
require.True(t, ok)
18-
_, legacyFactory := factory.(legacyProviderFactory)
19-
assert.False(t, legacyFactory)
2018

2119
provider, ok := NewProvider(AgentAntigravity, ProviderConfig{
2220
Roots: []string{t.TempDir()},
2321
Machine: "devbox",
2422
})
2523
require.True(t, ok)
26-
_, legacyProvider := provider.(*legacyProvider)
27-
assert.False(t, legacyProvider)
24+
require.NotNil(t, provider)
2825
}
2926

3027
func TestAntigravityProviderSourceMethods(t *testing.T) {
@@ -38,6 +35,7 @@ func TestAntigravityProviderSourceMethods(t *testing.T) {
3835
Machine: "devbox",
3936
})
4037
require.True(t, ok)
38+
require.NotNil(t, provider)
4139

4240
plan, err := provider.WatchPlan(context.Background())
4341
require.NoError(t, err)
@@ -88,6 +86,7 @@ func TestAntigravityProviderFingerprintAndParse(t *testing.T) {
8886
Machine: "devbox",
8987
})
9088
require.True(t, ok)
89+
require.NotNil(t, provider)
9190
source, ok, err := provider.FindSource(context.Background(), FindSourceRequest{
9291
RawSessionID: id,
9392
})
@@ -124,18 +123,15 @@ func TestAntigravityProviderFingerprintAndParse(t *testing.T) {
124123
}
125124

126125
func TestAntigravityCLIProviderFactoryReplacesLegacyAdapter(t *testing.T) {
127-
factory, ok := ProviderFactoryByType(AgentAntigravityCLI)
126+
_, ok := ProviderFactoryByType(AgentAntigravityCLI)
128127
require.True(t, ok)
129-
_, legacyFactory := factory.(legacyProviderFactory)
130-
assert.False(t, legacyFactory)
131128

132129
provider, ok := NewProvider(AgentAntigravityCLI, ProviderConfig{
133130
Roots: []string{t.TempDir()},
134131
Machine: "devbox",
135132
})
136133
require.True(t, ok)
137-
_, legacyProvider := provider.(*legacyProvider)
138-
assert.False(t, legacyProvider)
134+
require.NotNil(t, provider)
139135
}
140136

141137
func TestAntigravityCLIProviderSourceMethods(t *testing.T) {
@@ -150,6 +146,7 @@ func TestAntigravityCLIProviderSourceMethods(t *testing.T) {
150146
Machine: "devbox",
151147
})
152148
require.True(t, ok)
149+
require.NotNil(t, provider)
153150

154151
plan, err := provider.WatchPlan(context.Background())
155152
require.NoError(t, err)
@@ -419,6 +416,7 @@ func TestAntigravityCLIProviderFingerprintParseAndRetry(t *testing.T) {
419416
Machine: "devbox",
420417
})
421418
require.True(t, ok)
419+
require.NotNil(t, provider)
422420
source, ok, err := provider.FindSource(context.Background(), FindSourceRequest{
423421
RawSessionID: id,
424422
})

internal/parser/claude_provider_test.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,15 @@ import (
1212
)
1313

1414
func TestClaudeProviderFactoryReplacesLegacyAdapter(t *testing.T) {
15-
factory, ok := ProviderFactoryByType(AgentClaude)
15+
_, ok := ProviderFactoryByType(AgentClaude)
1616
require.True(t, ok)
17-
_, legacyFactory := factory.(legacyProviderFactory)
18-
assert.False(t, legacyFactory)
1917

2018
provider, ok := NewProvider(AgentClaude, ProviderConfig{
2119
Roots: []string{t.TempDir()},
2220
Machine: "devbox",
2321
})
2422
require.True(t, ok)
25-
_, legacyProvider := provider.(*legacyProvider)
26-
assert.False(t, legacyProvider)
23+
require.NotNil(t, provider)
2724
}
2825

2926
func TestClaudeProviderSourceMethods(t *testing.T) {
@@ -54,6 +51,7 @@ func TestClaudeProviderSourceMethods(t *testing.T) {
5451
Machine: "devbox",
5552
})
5653
require.True(t, ok)
54+
require.NotNil(t, provider)
5755

5856
plan, err := provider.WatchPlan(context.Background())
5957
require.NoError(t, err)
@@ -137,6 +135,7 @@ func TestClaudeProviderDiscoversSymlinkedProjectDirectory(t *testing.T) {
137135
Machine: "devbox",
138136
})
139137
require.True(t, ok)
138+
require.NotNil(t, provider)
140139

141140
discovered, err := provider.Discover(context.Background())
142141
require.NoError(t, err)
@@ -163,6 +162,7 @@ func TestClaudeProviderParse(t *testing.T) {
163162
Machine: "devbox",
164163
})
165164
require.True(t, ok)
165+
require.NotNil(t, provider)
166166
sources, err := provider.Discover(context.Background())
167167
require.NoError(t, err)
168168
require.Len(t, sources, 1)
@@ -215,6 +215,7 @@ func TestClaudeProviderParseIncremental(t *testing.T) {
215215
Machine: "devbox",
216216
})
217217
require.True(t, ok)
218+
require.NotNil(t, provider)
218219
source, ok, err := provider.FindSource(context.Background(), FindSourceRequest{
219220
RawSessionID: "inc",
220221
})

internal/parser/claw_provider_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,18 +80,15 @@ func qClawProviderTestSpec() clawProviderTestSpec {
8080
func assertClawProviderReplacesLegacyAdapter(t *testing.T, agent AgentType) {
8181
t.Helper()
8282

83-
factory, ok := ProviderFactoryByType(agent)
83+
_, ok := ProviderFactoryByType(agent)
8484
require.True(t, ok)
85-
_, legacyFactory := factory.(legacyProviderFactory)
86-
assert.False(t, legacyFactory)
8785

8886
provider, ok := NewProvider(agent, ProviderConfig{
8987
Roots: []string{t.TempDir()},
9088
Machine: "devbox",
9189
})
9290
require.True(t, ok)
93-
_, legacyProvider := provider.(*legacyProvider)
94-
assert.False(t, legacyProvider)
91+
require.NotNil(t, provider)
9592
}
9693

9794
func assertClawProviderSourceMethods(t *testing.T, spec clawProviderTestSpec) {
@@ -123,6 +120,7 @@ func assertClawProviderSourceMethods(t *testing.T, spec clawProviderTestSpec) {
123120
Machine: "devbox",
124121
})
125122
require.True(t, ok)
123+
require.NotNil(t, provider)
126124

127125
plan, err := provider.WatchPlan(context.Background())
128126
require.NoError(t, err)
@@ -238,6 +236,7 @@ func assertClawProviderDiscoversSymlinkedAgentDirectory(
238236
Machine: "devbox",
239237
})
240238
require.True(t, ok)
239+
require.NotNil(t, provider)
241240

242241
discovered, err := provider.Discover(context.Background())
243242
require.NoError(t, err)
@@ -264,6 +263,7 @@ func assertClawProviderParse(t *testing.T, spec clawProviderTestSpec) {
264263
Machine: "devbox",
265264
})
266265
require.True(t, ok)
266+
require.NotNil(t, provider)
267267
sources, err := provider.Discover(context.Background())
268268
require.NoError(t, err)
269269
require.Len(t, sources, 1)

internal/parser/codex_provider_test.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,15 @@ import (
1313
)
1414

1515
func TestCodexProviderFactoryReplacesLegacyAdapter(t *testing.T) {
16-
factory, ok := ProviderFactoryByType(AgentCodex)
16+
_, ok := ProviderFactoryByType(AgentCodex)
1717
require.True(t, ok)
18-
_, legacyFactory := factory.(legacyProviderFactory)
19-
assert.False(t, legacyFactory)
2018

2119
provider, ok := NewProvider(AgentCodex, ProviderConfig{
2220
Roots: []string{t.TempDir()},
2321
Machine: "devbox",
2422
})
2523
require.True(t, ok)
26-
_, legacyProvider := provider.(*legacyProvider)
27-
assert.False(t, legacyProvider)
24+
require.NotNil(t, provider)
2825
}
2926

3027
func TestCodexProviderSourceMethods(t *testing.T) {
@@ -44,6 +41,7 @@ func TestCodexProviderSourceMethods(t *testing.T) {
4441
Machine: "devbox",
4542
})
4643
require.True(t, ok)
44+
require.NotNil(t, provider)
4745

4846
plan, err := provider.WatchPlan(context.Background())
4947
require.NoError(t, err)
@@ -129,6 +127,7 @@ func TestCodexProviderParseIncremental(t *testing.T) {
129127
Roots: []string{root},
130128
})
131129
require.True(t, ok)
130+
require.NotNil(t, provider)
132131
source, ok, err := provider.FindSource(context.Background(), FindSourceRequest{
133132
FullSessionID: "codex:" + uuid,
134133
})

internal/parser/commandcode_provider_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,15 @@ import (
1111
)
1212

1313
func TestCommandCodeProviderFactoryReplacesLegacyAdapter(t *testing.T) {
14-
factory, ok := ProviderFactoryByType(AgentCommandCode)
14+
_, ok := ProviderFactoryByType(AgentCommandCode)
1515
require.True(t, ok)
16-
_, legacyFactory := factory.(legacyProviderFactory)
17-
assert.False(t, legacyFactory)
1816

1917
provider, ok := NewProvider(AgentCommandCode, ProviderConfig{
2018
Roots: []string{t.TempDir()},
2119
Machine: "devbox",
2220
})
2321
require.True(t, ok)
24-
_, legacyProvider := provider.(*legacyProvider)
25-
assert.False(t, legacyProvider)
22+
require.NotNil(t, provider)
2623
}
2724

2825
func TestCommandCodeProviderSourceMethods(t *testing.T) {
@@ -38,6 +35,7 @@ func TestCommandCodeProviderSourceMethods(t *testing.T) {
3835
Machine: "devbox",
3936
})
4037
require.True(t, ok)
38+
require.NotNil(t, provider)
4139

4240
discovered, err := provider.Discover(context.Background())
4341
require.NoError(t, err)
@@ -85,6 +83,7 @@ func TestCommandCodeProviderDiscoversSymlinkedProjectDirectory(t *testing.T) {
8583
Machine: "devbox",
8684
})
8785
require.True(t, ok)
86+
require.NotNil(t, provider)
8887

8988
discovered, err := provider.Discover(context.Background())
9089
require.NoError(t, err)
@@ -109,6 +108,7 @@ func TestCommandCodeProviderParse(t *testing.T) {
109108
Machine: "devbox",
110109
})
111110
require.True(t, ok)
111+
require.NotNil(t, provider)
112112
sources, err := provider.Discover(context.Background())
113113
require.NoError(t, err)
114114
require.Len(t, sources, 1)

internal/parser/copilot_ide_provider_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,15 @@ import (
1414
func TestCopilotIDEProviderFactoriesReplaceLegacyAdapter(t *testing.T) {
1515
for _, agent := range []AgentType{AgentVSCodeCopilot, AgentVSCopilot} {
1616
t.Run(string(agent), func(t *testing.T) {
17-
factory, ok := ProviderFactoryByType(agent)
17+
_, ok := ProviderFactoryByType(agent)
1818
require.True(t, ok)
19-
_, legacyFactory := factory.(legacyProviderFactory)
20-
assert.False(t, legacyFactory)
2119

2220
provider, ok := NewProvider(agent, ProviderConfig{
2321
Roots: []string{t.TempDir()},
2422
Machine: "devbox",
2523
})
2624
require.True(t, ok)
27-
_, legacyProvider := provider.(*legacyProvider)
28-
assert.False(t, legacyProvider)
25+
require.NotNil(t, provider)
2926
})
3027
}
3128
}
@@ -50,6 +47,7 @@ func TestVSCodeCopilotProviderSourceMethods(t *testing.T) {
5047
Machine: "devbox",
5148
})
5249
require.True(t, ok)
50+
require.NotNil(t, provider)
5351

5452
plan, err := provider.WatchPlan(context.Background())
5553
require.NoError(t, err)
@@ -197,6 +195,7 @@ func TestVisualStudioCopilotProviderSourceMethods(t *testing.T) {
197195
Machine: "devbox",
198196
})
199197
require.True(t, ok)
198+
require.NotNil(t, provider)
200199

201200
plan, err := provider.WatchPlan(context.Background())
202201
require.NoError(t, err)
@@ -288,6 +287,7 @@ func TestVisualStudioCopilotProviderClassifiesDeletedTraceAndFansOutPhysicalTrac
288287
Machine: "devbox",
289288
})
290289
require.True(t, ok)
290+
require.NotNil(t, provider)
291291

292292
discovered, err := provider.Discover(context.Background())
293293
require.NoError(t, err)

0 commit comments

Comments
 (0)