The production tool-execution Lambda runs Python 3.10 (dockerfiles/lambda.Dockerfile:1 → FROM public.ecr.aws/lambda/python:3.10), but mercury/tools/_base/helpers/attributes.py used typing.NotRequired, which only exists on Python 3.11+.
That module is imported by the core base classes (ApiAction / APITool / Trigger), so the Lambda handler failed at import time:
AttributeError: module 'typing' has no attribute 'NotRequired'
File ".../mercury/tools/_base/helpers/attributes.py", line 14, in RuntimeSecretRef
ref: t.NotRequired[str]
i.e. every invocation of the deployed 3.10 lambda dies before running any handler code.
Import NotRequired from typing_extensions (the backport, always present transitively via pydantic v2) instead of typing. One-file change, no behavioral change on 3.11.
lambdad in the public.ecr.aws/lambda/python:3.10 image (handler init crashed).lambdad.handler boots cleanly on Python 3.10.20; mercury.tools._base.{tool,action,trigger} all import.mercury/ for other 3.11-only typing features (NotRequired/Required/Self/Unpack/etc.) — this was the only occurrence.CI didn't catch this because a stray repo-root .python-version=3.11 (added incidentally in #24261) makes uv run nox execute the test suite on 3.11, while prod runs 3.10. Aligning the tested interpreter with the runtime floor (e.g. pin the tst nox session to 3.10, or fix .python-version) will be handled separately.