Covers: single-mode auto-wrap, multi-mode routing, form-urlencoded
body format, responsePath extraction, and processData flag.
🤖 Generated with [Qoder][https://qoder.com]
- Add /select-folder and /select-file APIs using PowerShell dialogs
- Add --target-url parameter to CLI for explicit target URL override
- Redesign Web UI with folder browse buttons for all path inputs
- Add target_url optional input field for specifying target page URL
- Auto-fill scene-id from selected folder name
🤖 Generated with [Qoder][https://qoder.com]
When HTML has no sgclaw-expected-domain meta tag, analyzer now scans
for external script URLs (http:// or https://) and extracts the
domain (host:port) as expected_domain.
Example:
<script src="http://25.215.213.128:18080/a_js/YPTAPI.js"></script>
→ expected_domain = "25.215.213.128:18080"
This reduces manual editing required for third-party scenes.
🤖 Generated with [Qoder][https://qoder.com]
- Add scene_kind field to GenerateSceneRequest
- Update generate_scene_package to use analyze_scene_source_with_hint
- Implement scene_toml_monitoring for simplified monitoring scene manifests
- Add scene_toml router to dispatch to different templates based on SceneKind
- Add --scene-kind CLI option to sg_scene_generate binary
- Add generator_emits_monitoring_template test
- Create monitoring fixture with index.html (no meta tag, tests hint param)
Monitoring templates have simplified scene.toml without org/period resolvers.
🤖 Generated with [Qoder][https://qoder.com]
Remove duplicate implementation in analyze_scene_source() and replace
with simple delegation to analyze_scene_source_with_hint(source_dir, None).
This eliminates ~50 lines of duplicated logic that could drift apart
from the main implementation. Updated the test to verify the new
behavior where sources without scene-kind meta tag default to
ReportCollection instead of being rejected.
🤖 Generated with [Qoder][https://qoder.com]
- Add SceneKind::Monitoring enum variant with from_str/as_str helpers
- Add analyze_scene_source_with_hint function accepting optional scene kind hint
- User hint takes priority over meta tag, defaults to ReportCollection
- ReportCollection requires target_url, expected_domain, entry_script
- Monitoring type has optional fields
- Add test cases for hint parameter behavior
- Update non_report fixture with required meta tags for ReportCollection
🤖 Generated with [Qoder][https://qoder.com]
Add self-contained HTML page for the Scene Skill Generator frontend:
- Dual-column glass-morphism layout matching service-console style
- Left sidebar: status card, sourceDir input with analyze button,
sceneId/sceneName inputs, settings button, generate button
- Right panel: streaming log display with SSE event rendering
- Settings modal: outputRoot, lessons, llmBaseUrl, llmModel fields
- JavaScript: connects to http://127.0.0.1:3210, implements analyze()
via fetch POST /analyze, generate() via fetch POST /generate with
SSE stream reading, settings modal open/close
- Rust test verifying HTML file exists and contains required elements
🤖 Generated with [Qoder][https://qoder.com]
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]
Align the service task flow callback-host regression with the hidden helper close/open bootstrap sequence uncovered during final request-url verification.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Use page context, deterministic plans, and direct-skill metadata as the service-owned bootstrap target precedence so callback-host startup no longer relies on line-loss text matching or the old request-url helper.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.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]
The `expected_domain` was removed from args for normalization but never
re-inserted, causing JS scripts to receive empty expected_domain and
report "missing_expected_domain" errors.
🤖 Generated with [Qoder][https://qoder.com]
Bring the main-branch lineloss default-period fix into feature/claw-ws while keeping the ws submit/backend path intact.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Default month/week deterministic lineloss requests to the source page's built-in time ranges while preserving explicit-period parsing and existing routing contracts.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Keep ws-backed submit flows routing Zhihu natural-language requests through orchestration before direct submit so sg_claw service console behavior stays consistent.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Keep Zhihu hotlist export requests on the orchestration path so natural-language submits without page context no longer fail in direct-submit routing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Keep the ws submit path while bringing over main's deterministic lineloss routing and the focused merge verification updates.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add the deterministic tq-lineloss routing and normalization flow so exact-suffix requests execute through the existing browser-script seam with canonical org and period arguments.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Keep browser-attached workflows on the configured direct-skill path and align the Zhihu export/browser regression contracts with the current ws merge state.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Keep the ws branch focused on websocket and Zhihu behavior by dropping staged scene-routing artifacts and restoring single-path skills dir semantics.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Treat direct skill report-artifact payloads as task outcomes so partial and empty reports stay successful while blocked and error statuses fail explicitly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add fixed direct-submit skill loading from configured staged skills and validate directSubmitSkill early so malformed configs fail before routing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.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>
Add registry-driven scene routing and multi-root skill loading so fault-details and 95598 scene skills can be triggered from natural language while still running through the browser-backed runtime.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Consolidate the browser task runtime around the callback path, add safer artifact opening for Zhihu exports, and cover the new service/browser flows with focused tests and supporting docs.
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>