Refactor manifest.py into domain-specific modules #157

Closed
opened 2026-06-02 22:30:43 -04:00 by didericis-claude · 0 comments
Collaborator

Tracked from the medium-priority refactoring playbook in #154.

manifest.py is 1,036 lines and carries git identity, egress routing, agent configuration, and top-level manifest parsing in a single file. The size and mixed domain responsibility make it harder to navigate and extend.

Proposed split

  • manifest_git.pyGitEntry, GitUser, and related parsing/validation helpers
  • manifest_egress.pyEgressRoute, PipelockRoutePolicy, and related helpers
  • manifest_agent.pyAgent, AgentProvider, and related helpers
  • manifest.py (residual) — Manifest, Bottle, and top-level orchestration that composes the above

Work

  • Move classes into the new modules, keeping manifest.py as the public import surface (re-export from the new modules) so existing callers do not need updating in the same PR.
  • Confirm all 863 unit tests still pass after the split.
  • No behavioral changes.
Tracked from the medium-priority refactoring playbook in #154. `manifest.py` is 1,036 lines and carries git identity, egress routing, agent configuration, and top-level manifest parsing in a single file. The size and mixed domain responsibility make it harder to navigate and extend. ## Proposed split - `manifest_git.py` — `GitEntry`, `GitUser`, and related parsing/validation helpers - `manifest_egress.py` — `EgressRoute`, `PipelockRoutePolicy`, and related helpers - `manifest_agent.py` — `Agent`, `AgentProvider`, and related helpers - `manifest.py` (residual) — `Manifest`, `Bottle`, and top-level orchestration that composes the above ## Work - Move classes into the new modules, keeping `manifest.py` as the public import surface (re-export from the new modules) so existing callers do not need updating in the same PR. - Confirm all 863 unit tests still pass after the split. - No behavioral changes.
didericis added the Kind/Enhancement label 2026-06-02 23:33:19 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: didericis/bot-bottle#157