Repository navigation
Conversation
Dismiss only marked the shown row delivered. The chain stayed open, so every later review listed it as still open, the advisor raised it again, and the re-raise reached the agent. Dismissing now settles the chain root the way resolveFinding does and records the dismissed severity in a new dismissed_severity column, appended to the migration list. A later re-raise at a higher severity reopens a dismissed chain. A chain settled from the panel never reopens.
Owner
|
Thanks for this fix and the careful write-up. I couldn't push a follow-up to your branch, because maintainers can't edit forks owned by an organization. So I've opened #16 with your commit as you wrote it, plus one commit on top. When I tested it in a real BB, rounds raised while a finding was dismissed all reached the agent together once an escalation reopened it, and the banner said the agent had been told before when it hadn't. Closing this in favour of #16. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The banner's Dismiss button hides a finding but does not settle it, so the agent receives the same finding again in a later turn.
dismissAdviceonly setsdelivered_aton the row it shows. The chain root keepsresolved_at = NULL, so:readOpenFindingsstill lists the chain in the next reviewer prompt under "Findings you raised earlier on this thread that are still open".repeat_of, is pending, and reaches the agent through the turn briefing or theadvisor_reviewtool result, often with "The agent was told this before and did not resolve it."The panel's
resolveFindingalready settles a chain correctly, andreadOpenFindings,readPendingAdviceand the tool result all honour that throughchainIsResolved. Only the banner path is missing it.This change:
dismissAdvicesettle the chain root the wayresolveFindingdoes (resolved_atset, emptyresolved_reasonanddecision, so the panel shows "You dismissed it") and marks the chain's pending rows delivered. It collects those rows before settling the root, becausereadPendingAdviceskips settled chains.dismissed_severitycolumn on the root, appended as the last migration. If the advisor later raises the same finding at a higher severity than the user dismissed, the chain reopens, so dismissing a nit cannot silence a later blocker. The same or a lower severity leaves it settled.dismissed_severityin bothresolveFindingupdates, so a chain settled from the panel keeps today's behaviour and never reopens.The RPC schemas do not change. The stale-
adviceIdguard is unchanged.Validation:
server.test.ts: a same-severity re-raise after dismiss stays out ofpendingAdvice, the turn briefing and the reviewer's open list; the tool returns "Advisor pass: no unresolved findings."; a higher-severity re-raise reopens the chain; the panel shows the chain resolved with an empty decision; a panel-resolved chain does not reopen on escalation. The first four fail without theserver.tschange.npm run verify(typecheck, 137 tests, build) passes on Node 22.19.0. The generated bundle is updated.dismissed_severityis added.Not tested: a scripted end-to-end run of the banner in the app. The behaviour is covered through the RPCs the banner calls.