Skip to content

Refactor orchestrators to remove circular dependencies#5

Merged
wow-miley merged 1 commit into
mainfrom
claude/refactor-orchestrator-dependencies-01L8KfhBN4imuNgtSPhVi5uX
Nov 23, 2025
Merged

Refactor orchestrators to remove circular dependencies#5
wow-miley merged 1 commit into
mainfrom
claude/refactor-orchestrator-dependencies-01L8KfhBN4imuNgtSPhVi5uX

Conversation

@wow-miley
Copy link
Copy Markdown
Contributor

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.

@wow-miley wow-miley force-pushed the claude/refactor-orchestrator-dependencies-01L8KfhBN4imuNgtSPhVi5uX branch 2 times, most recently from 7b13407 to 0978ca9 Compare November 23, 2025 02:46
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.
@wow-miley wow-miley force-pushed the claude/refactor-orchestrator-dependencies-01L8KfhBN4imuNgtSPhVi5uX branch from 0978ca9 to a4ea299 Compare November 23, 2025 02:51
@wow-miley wow-miley merged commit eea060c into main Nov 23, 2025
1 check passed
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>
@wow-miley wow-miley deleted the claude/refactor-orchestrator-dependencies-01L8KfhBN4imuNgtSPhVi5uX branch November 26, 2025 06:22
@wow-miley wow-miley self-assigned this Nov 28, 2025
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Ampere CLI Nov 28, 2025
@github-project-automation github-project-automation Bot moved this to Backlog in Ampere CLI Nov 28, 2025
@wow-miley wow-miley moved this from Done to In review in Ampere CLI Nov 28, 2025
@wow-miley wow-miley moved this from In review to Done in Ampere CLI Nov 28, 2025
@wow-miley wow-miley removed this from Ampere CLI Nov 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants