mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-09-30 20:49:41 +02:00
Make the branch genuinely master-mergeable and fix several review findings: - Defaults are now prod-safe: CODEMAN_INSTANCE defaults to '' (→ ~/.codeman, -L codeman) and the web port back to 3000, so an existing install upgrades cleanly. Port also honors a new CODEMAN_PORT env var. Run the beta isolated alongside prod with scripts/run-beta.sh (CODEMAN_INSTANCE=beta + PORT 5000). - .gitignore: anchor the root `public` symlink rule to `/public` (a bare `public` also swallowed src/web/public, silently un-staging new web assets); ignore the gesture wasm/model binaries explicitly instead. - span-displays: add a macOS-only guard (400 elsewhere instead of spawning a bash that fails invisibly); extract resolveSpanUrl() for unit testing. - server.ts: memoize asset-version stat() calls (~1s TTL) so each index render doesn't re-stat every script/link tag. - styles.css: hide the multi-monitor button in solo (detached) windows. - app.js: require two consecutive unanswered roll-calls before redocking, so a timer-throttled background popup isn't wrongly un-marked. - index.html: make the "skip to terminal" link base-href-safe (onclick scroll) so it doesn't navigate to the dashboard from a /session/:id window. - Tests: test/config/instance.test.ts, test/routes/system-span-displays.test.ts. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
33 lines
1.3 KiB
Bash
Executable File
33 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# run-beta.sh — launch a BETA Codeman isolated from a production instance.
|
|
#
|
|
# Codeman's data dir (~/.codeman) and tmux socket (-L codeman) are process-wide
|
|
# and shared by every instance on the machine. The code now DEFAULTS to that
|
|
# production layout on port 3000 (safe for master / existing installs), so a beta
|
|
# build no longer isolates itself automatically — this wrapper opts it in:
|
|
#
|
|
# CODEMAN_INSTANCE=beta → data dir ~/.codeman-beta + tmux socket codeman-beta
|
|
# CODEMAN_PORT=5000 → listen on 5000 instead of 3000
|
|
#
|
|
# Result: the beta runs side-by-side with prod and can never discover/attach to
|
|
# prod's live tmux sessions or clobber prod's state.json. Override either var to
|
|
# run additional named instances, e.g. CODEMAN_INSTANCE=foo CODEMAN_PORT=5050.
|
|
#
|
|
# Usage: ./scripts/run-beta.sh [extra `codeman web` flags]
|
|
# Build first (the beta runs the compiled dist): npm run build
|
|
|
|
set -euo pipefail
|
|
|
|
export CODEMAN_INSTANCE="${CODEMAN_INSTANCE:-beta}"
|
|
export CODEMAN_PORT="${CODEMAN_PORT:-5000}"
|
|
|
|
DIST="$(cd "$(dirname "$0")/.." && pwd)/dist/index.js"
|
|
if [ ! -f "$DIST" ]; then
|
|
echo "dist not found at $DIST — run 'npm run build' first." >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Starting beta Codeman: instance='$CODEMAN_INSTANCE' (~/.codeman-$CODEMAN_INSTANCE, -L codeman-$CODEMAN_INSTANCE) on port $CODEMAN_PORT"
|
|
exec node "$DIST" web "$@"
|