Test gap — StreamingPlan option variants untested.
What's missing
Upstream `thread.test.ts` has a `[Streaming]` block with 6 tests that exercise the `StreamingPlan` options surface (`groupTasks`, `endWith`, `updateIntervalMs`, etc.):
```
[Streaming] should pass StreamingPlan PostableObject options to adapter.stream
[Streaming] should pass StreamingPlan with only groupTasks
[Streaming] should pass StreamingPlan with only endWith
[Streaming] should pass StreamingPlan with only updateIntervalMs
[Streaming] should route StreamingPlan through fallback when adapter has no native streaming
[Streaming] should still work without options (backward compat)
```
Python's `test_thread_faithful.py` doesn't translate these. Need to verify the options are actually wired through to adapter streaming calls and not dropped.
Risk
If `thread.stream(plan, options)` drops `updateIntervalMs` or `endWith` somewhere in the Python port, nobody would know until a consumer noticed throttling or a missing end-card in production.
Fix
- Verify `StreamingPlan` options are passed to adapter `stream(...)` calls (and to the fallback-streaming path).
- Translate the 6 tests line-by-line from `thread.test.ts`.
- Run `verify_test_fidelity.py` to confirm 0 missing under `[Streaming]`.
Acceptance
Test gap — StreamingPlan option variants untested.
What's missing
Upstream `thread.test.ts` has a `[Streaming]` block with 6 tests that exercise the `StreamingPlan` options surface (`groupTasks`, `endWith`, `updateIntervalMs`, etc.):
```
[Streaming] should pass StreamingPlan PostableObject options to adapter.stream
[Streaming] should pass StreamingPlan with only groupTasks
[Streaming] should pass StreamingPlan with only endWith
[Streaming] should pass StreamingPlan with only updateIntervalMs
[Streaming] should route StreamingPlan through fallback when adapter has no native streaming
[Streaming] should still work without options (backward compat)
```
Python's `test_thread_faithful.py` doesn't translate these. Need to verify the options are actually wired through to adapter streaming calls and not dropped.
Risk
If `thread.stream(plan, options)` drops `updateIntervalMs` or `endWith` somewhere in the Python port, nobody would know until a consumer noticed throttling or a missing end-card in production.
Fix
Acceptance