f787764364
test / unit (pull_request) Successful in 57s
test / integration (pull_request) Successful in 27s
test / coverage (pull_request) Successful in 1m23s
lint / lint (push) Successful in 2m24s
test / unit (push) Successful in 59s
test / integration (push) Successful in 26s
test / coverage (push) Successful in 1m17s
Update Quality Badges / update-badges (push) Successful in 1m13s
manifest.py imported the extends/loader resolvers, while those resolvers needed ManifestBottle back from manifest.py — a true bidirectional cycle papered over with in-function imports and TYPE_CHECKING guards (not clear dependency inversion). Extract ManifestBottle into a new leaf module manifest_bottle.py that depends only on the other leaf modules (manifest_util/agent/egress/git/schema). manifest.py re-exports ManifestBottle, so `from .manifest import ManifestBottle` callers are unaffected. With the cycle gone: - manifest_extends and manifest_loader import ManifestBottle from manifest_bottle and their other deps from the real source modules, all at top level (TYPE_CHECKING block removed). - manifest.py imports the extends/loader/schema/yaml_subset/log helpers at module top; all per-function lazy imports in the cluster are removed. No behavior change; full unit suite green, pyright clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NkwFXLFff9PYPy4wgVBJp9