Skip to content

Retracted means retracted - #257

Merged
WaylandYang merged 3 commits into
devfrom
fix/retracted-means-retracted
Sep 3, 2026
Merged

Retracted means retracted#257
WaylandYang merged 3 commits into
devfrom
fix/retracted-means-retracted

Conversation

@WaylandYang

Copy link
Copy Markdown
Contributor

Fixes #202.

"Data is wrong" only marked the violation resolved; the fact stayed in the graph, and the next check hit the resolved row and stayed silent — the ledger said retracted, the graph disagreed, and the queue never mentioned it again.

The decision names a fact and retracts it. POST …/violations/{id} takes fact_id for fact_retracted; single-fact kinds (self loop, signature, derived contradiction) pick it themselves, and pick_retraction accepts only a fact the violation lists (left, right or the cycle path). reasoning::retract_from_violation goes through reject_factinvalidated_at, evidence untouched, ledger snapshot in the audit log — then marks the row resolved, and the handler reruns the check so any other violation that fact was part of clears too. The cards for asymmetry, functional and cycle show a Retract button per fact; cycle cards now list the path (open_violations returns path as id + text).

The queue stays honest. When run recomputes a violation whose row is resolved with a resolution that promised a change (fact_retracted, fact_closed, axiom_relaxed), the row is reopened — the promise did not hold. accepted keeps its silence. The report counts reopened.

Test: a_retraction_leaves_the_graph — retract one side of an asymmetry, the other stays and the rerun is quiet; a fact outside the violation is refused; a self loop needs no choice; axiom_relaxed with the axiom still declared reopens, accepted does not.

Verified in the isolated environment: an asymmetric pair shows two Retract buttons, one click retracts that fact, the card leaves the queue, the ledger and audit log agree.

0002 carries a revision note.

🤖 Generated with Claude Code

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@WaylandYang
WaylandYang merged commit 86ae497 into dev Sep 3, 2026
3 checks passed
@WaylandYang
WaylandYang deleted the fix/retracted-means-retracted branch September 3, 2026 11:02
@WaylandYang WaylandYang mentioned this pull request Sep 3, 2026
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.

A fact recorded as retracted is still in the graph

1 participant