Skip to content

feat(server,webapp): retract delivered feedback and let developers dispute it in context #1507

Description

@FelixTJDietrich

Outcome

Feedback that turns out to be wrong can be withdrawn by a person, and the developer who received it has a
way to say so from where they are reading it.

Problem

Hephaestus will be confidently wrong in public on someone's pull request. That is not a risk to mitigate;
it is a certainty to design for, and the first occurrence sets how much the team trusts everything after
it.

Today there is no product answer:

  • No retraction. There is no retract API and no retracted state. The pieces exist —
    FeedbackPlacement stores the posted comment reference, and the provider channels can edit and minimise
    a comment — but they only fire from a subsequent review run. The only documented path is a manual
    operator procedure in the runbook (docs: production operations runbook #1371): find the delivery in the ledger, delete the comment through
    the provider API, mark the entry.
  • No reachable dispute. The reaction path is server-complete, including recurrence suppression that
    stops a disputed observation being raised again, and it has zero call sites in the webapp. feat(webapp): developer reflection dashboard (per-practice observations and feedback) #1340
    carries an in-app version as one clause of a whole dashboard; a developer reading a wrong comment on a
    pull request has no path at all.

What

  • A retract action a workspace admin can take on a delivered unit, driving the stored comment
    reference through the existing edit/minimise channels, with a retracted state in the ledger so the
    history stays honest. Correct in place rather than deleting: anyone who already read it should see the
    correction too.
  • An in-context dispute affordance on delivered feedback, so the developer can mark it wrong where
    they are reading it, not only inside the web app.
  • Un-gate the existing suppression so a disputed observation is not raised again on the same work.
  • Count disputes per practice, feeding the practice-health signals (feat(server,webapp): admin per-practice observation and feedback analytics #1339).

Acceptance criteria

  • An admin can retract a delivered comment; the external comment is corrected in place and the ledger
    records who retracted it and why.
  • A developer can dispute delivered feedback from the surface it was delivered on.
  • A disputed observation is not raised again for the same work.
  • Retraction and dispute are both audited.

Out of scope

  • Automatically retracting on a later run's disagreement. A retraction is a human act.
  • Editing the wording of delivered feedback. This withdraws it; it does not rewrite it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    application-serverSpring Boot server: APIs, business logic, databasefeatureNew feature or enhancementpriority:highAddress this sprint - Significant impactwebappReact app: UI components, routes, state management

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions