Freeze current submission/demo baseline: - casan-next-plans/: full task-level plan set (Plan 00 index + 02/04/06/07/08/09/12, QA, slide deck) - optimize-docs/video-steps/: per-vector scene breakdown (commands/screen-text/script) + start-tmux - run-all.sh / scorecard.sh / map-live.sh: REAL=1 live-battery wiring - regenerated evidence + audit/telemetry logs from live REAL=1 run - submission README + video recording guide updates - dry-run pipeline logs for 001-okr-web-app Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
44 lines
2.0 KiB
Bash
Executable File
44 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# ============================================================================
|
|
# start-tmux.sh — dựng sẵn layout quay: pane TRÁI = bản đồ sống,
|
|
# pane PHẢI = run-all.sh. Hai pane đồng bộ qua STEP_FILE.
|
|
#
|
|
# Dùng:
|
|
# cd <thư mục gốc dự án có .specify/> # vd: AINative_OKR_CASAN5
|
|
# bash /…/optimize-docs/video-steps/start-tmux.sh
|
|
#
|
|
# Biến môi trường (tuỳ chọn):
|
|
# CASAN_ROOT=/path/to/AINative_OKR_CASAN5 # nếu không cd sẵn
|
|
# AUTO=1 STEP_DELAY=6 # pane phải tự chạy, nghỉ 6s/bước
|
|
# COLS=210 ROWS=52 LEFT=44 # kích thước cửa sổ & bề rộng pane trái
|
|
# ============================================================================
|
|
set -euo pipefail
|
|
|
|
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT="${CASAN_ROOT:-$PWD}"
|
|
[ -d "$ROOT/.specify" ] || { [ -d "$ROOT/AINative_OKR_CASAN5/.specify" ] && ROOT="$ROOT/AINative_OKR_CASAN5"; }
|
|
[ -d "$ROOT/.specify" ] || { echo "✗ Không thấy .specify/ tại '$ROOT'. cd vào project hoặc đặt CASAN_ROOT."; exit 1; }
|
|
|
|
command -v tmux >/dev/null || { echo "✗ Chưa cài tmux. macOS: brew install tmux"; exit 1; }
|
|
|
|
STEP_FILE="${CASAN_STEP_FILE:-/tmp/casan_step}"
|
|
printf 'INTRO' > "$STEP_FILE"
|
|
|
|
SESS="casan"
|
|
COLS="${COLS:-210}"; ROWS="${ROWS:-52}"; LEFT="${LEFT:-44}"
|
|
RIGHT=$(( COLS - LEFT - 1 ))
|
|
|
|
tmux kill-session -t "$SESS" 2>/dev/null || true
|
|
tmux new-session -d -s "$SESS" -x "$COLS" -y "$ROWS"
|
|
|
|
# pane 0 (trái) = bản đồ sống
|
|
tmux send-keys -t "$SESS":0.0 "clear; bash '$HERE/map-live.sh' '$STEP_FILE'" C-m
|
|
|
|
# tách pane phải rộng $RIGHT cột = nơi chạy battery (đây là pane bạn thao tác)
|
|
tmux split-window -h -t "$SESS":0.0 -l "$RIGHT"
|
|
tmux send-keys -t "$SESS":0.1 \
|
|
"cd '$ROOT' && clear && CASAN_STEP_FILE='$STEP_FILE' ${AUTO:+AUTO=$AUTO} ${STEP_DELAY:+STEP_DELAY=$STEP_DELAY} bash '$HERE/run-all.sh'" C-m
|
|
|
|
tmux select-pane -t "$SESS":0.1 # focus pane phải để bấm Enter
|
|
tmux attach -t "$SESS"
|