Repository navigation
feat: plugin API, manifests and loader - #10
Merged
Merged
Conversation
Acceptance tests for typed plugins with declared requires, a narrow plugin context, lightweight findings, TOML manifests with plugin_api ranges, an in-process loader and registry, and the dangerous_eval reference plugin. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Plugins declare requires and analyze a narrow PluginContext that only serves declared analyses. Findings are immutable lightweight records. Manifests are plugin.toml files with a plugin_api compatibility range, checked by an in-process loader against the entrypoint class and the registered analyses. The dangerous_eval reference plugin resolves eval and exec through SymbolAnalysis, so aliases and shadowing do not fool it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
6 tasks done
SizzleUnrlsd
added a commit
that referenced
this pull request
Sep 3, 2026
feat: plugin API, manifests and loader
4 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the plugin infrastructure of
docs/architecture.md(§13 Plugin API, §14 Plugin Manifests, §23 Findings, §32 Stable API, §33 Versioning, §34 Plugin Isolation).test: define plugin API, manifest and loader behavior), implementation follows in this PR.coretrace_python.plugins:Pluginbase class with declarativerequiresandanalyze(ctx), aPluginContextthat only serves declared analyses and exposesmoduleandfunctions(),run_pluginssharing oneAnalysisManageracross plugins.coretrace_python.findings: immutableFindingwith lightweight fields (rule, message, severity, confidence, span, function, metadata) and a schema version.plugin.tomlwith name, version,plugin_apicompatibility range, requires, provides, entrypoint. Parsed with the standard librarytomllib; TOML instead of the YAML shown in the document to avoid a runtime dependency.requiresmatch the class.plugins/syntax/dangerous_eval: reports calls resolving topython.builtins.eval/execthroughSymbolAnalysis, so aliases and shadowing do not fool it.Not in this PR: the stable accessors that need later phases (
cfg,taint,abstract_value, ...), the specialised plugin base classes of §13, out-of-process isolation, and CLI reporting of findings (Phase 5 reporters).Closes #9
🤖 Generated with Claude Code