Skip to content

Remove tab count from group names#59

Merged
malston merged 6 commits intomainfrom
remove-summary-number
Dec 22, 2025
Merged

Remove tab count from group names#59
malston merged 6 commits intomainfrom
remove-summary-number

Conversation

@AmberAlston
Copy link
Collaborator

@AmberAlston AmberAlston commented Dec 21, 2025

Why - The tab count doesn't provide much value, and since it doesn't update as tabs are added and removed, it's actually worse than not having it.

Summary

  • Remove the tab count number from group names when organizing by domain or category
  • Groups are now named simply github.com instead of github.com (25)
  • Applies to all grouping operations: organize, combine groups, and merge duplicate groups

Screenshot Examples

Tabs grouped, no number in titles
Screenshot 2025-12-20 at 7 10 37β€―PM

Groups combined, no number in titles
Screenshot 2025-12-20 at 7 11 00β€―PM

Test plan

  • All 504 unit tests pass
  • Manual test: Organize tabs by domain and verify groups show only domain name
  • Manual test: Organize tabs by category and verify groups show only category name
  • Manual test: Combine groups and verify merged group shows only name
  • Manual test: Merge duplicate groups and verify consolidated group shows only name

πŸ€– Generated with Claude Code

@claude
Copy link

claude bot commented Dec 21, 2025

Code Review

Overview

This PR successfully removes tab count suffixes from group names across all grouping operations. The changes are clean, well-tested, and consistent with the stated objective.

βœ… Strengths

  1. Comprehensive Coverage: The changes correctly update all relevant locations:

    • organizeTabs.js (domain and category grouping)
    • combineGroups.js (group merging)
    • mergeDuplicateGroups.js (duplicate consolidation)
    • All corresponding test files
    • Documentation in CLAUDE.md
  2. Test Coverage: All 504 unit tests have been updated to match the new behavior. The test updates are thorough and maintain the same test scenarios while expecting the new output format.

  3. Code Quality:

    • Changes are minimal and focused on the specific requirement
    • No unnecessary refactoring or scope creep
    • Consistent implementation across all features
  4. Documentation: CLAUDE.md correctly updated to reflect the new behavior (github.com instead of github.com (25))

πŸ’‘ Observations

  1. extractGroupBaseName() Still Needed: Even though groups no longer display counts, the extractGroupBaseName() utility function is still correctly used throughout the codebase. This is good because:

    • It future-proofs the code in case any groups still have old-style names
    • It handles backward compatibility with existing user groups
    • The function's documentation should perhaps be updated to reflect that it's now primarily for backward compatibility
  2. Unused Variable in combineGroups.js: Line 38 calculates newTargetTabCount but it's no longer used after removing the count from the title. This is a harmless dead code that could be cleaned up:

    // Line 38 - no longer needed
    const newTargetTabCount = targetTabs.length + tabsMoved;
  3. Comment Updates: Most comments were properly updated (e.g., "Update group title with new count" β†’ "Update group title"), but the logic for calculating tab counts is still present in some places where it's no longer needed.

πŸ› Potential Issues

None identified - The implementation is solid and the test coverage confirms correct behavior.

🎯 Suggestions (Optional)

  1. Minor Cleanup (combineGroups.js:38): Remove the unused newTargetTabCount calculation

    - const newTargetTabCount = targetTabs.length + tabsMoved;
  2. Documentation Update (extractGroupBaseName.js): Consider updating the function's JSDoc to clarify it now primarily handles backward compatibility:

    /**
     * Extracts the base name from a group title by removing the tab count suffix.
     * This handles backward compatibility with older group formats and allows 
     * matching existing groups with new grouping operations.
     *
     * Examples:
     * - "github.com (15)" β†’ "github.com"  // Legacy format
     * - "github.com" β†’ "github.com"        // Current format
     * ...

βœ… Security & Performance

  • No security concerns: Changes are purely cosmetic to group titles
  • No performance impact: Removing string concatenation actually slightly improves performance
  • No breaking changes: Backward compatible with existing groups

πŸ“‹ Test Plan Checklist

The PR's test plan is comprehensive. I recommend completing the manual testing checklist before merging:

  • Manual test: Organize tabs by domain
  • Manual test: Organize tabs by category
  • Manual test: Combine groups
  • Manual test: Merge duplicate groups

Summary

Recommendation: βœ… Approve with minor cleanup suggestions

This is a well-executed PR that achieves its goal cleanly. The suggested cleanup items are minor and optional - they don't block approval. The implementation is correct, well-tested, and maintains backward compatibility.

Great work on maintaining test coverage and documentation! πŸŽ‰

- Clarify combineGroups.js comment: count is for status message display
- Update extractGroupBaseName.js JSDoc to explain backward compatibility
  with legacy group formats that included tab counts

πŸ€– Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@claude
Copy link

claude bot commented Dec 21, 2025

Code Review for PR #59: Remove tab count from group names

Summary

This PR removes the tab count suffix from group names across all grouping operations, simplifying the display from github.com (25) to just github.com. The changes are well-implemented and maintain backward compatibility.


βœ… Strengths

  1. Comprehensive Coverage: The changes correctly update all relevant locations:

    • organizeTabs.js - both domain and category grouping
    • combineGroups.js - group merging operations
    • mergeDuplicateGroups.js - duplicate consolidation
    • All corresponding test files
  2. Backward Compatibility: The extractGroupBaseName() utility ensures existing groups with legacy count suffixes (e.g., github.com (15)) will still be matched and updated correctly. The enhanced JSDoc at chrome-extension/src/utils/extractGroupBaseName.js:5-16 clearly explains this.

  3. Clean Implementation: The changes are minimal and focused:

    • Removed count calculations where no longer needed
    • Simplified group title updates
    • Updated comments to reflect the new behavior
  4. Test Coverage: All 504 unit tests have been updated to match the new behavior, ensuring no regressions.

  5. Documentation: CLAUDE.md has been updated to reflect the new naming convention at CLAUDE.md:111.


πŸ” Code Quality Observations

  1. Unused Variable (Minor): In combineGroups.js at line 38, the variable newTargetTabCount is calculated but no longer used after removing the count from the title. Consider removing it:
// Line 35-38 in combineGroups.js
const targetTabs = await chrome.tabs.query({ groupId: targetGroupId });
const tabsMoved = allSourceTabs.length;
const newTargetTabCount = targetTabs.length + tabsMoved; // ⚠️ Unused

Recommendation: Remove the newTargetTabCount calculation and the targetTabs query since they're only used for display in the return value, not for actual functionality.

  1. Comment Accuracy: The comment at combineGroups.js:35 says "Get current target tab count for status message display" but the status message in the return value doesn't actually use formatted counts - it uses the raw numbers. This is fine but could be clearer.

  2. Consistent Simplification: The title updates are now consistently simplified across all three feature modules, which improves maintainability.


🎯 Best Practices

  • βœ… Single Responsibility: Each function maintains its focused purpose
  • βœ… DRY Principle: The extractGroupBaseName() utility is reused consistently
  • βœ… Clear Intent: Updated comments explain why counts are calculated (for return values, not titles)
  • βœ… Test Alignment: Tests verify the new behavior thoroughly

πŸ”’ Security & Performance

  • βœ… No security concerns introduced
  • βœ… Performance is slightly improved (fewer string concatenations)
  • βœ… No changes to Chrome API usage patterns

πŸ“ Suggestions for Improvement

Optional Cleanup (non-blocking):

  1. Remove unused variable in combineGroups.js:
- // Get current target tab count for status message display
- const targetTabs = await chrome.tabs.query({ groupId: targetGroupId });
  const tabsMoved = allSourceTabs.length;
- const newTargetTabCount = targetTabs.length + tabsMoved;
+ 
+ // Get target tab count for return value
+ const targetTabs = await chrome.tabs.query({ groupId: targetGroupId });
+ const newTargetTabCount = targetTabs.length + tabsMoved;

Actually, looking more carefully, newTargetTabCount IS used in the return statement at line 53, so it should be kept. My apologies for the confusion. The current code is correct.


βœ… Final Verdict

APPROVED ✨

This is a clean, well-tested change that:

  • Simplifies the user interface
  • Maintains backward compatibility
  • Includes comprehensive test coverage
  • Updates documentation appropriately

The implementation is solid and ready to merge. Great work!


πŸ“‹ Testing Checklist (from PR description)

  • βœ… All 504 unit tests pass
  • βœ… Manual testing completed for all grouping operations
  • βœ… Screenshots provided showing the new behavior

No blocking issues found.

Update combine-groups.test.js assertions to match new behavior
where group titles no longer include the tab count suffix.

πŸ€– Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@claude
Copy link

claude bot commented Dec 21, 2025

Code Review - PR #59: Remove tab count from group names

Summary

This PR successfully removes tab counts from group names across all grouping operations, simplifying the UI to show names like github.com instead of github.com (25). The implementation is clean and well-tested.


βœ… Strengths

1. Comprehensive Coverage

All relevant code paths updated consistently:

  • organizeTabs() - both domain and category modes
  • combineGroups() - group merging
  • mergeDuplicateGroups() - duplicate consolidation

2. Backward Compatibility

The extractGroupBaseName() function is properly maintained and documented:

  • Handles legacy format: "github.com (15)" β†’ "github.com"
  • Handles new format: "github.com" β†’ "github.com" (idempotent)
  • Excellent JSDoc update explaining the backward compatibility purpose (chrome-extension/src/utils/extractGroupBaseName.js:6-8)

This ensures existing groups with counts in their titles will still work correctly.

3. Test Coverage

  • All 504 unit tests reported passing
  • 83 test assertions updated to match new format
  • E2E tests updated appropriately
  • Manual testing checklist completed

4. Documentation

  • CLAUDE.md updated to reflect new behavior
  • Comments updated (e.g., "Update group title" instead of "Update group title with new count")

πŸ” Code Quality Observations

1. Status Messages Still Include Counts βœ…

The newTargetTabCount and tabsMoved variables are still calculated and returned, which is correct because:

  • Used in status messages: "Moved 5 tabs", "now 8 tabs"
  • Provides useful feedback to users
  • Only removed from group titles, not from status feedback

This is the right approach - users still get informative feedback without cluttering the tab group UI.

2. Clean Separation of Concerns

The code correctly separates:

  • Group titles: Simple names only (groupName)
  • Status feedback: Still includes helpful counts (tabsMoved, newTargetTabCount)

🎯 Potential Considerations

1. Minor: Unused Variable Calculation

In combineGroups.js:35-38:

// Get current target tab count for status message display
const targetTabs = await chrome.tabs.query({ groupId: targetGroupId });
const tabsMoved = allSourceTabs.length;
const newTargetTabCount = targetTabs.length + tabsMoved;

The comment says "for status message display" but these values are returned to the caller (popup.js). This is fine - just noting that the calculation happens here even though the count isn't in the title.

Impact: None - this is working as intended. The values are used in status messages.

2. Edge Case: User-Created Groups

If users manually create groups with counts in the name (e.g., "My Project (v1.2)"), the regex /\s*\(\d+\)$/ won't match since "v1.2" isn't purely digits. This is correct behavior.

However, if they create "My Project (2)" manually, it would be stripped. This seems acceptable given:

  • Unlikely scenario
  • extractGroupBaseName() is primarily for matching, not display
  • Tests confirm this behavior is intentional

πŸ”’ Security & Performance

βœ… No security concerns - changes are purely cosmetic to group titles
βœ… No performance impact - same number of operations, just different title strings
βœ… No breaking changes - backward compatible with existing groups


πŸ“‹ Test Coverage Analysis

Excellent test coverage with updates across:

  • organizeTabs.test.js: 20 assertions updated
  • combineGroups.test.js: 2 assertions updated
  • mergeDuplicateGroups.test.js: 2 assertions updated
  • E2E tests: Updated to check for exact name matches

All tests now verify groups have only the base name, no counts.


✨ Recommendations

Optional Enhancement (Not blocking):

Consider adding a test case for the transition scenario:

test('should update legacy groups with counts to new format without counts', async () => {
  // Setup: existing group with count in title
  const mockGroups = [{ id: 5, title: 'github.com (10)', color: 'blue' }];
  // Action: organize tabs
  // Assert: group title updated to just 'github.com'
});

This would explicitly verify the backward compatibility path, though current tests already cover this implicitly.


πŸŽ‰ Conclusion

Recommendation: βœ… APPROVE

This is a well-implemented, thoroughly tested change that:

  • Simplifies the UI as intended
  • Maintains backward compatibility
  • Preserves useful status information
  • Includes comprehensive test coverage
  • Updates documentation appropriately

The code quality is excellent and follows the project's JavaScript-only, modular architecture. No blocking issues found.

Great work! πŸš€

Update assertions across all E2E test files to match new behavior
where group titles no longer include the tab count suffix:
- cross-window-organization.test.js
- tab-movement-and-ungrouping.test.js
- base-domain-and-edge-cases.test.js
- collapsed-group-preservation.test.js

πŸ€– Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@claude
Copy link

claude bot commented Dec 21, 2025

Code Review

Summary

This PR successfully removes tab count suffixes from group names, simplifying the UI from github.com (25) to just github.com. The implementation is clean, well-tested, and maintains backward compatibility.

βœ… Strengths

1. Comprehensive Test Coverage

  • All 13 changed files include corresponding test updates
  • Unit tests cover edge cases in extractGroupBaseName.test.js (246 lines of thorough testing)
  • End-to-end tests updated across all scenarios (base domain, cross-window, combine groups, etc.)
  • PR states all 504 unit tests pass

2. Clean Implementation

  • Changes are focused and minimal - only modifying title assignment logic
  • Consistent pattern across all affected files:
    • organizeTabs.js: Lines 214-215, 224
    • combineGroups.js: Lines 44-46
    • mergeDuplicateGroups.js: Lines 114-115
  • No breaking changes to existing functionality

3. Backward Compatibility

  • extractGroupBaseName() function handles both old format (domain.com (25)) and new format (domain.com)
  • Existing groups with counts will be normalized when re-organized
  • Comment in chrome-extension/src/utils/extractGroupBaseName.js:6-8 clearly documents this purpose

4. Documentation Updates

  • CLAUDE.md updated to reflect new behavior (line 111)
  • All test expectations updated to match new format
  • Comment improvements explain the purpose (e.g., combineGroups.js:35)

πŸ” Observations

1. Intentional Design Decision
The PR removes tab counts from group titles, but combineGroups.js and mergeDuplicateGroups.js still calculate newTargetTabCount (lines 38, 113 respectively). This value is returned in the result object for status messages but not displayed in the group title. This appears intentional - the status message can still show how many tabs were moved without cluttering the group title.

2. Comment Accuracy

  • combineGroups.js:35 says "Get current target tab count for status message display" - accurate
  • organizeTabs.js:213 says "Update group title (preserve color and collapsed state)" - accurate

🎯 Code Quality

Best Practices:

  • βœ… Consistent naming and patterns
  • βœ… Clear separation of concerns
  • βœ… No code duplication
  • βœ… Follows project conventions (JavaScript-only, no TypeScript)

Performance:

  • βœ… No performance regressions introduced
  • βœ… Same number of API calls as before (just different title values)
  • βœ… Calculations for tab counts are minimal overhead

Security:

  • βœ… No security concerns identified
  • βœ… No user input handling changes
  • βœ… Only Chrome API interactions (same as before)

πŸ› Potential Issues

None identified. The implementation is solid.

πŸ“ Minor Suggestions (Optional)

  1. Consider removing unused calculations (very minor):

    • In combineGroups.js and mergeDuplicateGroups.js, if newTargetTabCount is only used for debugging/status messages, consider adding a comment explaining why it's calculated but not displayed in the group title.
    • Currently it returns this value but it's unclear if the popup UI uses it anywhere.
  2. Test organization (already excellent):

    • The test coverage is exceptional. No changes needed.

✨ Verdict

Approve with enthusiasm. This is a well-executed PR that:

  • Simplifies the UI effectively
  • Maintains backward compatibility
  • Has comprehensive test coverage
  • Follows project conventions
  • Includes proper documentation updates

The cleaner group titles will improve readability, especially with many tabs. Great work! πŸŽ‰


Review conducted following CLAUDE.md conventions

The test was incorrectly using .toBe() to compare an array with strings.
Changed to use .toEqual() with expected sorted array.

πŸ€– Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@claude
Copy link

claude bot commented Dec 21, 2025

Code Review: Remove Tab Count from Group Names

Summary

This PR successfully removes tab counts from group titles (e.g., github.com (25) β†’ github.com). The implementation is clean, well-tested, and maintains backward compatibility.


βœ… Strengths

1. Excellent Test Coverage

  • All 504 unit tests passing
  • 14 files updated with comprehensive test changes across:
    • Unit tests (organizeTabs, combineGroups, mergeDuplicateGroups)
    • E2E tests (6 test files covering edge cases, cross-window operations, group updates)
  • Test updates properly reflect the new behavior without tab counts

2. Clean Implementation

  • Changes are minimal and focused on the core requirement
  • No unnecessary refactoring or over-engineering
  • Properly updated comments to reflect new behavior (e.g., chrome-extension/src/background/combineGroups.js:34-35)

3. Backward Compatibility

  • extractGroupBaseName() utility properly handles both old and new formats:
    • github.com (15) β†’ github.com (legacy)
    • github.com β†’ github.com (new format)
  • Good documentation update in function comments explaining backward compatibility purpose

4. Consistent Changes Across Features

  • All group operations updated uniformly:
    • organizeTabs() - domain and category modes
    • combineGroups() - group merging
    • mergeDuplicateGroups() - duplicate consolidation
  • CLAUDE.md documentation updated to reflect new behavior

πŸ” Minor Observations

1. Unused Variable in combineGroups.js

The newTargetTabCount variable is calculated but only used in the return value for status messages:

// chrome-extension/src/background/combineGroups.js:35-38
const targetTabs = await chrome.tabs.query({ groupId: targetGroupId });
const tabsMoved = allSourceTabs.length;
const newTargetTabCount = targetTabs.length + tabsMoved; // Still needed for popup status

Status: This is actually fine! The popup UI uses this in status messages (popup.js:423). The comment correctly indicates it's for "status message display."

2. Comment Clarity

The comment in organizeTabs.js:213 could be more explicit:

// Update group title (preserve color and collapsed state)
await chrome.tabGroups.update(existingGroup.id, {
  title: groupName
});

Suggestion: Since only the title is being updated here, the comment might be clearer as:

// Update group title only (color and collapsed state implicitly preserved)

But this is very minor - the current comment is adequate.


✨ What I Really Like

  1. The extractGroupBaseName() enhancement - Adding documentation about backward compatibility shows good software engineering practices

  2. Comprehensive E2E test updates - Changed 6 E2E test files to match new behavior, ensuring real-world scenarios work correctly

  3. Consistent messaging - The popup.js status messages still show useful info (newTargetTabCount, tabsMoved) even though groups don't display counts anymore

  4. Simple regex in extractGroupBaseName - The /\s*\(\d+\)$/ pattern is clean and handles edge cases (extra spaces)


🎯 Code Quality Assessment

Aspect Rating Notes
Correctness βœ… Excellent All tests pass, logic is sound
Test Coverage βœ… Excellent Comprehensive unit and E2E tests
Security βœ… No concerns No new attack vectors introduced
Performance βœ… No impact Same number of operations, cleaner data
Maintainability βœ… Excellent Clear changes, good documentation
Best Practices βœ… Excellent Follows project conventions

πŸš€ Recommendation

APPROVE - This PR is ready to merge!

The changes are well-implemented, thoroughly tested, and improve the user experience by removing visual clutter while maintaining all functionality. The backward compatibility handling ensures smooth transitions for existing users.


πŸ“ Optional Follow-up (Not Blocking)

Consider adding a brief note in the CHANGELOG.md about this UX improvement when you merge, as users will notice this visual change. Something like:

### Changed
- Simplified tab group titles by removing tab counts (e.g., `github.com` instead of `github.com (25)`)

Great work! πŸŽ‰

Update assertions to expect group titles without tab counts.

πŸ€– Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@claude
Copy link

claude bot commented Dec 21, 2025

PR Review: Remove tab count from group names

Summary

This PR removes the tab count suffix from group titles across all grouping operations, changing from github.com (25) to github.com. The change is clean, well-tested, and maintains backward compatibility through the extractGroupBaseName() utility.


βœ… Strengths

1. Code Quality

  • Clean refactoring: The changes are minimal and focused - only removing the count suffix from title updates
  • Consistent implementation: Applied uniformly across all features (organize, combine, merge)
  • Good separation of concerns: extractGroupBaseName() utility handles legacy format compatibility
  • Well-documented: Updated comments in combineGroups.js:35 and mergeDuplicateGroups.js:113 to reflect the new behavior

2. Test Coverage

  • Excellent test updates: All 15 test files updated to match new behavior (504 tests passing per PR description)
  • Comprehensive coverage: Unit tests for all affected modules (organizeTabs.test.js, combineGroups.test.js, mergeDuplicateGroups.test.js)
  • E2E tests updated: 7 E2E test files cover real-world scenarios (cross-window, duplicate removal, group combining)
  • Test quality: Tests verify exact title format (e.g., expect(githubGroup.title).toBe('github.com'))

3. Backward Compatibility

  • Smart migration path: extractGroupBaseName() handles both old (count) and new formats
  • No breaking changes: Existing groups with counts will work seamlessly
  • Updated documentation: CLAUDE.md and code comments explain backward compatibility

4. User Experience

  • Cleaner UI: Removes visual clutter from group titles
  • Screenshots provided: Visual confirmation of the change in the PR description

πŸ” Observations & Considerations

1. Minor Code Improvement Opportunity (chrome-extension/src/background/combineGroups.js:35-38)

// Get current target tab count for status message display
const targetTabs = await chrome.tabs.query({ groupId: targetGroupId });
const tabsMoved = allSourceTabs.length;
const newTargetTabCount = targetTabs.length + tabsMoved;
  • Observation: newTargetTabCount is calculated but only used in the return statement
  • Suggestion: The comment says "for status message display" - this is good! The count is still useful for showing users how many tabs were affected
  • No action needed: This is fine as-is for user feedback

2. Comment Accuracy (chrome-extension/src/utils/extractGroupBaseName.js:6-8)

/**
 * Primarily used for backward compatibility with older group formats that
 * included tab counts in the title. Also enables matching existing groups
 * with new grouping operations regardless of their title format.
  • βœ… Excellent documentation: This clearly explains the dual purpose (backward compatibility + matching)
  • Future-proof: Handles migration gracefully

3. Test Simplification (chrome-extension/e2e/first-time-organization.test.js:146-148)

const groupTitles = groups.map(g => g.title).sort();
expect(groupTitles).toEqual(['example.com', 'github.com', 'google.com']);
  • βœ… Great improvement: Simpler and more readable than checking each title separately
  • Better assertion: Using .toEqual() with full array is clearer than multiple .toContain() calls

πŸ›‘οΈ Security & Performance

Security: βœ… No security concerns

  • No new user input handling
  • No changes to permission model
  • No external data sources introduced

Performance: βœ… No performance concerns

  • Removing string concatenation (count) is marginally faster
  • No additional Chrome API calls introduced
  • extractGroupBaseName() uses simple regex - efficient for short strings

πŸ§ͺ Testing Observations

Test Coverage Analysis:

  • Unit tests: 3 modules with comprehensive coverage
  • E2E tests: 7 scenarios covering edge cases
  • Manual testing: βœ… All checklist items completed per PR description

Notable Test Updates:

  1. collapsed-group-preservation.test.js:193: Changed from verifying count update to verifying title preservation - semantically correct for the new behavior
  2. combine-groups.test.js:217: Simplified from .toContain() checks to exact title match - better test specificity
  3. organizeTabs.test.js:683: Renamed test from "should include tab count" to "should use domain name only" - βœ… excellent test naming

πŸ“‹ Checklist Review

Based on CLAUDE.md conventions:

  • βœ… Code quality: Clean, focused changes following project style
  • βœ… JavaScript-only: No TypeScript or bundler changes
  • βœ… Test coverage: All 504 unit tests passing + E2E tests updated
  • βœ… Documentation: CLAUDE.md updated with correct behavior
  • βœ… Manual testing: Comprehensive test plan completed
  • βœ… Backward compatibility: extractGroupBaseName() handles legacy format
  • βœ… Architecture: Changes isolated to appropriate modules

🎯 Final Recommendation

APPROVE βœ…

This is a high-quality PR that:

  1. Improves UX by removing visual clutter
  2. Maintains backward compatibility
  3. Has comprehensive test coverage
  4. Follows project conventions
  5. Includes clear documentation

No blocking issues found. The implementation is clean, well-tested, and ready to merge.


πŸ’‘ Optional Future Enhancements (not for this PR)

  1. Migration utility: Could add a one-time migration to update existing group titles to remove counts (optional - current approach works fine)
  2. User preference: Could make this a setting ("Show tab counts: yes/no") - though simpler is often better

Great work on this clean refactoring! The attention to test coverage and backward compatibility is excellent. πŸŽ‰

@AmberAlston AmberAlston marked this pull request as ready for review December 21, 2025 03:20
@AmberAlston AmberAlston requested a review from malston December 21, 2025 03:20
@malston malston merged commit 66e000c into main Dec 22, 2025
6 checks passed
@malston malston deleted the remove-summary-number branch December 22, 2025 14:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants