Every profile launches the same Claude Desktop binary with the same icon and title, so with two or more open there was no way to tell which window belonged to which profile at a glance. WindowOverlay pins a small tag — profile name, in that profile's own dot colour — to each running managed profile's window, tracked live via AXObserver notifications rather than polling. Only a persistent process can hold a watcher like that, which is exactly the gap the old one-shot CLI could never close. Shown for every running managed profile, not just when two or more are up: the tag is an identity marker, not merely a disambiguator. Never shown on "default", which isn't a shannoncoat profile at all. Positioned top-right, since top-left is where a window's close/minimize/ zoom controls live. Draggable in case that still obstructs something in a particular layout, on a .nonactivatingPanel so dragging it doesn't steal focus from the window underneath, with the offset persisted. Attachment retries for ~3s rather than requiring the target's first window to already exist: a cold Electron launch can take a second or more between the process starting — which is what triggers the update, via NSWorkspace's launch notification — and its first window existing. Losing that race previously meant the tag silently never appeared at all. Also ignores CHECKPOINT.md, a local session-handoff note.
145 lines
3.1 KiB
Plaintext
145 lines
3.1 KiB
Plaintext
# Icon generation: raw Claude.app icon assets extracted as source material
|
|
# for icon/generate-icon.swift — the derived composite (icon/AppIcon.icns)
|
|
# is committed, but Anthropic's own unmodified icon files aren't.
|
|
icon/claude-src/
|
|
icon/AppIcon.iconset/
|
|
|
|
# Session handoff notes — local only, never committed
|
|
CHECKPOINT.md
|
|
|
|
# Local reference material (e.g. nested checkouts of other projects) — not
|
|
# part of this project, never meant to be committed.
|
|
.scratch/
|
|
|
|
# Xcode
|
|
#
|
|
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
|
|
|
|
## User settings
|
|
xcuserdata/
|
|
|
|
## Obj-C/Swift specific
|
|
*.hmap
|
|
|
|
## App packaging
|
|
*.ipa
|
|
*.dSYM.zip
|
|
*.dSYM
|
|
|
|
## Playgrounds
|
|
timeline.xctimeline
|
|
playground.xcworkspace
|
|
|
|
# Swift Package Manager
|
|
#
|
|
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
|
|
# Packages/
|
|
# Package.pins
|
|
# Package.resolved
|
|
# *.xcodeproj
|
|
#
|
|
# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
|
|
# hence it is not needed unless you have added a package configuration file to your project
|
|
# .swiftpm
|
|
|
|
.build/
|
|
|
|
# CocoaPods
|
|
#
|
|
# We recommend against adding the Pods directory to your .gitignore. However
|
|
# you should judge for yourself, the pros and cons are mentioned at:
|
|
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
|
|
#
|
|
# Pods/
|
|
#
|
|
# Add this line if you want to avoid checking in source code from the Xcode workspace
|
|
# *.xcworkspace
|
|
|
|
# Carthage
|
|
#
|
|
# Add this line if you want to avoid checking in source code from Carthage dependencies.
|
|
# Carthage/Checkouts
|
|
|
|
Carthage/Build/
|
|
|
|
# fastlane
|
|
#
|
|
# It is recommended to not store the screenshots in the git repo.
|
|
# Instead, use fastlane to re-generate the screenshots whenever they are needed.
|
|
# For more information about the recommended setup visit:
|
|
# https://docs.fastlane.tools/best-practices/source-control/#source-control
|
|
|
|
fastlane/report.xml
|
|
fastlane/Preview.html
|
|
fastlane/screenshots/**/*.png
|
|
fastlane/test_output
|
|
|
|
# AI agents and assistants
|
|
#
|
|
# Some common agent instruction and project configuration files are listed
|
|
# below as commented-out examples. They are often intentionally committed and
|
|
# shared with a team, so only uncomment them if they are local-only in your
|
|
# project.
|
|
|
|
# GEMINI.md
|
|
# WARP.md
|
|
# CRUSH.md
|
|
# QWEN.md
|
|
|
|
# OpenAI Codex
|
|
# AGENTS.md
|
|
# .codex/
|
|
|
|
# Aider
|
|
# .aider.input.history
|
|
# .aider.chat.history.md
|
|
# .aider.llm.history
|
|
# .aider.tags.cache.v*
|
|
# .aiderignore
|
|
|
|
# Claude Code
|
|
.claude/*.local.json
|
|
.claude/**/*.log
|
|
CLAUDE.local.md
|
|
# .claude/
|
|
|
|
# Gemini CLI
|
|
# gemini-debug.log
|
|
# .gemini-clipboard/
|
|
# .gemini/
|
|
|
|
# Cursor AI
|
|
# .cursorrules
|
|
# .cursor/
|
|
# .cursor.json
|
|
# .cursor-settings.yaml
|
|
|
|
# Continue
|
|
# .continue/
|
|
# .continuerc.json
|
|
|
|
# Cline
|
|
# .cline/
|
|
# .clinerules
|
|
# cline.json
|
|
|
|
# Other agent/editor project config
|
|
# .warp/
|
|
# .crush/
|
|
# .codeium/
|
|
# .deepseek/
|
|
# .amazon-codewhisperer/
|
|
# .tabnineignore
|
|
# .tabnine/
|
|
|
|
# GitHub Copilot
|
|
# .github/copilot-instructions.md
|
|
|
|
# Windsurf Editor
|
|
# .windsurfrules
|
|
# .windsurf/
|
|
|
|
# Replit AI Development
|
|
# .replit
|
|
# replit.nix
|