Skip to content

fix(publish): stop skipping a verified fix as a duplicate of its own issue - #172

Merged
merge-loop[bot] merged 1 commit into
mainfrom
fix/publish-own-issue-not-duplicate
Nov 9, 2026
Merged

merge-loop[bot] merged 1 commit into
mainfrom
fix/publish-own-issue-not-duplicate

Conversation

@joaquim-verges

@joaquim-verges joaquim-verges commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Closes #171

When an issue is filed first and its fix is verified later, the publisher sees the item's own issue under "already on GitHub", and its prompt says to skip anything listed there. It skips with "Duplicate of #", the fix never becomes a PR, and the stored skip hides it from later runs. A dry run has no GitHub list, which is why it drafted the same PR correctly.

Change

  • list_items and view_item name the item's own issue and say the PR closes it.
  • The publisher prompt says a PR item's own issue never counts as a duplicate.
  • skip refuses a PR item when the reason cites its own issue, so this no longer depends on the model following the prompt.

Skipping a verified fix for another reason, such as a different PR that already covers it, stays allowed and is not reported as a failed publish. The issue suggested that as an option, and I left it out because those skips can be correct.

Verification

  • Traced from a real publish session: list_items showed the verified fix, and the next action was skip with "Duplicate of" its own issue.
  • The new case in publish.test.ts calls skip with the item's own issue, expects a refusal, and expects the PR to go through. It fails on its own assertion with the guard removed.
  • pnpm typecheck, pnpm lint, pnpm knip and the packages/agents tests pass.
  • Items already holding a stored skip stay skipped until someone clears it.

🤖 Generated with Claude Code


Assisted by Nebula.


Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.

…issue

When an issue is filed first and its fix is verified later, the item's
own issue appears in "already on GitHub", and the publisher is told to
skip anything listed there. The fix then never becomes a PR, and the
stored skip hides it from later runs. A dry run has no such list, which
is why it drafted the same PR correctly.

Tell the publisher which issue is the item's own, and refuse a skip
whose reason cites it, so the verified fix is published and closes it.

Closes #171

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
@vercel

vercel Bot commented Nov 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
bugpatrol Skipped Skipped Nov 9, 2026 3:47pm UTC

Request Review

@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown

Bugpatrol review: fixture-app

No problem introduced · tested 29ef927 against main bf735dc

Tested

  • Fixture Home page
  • Fixture Settings page

Not tested

  • The rest of the change (packages/agents publisher prompt, list_items, skip guard): outside the fixture app

Updated on each push. Tests only what the diff can affect. Does not block the merge.

@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown

Bugpatrol review: dashboard

No problem introduced · tested 29ef927 against main bf735dc

Tested

  • Overview dashboard loads with stats, needs-attention list, live session
  • Issue detail for 'Save button overlaps account text' loads with fix, diff, attempts

Not tested

  • The rest of the change (publisher prompts/skip guard in packages/agents): Agent logic outside the dashboard; not rendered by this app

Updated on each push. Tests only what the diff can affect. Does not block the merge.

@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown

Bugpatrol review: cli

No problem introduced · tested 29ef927 against main bf735dc

Tested

  • bugpatrol --help output
  • issue list (fixture issues render normally)
  • issue show iss-settings
  • memory list
  • fixture routines dir: only open-home/open-settings, no publish routine

Not tested

  • publisher skip guard, own-issue notes in list_items/view_item, and prompt (packages/agents/src/roles/publish.ts, prompts.ts): publisher code only runs via bugpatrol publish, which the app guide forbids
  • publish.test.ts new case: tests are not the app

Updated on each push. Tests only what the diff can affect. Does not block the merge.

@joaquim-verges joaquim-verges added the mergepatrol Queue this PR: Mergepatrol rebases, tests and merges it label Nov 9, 2026 — with Nebula AI Agent
@merge-loop

merge-loop Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Merged as 6d26970.

@merge-loop
merge-loop Bot merged commit 6d26970 into main Nov 9, 2026
12 checks passed
@merge-loop merge-loop Bot removed the mergepatrol Queue this PR: Mergepatrol rebases, tests and merges it label Nov 9, 2026
joaquim-verges added a commit that referenced this pull request Nov 11, 2026
… main

Re-applies the publish role and its tests from 'recheck false skips and
report unpublished items' after merging main, so #173 lands on main
without #172's duplicate commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
merge-loop Bot pushed a commit that referenced this pull request Nov 11, 2026
* fix(publish): stop skipping a verified fix as a duplicate of its own issue


When an issue is filed first and its fix is verified later, the item's
own issue appears in "already on GitHub", and the publisher is told to
skip anything listed there. The fix then never becomes a PR, and the
stored skip hides it from later runs. A dry run has no such list, which
is why it drafted the same PR correctly.

Tell the publisher which issue is the item's own, and refuse a skip
whose reason cites it, so the verified fix is published and closes it.

Closes #171

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>

* fix(publish): recheck false skips and report unpublished items


A stored skip that cites a verified fix's own issue came from the false
duplicate that the previous commit stops. Those items stayed hidden until
someone cleared the field, so the publisher now offers them to the judge
again and clears the skip when the PR opens. The skip stands when the
issue is closed or an open PR will close it, so a fix shipped outside
Bugpatrol does not get a second PR. A failed lookup keeps it for the next
run. Every other stored skip still holds.

A run that ended without publishing or skipping an item looked like a
quiet pass. Those items now return as `unpublished` with the reason,
including a stop on budget, a crash, or a publish tool error. The session
is marked failed, `bugpatrol publish` exits 1, and a patrol records a
problem for the cycle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>

* chore: take main's publish role ahead of merging main (restored next commit)


Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>

* fix(publish): restore the recheck and unpublished reporting on top of main


Re-applies the publish role and its tests from 'recheck false skips and
report unpublished items' after merging main, so #173 lands on main
without #172's duplicate commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>

This branch was previously deployed

1 inactive deployment
Preview — 29ef927c Deployed Nov 9, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

publish skips a verified fix's PR as a duplicate of the item's own issue

1 participant