Skip to content

Feature: Add categorical statistics output mode alongside hierarchical tree view #16

@krfantasy

Description

@krfantasy

Problem

Currently, alsdiff only outputs changes in a hierarchical tree view format. While this is excellent for detailed inspection, it has some limitations for certain use cases:

Issues with Tree View for Quick Overview

  1. Overwhelming verbosity: Even with --preset quiet or detail_level=Summary, the tree view can produce extensive output when comparing complex Live Sets with many tracks, devices, and clips.

  2. Difficulty getting quick summary: When comparing two versions of a Live Set, users often want to quickly answer questions like:

    • "How many tracks were added/removed?"
    • "Did I add or remove any devices?"
    • "What categories of changes are most significant?"
  3. Hard to assess scope at a glance: With tree view, you need to scan through potentially hundreds of lines to understand the overall scope and nature of changes.

Example Scenario

When comparing two complex Live Sets, the current output might look like:

* LiveSet
  + Tracks (2 Added, 33 Removed)
    + Track 1
      ...
    - Track 2
      ...
    * Track 3
      ...
  + Devices (2 Added, 51 Removed)
    + Device 1
      ...
    - Device 2
      ...
  [... hundreds more lines ...]

For a quick overview, this is too detailed. Users just want to know:

Tracks: 2 Added, 33 Removed
Devices: 2 Added, 51 Removed
Clips: 47 Removed

Proposed Solution

Add a new output mode that provides categorical statistics showing change counts grouped by type (Tracks, Devices, Clips, Automation, etc.).

Key Requirements

  1. Aggregate by category: Group all changes by their domain type and show counts
  2. Concise format: Display as "Category: X Added, Y Removed, Z Modified"
  3. Filterable: Allow users to see specific categories only
  4. Sortable: Support different sort orders (by name, by total changes, or by priority)

Use Cases

  1. Quick assessment: "Did I accidentally remove tracks in this save?"
  2. Scope estimation: "How significant are the changes between these versions?"
  3. Focused review: "Show me only track and device changes"
  4. Git workflows: Quick overview in external diff tools without overwhelming output

Comparison to Similar Tools

This is similar to git diff --stat which provides a summary of changes by file, versus the full diff output. Both modes serve different purposes:

  • Full diff/tree view: Detailed inspection
  • Statistics mode: Quick overview and scope assessment

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions