Skip to content

v2.0.2 β€” Debate UX: focused & non-intrusive

Latest

Choose a tag to compare

@wil-pe wil-pe released this 16 Apr 21:20
· 21 commits to main since this release

🎯 Debate UX overhaul

Two real-world complaints from v2.0 fixed.

1. Cats stay on topic

Previously, cats would focus so hard on their personality that they'd derail the conversation β€” ask for a poem, they'd refuse because "it's too hard" and then wander off to discuss dinosaurs or the weather.

  • System prompt rewritten as 6 strict rules (FR/EN/ES):
    1. Stay 100% on topic, every turn
    2. Never change the subject
    3. If the topic asks for a creative output (poem, plan, idea), you MUST attempt it
    4. Your personality is only your tone β€” don't talk about yourself
    5. React to what other cats said β€” build, agree, disagree
    6. 2 short sentences max
  • Each turn re-asserts the topic in the user message so the model gets pulled back if it drifts
  • Final synthesis now actually DELIVERS the requested artefact (the poem, the plan, the answer) instead of meta-summarising who said what

2. Bubbles no longer interrupt your work

Previously, the debate bubbles would steal keyboard focus, activate the app, and bounce to the foreground every few seconds β€” unusable while typing in another app.

  • passiveMode for ChatBubbleController: removes input field + debate button, sets ignoresMouseEvents = true, KeyableWindow.canBecomeKey = false
  • showPassive() uses orderFrontRegardless instead of makeKeyAndOrderFront + NSApp.activate β€” bubble appears above the cat without activating the app
  • Cat clicks are ignored during a debate β€” no accidental flow break
  • Auto-revert to interactive mode 8 s after the synthesis so the reader has time to read, then normal chat works again

Result: a debate runs as a purely visual overlay while you keep working in your editor, browser, whatever. Glance, read, ignore β€” your choice.

Install

unzip CATAI.zip
xattr -cr CATAI.app   # remove quarantine (unsigned)
open CATAI.app

Full diff: v2.0.1...v2.0.2