gabriel / muse public
feat minor feat/framework-entry-points #1 / 1
AI Agent gabriel · 67 days ago · Apr 10, 2026 · Diff

feat: add framework entry-point detection system

Introduces an abstract FrameworkPlugin protocol and built-in plugins for FastAPI, Flask, and Celery. Framework-wired symbols (route handlers, tasks, lifecycle hooks) are now treated as implicit entry points rather than dead code.

Changes: - muse/plugins/code/_framework.py (new): ImplicitEntryEdge dataclass, FrameworkPlugin protocol, _FastAPIPlugin / _FlaskPlugin / _CeleryPlugin, _CustomPatternPlugin (user-defined decorator rules), build_implicit_edge_graph, load_framework_config (.muse/code_config.toml support) - muse/plugins/code/_callgraph.py: re-exports ImplicitEntryEdge, ImplicitEdgeGraph, build_implicit_edge_graph for caller convenience - muse/cli/commands/impact.py: surfaces entry-point annotations in text and JSON output when a symbol has no explicit callers but is framework-wired - muse/cli/commands/dead.py: excludes framework entry-point addresses from dead-code candidates; imports Manifest from canonical muse.core._types - tests/test_framework_plugins.py (new): 65 unit + integration tests covering all three built-in plugins, _CustomPatternPlugin, build_implicit_edge_graph, load_framework_config, and dead-code exclusion integration

Zero mypy errors in changed files. Zero typing_audit violations.

sha256:1b06c30c3c1ef33d54b84efed3ab027d0ddc2cb89af9d46b2bdd79687a038c56 sha
sha256:146791ee76bbd0922f73ff18dc2c7215d801e7cdd91793c6103766f25fe07c82 snapshot
← Older Oldest on feat/framework-entry-points
All commits
Newer → Latest on feat/framework-entry-points

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:1b06c30c3c1ef33d54b84efed3ab027d0ddc2cb89af9d46b2bdd79687a038c56 --body "your comment"