feat: enable turn stats by default and prepare release notes

Turn stats was hidden unless users opted in. Show it by default, migrate implicit hidden lists, and preserve explicit section choices through reloads and settings sync.

Prepare App and VS Code release notes with Turn stats as the headline and BTW composer changes under improvements.

Testing: 115 focused tests passed; UI type-check passed; UI lint has one existing warning. Changelog validation and diff checks passed. Oxlint findings are limited to existing code in sections.ts; interactive app validation was not run.
This commit is contained in:
Bohdan Triapitsyn
2026-09-08 01:38:28 +03:00
parent 5df08ade90
commit 9e2163d839
9 changed files with 157 additions and 62 deletions
@@ -112,8 +112,18 @@ describe('sanitizeWorkStatusHiddenSections', () => {
});
test('treats a non-array payload as default hidden preference', () => {
expect(sanitizeWorkStatusHiddenSections(undefined)).toEqual(['telemetry']);
expect(sanitizeWorkStatusHiddenSections('usage')).toEqual(['telemetry']);
expect(sanitizeWorkStatusHiddenSections({ usage: true })).toEqual(['telemetry']);
expect(sanitizeWorkStatusHiddenSections(undefined)).toEqual([]);
expect(sanitizeWorkStatusHiddenSections('usage')).toEqual([]);
expect(sanitizeWorkStatusHiddenSections({ usage: true })).toEqual([]);
});
test('removes only the old implicit telemetry default', () => {
expect(sanitizeWorkStatusHiddenSections(['mcp', 'telemetry'], false)).toEqual(['mcp']);
expect(sanitizeWorkStatusHiddenSections([], false)).toEqual([]);
});
test('preserves explicit hiding, including hiding every section', () => {
expect(sanitizeWorkStatusHiddenSections(['mcp', 'telemetry'], true)).toEqual(['mcp', 'telemetry']);
expect(sanitizeWorkStatusHiddenSections([...WORK_STATUS_SECTION_IDS], true)).toEqual([...WORK_STATUS_SECTION_IDS]);
});
});