Implements FED-010: Agent Spawn via Federation feature that enables spawning and managing Claude agents on remote federated Mosaic Stack instances via COMMAND message type. Features: - Federation agent command types (spawn, status, kill) - FederationAgentService for handling agent operations - Integration with orchestrator's agent spawner/lifecycle services - API endpoints for spawning, querying status, and killing agents - Full command routing through federation COMMAND infrastructure - Comprehensive test coverage (12/12 tests passing) Architecture: - Hub → Spoke: Spawn agents on remote instances - Command flow: FederationController → FederationAgentService → CommandService → Remote Orchestrator - Response handling: Remote orchestrator returns agent status/results - Security: Connection validation, signature verification Files created: - apps/api/src/federation/types/federation-agent.types.ts - apps/api/src/federation/federation-agent.service.ts - apps/api/src/federation/federation-agent.service.spec.ts Files modified: - apps/api/src/federation/command.service.ts (agent command routing) - apps/api/src/federation/federation.controller.ts (agent endpoints) - apps/api/src/federation/federation.module.ts (service registration) - apps/orchestrator/src/api/agents/agents.controller.ts (status endpoint) - apps/orchestrator/src/api/agents/agents.module.ts (lifecycle integration) Testing: - 12/12 tests passing for FederationAgentService - All command service tests passing - TypeScript compilation successful - Linting passed Refs #93 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
3.8 KiB
3.8 KiB
Issue ORCH-123: YOLO mode (gate bypass)
Objective
Implement user-configurable approval gates with YOLO mode that bypasses quality gates.
Acceptance Criteria
- Configuration option:
YOLO_MODE=true - If YOLO mode enabled, skip quality gates
- Log YOLO mode usage (audit trail)
- UI warning: "Quality gates disabled" (return in API responses)
Approach
1. Configuration
- Add
YOLO_MODEenvironment variable to orchestrator.config.ts - Default: false (quality gates enabled)
2. QualityGatesService
- Check YOLO_MODE before running gates
- If YOLO enabled:
- Skip coordinator API calls
- Log YOLO usage with audit trail
- Return approved result with warning message
- If YOLO disabled:
- Run gates normally
3. Testing (TDD)
- Write tests FIRST
- Test YOLO enabled scenario (gates skipped)
- Test YOLO disabled scenario (gates run normally)
- Test logging of YOLO usage
- Ensure test coverage >= 85%
Progress
- Read issue requirements
- Create scratchpad
- Write failing tests for YOLO mode (RED phase)
- Add YOLO_MODE to config
- Implement YOLO mode in QualityGatesService (GREEN phase)
- All tests pass (47/47 passing)
- Add YOLO_MODE to .env.example
- Verify test coverage >= 85% (100% statements, 95.23% branches)
- Create Gitea issue #258
- Close Gitea issue #258 with completion notes
COMPLETED ✅
Testing
Test Cases
-
YOLO mode enabled - pre-commit check
- Given: YOLO_MODE=true
- When: preCommitCheck() called
- Then: Gates skipped, approved=true, warning message returned, YOLO usage logged
-
YOLO mode enabled - post-commit check
- Given: YOLO_MODE=true
- When: postCommitCheck() called
- Then: Gates skipped, approved=true, warning message returned, YOLO usage logged
-
YOLO mode disabled - pre-commit check
- Given: YOLO_MODE=false
- When: preCommitCheck() called
- Then: Gates run normally via coordinator
-
YOLO mode disabled - post-commit check
- Given: YOLO_MODE=false
- When: postCommitCheck() called
- Then: Gates run normally via coordinator
-
YOLO mode not set (default)
- Given: YOLO_MODE not set
- When: preCommitCheck() called
- Then: Gates run normally (default = false)
Notes
- YOLO mode is opt-in for development/testing scenarios
- Default behavior: quality gates enabled
- Audit logging is critical for compliance
- Warning message helps UI communicate risk to users
Implementation Details
Configuration Changes
- Added
yolo.enabledtoorchestrator.config.ts - Reads from
YOLO_MODEenvironment variable - Default value:
false(ensures safety by default)
Service Changes
- Added
ConfigServicedependency toQualityGatesService - Added
isYoloModeEnabled()private method to check configuration - Added
bypassQualityGates()private method that:- Logs complete audit trail with warn level
- Returns approved result with warning message
- Includes YOLO mode flag in response details
- Modified
preCommitCheck()to check YOLO mode first - Modified
postCommitCheck()to check YOLO mode first
Audit Trail Format
{
taskId: string,
agentId: string,
gate: 'pre-commit' | 'post-commit',
files: string[],
timestamp: ISO 8601 string
}
Response Format (YOLO enabled)
{
approved: true,
gate: 'pre-commit' | 'post-commit',
message: 'Quality gates disabled (YOLO mode)',
details: {
yoloMode: true,
warning: 'Quality gates were bypassed. Code may not meet quality standards.'
}
}
Test Coverage
- Total tests: 47 (10 new YOLO tests + 37 existing tests)
- Statement coverage: 100%
- Branch coverage: 95.23%
- Function coverage: 100%
- Line coverage: 100%
Gitea Issue
- Issue #258: #258
- Status: Closed
- Created and closed: 2026-02-02