Refactor orchestrators to remove circular dependencies#5
Merged
wow-miley merged 1 commit intoNov 23, 2025
Merged
Conversation
7b13407 to
0978ca9
Compare
Remove direct MeetingOrchestrator dependency from TicketOrchestrator to enable bidirectional communication between orchestrators. - Add MeetingSchedulingService functional interface for decoupling - Create EnvironmentOrchestrator to manage Meeting/Ticket/Event orchestrators - Update TicketOrchestrator to use MeetingSchedulingService - Update tests to use new architecture This allows orchestrators to call each other through the parent EnvironmentOrchestrator without circular dependencies.
0978ca9 to
a4ea299
Compare
wow-miley
added a commit
that referenced
this pull request
Nov 23, 2025
Remove direct MeetingOrchestrator dependency from TicketOrchestrator to enable bidirectional communication between orchestrators. - Add MeetingSchedulingService functional interface for decoupling - Create EnvironmentOrchestrator to manage Meeting/Ticket/Event orchestrators - Update TicketOrchestrator to use MeetingSchedulingService - Update tests to use new architecture This allows orchestrators to call each other through the parent EnvironmentOrchestrator without circular dependencies. Co-authored-by: Claude <noreply@anthropic.com>
wow-miley
added a commit
that referenced
this pull request
Nov 23, 2025
* Refactor escalation lookup to use EscalationKeyword enum Replace string-based keyword matching in TicketOrchestrator's blockerNeedsMeeting and blockerNeedsHuman with type-safe enum. This improves maintainability and allows keywords to specify both meeting and human involvement requirements. * Replace EscalationKeyword with Escalation sealed class hierarchy Introduce a proper domain model for escalation types: - EscalationProcess: Defines resolution mechanisms (AgentMeeting, HumanApproval, HumanMeeting, ExternalDependency) - Escalation: Sealed class hierarchy with Discussion, Decision, Budget, Priorities, Scope, and External categories Each escalation type defines its process, making the model suitable for LLM classification instead of keyword matching. The TicketOrchestrator now accepts an optional Escalation type to determine meeting and participant requirements. * Fix TicketMeetingIntegrationTest to use Escalation types Update tests to pass explicit Escalation types instead of relying on keyword matching, which was removed in the previous commit. * Refactor orchestrator dependencies with EnvironmentOrchestrator (#5) Remove direct MeetingOrchestrator dependency from TicketOrchestrator to enable bidirectional communication between orchestrators. - Add MeetingSchedulingService functional interface for decoupling - Create EnvironmentOrchestrator to manage Meeting/Ticket/Event orchestrators - Update TicketOrchestrator to use MeetingSchedulingService - Update tests to use new architecture This allows orchestrators to call each other through the parent EnvironmentOrchestrator without circular dependencies. Co-authored-by: Claude <noreply@anthropic.com> * Finish renaming to Ampere, add basic CLI (#9) * Refactor escalation lookup to use EscalationKeyword enum Replace string-based keyword matching in TicketOrchestrator's blockerNeedsMeeting and blockerNeedsHuman with type-safe enum. This improves maintainability and allows keywords to specify both meeting and human involvement requirements. * Replace EscalationKeyword with Escalation sealed class hierarchy Introduce a proper domain model for escalation types: - EscalationProcess: Defines resolution mechanisms (AgentMeeting, HumanApproval, HumanMeeting, ExternalDependency) - Escalation: Sealed class hierarchy with Discussion, Decision, Budget, Priorities, Scope, and External categories Each escalation type defines its process, making the model suitable for LLM classification instead of keyword matching. The TicketOrchestrator now accepts an optional Escalation type to determine meeting and participant requirements. * Fix typo * Replace EscalationKeyword with Agent-based classification using AgentDescribable interface * Refactor escalation lookup to use EscalationKeyword enum Replace string-based keyword matching in TicketOrchestrator's blockerNeedsMeeting and blockerNeedsHuman with type-safe enum. This improves maintainability and allows keywords to specify both meeting and human involvement requirements. * Replace EscalationKeyword with Escalation sealed class hierarchy Introduce a proper domain model for escalation types: - EscalationProcess: Defines resolution mechanisms (AgentMeeting, HumanApproval, HumanMeeting, ExternalDependency) - Escalation: Sealed class hierarchy with Discussion, Decision, Budget, Priorities, Scope, and External categories Each escalation type defines its process, making the model suitable for LLM classification instead of keyword matching. The TicketOrchestrator now accepts an optional Escalation type to determine meeting and participant requirements. * Fix TicketMeetingIntegrationTest to use Escalation types Update tests to pass explicit Escalation types instead of relying on keyword matching, which was removed in the previous commit. * Finish renaming to Ampere, add basic CLI (#9) --------- Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Remove direct MeetingOrchestrator dependency from TicketOrchestrator to enable bidirectional communication between orchestrators.
This allows orchestrators to call each other through the parent EnvironmentOrchestrator without circular dependencies.