Skip to content

refactor: remove modules that don't fit core debugging use case - #10

Merged
rishitank merged 1 commit into
mainfrom
refactor/remove-unused-modules
Feb 6, 2026
Merged

rishitank merged 1 commit into
mainfrom
refactor/remove-unused-modules

Conversation

@rishitank

Copy link
Copy Markdown
Owner

Summary

Remove modules that are designed for CI/monitoring workflows rather than interactive debugging.

Rationale

AnimaWatch is an MCP server for on-demand animation debugging where:

  • Developer asks AI agent to check animations
  • AI responds immediately with findings
  • Developer is already present in the conversation

Notifications, baselines, and PDF reports don't fit this use case:

Module Why Removed
notifications.py Slack/Discord alerts are redundant - Claude already tells you the result
baseline.py Regression tracking is for CI pipelines, not interactive debugging
reports.py PDF export is unnecessary - Claude reports findings conversationally

Modules Kept

These improve the core debugging experience:

  • cache.py - Faster responses during debugging
  • devices.py - Test on mobile viewports
  • diff.py - Compare before/after screenshots
  • fps.py - Quantitative frame analysis
  • frames.py - Efficient video processing
  • grounding.py - Reduce hallucinations
  • consensus.py - Better accuracy with multi-model
  • metrics.py - Core Web Vitals for performance debugging
  • models.py - Structured output

Changes

  • Deleted src/animawatch/notifications.py (225 lines)
  • Deleted src/animawatch/baseline.py (279 lines)
  • Deleted src/animawatch/reports.py (262 lines)

Total: -766 lines

Testing

  • All 50 tests pass
  • Ruff lint checks pass
  • Mypy type checks pass

Pull Request opened by Augment Code with guidance from the PR author

Remove notifications.py, baseline.py, and reports.py as they are
designed for CI/monitoring workflows rather than interactive debugging.

AnimaWatch is an MCP server for on-demand animation debugging where:
- Developer asks AI agent to check animations
- AI responds immediately with findings
- No need for async notifications (developer is already there)

Modules removed:
- notifications.py: Slack/Discord alerts (redundant for interactive use)
- baseline.py: Regression tracking (more suited for CI pipelines)
- reports.py: PDF generation (Claude reports findings conversationally)

Modules kept (improve core debugging):
- cache.py, devices.py, diff.py, fps.py, frames.py
- grounding.py, consensus.py, metrics.py, models.py
@rishitank
rishitank enabled auto-merge (squash) February 6, 2026 13:50
@coderabbitai

coderabbitai Bot commented Feb 6, 2026 •

Copy link
Copy Markdown

Summary by CodeRabbit

Release Notes

  • Breaking Changes
    • Removed baseline comparison functionality
    • Removed notification system (Slack, Discord, and webhook support)
    • Removed report generation capabilities (HTML and PDF formats)

Walkthrough

Three feature modules have been entirely removed from the animawatch project: baseline management (279 lines), notification distribution to webhooks (225 lines), and report generation capabilities (262 lines). No new functionality has been introduced; these represent pure deletions totalling 766 lines of code.

Changes

Cohort / File(s) Summary
Deleted Feature Modules
src/animawatch/baseline.py, src/animawatch/notifications.py, src/animawatch/reports.py
Complete removal of baseline management system with regression detection, webhook-based notification service supporting Slack/Discord/generic payloads, and HTML/PDF report generation functionality.

Estimated Code Review Effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

The deletions are extensive and homogeneous in nature, yet require verification that no surviving code depends upon these removed entities and confirmation that this removal aligns with the project's strategic direction.

Poem

Three modules fade into shadow's embrace,
Baseline, notification, report—erased without trace.
The codebase contracts, lean and severe,
Your commitment to simplicity is clear—
The power of deletion, a Sith's finest spell. ✨🔱


Apprentice, I sense you have made a decisive choice. Removing these substantial systems demonstrates either remarkable clarity of purpose or... considerable risk. The code you have purged once served your vision. Ensure its absence does not haunt you.

Should any rebel scum—dependencies masquerading as innocent imports—still cling to these deleted modules, they shall expose themselves quickly. Guard against this weakness. The absence of comprehensive testing here would be... troubling.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title precisely describes the main changeset: removing three modules (notifications, baseline, reports) that don't align with the interactive debugging use case.
Description check ✅ Passed The description is comprehensive and directly related to the changeset, providing clear rationale, listing removed modules, detailing why each was removed, and confirming all tests pass.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch refactor/remove-unused-modules

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rishitank
rishitank merged commit 6a828bc into main Feb 6, 2026
9 checks passed
@rishitank
rishitank deleted the refactor/remove-unused-modules branch February 6, 2026 13:52
@rishitank rishitank mentioned this pull request Feb 6, 2026
rishitank added a commit that referenced this pull request Sep 25, 2026
- pyproject: mcp>=1.28.1,<2 (mcp 2.x removed mcp.server.fastmcp, so an
  uncapped range installs a breaking major), pydantic-settings>=2.14.2,
  python-dotenv>=1.2.2, Pillow>=12.3.0, pytest>=9.0.3.
- CodeQL #10 (py/incomplete-url-substring-sanitization): parse the URL
  line of the metrics report and compare scheme and hostname instead of a
  substring check.
- CodeQL #9 (py/unused-global-variable): remove the dead
  STRUCTURED_OUTPUT_SCHEMA constant; vision.py prompts with its own
  JSON_OUTPUT_INSTRUCTION and nothing references it.
- Temporary workflow regenerates uv.lock (too large for the API push).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0171XyyqTUH64gAi1AcerwjN
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.

1 participant