native macOS codings agent orchestrator
6
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix(repo-appearance): make canvas notification override repo tint

Cards on a repo with a pinned color rendered the unread-notification
state as orange blended *into* the repo color (e.g. blue + 0.30 orange
under .bar + 0.10 blue on top → muddy brownish-grey), so the
attention signal was harder to see than it was before this feature
shipped.

Restructure the title-bar background into mutually-exclusive top
layers: notification orange XOR repo identity tint, never both. The
notification jumps to a 0.55 alpha (vs the prior under-bar 0.30) so
the unread state pops cleanly without the repo color competing.
Selected-but-unfocused accent stays under .bar — its semantic is
"selection state", not "needs attention", and the existing subtle
treatment is correct.

For repos without a pinned color the behavior change is just "orange
notification is now more prominent than before"; for repos with a
color the muddy-blend is gone entirely.

onevcat a28186d0 c2e0d7cc

+15 -10
+15 -10
supacode/Features/Canvas/Views/CanvasCardView.swift
··· 197 197 198 198 @ViewBuilder 199 199 private var titleBarBackground: some View { 200 - // Layering: existing notification orange + selected accent stay 201 - // BELOW the `.bar` material so their behavior is unchanged from 202 - // before this feature shipped. The repo color sits ABOVE the bar 203 - // as a thin always-on identity strip — putting it below would 204 - // dilute it to invisibility against the 0.9-opaque material, and 205 - // moving the bar to the bottom would amplify the existing tints. 200 + // Layering, back-to-front: 201 + // 202 + // 1. selected-but-unfocused accent (subtle, sits under the bar 203 + // material — same behavior as before this feature shipped) 204 + // 2. `.bar` material substrate 205 + // 3. **either** the notification orange **or** the repo color 206 + // identity strip — never both. Without this mutual exclusion 207 + // the orange used to muddle into the repo color (e.g. a blue 208 + // repo's notification looked brownish-grey instead of the 209 + // intended attention-grabbing orange). The notification wins 210 + // on top with a much higher alpha (0.55) than the previous 211 + // under-bar 0.3 so the unread signal actually pops. 206 212 ZStack { 207 - if hasUnseenNotification { 208 - Color.orange.opacity(0.3) 209 - } 210 213 if isSelected && !isFocused { 211 214 Color.accentColor.opacity(0.12) 212 215 } 213 216 Rectangle() 214 217 .fill(.bar) 215 218 .opacity(0.9) 216 - if let repositoryColor { 219 + if hasUnseenNotification { 220 + Color.orange.opacity(0.55) 221 + } else if let repositoryColor { 217 222 repositoryColor.opacity(isFocused ? 0.18 : 0.10) 218 223 } 219 224 }