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:
2026-06-29 09:28:46 +02:00
co-authored by Claude Opus 4.8
parent bd4a8332af
commit eac9612a5b
9 changed files with 207 additions and 0 deletions
+13
View File
@@ -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);
});
});
}