feat: implement PackageMetadata and set as FoundryContext.metadata#33
feat: implement PackageMetadata and set as FoundryContext.metadata#33olivermeyer wants to merge 2 commits intomainfrom
Conversation
Introduces PackageMetadata (frozen Pydantic model) with description, author_name, author_email, repository_url, and documentation_url fields. PackageMetadata.from_name() populates all five from importlib.metadata. FoundryContext.from_package() now delegates to PackageMetadata.from_name() and exposes the result as ctx.metadata; the top-level repository_url / documentation_url fields are removed from FoundryContext. All callers (user_agent, sentry) updated to read from ctx.metadata. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests.
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
69b8234 to
7132831
Compare
|
Claude finished @olivermeyer's task in 2m 18s —— View job PR Review Complete ✅Reviewing PR #33: feat: implement PackageMetadata and set as FoundryContext.metadata SummaryThis PR successfully implements Quality Gates: ✅ All passed
Review Findings✅ Strengths
🟡 Observations (Non-blocking)
📝 Suggestions (Optional Improvements)
Security Review ✅
Performance Review ✅
Commit Messages ✅Both commits follow conventional commit format:
Clean, descriptive, and properly scoped. Verdict✅ APPROVE - This PR is ready to merge. The code is high quality, well-tested, and follows all project standards. The breaking changes are intentional, well-scoped, and improve the API design. SonarQube and Codecov both pass with flying colors. Optional Follow-ups (Post-merge)
Great work! 🎉 This refactor significantly improves the API ergonomics and reduces boilerplate. |
|



PackageMetadatamodel to hold package metadata, and setting it asFoundryContext.metadata.api.corefunctions to use the context instead of explicit parameters