forked from bchanot/claude
feat(profile): default profile = full; reset applies it, current is label-driven
No profile selected (.active-profile absent, empty or legacy "none") now means the `full` profile is in force: DEFAULT_PROFILE declared once in lib/profile.sh, resolved by active_profile(); the statusline reads the constant and shows `full` instead of `?`; `gstack off` trims to it instead of erroring. `reset` goes to the default profile (= `set full`: enables its list, parks any non-listed gstack or managed item). `current` names the active label and scores that profile only, saying `default — not applied yet` until a set/apply/reset wrote the cache; the "none" sentinel and the cross-profile best-guess scan are gone (they keyed on the parked-gstack count, which says nothing under BDR-030's gstack-off default). Hermetic suite lib/tests/profile-default.test.sh (29 checks) seeds gstack as OFF like a real tree. Citers updated: profile SKILL, Makefile help, plugin-advisor PROFILE line + reset paragraph, toggle-external header.
This commit is contained in:
+9
-4
@@ -20,12 +20,17 @@ BRANCH_STR="${BRANCH:+ ($BRANCH)}"
|
||||
|
||||
REPO="$(cd -P "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
|
||||
# Default profile — same constant as lib/profile.sh's active_profile(),
|
||||
# read without sourcing the lib (speed). Unreadable lib → literal fallback.
|
||||
DEFAULT_PROFILE=$(sed -n 's/^DEFAULT_PROFILE="\([^"]*\)".*/\1/p' "$REPO/lib/profile.sh" 2>/dev/null)
|
||||
[ -n "$DEFAULT_PROFILE" ] || DEFAULT_PROFILE=full
|
||||
|
||||
# Active profile (written by lib/profile.sh set|apply|reset to <repo>/.active-profile).
|
||||
# Read directly — `profile.sh current` is 12s+ and unusable in a statusline.
|
||||
PROFILE="?"
|
||||
if [ -f "$REPO/.active-profile" ]; then
|
||||
PROFILE=$(head -n1 "$REPO/.active-profile" | tr -d '[:space:]')
|
||||
[ -z "$PROFILE" ] && PROFILE="?"
|
||||
# Cache absent/empty/legacy "none" (same rule as active_profile()) → default.
|
||||
PROFILE=$(head -n1 "$REPO/.active-profile" 2>/dev/null | tr -d '[:space:]')
|
||||
if [ -z "$PROFILE" ] || [ "$PROFILE" = "none" ]; then
|
||||
PROFILE="$DEFAULT_PROFILE"
|
||||
fi
|
||||
|
||||
# Effort level from settings.json (.effortLevel — set by /effort or manual edit).
|
||||
|
||||
Reference in New Issue
Block a user