Add config-loader.js module for loading sgclaw_config.json credentials
and resolving project root directory. Add initial Rust source-guard test
to verify server file paths exist.
🤖 Generated with [Qoder][https://qoder.com]
- Auto-connect WebSocket on page load in service console
- Settings modal for editing sgclaw_config.json (API key, base URL, model, skills dir, etc.)
- UpdateConfig/ConfigUpdated protocol messages for remote config save
- save_to_path() for SgClawSettings serialization
- ConfigUpdated handler in sg_claw_client binary
- Protocol serialization tests for new message types
- HTML test assertions for auto-connect and settings UI
- Additional pending changes: deterministic submit, org units, lineloss xlsx export, browser script tool, and docs
🤖 Generated with [Qoder][https://qoder.com]
Stabilize the service console and callback-host websocket paths so idle disconnects and mid-task client drops no longer wedge task execution or spam repeated commands.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Provide a local HTML console that reuses the existing service websocket so task entry stays outside the browser-helper runtime path.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>