diff options
Diffstat (limited to '.ai/scripts/session-context-path')
| -rwxr-xr-x | .ai/scripts/session-context-path | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/.ai/scripts/session-context-path b/.ai/scripts/session-context-path new file mode 100755 index 0000000..8cc56f6 --- /dev/null +++ b/.ai/scripts/session-context-path @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +# session-context-path — print the active session-context path for this agent. +# +# Single-agent (AI_AGENT_ID unset or empty): .ai/session-context.org — the +# historical singleton path, unchanged, so one-agent-per-project sessions +# behave exactly as before (Codex spec's compatibility rule). +# +# Multi-agent (AI_AGENT_ID set): .ai/session-context.d/<id>.org, so two agents +# running in the same project at the same time keep separate session logs +# instead of clobbering the singleton. The id is sanitized to filename-safe +# characters so a stray value can't escape the .d/ directory. +# +# Workflows call this to resolve the path; both startup (existence check) and +# wrap-up (rename source) read/write through it. Callers should fall back to +# .ai/session-context.org if this script isn't present yet (older checkouts +# mid-sync). +set -euo pipefail + +id="${AI_AGENT_ID:-}" +if [ -n "$id" ]; then + safe=$(printf '%s' "$id" | tr -c 'A-Za-z0-9._-' '_') + printf '.ai/session-context.d/%s.org\n' "$safe" +else + printf '.ai/session-context.org\n' +fi |
