Pool privateDefault→private (Configs, Keychain), ai-control-Icon in den Projektordner, Memory-Update

This commit is contained in:
marcus.hinz
2026-07-05 12:49:16 +02:00
parent 6816adbab3
commit e274dd4944
44 changed files with 2449 additions and 126 deletions
+18 -18
View File
@@ -1,6 +1,24 @@
{
"autoMemoryDirectory": "~/claude-projects/robotunits/memory",
"hooks": {
"SessionStart": [
{
"hooks": [
{
"command": "jq -Rs '{systemMessage: ., hookSpecificOutput:{hookEventName:\"SessionStart\", additionalContext: .}}' /Users/marcus.hinz/claude-projects/robotunits/OFFENE-PUNKTE.md",
"type": "command"
}
]
}
]
},
"permissions": {
"additionalDirectories": [
"~/projects/geko-core",
"~/projects/adesso-cpq",
"~/projects/geko-infra",
"~/projects/geko-fire"
],
"allow": [
"Edit(~/projects/geko-core/**)",
"Edit(~/projects/adesso-cpq/**)",
@@ -8,24 +26,6 @@
"Edit(~/projects/fire-visual/**)",
"Edit(~/projects/geko-fire/**)",
"Edit(~/claude-projects/robotunits/**)"
],
"additionalDirectories": [
"~/projects/geko-core",
"~/projects/adesso-cpq",
"~/projects/geko-infra",
"~/projects/geko-fire"
]
},
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "jq -Rs '{systemMessage: ., hookSpecificOutput:{hookEventName:\"SessionStart\", additionalContext: .}}' /Users/marcus.hinz/claude-projects/robotunits/OFFENE-PUNKTE.md"
}
]
}
]
}
}
+5 -1
View File
@@ -1,3 +1,7 @@
{
"pool": "privateDefault"
"pool": "private",
"terminal": {
"theme": "nord",
"icon": "icon.png"
}
}
-15
View File
@@ -1,15 +0,0 @@
// ghostty-wincount <pid> Anzahl sichtbarer Normal-Fenster (Layer 0) des
// Prozesses, direkt vom Window-Server. Keine Apple-Events, kein TCC-Prompt.
import CoreGraphics
import Foundation
guard CommandLine.arguments.count == 2, let pid = Int32(CommandLine.arguments[1]) else {
FileHandle.standardError.write(Data("usage: ghostty-wincount <pid>\n".utf8))
exit(2)
}
let list = CGWindowListCopyWindowInfo([.optionOnScreenOnly], kCGNullWindowID) as? [[String: Any]] ?? []
let n = list.filter {
($0[kCGWindowOwnerPID as String] as? Int32) == pid &&
($0[kCGWindowLayer as String] as? Int) == 0
}.count
print(n)
-32
View File
@@ -1,32 +0,0 @@
#!/usr/bin/env bash
# pool-guard — SessionStart-Hook: prüft direkt nach dem claude-Start, ob die
# Session über claude-sync (Pool-Mechanismus) läuft. claude-sync schreibt die
# Sentinel-Datei in den Projekt-Root und hält sie offen; ein RAW-Start hat
# keine lebende Sentinel dahinter und wird beendet.
set -uo pipefail
sentinel="$CLAUDE_PROJECT_DIR/.ai-control-running"
fail() {
# claude im Elternbaum finden und beenden, dann Banner aufs Terminal.
p=$PPID
while [ -n "$p" ] && [ "$p" -gt 1 ]; do
case "$(ps -o comm= -p "$p")" in
*claude*) kill "$p"; break ;;
esac
p=$(ps -o ppid= -p "$p" | tr -d ' ')
done
sleep 0.3
{
printf '\n\033[1;5;97;41m POOL-GUARD: %s \033[0m\n\n' "$1"
printf '\033[1;31mDiese Session lief außerhalb des Pool-Mechanismus und wurde beendet.\nStart nur über die Ghostty-App bzw. claude-sync.\033[0m\n'
} >/dev/tty
exit 2
}
[ -f "$sentinel" ] || fail "keine Sentinel-Datei ($sentinel)"
pool=$(sed -n 's/^pool=//p' "$sentinel")
pid=$(sed -n 's/^pid=//p' "$sentinel")
[ "$pool" = "${CLAUDE_CONFIG_DIR:-}" ] || fail "Pool-Mismatch: Sentinel=$pool, Session=${CLAUDE_CONFIG_DIR:-<leer>}"
kill -0 "$pid" 2>/dev/null || fail "claude-sync (PID $pid) lebt nicht mehr"
exit 0
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB