The default change, the reorder and the tier removal each rebuild a refused preview in their own code #243

Open
opened 2026-10-20 18:39:48 +00:00 by cgalo5758 · 0 comments
Owner

What a contributor runs into

When an operator commits a default change, a tier reorder or a tier removal and the commit is refused for a disposition it needs, the handler answers with the preview rebuilt and the refusal on it. Each of the three builds that answer itself: renderDispositionRequired and previewBesideRefusal (internal/server/operator_org_types.go), renderReorderRefusal and renderReorderDispositionRequired, and the removal's parse-error branch with refuseUndecidedTierRemoval (internal/server/operator_plan_ladders.go). Each repeats the same three outcomes: the rebuild's read fails and the answer is the preview's own failure sentence; the rebuilt preview no longer needs a disposition, so the gate is logged and the answer is the generic failure; otherwise the preview renders with the refusal. Changing one means finding and changing the other two.

Why it costs

The copies have already drifted twice: the reorder's and then the removal's answered a failed rebuild read with the commit's generic failure instead of the preview's read-failure sentence, and each was fixed on its own (#187). A fourth act with a preview would start a fourth copy.

Where

internal/server/operator_org_types.go, internal/server/operator_plan_ladders.go

Done when

One function answers a refused commit for all three acts: the rebuilt preview with the refusal, the preview's read failure, or the generic failure when the rebuilt preview no longer needs a disposition. Each handler passes its own preview builder and form, and the tests of the three rebuild paths run through it.

### What a contributor runs into When an operator commits a default change, a tier reorder or a tier removal and the commit is refused for a disposition it needs, the handler answers with the preview rebuilt and the refusal on it. Each of the three builds that answer itself: `renderDispositionRequired` and `previewBesideRefusal` (`internal/server/operator_org_types.go`), `renderReorderRefusal` and `renderReorderDispositionRequired`, and the removal's parse-error branch with `refuseUndecidedTierRemoval` (`internal/server/operator_plan_ladders.go`). Each repeats the same three outcomes: the rebuild's read fails and the answer is the preview's own failure sentence; the rebuilt preview no longer needs a disposition, so the gate is logged and the answer is the generic failure; otherwise the preview renders with the refusal. Changing one means finding and changing the other two. ### Why it costs The copies have already drifted twice: the reorder's and then the removal's answered a failed rebuild read with the commit's generic failure instead of the preview's read-failure sentence, and each was fixed on its own (#187). A fourth act with a preview would start a fourth copy. ### Where `internal/server/operator_org_types.go`, `internal/server/operator_plan_ladders.go` ### Done when One function answers a refused commit for all three acts: the rebuilt preview with the refusal, the preview's read failure, or the generic failure when the rebuilt preview no longer needs a disposition. Each handler passes its own preview builder and form, and the tests of the three rebuild paths run through it.
cgalo5758 added the
kind
debt
area/catalogarea/operator-ui
labels 2026-10-20 18:39:48 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wiki-cafe/member-console#243