Skip to content

[#367] 🤖 - Make GitHub publication semantic durable and quiet - #367

Merged
efraespada merged 6 commits into
developfrom
codex/semantic-github-publication
Sep 14, 2026
Merged

efraespada merged 6 commits into
developfrom
codex/semantic-github-publication

Conversation

@efraespada

@efraespada efraespada commented Sep 14, 2026 •

Copy link
Copy Markdown
Member

📌 Summary

Replaces generic GitHub action recap comments with semantic publication cards and correlated replies, while keeping durable plans, progress, status, Bugbot findings, and operational details in Job Summaries and logs.


🎯 Related Issues / Tickets


🧩 Scope of Changes

  • Added:
    • Semantic publication intents, identity markers, digests, and duplicate tombstones.
    • Canonical status-card and reply reconciliation workflows.
    • English and Spanish publication catalogs with English fallback.
    • GitHub publication boundary tests and mutation inventory validation.
  • Updated:
    • Bugbot, branch-sync, release, inactivity, access-policy, help, status, and progress publication.
    • Documentation, specifications, action metadata, tests, workflows, and generated bundles.
  • Removed:
    • Generic result step-dump and commit-summary comments.
    • Legacy result publication policy modules.
  • Refactored:
    • Publication around explicit semantic projections.
    • Comment ownership and deduplication around bot-authored markers.
    • Legacy watermark handling for compatibility.

🛠️ Technical Details

  • Only reviewed semantic payloads reach GitHub conversation surfaces; internal steps, errors, images, debug output, and routine metadata remain in Job Summaries or logs.
  • Plan and progress cards use stable topic, target, key, source-version, and digest identity so retries update canonical comments.
  • Explicit replies use correlation metadata; concurrent duplicates are compacted into pointers to the canonical response.
  • Malformed, unknown, unsafe, or non-bot-authored markers are ignored during reconciliation.
  • Bugbot clean cards omit empty sections, while incomplete coverage describes the effective corrective action.
  • Existing image inputs remain accepted for compatibility, default to false, and are ignored by semantic publication.

🔍 How to Test

  1. Install Node.js 24 dependencies with pnpm install.
  2. Run pnpm test.
  3. Run pnpm run test:coverage, pnpm run typecheck, pnpm run lint, and pnpm run build.
  4. Run the specification, workflow-contract, architecture-boundary, package, and smoke validations.
  5. Exercise plan, progress, help, status, branch-sync, Bugbot, and repeated-command flows.
  6. Verify canonical cards are updated, duplicate replies are compacted, and routine operations do not create generic comments.

🧪 Test Coverage

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

Validation reports 422 Jest suites and 3,636 tests passing, with 95.57% statements, 89.35% branches, 95.96% functions, and 96.82% lines coverage.


📸 Screenshots / Recordings (UI changes only)

Not applicable; this changes GitHub conversation content and publication behavior rather than repository UI assets.


⚠️ Breaking Changes

  • Image inputs are deprecated and now default to false; semantic messages no longer render decorative images.
  • Generic action, push, merge, close, and metadata recap comments are no longer published.
  • Consumers relying on legacy result step-dump comments should use semantic status cards, explicit replies, native GitHub metadata, or Job Summaries.

🚀 Deployment Notes

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

Details: Generated action and CLI bundles are included. Existing image-related inputs remain accepted during the compatibility window.


🔒 Security Considerations

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

Publication markers use strict token and digest validation. Only comments authored by the configured bot are eligible for reconciliation, and internal logs or agent evidence are excluded from conversation output.


📈 Performance Impact

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

Reconciliation uses bounded reads and updates while reducing redundant conversation messages.


📝 Notes for Reviewers

Pay particular attention to the publication boundary, marker validation, canonical-comment selection, duplicate compaction, and Bugbot incomplete-coverage behavior.


✅ Checklist

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

📚 Additional Context

The publication catalog currently supports English and Spanish with English fallback. A follow-up localization change is expected to replace this interim renderer with the specified arbitrary-BCP-47 message-bundle pipeline.

@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~367

Documentation is deployed and generated using docs.page

@vypbot vypbot changed the title Make GitHub publication semantic, durable, and quiet [#367] 🤖 - Make GitHub publication semantic durable and quiet Sep 14, 2026
@vypbot
vypbot self-requested a review September 14, 2026 12:47
@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 12:47
@vypbot
vypbot changed the base branch from master to develop September 14, 2026 12:48
@codecov-commenter

codecov-commenter commented Sep 14, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.48866% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 91.91%. Comparing base (274db40) to head (5187b7f).
⚠️ Report is 690 commits behind head on develop.

Files with missing lines Patch % Lines
...ion/policies/semantic_result_publication_policy.ts 98.82% 0 Missing and 1 partial ⚠️
...teps/commit/bugbot/load_bugbot_context_use_case.ts 87.50% 0 Missing and 1 partial ⚠️
...synchronize_bugbot_review_presentation_use_case.ts 75.00% 0 Missing and 1 partial ⚠️
...n/usecases/steps/common/publish_resume_workflow.ts 97.95% 0 Missing and 1 partial ⚠️
...secases/steps/common/reply_publication_workflow.ts 96.55% 0 Missing and 1 partial ⚠️
...s/steps/common/status_card_publication_workflow.ts 96.87% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #367      +/-   ##
===========================================
+ Coverage    90.94%   91.91%   +0.97%     
===========================================
  Files          135      636     +501     
  Lines         6251    16163    +9912     
  Branches      1338     4158    +2820     
===========================================
+ Hits          5685    14857    +9172     
- Misses         172      529     +357     
- Partials       394      777     +383     
Files with missing lines Coverage Δ
src/actions/github_action.ts 94.02% <100.00%> (+12.10%) ⬆️
src/actions/github_action_completion.ts 87.09% <ø> (ø)
...cation/policies/branch_sync_notification_policy.ts 100.00% <100.00%> (ø)
...lication/policies/bugbot_event_ownership_policy.ts 100.00% <100.00%> (ø)
...tion/policies/bugbot_review_presentation_policy.ts 98.18% <100.00%> (ø)
...application/policies/copilot_interaction_policy.ts 100.00% <100.00%> (ø)
...ication/policies/deployment_presentation_policy.ts 94.30% <100.00%> (ø)
...pplication/policies/publication_identity_policy.ts 100.00% <100.00%> (ø)
...pplication/policies/publication_message_catalog.ts 100.00% <100.00%> (ø)
src/application/policies/status_command_policy.ts 96.55% <100.00%> (ø)
... and 26 more

... and 661 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 5187b7f. See aggregate Bugbot status.

🤖 Bugbot review snapshot

Bugbot reported 1 potential problem(s) when commit 7f3680d was analyzed. This snapshot is historical; use the status block above for current state. 1 finding(s) are linked to changed code.

Findings

  • medium: PR review-comment replies reuse one correlation ID — src/application/usecases/steps/common/publish_resume_workflow.ts:113

Comment thread src/application/usecases/steps/common/publish_resume_workflow.ts
@vypbot

vypbot commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Bugbot: review incomplete

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

Action: Inspect the omitted items or reduce the PR 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=4
  • review-threads: complete; retained=4
  • diff: partial; retained=23, omitted=92, truncated=4
  • previous-findings: complete; retained=1
  • human-conversation: partial; retained=2, truncated=1
  • 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 5187b7f. See aggregate Bugbot status.

🤖 Bugbot review snapshot

Bugbot reported 1 potential problem(s) when commit 78b5a7a was analyzed. This snapshot is historical; use the status block above for current state. 1 finding(s) are linked to changed code.

Findings

  • medium: New correlation format no longer recognizes existing reply markers — src/application/usecases/steps/common/publish_resume_workflow.ts:122

Comment thread src/application/usecases/steps/common/publish_resume_workflow.ts

@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 5187b7f. See aggregate Bugbot status.

🤖 Bugbot review snapshot

Bugbot reported 1 potential problem(s) when commit 01aef29 was analyzed. This snapshot is historical; use the status block above for current state. 1 finding(s) are linked to changed code.

Findings

  • medium: Push Bugbot ownership check cannot detect open PRs — src/application/usecases/commit_use_case.ts:55

Comment thread src/application/usecases/commit_use_case.ts

@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 5187b7f. See aggregate Bugbot status.

🤖 Bugbot review snapshot

Bugbot reported 1 potential problem(s) when commit 0b114d2 was analyzed. This snapshot is historical; use the status block above for current state. 1 finding(s) are linked to changed code.

Findings

  • medium: Replies no longer recognize recently written namespaced markers — src/application/usecases/steps/common/publish_resume_workflow.ts:124

Comment thread src/application/usecases/steps/common/publish_resume_workflow.ts
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