Skip to content

fix: address review findings round 3 (PR #798)#801

Closed
github-actions[bot] wants to merge 2 commits intomainfrom
fix/issue-387-behavioral-tests-f0db6c0c
Closed

fix: address review findings round 3 (PR #798)#801
github-actions[bot] wants to merge 2 commits intomainfrom
fix/issue-387-behavioral-tests-f0db6c0c

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

Addresses 4 expert review findings from round 3:

  1. RecoveryLoop_AlreadyDoneSessionCompletesImmediately (MODERATE 3/3) — was tautological with hardcoded isProcessing=false; now uses real CopilotService in Demo mode
  2. PrematureIdleSignal_DisposedSignalDoesNotThrowOnIsSetCheck (MODERATE 3/3) — removed dead catch (ObjectDisposedException) (unreachable on .NET 8+)
  3. OnSessionComplete_HandlerUnsubscribeStopsDelivery (MODERATE 2/3) — now fires event via reflection to verify subscribe/unsubscribe behavior
  4. OnSessionComplete_MultipleHandlersReceiveEvent (MODERATE 3/3) — now subscribes handlers to actual event and verifies multicast delivery

All 3,632 tests pass.

Warning

⚠️ Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • 192.0.2.1

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "192.0.2.1"

See Network Configuration for more information.

Generated by Review & Fix · ● 10.6M ·

github-actions Bot and others added 2 commits April 28, 2026 20:44
Add 56 behavioral unit tests and 3 integration tests covering the
orchestration recovery paths introduced in PR #375.

Unit test coverage (OrchestrationRecoveryBehavioralTests.cs):
- LoadHistoryFromDiskAsync: 11 tests parsing events.jsonl with
  user/assistant/tool/reasoning messages, timestamps, edge cases
- bestResponse accumulation: 5 tests verifying longest-content-wins
  across multi-round recovery, null initial, progressive rounds
- PrematureIdleSignal lifecycle: 8 tests exercising ManualResetEventSlim
  set/reset/wait/dispose/cross-thread signaling
- OnSessionComplete handler: 5 tests for TCS pattern, name matching,
  cancellation registration, unsubscription
- OCE handling: 4 tests verifying bestResponse preserved on cancellation
  with linked CTS timeout and user abort scenarios
- dispatchTime filtering: 10 tests for timestamp-based message filtering
  including exact boundary, disk fallback, type exclusion
- GetEventsFileMtime: 4 tests for file modification time detection
- Constants validation: 4 tests verifying timeout values are reasonable
- Recovery loop TCS pattern: 4 end-to-end simulations of the full
  recovery loop with multi-round accumulation

Integration tests (OrchestrationRecoveryTests.cs):
- Dashboard loads, new session button exists, settings page accessible

Fixes #387

Co-authored-by: copilot-agentic-workflow[bot] <224017+copilot-agentic-workflow[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Finding 1 (MODERATE 3/3): RecoveryLoop_AlreadyDoneSessionCompletesImmediately
- Was tautological (hardcoded isProcessing=false local var)
- Now uses real CopilotService in Demo mode to verify IsProcessing state

Finding 2 (MODERATE 3/3): Dead catch (ObjectDisposedException)
- On .NET 8+, ManualResetEventSlim.IsSet does not throw ODE after Dispose()
- Removed misleading try-catch, assert directly with explanatory comment

Finding 3 (MODERATE 2/3): OnSessionComplete_HandlerUnsubscribeStopsDelivery
- Was vacuously passing (event never fired via Demo mode)
- Now invokes OnSessionComplete via reflection to verify subscribe/unsubscribe

Finding 4 (MODERATE 3/3): OnSessionComplete_MultipleHandlersReceiveEvent
- Was testing standalone lambda calls, not event multicast
- Now subscribes both handlers to actual svc.OnSessionComplete event
- Fires via reflection to verify C# event multicast delivery

Co-authored-by: copilot-agentic-workflow[bot] <224017+copilot-agentic-workflow[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@PureWeen
Copy link
Copy Markdown
Owner

Stale fix-round PR — fixes were pushed to the main PR branch.

@PureWeen PureWeen closed this Apr 30, 2026
@PureWeen PureWeen deleted the fix/issue-387-behavioral-tests-f0db6c0c branch April 30, 2026 20:17
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.

1 participant