Repository navigation
fix: preserve consumer logging ownership and routing - #415
codeforester merged 17 commits into
Conversation
…ff-check-and-mypy-do-not-cover-the-compatibility-consum
…-compatibility-consum' into bug/387-20261003-bug-configure-logger-closes-consumer-owned-handlers-and-forc
…-compatibility-consum' into bug/387-20261003-bug-configure-logger-closes-consumer-owned-handlers-and-forc
# Conflicts: # docs/integrations.md
codeforester
left a comment
There was a problem hiding this comment.
Reviewed against #387's acceptance criteria. Handler ownership via _base_cli_owned is the right shape, and consumer handlers are no longer closed or detached. CI is green.
I found one verified behavioral regression, inline. There are also two acceptance criteria without a test:
dictConfig()routing: the criterion sayslogging.config.dictConfig()-configuredbase_clihandlers continue to receive records.test_parent_consumer_configuration_is_preservedusesaddHandleron the parent, notdictConfig. I checkeddictConfigby hand and it does work, partly becausedictConfigresets childpropagateitself. A test would pin that behavior.- #341 nested
run_app: the criterion says the nested-run_appguarantee still holds. No new test asserts it. Please confirm the existing #341 tests cover the new ownership-filtered cleanup path incontext.py.
…ff-check-and-mypy-do-not-cover-the-compatibility-consum
…d-mypy-do-not-cover-the-compatibility-consum' into bug/387-20261003-bug-configure-logger-closes-consumer-owned-handlers-and-forc # Conflicts: # docs/integrations.md
|
Re-verified at |
Persistent logging now reuses its private sidecar descriptor and caches human-log source paths per invocation. Repeated source paths avoid filesystem resolution, forked children reopen their lock descriptor, and sidecar failures use logging's error handler so commands can complete. Fixes #381. ## Branch maintenance Refs #426. Targets the branch for #415. Retarget and refresh after that parent is squash-merged; preserve the ordered stack. The branch was refreshed without rewriting history to include `main` at `a576cc279739eae5e4cfc33ffab2a7fb56de24de`. ## Current-head validation At `66ce2689a0b5859ad25927aaa9274c7a4ff5ab19`: uv lock freshness and baseline, runtime, strict typing, style, and contracts passed locally with all declared extras. Runtime result: 616 passed, 1 warning, 262 subtests passed in 8.57s. Hosted checks: 7/7 required checks passed; 0 checks pending; 0 unsuccessful checks at 2026-10-04T14:19:40.760978+00:00. See the PR Checks tab and #426 for subsequent results.
CLI setup and teardown now close only lifecycle-owned handlers. Consumer handlers, explicit levels, and parent logging configuration survive an invocation; unconfigured loggers keep duplicate-free terminal output. The public logger helper accepts an explicit propagation policy.
Fixes #387.
Branch maintenance
Refs #426. Targets the branch for #414. Retarget and refresh after that parent is squash-merged; preserve the ordered stack.
The branch was refreshed without rewriting history to include
mainata576cc279739eae5e4cfc33ffab2a7fb56de24de. The documentation conflict preserves both logger-ownership and timestamp configuration guidance.Current-head validation
At
b48e4443a1e7bde586679e975f28ad9713a916b7: uv lock freshness and baseline, runtime, strict typing, style, and contracts passed locally with all declared extras. Runtime result: 611 passed, 1 warning, 262 subtests passed in 8.75s.Hosted checks: 7/7 required checks passed; 0 checks pending; 0 unsuccessful checks at 2026-10-04T14:19:40.760978+00:00. See the PR Checks tab and #426 for subsequent results.