fix: classify timeout-aborted siblings as unknown
Summary
Post-merge follow-up to #234 for its remaining P1 review finding:
- timeout escalation now rejects sibling in-flight requests with
BridgeTransportUnknownOutcomeErrorinstead of a plainError - the existing repeated-timeout regression now asserts the exact error class rather than matching message text
This lets the merged #234 error contract append UNKNOWN/no-blind-retry guidance and keeps bash host fallback ineligible when a sibling mutation may already have executed.
Review finding: https://github.com/cortexkit/aft/pull/234#discussion_r3796200244
Verification
bun test packages/aft-bridge/src/__tests__— 488 passed, 14 skippedbun run --filter @cortexkit/aft-bridge typecheck- Biome check on both changed files
The commit is SSH-signed and based on the #234 merge commit 24744afe.
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.
Summary by cubic
Classifies timeout-aborted sibling requests as unknown outcome. Previously these rejections used a generic Error; now they use BridgeTransportUnknownOutcomeError to prevent blind retries and keep bash host fallback ineligible when a sibling mutation may have executed.
- BinaryBridge now rejects all pending requests with BridgeTransportUnknownOutcomeError when a sibling-timeout escalation kills the bridge.
- Tests assert the error class instead of matching message text, preserving the repeated-timeout regression.
- Migration: update any consumer logic that parsed error messages to handle BridgeTransportUnknownOutcomeError; do not retry or trigger host fallback on this error.
Greptile Summary
This PR refines timeout-escalation handling so sibling in-flight requests are explicitly classified as having an unknown outcome.
- Replaces the generic sibling-abort error with
BridgeTransportUnknownOutcomeError. - Strengthens the repeated-timeout regression test to assert the exact error class.
Confidence Score: 5/5
The PR appears safe to merge with no actionable defects identified.
The production change narrows the sibling-abort error classification without changing timeout reachability or cleanup behavior, and the updated regression directly verifies the intended contract.
Important Files Changed
| Filename | Overview |
|---|---|
| packages/aft-bridge/src/bridge.ts | Correctly classifies requests interrupted by timeout-driven process termination as unknown outcomes, preserving no-blind-retry behavior. |
| packages/aft-bridge/src/tests/bridge-transport.test.ts | Updates the timeout-escalation regression to verify the sibling rejection’s structured error class rather than message text. |
Reviews (1): Last reviewed commit: "fix: classify timeout-aborted siblings a..." | Re-trigger Greptile
Context used:
- Knowledge Base — TypeScript AFT bridge: native and daemon-backed transport