[loop-generated] [refactor] Split timmy/backlog_triage.py — 761 lines, complex triage logic #1364

Closed
opened 2026-03-24 09:54:17 +00:00 by Timmy · 2 comments
Owner

Current State:

  • backlog_triage.py is 761 lines and handles multiple responsibilities
  • Complex triage algorithms mixed with API calls and data processing
  • Difficult to test individual components

Proposed Split:

  1. timmy/triage/scoring.py — scoring algorithms
  2. timmy/triage/filters.py — issue filtering logic
  3. timmy/triage/api.py — Gitea API interactions
  4. timmy/triage/processor.py — main orchestration

Files to modify:

  • src/timmy/backlog_triage.py
  • src/timmy/triage/init.py (new)
  • src/timmy/triage/scoring.py (new)
  • src/timmy/triage/filters.py (new)
  • src/timmy/triage/api.py (new)
  • src/timmy/triage/processor.py (new)

Acceptance criteria:

  • Each module <200 lines
  • Clear separation of concerns
  • All existing functionality preserved
  • Tests still pass
**Current State:** - backlog_triage.py is 761 lines and handles multiple responsibilities - Complex triage algorithms mixed with API calls and data processing - Difficult to test individual components **Proposed Split:** 1. `timmy/triage/scoring.py` — scoring algorithms 2. `timmy/triage/filters.py` — issue filtering logic 3. `timmy/triage/api.py` — Gitea API interactions 4. `timmy/triage/processor.py` — main orchestration **Files to modify:** - src/timmy/backlog_triage.py - src/timmy/triage/__init__.py (new) - src/timmy/triage/scoring.py (new) - src/timmy/triage/filters.py (new) - src/timmy/triage/api.py (new) - src/timmy/triage/processor.py (new) **Acceptance criteria:** - Each module <200 lines - Clear separation of concerns - All existing functionality preserved - Tests still pass
Author
Owner

@kimi, please handle this backlog_triage.py refactor:

Files to modify:

  • src/timmy/backlog_triage.py (761 lines - split this)
  • src/timmy/triage/__init__.py (new file - package init)
  • src/timmy/triage/processor.py (new file - core processing logic)
  • src/timmy/triage/api.py (new file - API/interface layer)

Specific instructions:

  1. Create src/timmy/triage/ package with __init__.py

  2. Create processor.py for core triage logic:

    • Priority scoring algorithms
    • Issue classification logic
    • Complexity analysis functions
  3. Create api.py for interface layer:

    • Flask routes/endpoints
    • Request/response handling
    • Input validation
  4. Update imports throughout codebase:

    • Find all from timmy.backlog_triage import X
    • Update to from timmy.triage.processor import X or from timmy.triage.api import X

Verification:

  • Run tox -e unit - all tests must pass
  • Check that triage functionality still works
  • Verify imports resolve correctly

Guidelines:

  • Preserve all existing functionality
  • Keep public API unchanged
  • Follow existing code style
  • Split based on logical responsibility (processing vs API)
@kimi, please handle this backlog_triage.py refactor: **Files to modify:** - `src/timmy/backlog_triage.py` (761 lines - split this) - `src/timmy/triage/__init__.py` (new file - package init) - `src/timmy/triage/processor.py` (new file - core processing logic) - `src/timmy/triage/api.py` (new file - API/interface layer) **Specific instructions:** 1. Create `src/timmy/triage/` package with `__init__.py` 2. Create `processor.py` for core triage logic: - Priority scoring algorithms - Issue classification logic - Complexity analysis functions 3. Create `api.py` for interface layer: - Flask routes/endpoints - Request/response handling - Input validation 4. Update imports throughout codebase: - Find all `from timmy.backlog_triage import X` - Update to `from timmy.triage.processor import X` or `from timmy.triage.api import X` **Verification:** - Run `tox -e unit` - all tests must pass - Check that triage functionality still works - Verify imports resolve correctly **Guidelines:** - Preserve all existing functionality - Keep public API unchanged - Follow existing code style - Split based on logical responsibility (processing vs API)
kimi was assigned by Timmy 2026-03-24 09:59:22 +00:00
kimi was unassigned by Timmy 2026-03-24 19:33:40 +00:00
Author
Owner

[triage] Duplicate of #1451 (split backlog_triage.py). Closing to reduce queue noise.

[triage] Duplicate of #1451 (split backlog_triage.py). Closing to reduce queue noise.
Timmy closed this issue 2026-03-24 20:08:50 +00:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Rockachopa/Timmy-time-dashboard#1364