This document tracks features that have been removed or are pending removal, with rationale and migration notes.
- Status: ✅ Removed
- When: Early 2025
- What: Agent no longer loads or parses vendor candidate files or MIB profiles. All associated UI and HTTP endpoints removed.
- Rationale: Simplify agent, reduce maintenance cost, avoid tight coupling to vendor-specific data files
- Migration: None required. Discovery now relies on Printer-MIB and minimal vendor-agnostic heuristics
- Cleanup: Any data under
mib_profiles/can be deleted safely
- Status: ✅ Removed
- What: Sandbox feature (simulate candidates against saved walks) removed
- Rationale: Depended on candidates/MIB profiles; added complexity without core value
- Migration: Use built-in discovery and targeted diagnostic walks
- Status: ✅ Removed
- What: On-demand MIB walk HTTP endpoint
- Rationale: Encourage bounded, targeted walks inside discovery pipeline; avoid broad, ad-hoc walks
- Migration: Use discovery and "Walk All" device action in UI where applicable; targeted walks occur automatically for confirmed printers
- Status: ✅ Removed (Replaced)
- When: October 2025
- What: Legacy IP ranges endpoint
- Replacement: Use unified
/settingsendpoint (GET/POST fordiscovery.ranges_text) - Migration:
// Old: fetch('/saved_ranges'); // New: const settings = await fetch('/settings').then(r => r.json()); const ranges = settings.discovery.ranges_text;
- Status: ✅ Removed
- Location:
agent/web/app.js - Functions:
runMibWalk(),runMibWalkFor(ip) - Rationale: Full device information now gathered automatically during discovery; deep scan pipeline provides comprehensive data collection
- Migration: Automated scanning provides all needed data
- Status: ✅ Removed
- When: December 2025
- Location: Was in
agent/main.go - Functions:
logMsg(msg string),logMutex,logBuffer []string - Description: Simple timestamp-prefixed logging to in-memory buffer and file
- Replacement: Structured logger package (
common/logger/logger.go) - now used throughout codebase - Migration: Complete - all logging now uses
appLoggerstructured logging
- Status:
⚠️ Deprecated (still works) - Replacement: Use
/settingsendpoint (GET/POST fordiscovery.subnet_scan) - Migration:
// Old: fetch('/settings/subnet_scan'); // New: const settings = await fetch('/settings').then(r => r.json()); const enabled = settings.discovery.subnet_scan;
- Removal Date: v1.0 (will be removed in 1.0 release)
When removing deprecated code:
- Search codebase for all usages
- Update documentation (API.md, README.md)
- Add migration guide for users
- Test thoroughly before removal
- Mark as ✅ in this document
- Update CHANGELOG.md
- Tests and code paths updated to avoid all candidate/MIB profile logic
- Do not remove anything from "Pending Removal" section without team consensus
- All removals should follow semantic versioning rules:
- PATCH: Remove internal deprecated code (not user-facing)
- MINOR: Deprecate features (add warnings, keep working)
- MAJOR: Remove deprecated features (breaking change)
Last Updated: December 28, 2025