Skip to content

πŸ›πŸ§‘β€πŸ’» - PR description replacement drops closing reference while approval requires its textΒ #803

Closed

Description

@efraespada

Is there an existing issue for this?

  • I have searched the existing issues.

Searched open/closed issues for description Closes, description "issue link", closing rewrite, and Closes approval. #785 concerns interrupted temporary retargeting/recovery markers, #621 conventional-title rewriting, #723 unrelated contextual mentions, and #735 staged completion. This report concerns a completed ordinary PR-processing run leaving the native issue link and approval's textual issue-link test inconsistent.

Which actions are affected?

Pull Request

Which platforms are affected?

Linux (native Action); macOS (read-only evidence collection)

Description

PR processing replaces a body containing Closes #45 with a generated description that omits all closing-keyword text. The managed branch and Copilot configuration still identify issue 45, and GitHub GraphQL still returns issue45 in closingIssuesReferences. However the installed approval evidence adapter determines linkedIssue only from a closing-keyword regex against the current body. The supplemental assessment consequently reports reason: scope for this otherwise ordinary managed maintenance PR.

Observed consumer: vypdev/geckocv PR46, issue45, source cfebacec8cacd0342f4af39eda3ab806c8db2957, original base 5dde8907973d3e9718c9e5886daa8a6caf7ae078.

This is an integration inconsistency, not a request to bypass issue linkage, review, producer attestation or branch rules. The observed policy was recommendation-only and no native bot approval is claimed. The exact internal stage that removed the text has not been isolated: the user-content history proves the bot-generated replacements omit it, but this report does not assume whether AI generation or another linking/publication stage caused removal.

Reproducing the issue

  1. Open a human-authored PR from the Action-created chore/45-align-trusted-ci-producers-and-coverage-evidence-for-pr-recommendations branch to develop. The submitted body includes a standalone Closes #45. and valid schemaVersion3 configuration with branchType chore, exact workingBranch and parentBranch develop.
  2. Run the normal replace-description pipeline. Copilot PR run41037291836, job124001163479, completes successfully with no findings. Commit and Branch Sync also succeed.
  3. Read PR46 userContentEdits through GraphQL. Replacements by vypbot at 2026-10-30 10:01:26 UTC and 10:02:07 UTC contain the new summary and preserved machine configuration but no Closes, Fixes or Resolves reference to45. The originally submitted body contains Closes #45..
  4. At the same revision, GraphQL closingIssuesReferences still returns vypdev/geckocv#45. The ordinary branch name and configuration also remain linked to45. The PR base is develop; it is open/non-draft/same-repository.
  5. Inspect supplemental Approval check124003101990: neutral, Human review needed, outside configured approval scope; technical reason scope. It reports 2/2 observed checks succeeded and Bugbot complete. The configured target role includes development, branchKinds includes chore and requireLinkedIssue is true.
  6. Inspect the executed evidence adapter: it parses the positive issue number from the managed branch prefix and requires a closing-keyword match in pull.body to set linkedIssue. It does not consult the retained native closing relationship. Removing the text therefore makes that required fact false even though GitHub retained the link.
  7. The maintainer restored Closes #45. at 10:15:49 UTC, preserving the machine block and recording actual completed checks. All code/test checks and processed Codecov were successful. The independently authorized ordinary human merge completed at 10:15:54 UTC, merge a6c7175058bafcc0d73c10a90f54e1f41cc91b34. This was not an observer native approval or a demonstration that restoring text alone reran the assessment; no such unobserved success is claimed.

The now-merged URL can show later state. The described body/assessment interval remains independently visible in user-content edits, check output and original submission evidence. Do not open another managed branch, deploy or submit a native approval merely to reproduce it.

copilot Version

Official vypdev/copilot@v3, resolving to f5e5a4cf9a80248994469cd88ad55eecab5b95ca / release3.10.6. Fresh read at report preparation still showed that v3 ref and latest release. AI PR description mode replace; self-hosted Linux runner.

Relevant Log Output

Provider/state observations rather than fabricated failure logs:

PR46 head: cfebacec8cacd0342f4af39eda3ab806c8db2957
branch issue: 45
submitted body: Closes #45.
bot replacement body: no closing-keyword reference
GraphQL closingIssuesReferences: vypdev/geckocv#45
Copilot PR run41037291836: success / no findings
Copilot / Approval: neutral / scope / 2 of 2 checks succeeded

Additional context and comments

Please make description rewriting and issue-link evidence agree deterministically. Preserve verified original closing references across AI replacement/retries, or consume an authoritative native same-repository relationship with validated branch/issue identity. Preserve explicit Refs versus closing intent for staged work; do not convert arbitrary contextual mentions into closing links or authorize an unrelated issue (#723/#735).

Suggested regression: valid managed branch and submitted closing reference; generated replacement omits it; native relationship remains; repeated description publication and observer assessment; an intentionally nonclosing staged link; wrong-repository/wrong-number contextual references; missing relationship; and preserved configuration/protected-path review. Assert both the published body/native relation and computed approval evidence rather than a prompt-only preservation test.

The consumer owner explicitly requested upstream reports for genuine Copilot problems. We restored only the required link and verification prose, performed the separately authorized reviewed merge, and left the recommendation policy in its intended mode. No secret, dotenv content, token, real candidate document, native approval, deployment or fabricated check is included.

Activity

  1. added
    bugSomething isn't working
    bugfixSomething isn't working
    priority: highCritical issue, needs immediate attention.
    on Oct 30, 2026
  2. added theissue type on Oct 30, 2026
  3. moved this to Todo in vypdevon Oct 30, 2026
  4. changed the title [-]PR description replacement drops closing reference while approval requires its text[/-] [+]πŸ› - PR description replacement drops closing reference while approval requires its text[/+] on Oct 30, 2026
  5. vypbot commented on Oct 30, 2026

    @vypbot
    Contributor

    Hi! I’m @vypbot, the Copilot assistant for this repository.

    I can answer questions, explain the codebase, propose implementation and test plans, review issues and pull requests for potential bugs or security problems, and help authorized maintainers apply changes.

    Try /copilot help to see the available commands, or mention @vypbot with your question.

  6. moved this from Todo to In Progress in vypdevon Oct 30, 2026
  7. added
    branchedIndicates that a branch has been created for this issue.
    on Oct 30, 2026
  8. changed the title [-]πŸ› - PR description replacement drops closing reference while approval requires its text[/-] [+]πŸ›πŸ§‘β€πŸ’» - PR description replacement drops closing reference while approval requires its text[/+] on Oct 30, 2026
  9. added
    state:workingWork can proceed on the verified branch or without a branch.
    on Oct 30, 2026
  10. vypbot commented on Oct 30, 2026

    @vypbot
    Contributor

    Implementation plan

    Current status: Ready to start. No action is required from maintainers before implementation.

    1. Trace description rewrite and linkage contracts
      • Read repository guidance and documentation, then trace description generation/publication and approval evidence in the affected code.
      • Identify how closing keywords, native closing relationships, and managed branch issue identity are represented.
    2. Define safe issue-link preservation
      • Preserve verified original closing references across replacement and retry, or use an authoritative same-repository closing relationship validated against the managed branch issue.
      • Keep nonclosing Refs intent and reject contextual, wrong-repository, or wrong-number mentions as closing evidence.
    3. Implement consistent publication and evidence
      • Update rewriting/publication and approval evidence so both use the defined validated linkage contract.
      • Retain machine configuration and existing protected-path, review, producer-attestation, and branch checks.
    4. Add end-to-end regression coverage
      • Cover replacement omission, repeated publication, retained and missing native relationships, staged nonclosing links, and invalid contextual references.
      • Assert published body and native relationship alongside computed approval evidence.
    5. Document the linkage behavior
      • Document the validated issue-link sources and how closing intent differs from staged references.

    Acceptance: Regression coverage demonstrates that a valid managed PR retains or authoritatively resolves its verified closing issue after repeated description replacement, and that approval evidence recognizes it; staged Refs links and unrelated or invalid references do not become closing evidence.

    Need something else? Mention the bot with a question or use /copilot help.

  11. added
    size: XXLIndicates an extremely large task or issue that requires significant time and effort to complete.
    100%Progress: 100%
    and removed on Oct 30, 2026
  12. vypbot commented on Oct 30, 2026

    @vypbot
    Contributor

    Issue closed β€” historical progress

    Current status: closed as completed.

    The last estimate is retained below as history. Closure does not certify a new percentage, tests, or branch alignment.

    Action required: none for this closed issue. If work continues, reopen the issue; a fresh assessment can update this same card.

    Last assessment before closure (historical)

    Progress: 100% β€” complete

    > Current status: [R1] This is an integration inconsistency, not a request to bypass issue linkage, review, producer attestation or branch rules. The observed policy was recommendation-only and no native bot approval is claimed. The exact internal stage that removed the text has not been isolated: the user-content history proves the bot-generated replacements omit it, but this report does not assume whether AI generation or another linking/publication stage caused removal. β€” The changes address the body and approval-evidence mismatch without claiming a native bot approval or identifying an unobserved stage as the cause.
    [R2] Please make description rewriting and issue-link evidence agree deterministically. Preserve verified original closing references across AI replacement/retries, or consume an authoritative native same-repository relationship with validated branch/issue identity. Preserve explicit Refs versus closing intent for staged work; do not convert arbitrary contextual mentions into closing links or authorize an unrelated issue (#723/#735). β€” Description rewriting preserves validated closing intent for the managed issue. The shared Markdown-aware policy rejects staged Refs, contextual mentions, wrong repositories, and wrong issue numbers.
    [R3] Suggested regression: valid managed branch and submitted closing reference; generated replacement omits it; native relationship remains; repeated description publication and observer assessment; an intentionally
    [untrusted content truncated]

    No action required.

  13. moved this from In Progress to Done in vypdevon Oct 30, 2026
  14. removed
    in-progressStart work on an admitted issue.
    state:workingWork can proceed on the verified branch or without a branch.
    on Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

100%Progress: 100%branchedIndicates that a branch has been created for this issue.bugSomething isn't workingbugfixSomething isn't workingpriority: highCritical issue, needs immediate attention.size: XXLIndicates an extremely large task or issue that requires significant time and effort to complete.

Type

Projects

  • Status
    Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions