feat: add comprehensive framework features and deployment improvements
Major additions: - Storage abstraction layer with filesystem and in-memory implementations - Gitea API integration with MCP tools for repository management - Console dialog mode with interactive command execution - WireGuard VPN DNS fix implementation and documentation - HTTP client streaming response support - Router generic result type - Parameter type validator for framework core Framework enhancements: - Console command registry improvements - Console dialog components - Method signature analyzer updates - Route mapper refinements - MCP server and tool mapper updates - Queue job chain and dependency commands - Discovery tokenizer improvements Infrastructure: - Deployment architecture documentation - Ansible playbook updates for WireGuard client regeneration - Production environment configuration updates - Docker Compose local configuration updates - Remove obsolete docker-compose.yml (replaced by environment-specific configs) Documentation: - PERMISSIONS.md for access control guidelines - WireGuard DNS fix implementation details - Console dialog mode usage guide - Deployment architecture overview Testing: - Multi-purpose attribute tests - Gitea Actions integration tests (typed and untyped)
This commit is contained in:
@@ -92,8 +92,9 @@ final readonly class JobChainCommands
|
||||
foreach ($status['job_statuses'] as $jobStatus) {
|
||||
$canExecute = $jobStatus['can_execute'] ? '✅' : '⏳';
|
||||
$depStatus = "{$jobStatus['dependencies_satisfied']}/{$jobStatus['dependencies_total']} deps";
|
||||
$position = $jobStatus['position'] + 1;
|
||||
|
||||
echo " {$canExecute} Job {$jobStatus['position'] + 1}: {$jobStatus['job_id']} ({$depStatus})\n";
|
||||
echo " {$canExecute} Job {$position}: {$jobStatus['job_id']} ({$depStatus})\n";
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
@@ -167,7 +168,8 @@ final readonly class JobChainCommands
|
||||
echo "🔗 {$statusIcon} {$chain['name']} ({$chain['chain_id']})\n";
|
||||
echo " Status: {$chain['status']}\n";
|
||||
echo " Mode: {$chain['execution_mode']}\n";
|
||||
echo " Position: {$chain['job_position'] + 1}/{$chain['total_jobs']}\n";
|
||||
$position = $chain['job_position'] + 1;
|
||||
echo " Position: {$position}/{$chain['total_jobs']}\n";
|
||||
|
||||
if ($chain['next_job_after_current']) {
|
||||
echo " Next job: {$chain['next_job_after_current']}\n";
|
||||
|
||||
@@ -192,11 +192,12 @@ final readonly class JobDependencyCommands
|
||||
foreach ($health['issues'] as $issue) {
|
||||
echo " - {$issue['type']}: ";
|
||||
|
||||
match($issue['type']) {
|
||||
'stalled_chain' => echo "Chain {$issue['chain_id']} running for {$issue['hours_running']} hours\n",
|
||||
'many_unsatisfied_dependencies' => echo "Job {$issue['job_id']} has {$issue['unsatisfied_count']} unsatisfied dependencies\n",
|
||||
default => echo "Unknown issue\n"
|
||||
$message = match($issue['type']) {
|
||||
'stalled_chain' => "Chain {$issue['chain_id']} running for {$issue['hours_running']} hours\n",
|
||||
'many_unsatisfied_dependencies' => "Job {$issue['job_id']} has {$issue['unsatisfied_count']} unsatisfied dependencies\n",
|
||||
default => "Unknown issue\n"
|
||||
};
|
||||
echo $message;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user