Skip to content

Develop - #395

Open
efraespada wants to merge 116 commits into
masterfrom
develop
Open

efraespada wants to merge 116 commits into
masterfrom
develop

Conversation

@efraespada

@efraespada efraespada commented Sep 16, 2026

Copy link
Copy Markdown
Member

This change consolidates GitHub communication around localized, semantic publication with durable status, concurrency, freshness, and evidence handling. It also adds configurable issue workflows with runtime admission, generated repository guidance, setup diagnosis, and synchronized documentation and specifications.

What changed

  • Added localized message catalogs and semantic publication for issues, pull requests, reviews, checks, job summaries, and transition notifications, with deduplication and bounded output.
  • Hardened review and publication flows with current-head validation, state reconciliation, event-specific concurrency lanes, safe context handling, and explicit blocked or partial outcomes.
  • Added configurable Issue Form workflows, routing profiles, runtime admission rules, setup asset retirement and backup behavior, generated agent guidance, and copilot doctor coverage.
  • Removed deprecated image configuration and legacy publication paths while tightening locale, response-schema, workflow, and architecture contracts.
  • Updated workflows, generated bundles, public documentation, specifications, and extensive unit, integration, architecture, and contract test coverage.

Review notes

  • Verify setup behavior for deselected assets: unchanged setup-owned files are moved to .copilot/setup-backups/, while customized files are preserved and reported as drift.
  • Confirm branch protection and merge-queue compatibility remains intact for the stable Copilot - Pull Request check while review-state events use their separate check and concurrency lane.

[#366] 🤖 - Add repository locale and safe request adaptation
[#367] 🤖 - Make GitHub publication semantic durable and quiet
…tion

[#368] 🤖 - featlocalization add generic repository message catalogs
[#369] 🤖 - Enforce localized productagent responses
[#370] 🤖 - Localize branchsync notices for any repository locale
[#371] 🤖 - Keep automated reports out of Bugbot human context
[#372] 🤖 - Keep generated catalogs out of review context
…ence

Normalize merged communication evidence
Remove legacy locale and translation contracts
…figuration

Remove decorative image configuration
Block PR readiness when Bugbot coverage is partial and keep the maintainer waiting state explicit. Suppress greenfield migration notes when repository evidence confirms there are no users or persisted production state, with updated SDDs, tests, docs, and generated bundles.
…ontracts

Enforce current-only publication state contracts
@docs-page

docs-page Bot commented Sep 16, 2026

Copy link
Copy Markdown

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

docs.page/vypdev/copilot~395

Documentation is deployed and generated using docs.page

@vypbot
vypbot self-requested a review September 16, 2026 00:26
@vypbot vypbot added this to vypdev Sep 16, 2026
@vypbot vypbot moved this to In Progress in vypdev Sep 16, 2026
@codecov-commenter

codecov-commenter commented Sep 16, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 94.02985% with 12 lines in your changes missing coverage. Please review.
✅ Project coverage is 92.42%. Comparing base (effe868) to head (55067b9).

Files with missing lines Patch % Lines
src/actions/common_action.ts 88.00% 2 Missing and 1 partial ⚠️
src/actions/github_action_completion.ts 95.00% 0 Missing and 3 partials ⚠️
src/actions/github_action_execution.ts 81.81% 0 Missing and 2 partials ⚠️
src/actions/local_action_output.ts 95.00% 1 Missing and 1 partial ⚠️
src/actions/github_action.ts 96.66% 0 Missing and 1 partial ⚠️
src/actions/local_action.ts 75.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #395      +/-   ##
==========================================
+ Coverage   91.67%   92.42%   +0.74%     
==========================================
  Files         632      658      +26     
  Lines       15839    18252    +2413     
  Branches     4031     4760     +729     
==========================================
+ Hits        14521    16869    +2348     
- Misses        538      566      +28     
- Partials      780      817      +37     
Files with missing lines Coverage Δ
src/actions/configuration_builders.ts 100.00% <100.00%> (ø)
src/actions/github_action_locale_inputs.ts 100.00% <100.00%> (ø)
src/actions/github_event_inputs.ts 100.00% <100.00%> (ø)
src/actions/local_action_configuration_sections.ts 88.70% <100.00%> (+3.22%) ⬆️
src/actions/local_action_execution.ts 92.30% <100.00%> (ø)
src/actions/main_run_lifecycle.ts 98.30% <100.00%> (-0.06%) ⬇️
src/actions/setup_execution_boundary.ts 100.00% <100.00%> (ø)
src/api.ts 68.03% <100.00%> (+2.24%) ⬆️
src/application/contracts/input_keys.ts 100.00% <ø> (ø)
src/application/errors/application_error.ts 100.00% <100.00%> (ø)
... and 76 more

... and 133 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 55067b9. See aggregate Bugbot status.

🤖 Bugbot review snapshot

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

Findings

  • medium: Catalog resolver failures abort publication instead of falling back — src/application/policies/resolved_message_catalog_policy.ts:65

Comment on lines +65 to +70
return toResolvedMessageCatalogView(await resolver.resolve({
targetLocale: locale || DEFAULT_REPOSITORY_LOCALE,
ids,
sourceCatalog,
bundledCatalogs,
configuration,

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.

Catalog resolver failures abort publication instead of falling back

Severity: medium

Category: reliability · Confidence: 88%

Location: src/application/policies/resolved_message_catalog_policy.ts:65-70

When a caller supplies a MessageCatalogResolutionPort whose resolve method rejects or returns an invalid catalog, this function propagates the failure. The documented contract requires failed or incomplete dynamic localization to fall back atomically to the English catalog, but publication workflows can instead fail before producing their user-facing output.
Evidence:
resolveMessageCatalogView directly awaits resolver.resolve(...) and immediately passes the result to toResolvedMessageCatalogView; there is no catch, validation, or fallback path around the resolver call. The repository documentation states that unavailable, failed, or incomplete dynamic resolution must fall back atomically to English.

Suggested fix:
Catch resolver failures and validate the returned catalog before converting it to a view; on any failure or invalid response, return resolveStaticMessageCatalogView(locale, sourceCatalog, bundledCatalogs) so publication remains available in English.

@vypbot

vypbot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Bugbot: review incomplete

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

Action: Do not treat this review as complete. Review the sources under Incomplete coverage and manually inspect omitted items; rerun only after reducing the relevant scope or restoring provider access.

Findings

Incomplete coverage
  • selection: complete; retained=1
  • pull-request-comments: complete; retained=1
  • review-threads: complete; retained=1
  • diff: partial; retained=27, omitted=498, truncated=45
  • previous-findings: complete; retained=1
  • human-conversation: complete; retained=0
  • rules: complete; retained=0

Pull request · Verified commit · Workflow run

@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 55067b9. See aggregate Bugbot status.

🤖 Bugbot review snapshot

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

Findings

  • low: Review edits run the full pull-request workflow — .github/workflows/copilot_pull_request_review_state.yml:6


on:
pull_request_review:
types: [submitted, edited, dismissed]

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.

Review edits run the full pull-request workflow

Severity: low

Category: correctness · Confidence: 82%

Location: .github/workflows/copilot_pull_request_review_state.yml:6

The new review-state workflow subscribes to edited review events, but it invokes the regular Copilot action. A pull_request_review event with action edited reaches runPullRequestWorkflow, whose edited branch invokes the pull-request title update workflow. This can rewrite a human-edited PR title even though the review-state workflow is documented to reconcile only lifecycle labels.
Evidence:
The workflow includes edited in its pull_request_review trigger. The application maps that event to the normal pull-request route, and runPullRequestWorkflow handles context.action === 'edited' by invoking updateTitle; the review-state workflow therefore performs title mutation in addition to lifecycle synchronization.

Suggested fix:
Guard the normal pull-request route from pull_request_review events, or provide a dedicated review-state execution path that performs lifecycle synchronization without invoking pull-request title, project, reviewer, or description workflows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

3 participants