|
14 | 14 | {"id":"instructor-6l0","title":"Update FinishReasonCheck criterion","description":"Return appropriate ContinuationDecision based on finish reason.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-05T23:45:38.618842247+01:00","created_by":"ddebowczyk","updated_at":"2026-01-05T23:51:17.17827818+01:00","closed_at":"2026-01-05T23:51:17.17827818+01:00","close_reason":"Updated to use ContinuationDecision enum","dependencies":[{"issue_id":"instructor-6l0","depends_on_id":"instructor-amp","type":"blocks","created_at":"2026-01-05T23:45:56.881004218+01:00","created_by":"daemon"}]} |
15 | 15 | {"id":"instructor-6uo","title":"Add HTTP RetryMiddleware with backoff + jitter and config","description":"Implement RetryPolicy + RetryMiddleware in http-client, wire into HttpClientBuilder config (retryOnStatus/Exceptions, base/max delay, jitter).","notes":"Added RetryPolicy + RetryMiddleware (backoff+jitter) and HttpClientBuilder::withRetryPolicy convenience.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-05T03:30:00.402240885+01:00","created_by":"ddebowczyk","updated_at":"2026-01-05T03:37:04.08848893+01:00","closed_at":"2026-01-05T03:37:04.088495142+01:00"} |
16 | 16 | {"id":"instructor-72a","title":"Refactor ContinuationCriteria resolution","description":"Remove ALL/ANY/NONE modes. Implement flat resolution: Forbid wins, then Allow continues, else Stop. Remove nested composition.","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-05T23:45:27.735789547+01:00","created_by":"ddebowczyk","updated_at":"2026-01-05T23:48:40.332058272+01:00","closed_at":"2026-01-05T23:48:40.332058272+01:00","close_reason":"Implemented ContinuationDecision enum, updated interface, refactored ContinuationCriteria","dependencies":[{"issue_id":"instructor-72a","depends_on_id":"instructor-amp","type":"blocks","created_at":"2026-01-05T23:45:55.582381862+01:00","created_by":"daemon"}]} |
| 17 | +{"id":"instructor-7e2","title":"[enhancement] AgentFinished event should reflect termination reason in status","description":"## Problem\n\nWhen an agent is forcibly stopped by a guard criterion (e.g., TokenUsageLimit), the AgentFinished event reports `status: 'in_progress'` which is confusing since the agent has actually finished.\n\n## Evidence\n\nLog output:\n```\nAgentFinished • status =\u003e 'in_progress' • steps =\u003e 1\n```\n\nThis occurs because:\n1. TokenUsageLimit stopped continuation after step 1\n2. AgentState.status was never transitioned from 'in_progress'\n3. AgentFinished event just reflects the state's status field\n\n## Expected Behavior\n\nWhen an agent terminates due to a guard criterion, the status should indicate the termination was abnormal, e.g.:\n- `status: 'interrupted'` or `status: 'stopped'`\n- Or add a separate `stopReason` field alongside status\n\n## Current Behavior\n\nStatus remains 'in_progress' even after forced termination, making it hard to distinguish between:\n- Agent that completed naturally\n- Agent interrupted by token limit\n- Agent interrupted by time limit\n- Agent interrupted by step limit\n\n## Suggested Fix\n\nOption A: Add `terminationReason` field to AgentFinished event (non-breaking)\nOption B: Update AgentState.status to 'interrupted' when guards force stop\nOption C: Add `wasInterrupted` boolean to AgentFinished event\n\n## Impact\n\nLow - debugging/observability improvement only","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-17T00:18:47.965056+01:00","created_by":"ddebowczyk","updated_at":"2026-01-17T00:18:47.965056+01:00"} |
| 18 | +{"id":"instructor-7hd","title":"[bug] Duplicate ContinuationEvaluated events emitted per iteration in StepByStep","description":"## Problem\n\nThe StepByStep::iterator() emits duplicate ContinuationEvaluated events per iteration because hasNextStep() is called twice:\n\n1. In iterator() while condition (line 73)\n2. In nextStep() match statement (line 31)\n\n## Evidence\n\nLog shows two identical events at step 0:\n- event_id: c1fad037... ContinuationEvaluated step=0, shouldContinue=true\n- event_id: 8a9ad928... ContinuationEvaluated step=0, shouldContinue=true\n\n## Root Cause\n\n```php\n// StepByStep.php:73 - FIRST call\nwhile ($this-\u003ehasNextStep($state)) {\n $state = $this-\u003enextStep($state);\n}\n\n// StepByStep.php:31 - SECOND call (redundant)\npublic function nextStep(object $state): object {\n return match(true) {\n !$this-\u003ehasNextStep($state) =\u003e $this-\u003eonNoNextStep($state),\n // ...\n };\n}\n```\n\n## Impact\n\n- Redundant event emission (2x events per iteration)\n- Potential performance impact for event listeners\n- Confusing debug logs\n\n## Suggested Fix\n\nOption A: Cache continuation result in iterator() and pass to nextStep()\nOption B: Add internal flag to skip re-evaluation when called from iterator()\nOption C: Remove the hasNextStep check from nextStep() since iterator() already verified","status":"open","priority":2,"issue_type":"bug","created_at":"2026-01-17T00:18:37.709319+01:00","created_by":"ddebowczyk","updated_at":"2026-01-17T00:18:37.709319+01:00"} |
17 | 19 | {"id":"instructor-7z1","title":"Update RetryLimit criterion","description":"Return ForbidContinuation when max retries exceeded, AllowContinuation otherwise.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-05T23:45:37.705196582+01:00","created_by":"ddebowczyk","updated_at":"2026-01-05T23:51:17.171182338+01:00","closed_at":"2026-01-05T23:51:17.171182338+01:00","close_reason":"Updated to use ContinuationDecision enum","dependencies":[{"issue_id":"instructor-7z1","depends_on_id":"instructor-amp","type":"blocks","created_at":"2026-01-05T23:45:56.525651001+01:00","created_by":"daemon"}]} |
18 | 20 | {"id":"instructor-8e4","title":"Update ErrorPresenceCheck criterion","description":"Return ForbidContinuation on error, AllowContinuation otherwise.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-05T23:45:38.16304774+01:00","created_by":"ddebowczyk","updated_at":"2026-01-05T23:51:17.174787029+01:00","closed_at":"2026-01-05T23:51:17.174787029+01:00","close_reason":"Updated to use ContinuationDecision enum","dependencies":[{"issue_id":"instructor-8e4","depends_on_id":"instructor-amp","type":"blocks","created_at":"2026-01-05T23:45:56.704789339+01:00","created_by":"daemon"}]} |
19 | 21 | {"id":"instructor-8eq","title":"Comprehensive PHPStan level 8 compliance project","description":"Master tracking issue for achieving PHPStan level 8 compliance across all packages.\n\n🎉 MAJOR SUCCESS: Reduced from 214 errors to 24 errors (89% reduction!)\n\n✅ COMPLETED PHASES:\n1. **Redundant Type Casting** (4 errors): Fixed in Usage.php, SandboxCommandExecutor.php \n2. **Console Command Issues** (12+ errors): Fixed properties, JSON encoding, unused dependencies\n3. **HTTP Client Issues** (13+ errors): Added getters, fixed impossible comparisons, removed dead code\n4. **Code Duplication Bug** (1 critical): Fixed resolveToolKey() method\n5. **Test Class Conflicts** (3+ errors): Renamed conflicting TestEvent classes\n6. **Laravel Model Issues** (6+ errors): Added type annotations for properties\n7. **Method Signature Issues** (3+ errors): Added proper callable return type signatures\n8. **Framework Integration** (140+ errors): Fixed Laravel/Illuminate integration issues\n\n🔄 FINAL PHASE: 24 remaining errors to fix\n\n📊 CURRENT BREAKDOWN (24 errors total):\n- HTTP Client package: 7 errors (parameter types, unused properties)\n- Instructor package: 3 errors (nullable return types)\n- Stream handling: 4 errors (iterable type specifications)\n- Miscellaneous: 10 errors (various type and parameter issues)\n\n🚀 TARGET: Complete PHPStan level 8 compliance (0 errors)\n\nPROVEN APPROACH CONTINUES:\n✅ Systematic categorization and batch fixes\n✅ Analyze before removing - check legitimate usage\n✅ Add proper type annotations\n✅ Fix root causes, not just symptoms\n\nERROR REDUCTION PROGRESS:\n- Start: 214 errors \n- Previous update: 164 errors (50 fixed)\n- CURRENT: 24 errors (190 total fixed = 89% reduction!)\n\n📈 EXCELLENCE ACHIEVED: From 214 → 24 errors through systematic approach","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T01:04:44.785037059+01:00","updated_at":"2025-12-07T02:23:15.197434703+01:00","closed_at":"2025-12-07T02:23:15.197434703+01:00"} |
|
0 commit comments