[#377] 🤖 - Publish one primary response for newly opened issues - #377
Conversation
|
To preview the documentation for this pull request, visit the following URL:
|
|
/copilot review |
There was a problem hiding this comment.
Current status: Overall coverage is partial; this snapshot does not prove that all of its findings are resolved.
Last reconciled onc1375fa. See aggregate Bugbot status.
🤖 Bugbot review snapshot
Bugbot reported 1 potential problem when commit 52096ee was analyzed. This snapshot is historical; use the status block above for current state. 1 finding is linked to changed code.
Findings
- medium: Issue replays can create a welcome after an existing plan —
src/application/usecases/issue_workflow.ts:120
Bugbot: review incomplete
Incomplete coverage
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #377 +/- ##
===========================================
+ Coverage 90.94% 92.64% +1.70%
===========================================
Files 135 647 +512
Lines 6251 16794 +10543
Branches 1338 4286 +2948
===========================================
+ Hits 5685 15559 +9874
- Misses 172 481 +309
- Partials 394 754 +360
🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Current status: Overall coverage is partial; this snapshot does not prove that all of its findings are resolved.
Last reconciled onc1375fa. See aggregate Bugbot status.
🤖 Bugbot review snapshot
Bugbot reported 1 potential problem when commit 3a4b361 was analyzed. This snapshot is historical; use the status block above for current state. 1 finding is linked to changed code.
Findings
- low: Existing welcome comments do not suppress the fallback —
src/application/policies/semantic_result_publication_policy.ts:93
📌 Summary
Suppress redundant onboarding comments for newly opened issues by routing plans and initial help answers through the shared semantic reply publisher. Normal issues receive at most one primary response, while release and hotfix issues remain owned by their durable dashboards.
🎯 Related Issues / Tickets
🧩 Scope of Changes
direct-answerprojections for initial help responses.🛠️ Technical Details
Initial help now returns an immutable semantic projection instead of writing directly to GitHub. The shared reply publisher validates and sanitizes the answer, then reconciles it by correlation marker to prevent duplicate comments during event replay.
A welcome is emitted only for an eligible normal issue when no validated implementation plan or direct answer is available. Release and hotfix labels suppress this fallback, including conflicting-label cases, so their feature-owned dashboards remain the presentation path.
Before publishing a fallback, the workflow checks exact-target, bot-owned plan and direct-answer markers, including current and legacy welcome markers. If comment history cannot be read, it fails closed by omitting the welcome.
Unchanged stored recommendations are re-projected so the status reconciler can preserve or recreate the plan card without another agent call. The initial-help workflow no longer receives a GitHub mutation port, and the publication mutation baseline reflects the reduced mutation surface.
🔍 How to Test
corepack pnpm@10.12.4 run typecheckcorepack pnpm@10.12.4 run lintcorepack pnpm@10.12.4 run test:coveragecorepack pnpm@10.12.4 run buildcorepack pnpm@10.12.4 run validate:agent-docscorepack pnpm@10.12.4 run validate:docs-pagecorepack pnpm@10.12.4 run validate:documentationcorepack pnpm@10.12.4 run validate:workflowscorepack pnpm@10.12.4 run validate:specificationsgit diff --check🧪 Test Coverage
Coverage includes direct-answer projections, primary-response detection, fallback routing, malformed projections, sanitization, replay handling, unchanged-plan reconciliation, comment-query bindings, and idempotent publication.
📸 Screenshots / Recordings (UI changes only)
Not applicable. This changes GitHub issue conversation behavior without changing a graphical interface.
🚀 Deployment Notes
Details: No database migration, environment variable change, or feature flag is required. Regenerated bundles are included in the change.
🔒 Security Considerations
Initial help output must be a valid typed projection before publication, and the shared publisher sanitizes agent Markdown and GitHub control syntax. Fallback detection requires exact issue targets and bot-owned publication markers. The initial-help workflow no longer receives a GitHub mutation port.
📈 Performance Impact
The change reuses the existing reconciliation path and adds one bounded issue-comment history read only when evaluating a possible fallback. It does not add polling or unbounded processing.
📝 Notes for Reviewers
Please verify the one-primary-response contract across normal, question/help, release, and hotfix routes, especially replayed events, conflicting labels, malformed plan projections, unavailable comment history, and unchanged recommendations.
✅ Checklist
📚 Additional Context
The UX contract is that a newly opened issue receives at most one primary conversational response: a plan, a direct answer, a feature-owned release or hotfix dashboard, or a fallback welcome. Documentation, architecture evidence, specifications, catalog entries, tests, and generated bundles were updated together.