feat(tools): Tools settings category + re-detect for supporter binaries (T-495)
ToolsSettingsExtension adds a Tools settings category — a path field per tool (app.tools.<name>) plus a Re-detect action (tools.detect) — and keeps the live resolver in sync as paths are edited (supporterBinariesFrom). en + nl catalogs. Completes the D-104 UI surface. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+13
@@ -105,4 +105,17 @@ void main() {
|
||||
expect(store['app.tools.detected'], isTrue);
|
||||
});
|
||||
});
|
||||
|
||||
group('supporterBinariesFrom', () {
|
||||
test('builds a resolver from the override keys', () {
|
||||
final store = <String, Object?>{'app.tools.d2': '/x/d2'};
|
||||
final r = supporterBinariesFrom((k) => store[k], tools: ['d2']);
|
||||
expect(r.isStalePin('d2'), isTrue); // /x/d2 not a real file → loaded as override
|
||||
});
|
||||
|
||||
test('ignores blank or missing keys', () {
|
||||
final store = <String, Object?>{'app.tools.d2': ''};
|
||||
expect(supporterBinariesFrom((k) => store[k], tools: ['claude', 'd2']).isStalePin('d2'), isFalse);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user