Framed panels below are real pixels — the shipped design system, the actual switch, badges, sidebar and dropdown. Only the three surfaces that change are shown; the codebook-page fold, quote badges, Add/Remove and the hand-made floor are unchanged.
Quotes page
typing a tag on a quote
Before: tags from a disabled codebook were still offered (dimmed). Accepting one applied a badge the filter then hid — an invisible add.
After: a disabled codebook’s tags aren’t offered — you can’t add what’s off, so the invisible add can’t happen. Note this is disable only; an eye-hidden group’s tags stay suggestable and auto-unhide when picked — that tactical flow is untouched.
re-apply behaviour
Before: a disabled codebook kept auto-coding new sessions (gate = linked). Re-enable was instant, but you spent the LLM on a lens you’d switched off.
After: off never spends (gate = enabled). New sessions wait; re-enable runs one catch-up over just the 20 — and since you might never re-enable, you may never pay at all. Existing results are always kept, never re-billed.
enabled; disabled stops maintaining; re-enable runs a catch-up delta.No new UX element. Every change reuses an existing component — the switch, eye toggle, badge, TagInput, sidebar. This is functional rewiring, not new pixels. (The one designed-but-unbuilt piece, the blue/grey status dot in the codebook-lens sidebar, is unaffected by this comparison.)
Before: a disabled codebook (“Laws of UX”) stayed fully listed — its groups, tags and counts occupying the sidebar exactly like an enabled one, with no marker that it was off. Its badges were already hidden report-wide, so the sidebar and the report disagreed. That mismatch is where the “invisible success” bug lived.
After: a disabled codebook is gone from the sidebar entirely — you bring it back with the lens switch. Contrast the eye-hidden group (“Pain points”): hide collapses the card to a muted, closed-eye stub — the one-click way back — and its tags keep autocompleting. Hide leaves a stub and stays reachable; disable removes the codebook and takes it off the board.
The eye toggles are drawn here at their hover appearance so they read in a still frame; in the app they fade in when you hover a codebook or group.