Remove build.sh generated symlinks and runtime files from git:
- conf/config.json (runtime config)
- stop.sh, start.sh, sage.service (runtime scripts)
- wwwroot/* symlinks (module links created by build.sh)
These files are already in .gitignore and should not be tracked.
- Extract backend_accounting from llmage cleanupctx to independent process
- Add bin/backend_accounting.py for standalone LLM billing loop
- Rewrite start.sh with two-phase startup:
1. Independent backend programs (run once)
2. Sage Web workers (SO_REUSEPORT on same port)
- Rewrite stop.sh to handle both workers and backend processes
- Add .gitignore for build artifacts and runtime files
Architecture:
- CPU core detection for worker count
- All workers share port 9180 via SO_REUSEPORT
- Backend processes tracked in sage_backend.pid
- Workers tracked in sage.pid