coldpass

m-31/little-sister

GitHub ↗ · How this check works

Per-setup public labels: Linux / Haiku: Works

Static status badge · SVG · read-only JSON. Embed with ![Coldpass status](https://coldpass.dev/badge/m-31--little-sister.svg).

dashboardflaskhomelabmonitoringself-hostedstatus-page

Works

Only older checks are saved; no current product test.

Answers apply to each recorded setup, revision and operation. Earlier observations remain in Run details.

Tested on Linux
PlatformHaikuLuna
Linuxyes

Linux / Haiku 5.5: yes · Oct 18, 2026 · bf1b1ffba509 · claude-code / 2.1.300 (Claude Code)
Recorded operation: <host-path> --workers 1 --threads 8 --keep-alive 0 --config python:little_sister.gunicorn_hooks --bind 0.0.0.0:8888 wsgi:app · local HTTP start + response check

Needs keys or browser
None seen
Issue
none found in recorded check

Safety: no observations were recorded for the selected revision. Functional results do not establish a safety result.

Run details

Haiku 5.5

Native agent · Checked operation passed

Checked operation <host-path> --workers 1 --threads 8 --keep-alive 0 --config python:little_sister.gunicorn_hooks --bind 0.0.0.0:8888 wsgi:app · local HTTP start + response check

Agent-reported scope: Start the little sister web app with the README's checkout gunicorn command (wsgi:app with the gunicorn_hooks config) and fetch the /login page over HTTP (HTTP 200).

Run details
run
m-31--little-sister-claude-haiku-5-5-1792348794542215653
date
Oct 18, 2026
time to working
not recorded
product hosting / execution
Local HTTP server in the guest
recorded operation scope
product operation
model
claude-haiku-5-5
agent / version
claude-code / 2.1.300 (Claude Code)
platform
linux
reported cost
$0.007998
Recorded source
https://github.com/m-31/little-sister
Tool transport
mcp-assigned-vm
Test version
readme-80bce05978a913d9396742111125106710e3c4b0dc4098ba6143b35960c73717
revision
bf1b1ffba50981264ba973a065c79fba419ee149
What the agent did

Start the little sister web app with the README's checkout gunicorn command (wsgi:app with the gunicorn_hooks config) and fetch the /login page over HTTP (HTTP 200).

cd <host-path> && ls -la && cat README.md | head -200
cd <host-path> && git log -1 --format=%H 2>/dev/null; ls .github/workflows 2>/dev/null; which python3 node npm uv pip3 2>&1; python3 --version
cd <host-path> && grep -n '^#' README.md; grep -n -A12 -i 'quickstart\|^## Running\|^### Run\|setup.sh\|start.sh' README.md | head -150
cd <host-path> && sed -n 340,500p README.md
cd <host-path> && (command -v uv || (sudo apt-get update -qq && sudo apt-get install -y -qq python3-pip python3-venv lsof curl >/dev/null 2>&1; pip install --user -q uv 2>&1 | tail -2)); export PATH=$HOME/.local/bin:$PATH; uv --version && export NODE_USE_ENV_PROXY=1 && uv sync 2>&1 | tail -15; echo EXIT=$?
cd <host-path> && sudo apt-get install -y -qq python3-venv lsof curl >/dev/null 2>&1; python3 -m venv /tmp/uvenv && /tmp/uvenv/bin/pip install -q uv 2>&1 | tail -2; export PATH=/tmp/uvenv/bin:$PATH; uv --version && export NODE_USE_ENV_PROXY=1 && uv sync 2>&1 | tail -15; echo EXIT=${PIPESTATUS[0]}
cd <host-path> && ls -R config | head -30; ./setup.sh </dev/null 2>&1 | tail -30; echo EXIT=${PIPESTATUS[0]}
cd <host-path> && export PATH=/tmp/uvenv/bin:$PATH NODE_USE_ENV_PROXY=1; ./start.sh 2>&1 | tail -20; echo EXIT=${PIPESTATUS[0]}; sleep 3; curl -s -o /dev/null -w 'HTTP %{http_code}\n' http://localhost:8888/login
cd <host-path> && grep -o '^LITTLE_SISTER_API_TOKENS=.*' .env | sed 's/=.*//' ; TOK=$(grep '^LITTLE_SISTER_API_TOKENS=' .env | cut -d= -f2- | tr -d '"' | cut -d, -f1 | cut -d= -f2); echo "token-len ${#TOK}"; curl -s -H "Accept: application/json" -H "Authorization: <secret>" http://localhost:8888/status | head -c 600; echo; echo ---; grep -rn "load_dotenv\|dotenv" src/little_sister/*.py | head -5; cat wsgi.py | grep -v '^#' | head -40
cd <host-path> && ./stop.sh 2>&1 | tail -3; sleep 2; curl -s -o /dev/null -w 'after-stop HTTP %{http_code}\n' http://localhost:8888/login; ls -l .venv/bin/gunicorn; ls -la .coldpass 2>&1; ls <host-path>
cd <host-path> && mkdir -p .coldpass && cat > .coldpass/probe.json <<'JSON'
{"kind":"http","argv":["<host-path>"}
JSON
cat > .coldpass/report.json <<'JSON'
{"outcome":"working","operation":"Start the little sister web app with the README's checkout gunicorn command (wsgi:app with the gunicorn_hooks config) and fetch the /login page over HTTP (HTTP 200).","operation_scope":"Covers install (uv sync), first-time setup.sh, and serving the web UI/login. The JSON API was also checked manually with a bearer token from .env (GET /status returned the status tree), but the probe uses /login because the API needs a token the checker does not send. No checks are configured (config/checks has only examples), so the monitoring itself is not exercised.","steps":["pip/apt: installed python3-venv, lsof, curl; created /tmp/uvenv and pip-installed uv 0.13.1 (uv not present on guest)","uv sync (README: From a checkout) - 36 packages resolved and installed","./setup.sh (README: First-time setup) with stdin closed - wrote config/users/users.yaml and .env","./start.sh (README: From a checkout) - little-sister up on http://0.0.0.0:8888, GET /login 200","Bearer GET /status via LITTLE_SISTER_API_TOKENS - returned status JSON","./stop.sh - stopped; port 8888 confirmed closed"],"deviations":["README 'From a checkout' says uv is needed but the guest lacks it; installed uv into a venv at /tmp/uvenv (pip --user blocked by PEP 668) and put it on PATH for uv sync/start.sh.","Installed python3-venv, lsof, curl via apt (start.sh needs lsof and curl)."],"stuck_step":null,"main_blocker":null,"suggested_fix":null}
JSON
<env-var>=<host-path> python3 -I <host-path> --validate; echo EXIT=$?