Problem
The Cost Control Center currently stores full config snapshots and restores them wholesale. That makes Undo safe only for the most recent optimization entry.
From the UI, this is confusing: older applied actions such as Reduced AI Thinking Allowance look like they should also be reversible, but exposing Undo for them today would roll back newer changes too.
Goal
Support per-action undo semantics in optimization history so each applied recommendation can clearly report one of these states:
- undoable now
- blocked by newer changes
- permanently non-undoable
Proposed approach
Start with action-level undo metadata instead of full-history snapshot restores.
- Store
affectedResources and undoMeta for each optimization history entry.
- Add conflict detection so an older action is undoable only when none of its affected resources were changed by newer actions.
- Update the UI timeline to show per-entry undo state instead of only enabling undo for the latest item.
- Implement selective undo first for pure config actions:
- Handle file / skill actions separately in a follow-up phase:
Why issue first
This needs product and implementation decisions before coding:
- whether older actions should be blocked or allowed to overwrite newer state
- what counts as a conflicting resource change
- how to represent undoability in history and UI
Acceptance criteria
- History entries record enough metadata to attempt action-level undo safely.
- Older entries show a clear blocked reason when newer changes touch the same resources.
- Pure config actions can be undone individually when there is no conflict.
- The UI no longer implies that every historical item is directly undoable when it is not.
A04 and A09 remain explicitly out of scope for the first implementation phase.
Problem
The Cost Control Center currently stores full config snapshots and restores them wholesale. That makes
Undosafe only for the most recent optimization entry.From the UI, this is confusing: older applied actions such as
Reduced AI Thinking Allowancelook like they should also be reversible, but exposingUndofor them today would roll back newer changes too.Goal
Support per-action undo semantics in optimization history so each applied recommendation can clearly report one of these states:
Proposed approach
Start with action-level undo metadata instead of full-history snapshot restores.
affectedResourcesandundoMetafor each optimization history entry.A01A02A05A06A07A04A09Why issue first
This needs product and implementation decisions before coding:
Acceptance criteria
A04andA09remain explicitly out of scope for the first implementation phase.