Skip to content

[#376] 🤖 - Localize and simplify GitHub Actions summaries - #376

Merged
efraespada merged 3 commits into
developfrom
codex/localized-action-summary
Sep 14, 2026
Merged

efraespada merged 3 commits into
developfrom
codex/localized-action-summary

Conversation

@efraespada

@efraespada efraespada commented Sep 14, 2026 •

Copy link
Copy Markdown
Member

📌 Summary

Localizes generic GitHub Actions Job Summaries using the configured repository-locale, with English as the default. The summary now resolves a complete typed catalog for the selected locale, falls back atomically to English when resolution is incomplete, preserves stable machine-oriented facts, and renders localization evidence only once.


🎯 Related Issues / Tickets


🧩 Scope of Changes

  • Added:
    • Typed English and Spanish action-summary message catalogs.
    • Catalog resolution for generic summaries, including dynamic locale resolution and atomic English fallback.
    • Catalog, rendering, integration, and Markdown-safety regression tests.
  • Updated:
    • Generic summary headings, labels, statuses, finding states, targets, telemetry, and result details.
    • GitHub Action completion to resolve the repository catalog before rendering summaries.
    • Coverage budgets, architecture evidence, localization specifications, catalog metadata, user documentation, and the generated bundle.
  • Removed:
    • Duplicate localization evidence from generic summaries.
  • Refactored:
    • Action-summary rendering around stable typed message identifiers and complete catalog resolution.

🛠️ Technical Details

Generic summaries resolve one complete catalog for repository-locale. Bundled en-US and es-ES catalogs are supported; valid arbitrary locales use the shared dynamic resolver and fall back atomically to English when the response is invalid or incomplete.

Human-readable presentation is localized while event names, lifecycle values, finding-state data, error codes, references, and other machine-oriented facts remain stable. Catalog output and specialized localization labels are sanitized so injected Markdown cannot alter the summary structure. Deployment summaries retain their specialized localization evidence, while generic summaries render that section exactly once.


🔍 How to Test

  1. Configure a repository with repository-locale: es-ES and run a generic GitHub Action workflow.
  2. Confirm that the Job Summary uses Spanish headings, labels, statuses, targets, finding states, and result details.
  3. Confirm that event names, lifecycle values, error codes, references, and other machine facts remain unchanged, and that only one localization section is present.
  4. Exercise a valid arbitrary locale and verify that the complete summary resolves dynamically; provide an incomplete catalog response and verify atomic fallback to English.
  5. Run the repository validation commands and verify that all checks pass.

🧪 Test Coverage

  • Unit tests
  • Integration tests
  • End-to-end (E2E) tests
  • Manual testing only (explain why)

Validation reported for this change includes 434 Jest suites and 3,884 tests, full coverage with all 11 numeric coverage budgets, typecheck, lint, specification, documentation, workflow, npm package, and generated-build validations.


📸 Screenshots / Recordings (UI changes only)

Not applicable; this change affects generated Job Summary text and does not require screenshots or recordings.


⚠️ Breaking Changes

  • None

🚀 Deployment Notes

  • Requires database migration
  • Requires environment variable changes
  • Requires feature flag toggle
  • No special deployment steps

Details: The generated GitHub Action bundle is included, and no new deployment configuration is required.


🔒 Security Considerations

  • No security impact
  • Input validation changes
  • Authentication / authorization changes
  • Sensitive data handling changes

The change adds defensive sanitization and regression coverage for catalog output while preserving existing stable machine-value handling. It does not change authentication, authorization, or secret handling.


📈 Performance Impact

  • No performance impact
  • Improves performance
  • Potential performance regression (explain)

Catalog resolution runs as part of existing summary generation and uses the shared resolver's caching behavior. It does not change domain operations or GitHub mutation behavior.


📝 Notes for Reviewers

Please verify the generic-summary path separately from the deployment-summary path, especially Spanish catalog output, arbitrary-locale resolution, atomic fallback behavior, Markdown sanitization, the single localization section, and preservation of stable event, lifecycle, finding-state, and error-code values.


✅ Checklist

  • I have self-reviewed my code
  • Code follows project standards and conventions
  • Tests have been added or updated
  • Documentation has been updated (if applicable)
  • No new warnings or lint errors
  • Breaking contract changes and required consumer updates are documented

📚 Additional Context

The PR updates specs/repository-locale-and-localization.md, specs/semantic-github-publication-and-notification.md, specs/catalog.json, and specs/CATALOG.md so the implementation evidence and localization contract remain aligned with the generated bundle, architecture boundaries, and coverage budgets.

@docs-page

docs-page Bot commented Sep 14, 2026

Copy link
Copy Markdown

To preview the documentation for this pull request, visit the following URL:

docs.page/vypdev/copilot~376

Documentation is deployed and generated using docs.page

@vypbot vypbot changed the title Localize and simplify GitHub Actions summaries [#376] 🤖 - Localize and simplify GitHub Actions summaries Sep 14, 2026
@vypbot
vypbot self-requested a review September 14, 2026 22:02
@vypbot vypbot added this to vypdev Sep 14, 2026
@vypbot vypbot moved this to In Progress in vypdev Sep 14, 2026
@vypbot
vypbot changed the base branch from develop to master September 14, 2026 22:02
@vypbot
vypbot changed the base branch from master to develop September 14, 2026 22:03
@codecov-commenter

codecov-commenter commented Sep 14, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.60%. Comparing base (274db40) to head (56614d9).
⚠️ Report is 729 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #376      +/-   ##
===========================================
+ Coverage    90.94%   92.60%   +1.66%     
===========================================
  Files          135      647     +512     
  Lines         6251    16762   +10511     
  Branches      1338     4275    +2937     
===========================================
+ Hits          5685    15523    +9838     
- Misses         172      483     +311     
- Partials       394      756     +362     
Files with missing lines Coverage Δ
src/actions/github_action_completion.ts 90.82% <100.00%> (ø)
...ication/policies/action_summary_message_catalog.ts 100.00% <100.00%> (ø)
src/application/policies/action_summary_policy.ts 96.15% <100.00%> (ø)

... and 706 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@vypbot vypbot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Current status: Overall coverage is partial; this snapshot does not prove that all of its findings are resolved.
Last reconciled on 56614d9. See aggregate Bugbot status.

🤖 Bugbot review snapshot

Bugbot reported 1 potential problem when commit 00920a9 was analyzed. This snapshot is historical; use the status block above for current state. 1 finding is linked to changed code.

Findings

  • medium: Dynamic catalog text can inject Job Summary Markdown — src/application/policies/action_summary_policy.ts:97

Comment thread src/application/policies/action_summary_policy.ts Outdated
@vypbot

vypbot commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Bugbot: review incomplete

Current status: The review of 56614d9 has partial coverage and cannot declare the whole pull request clean.

Action: Inspect the omitted items or reduce the pull request scope. Rerun the review only after changing the scope, limits, or access.

Incomplete coverage
  • selection: complete; retained=1
  • issue-comments: complete; retained=3
  • pull-request-comments: complete; retained=2
  • review-threads: complete; retained=1
  • diff: partial; retained=15, truncated=1
  • previous-findings: complete; retained=1
  • human-conversation: partial; retained=2, truncated=1
  • rules: complete; retained=0

Pull request · Verified commit · Workflow run

@efraespada
efraespada merged commit ac3ba03 into develop Sep 14, 2026
14 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in vypdev Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants