Skip to content

source/ObjectListView (~523K tokens) — vendored copy or submodulable? #955

Description

@chirag127

Observation

source/ObjectListView/ is ~523K tokens (~62 files) — the largest single directory in the repo. Cross-checking, this appears to be a vendored copy of the ObjectListView WinForms control (originally maintained by Phillip Piper, now under community stewardship).

Suggestion

Make ObjectListView a git submodule of the upstream repo instead of a vendored copy:

git submodule add https://github.com/<current-upstream>/ObjectListView.git source/ObjectListView

Benefits:

  • BCU's own code becomes 861K tokens instead of 1.38M
  • Vendored-copy drift risk goes away (the copy currently frozen — upstream may have security fixes)
  • New contributors don't need to grok 62 files of unrelated ListView code before touching BCU logic

Constraints:

  • If BCU has vendored-and-modified ObjectListView (i.e. the upstream is not usable as-is), this doesn't work — a submodule can't carry local patches. In that case the vendored copy is correct and this issue is a no-op.
  • If ObjectListView upstream is dead/abandoned, submoduling a dead project is worse than vendoring. Worth checking git log source/ObjectListView for local mods.

Evidence

  • 2026 practitioner practice for AI-coding-agent friendliness: repos ≤200K tokens per Anthropic Claude Code docs, Cursor active-context, Karpathy autoresearch. See this deep-research.
  • Vendoring 3rd-party libraries: fine for stability, but has known drift + attribution issues.

Non-ask

Not asking to migrate to a modern WinForms alternative or rewrite. Just: check whether the vendored copy is unmodified and, if so, submodule it.

Thanks for the great work on Bulk-Crap-Uninstaller!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions