Soto Config (Centralized Defaults)
[Created by Codex: 019b7ddb-6768-73f2-a5ef-a92e77f5fad1]
Purpose
Maintain a single source of truth for tunable app behavior by centralizing defaults in soto_config.ts (APP_CONFIG) and wiring UI + scripts to read from it.
When To Use
- Add or change a default toggle/slider/view in the UI.
- Tune Live Logs behavior (timeouts, debug limits, takeover behavior, tail-last-N policy).
- Adjust βfollow modeβ / auto-scroll heuristics (thresholds, intent windows).
- Eliminate hard-coded defaults spread across components or scripts.
Rules
- Store user-tunable defaults in
soto_config.ts under APP_CONFIG (keep as const).
- Keep values stable and low-risk to consume (primitive/POJO; avoid functions).
- Import
APP_CONFIG from ./soto_config or ../soto_config (do not reintroduce config.ts).
- Keep namespaces small and obvious (e.g.,
ui, liveLogs, replaySseLogs).
- Treat component-local constants as acceptable only when they are truly internal and not user-tunable.
Workflow (Agent Checklist)
- Decide whether the change is user-tunable.
- Add/update the knob in
soto_config.ts under an appropriate namespace.
- Replace callsites to consume
APP_CONFIG instead of literals.
- Update any scripts that parse
soto_config.ts via regex/text scanning (keep parsing minimal and robust).
- Validate by running
npm run build (and any relevant helper scripts).
Known Config Surface (This Repo)
- UI defaults:
APP_CONFIG.ui.*
- Follow mode:
APP_CONFIG.ui.followMode.scrollBottomThresholdPx
- Live Logs:
APP_CONFIG.liveLogs.*
- Replay helpers:
APP_CONFIG.replaySseLogs.*
Cross-Tool Note (Claude Code)
Claude Code loads project skills from .claude/skills. Keep canonical skills under skills/; expose them to Claude Code via a symlink from .claude/skills to skills/.