You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- linear_reactions: guard auth-circuit globals with `_auth_state_lock`
so the daemon sweep thread and the main thread can't race the
read-modify-write on `_consecutive_auth_failures` /
`_auth_circuit_open`.
- linear_reactions: wrap the daemon sweep target in
`_sweep_stale_reactions_safe` so an unexpected exception logs at
ERROR instead of dying silently (stderr from a daemon thread doesn't
reliably reach CloudWatch).
- linear_reactions: only increment the sweep delete counter when
`_graphql(_DELETE_MUTATION, ...)` actually returns a non-None
response — previously the summary log overstated success.
- config: hoist `import boto3` out of the catch-narrowed try/except
so an `ImportError` (boto3 missing from the image) degrades to a
WARN log instead of crashing the agent.
- orchestrate-task: wrap `notifyLinearOnConcurrencyCap` in a
defensive try/catch — durable-execution retries the entire
admission-control step on throw, which would re-fire `failTask` +
`emitTaskEvent` and produce duplicate events.
- tests: 1 new throw-propagation test for `notifyLinearOnConcurrencyCap`,
3 new tests for `resolve_linear_api_token` (cached env, no-arn,
ImportError fallback). Auto-reset fixture in
`test_linear_reactions.py` now also resets the circuit-breaker
globals between tests so future cases don't leak state.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments