remove tmux as a required tool (dead since D-77)

Nothing has spawned tmux since D-77 moved Claude session persistence to
`--resume`; Claude and terminal panes spawn `claude` or the shell directly.
But the toolchain still resolved tmux and listed it in `missing`, so on
mac/linux a box without tmux showed a spurious "tmux not found" warning in
the welcome view + status bar. The windows-support branch had special-cased
that away with a `!Platform.isWindows` guard — the tell that the requirement
was dead everywhere, not platform-specific.

Drop tmux from ResolvedPaths / ToolchainView / Toolchain (field, getter,
`missing`, PATH resolution) on every platform, removing the Windows guards
with it. Strip the testmode tmux probes and the comments / CLAUDE.md line
that claimed clide spawns tmux. (The dead ToolCheck class that also gated on
tmux was already deleted on main and dropped in the preceding merge.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-14 18:22:04 +02:00
co-authored by Claude Opus 4.8
parent 84a6ef7c77
commit 431e26d659
12 changed files with 29 additions and 60 deletions
+5 -5
View File
@@ -39,20 +39,20 @@ void main() {
});
testWidgets('all-tools-resolved shows a single "application ok" chip', (tester) async {
f.services.toolchain.applyResolved(const ResolvedPaths(git: '/usr/bin/git', pql: '/usr/bin/pql', tmux: '/usr/bin/tmux', shell: '/bin/bash'));
f.services.toolchain.applyResolved(const ResolvedPaths(git: '/usr/bin/git', pql: '/usr/bin/pql', shell: '/bin/bash'));
await tester.pumpWidget(harness(f, const ToolStatusItem()));
await tester.pumpAndSettle();
expect(find.text('application ok'), findsOneWidget);
});
testWidgets('missing tools render a warning chip per missing tool', (tester) async {
// git + tmux missing, pql resolved.
f.services.toolchain.applyResolved(const ResolvedPaths(pql: '/usr/bin/pql', shell: '/bin/bash'));
// git + pql missing, shell resolved → one chip each, nothing else.
f.services.toolchain.applyResolved(const ResolvedPaths(shell: '/bin/bash'));
await tester.pumpWidget(harness(f, const ToolStatusItem()));
await tester.pumpAndSettle();
expect(find.text('git not found'), findsOneWidget);
expect(find.text('tmux not found'), findsOneWidget);
expect(find.text('pql not found'), findsNothing);
expect(find.text('pql not found'), findsOneWidget);
expect(find.textContaining('not found'), findsNWidgets(2));
});
testWidgets('StatusItemContribution.build returns a ToolStatusItem', (tester) async {
+3 -3
View File
@@ -79,7 +79,7 @@ void main() {
});
testWidgets('status line shows "application ok" when all tools resolved', (tester) async {
f.services.toolchain.applyResolved(const ResolvedPaths(git: '/usr/bin/git', pql: '/usr/bin/pql', tmux: '/usr/bin/tmux', shell: '/bin/bash'));
f.services.toolchain.applyResolved(const ResolvedPaths(git: '/usr/bin/git', pql: '/usr/bin/pql', shell: '/bin/bash'));
await tester.pumpWidget(harness(f, const WelcomeView()));
await tester.pumpAndSettle();
expect(find.text('application ok'), findsOneWidget);
@@ -90,11 +90,11 @@ void main() {
tester.view.devicePixelRatio = 1.0;
addTearDown(tester.view.resetPhysicalSize);
addTearDown(tester.view.resetDevicePixelRatio);
f.services.toolchain.applyResolved(const ResolvedPaths(pql: '/usr/bin/pql'));
f.services.toolchain.applyResolved(const ResolvedPaths());
await tester.pumpWidget(harness(f, const WelcomeView()));
await tester.pumpAndSettle();
expect(find.textContaining('git not found'), findsOneWidget);
expect(find.textContaining('tmux not found'), findsOneWidget);
expect(find.textContaining('pql not found'), findsOneWidget);
});
testWidgets('theme-name link fires the theme.pick command when tapped', (tester) async {