You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Break handler↔module concrete-type dependency via shared interfaces package (#78)
* Initial plan
* feat: break handler↔module concrete-type dependency via interfaces package
- Create interfaces/pipeline.go with EventRecorder, PipelineRunner, StepRegistryProvider
- Add SetLogger, SetEventRecorder, Run methods to module.Pipeline
- Alias module.EventRecorder to interfaces.EventRecorder
- Update handlers/pipeline.go to use interfaces (removes module import)
- Update engine.go PipelineAdder to use interfaces.PipelineRunner
- Add mockPipelineRunner test to demonstrate mock-based handler testing
Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>
* refactor: inject logger/recorder at config time, not per-execution
- SetLogger/SetEventRecorder now propagate to all already-registered pipelines
- AddPipeline now injects logger/recorder immediately if already set on the handler
- ExecuteWorkflow only calls Run() — no mutation on the hot path
- Add mockEventRecorder and TestPipelineHandler_InjectionAtConfigTime test
- Fix test comment: "without depending on concrete module types"
Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>
Co-authored-by: Jonathan Langevin <codingsloth@pm.me>
0 commit comments