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
fix(cold-start): address review findings on the QA-fix work
Six items raised by parallel review pass (silent-failure-hunter,
code-reviewer, pr-test-analyzer):
- create_class AttributeError handler was catching every AttributeError,
masking real user bugs (self.foo.bar where foo is None) behind a
generic 'Attribute error while creating class' wrap. Narrowed to the
partial-init signature; other AttributeErrors are inlined into the
same 'Error creating class. AttributeError(...)' shape the generic
handler produces. Original message preserved in the wrap.
- Extension-loader cache-hit swallow narrowed from broad except Exception
to (ExtensionError, ImportError). At the cache-hit point built-ins
already loaded, so an unexpected exception is much more likely a real
Extension System bug than a missing optional package; swallowing it
would silently shrink the palette.
- flow_executor.py split OSError into its own branch with a generic
client-facing message. OSError stringifies as
'[Errno 2] No such file or directory: /abs/path/...' which leaks
server filesystem layout on multi-tenant deploys. ValueError /
JSONDecodeError stay in the rich-detail branch.
- _LazyImportProxy._resolve pre-prime changed to a first-segment set
match so bare 'langchain' (the umbrella package) is covered alongside
langchain_classic and langchain_community. Added logger.debug on the
success path.
- _check_function_body_name_resolution rewritten as recursive _check_fn
so nested function bodies are checked against their own locals (the
flat ast.walk would false-positive on inner-function parameters).
Lambdas get a synthetic-locals scope. Class-body assignments are added
to the visible set. Added ast.NamedExpr branch to _function_locals so
walrus bindings register.
- 11 regression tests for _check_function_body_name_resolution covering
QA Fixture A, legacy-lfx symbols, dynamic-runtime globals (no-flag),
imported / locally-assigned / param / except-alias / comprehension-iter
/ walrus / nested-def / with-as scope handling. Pre-prime tests gain a
bare-langchain case and a langchain_core skip-case. Generic
AttributeError test now asserts the original message survives the wrap.
0 commit comments