feat(settings): Activity category — conversation fold level (T-453)

The first real settings tab. The Claude extension contributes an Activity
SettingsCategory whose fold-level select binds to app.claude.activityFoldLevel;
the activity panes already rebuild off the settings notifier, so a pick applies
live. Proves the schema-driven engine end to end with a production setting —
opening Settings now shows a populated, working category.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-17 12:41:20 +02:00
co-authored by Claude Opus 4.8
parent 76d8dadc25
commit 291f997d31
3 changed files with 56 additions and 13 deletions
@@ -145,4 +145,16 @@ void main() {
expect(activeClaudeConfig, isNull);
});
});
group('Activity settings category (T-453)', () {
final category = ext.contributions.whereType<SettingsCategoryContribution>().firstWhere((c) => c.id == 'activity').category;
test('contributes an Activity category with the fold-level field', () {
expect(category.title, 'Activity');
final field = category.sections.expand((s) => s.fields).firstWhere((f) => f.key == kActivityFoldLevelKey);
expect(field.kind, SettingsFieldKind.select);
expect(field.defaultValue, 'tools');
expect(field.options.map((o) => o.value), containsAll(['none', 'tools', 'thinking', 'everything']));
});
});
}