4fc4cfb802
refactor(sdk): drop data-jcid, switch to semantic anchors + ClawX testids
...
- Introduce centralized SELECTOR constant table at top of client.py
- Replace all [data-jcid=...] selectors with:
* Semantic anchors (data-role / data-message-id / data-streaming /
data-sending / data-message-count) guarded by jiangchang main repo
* ClawX upstream data-testids (chat-page / chat-composer-* / etc.)
- _latest_assistant_after: has_body now judged by inner_text non-empty
(no longer depends on message-body sub-element)
- _gateway_state: degrade to window.__jc_gateway_state__ readback,
returns 'unknown' until host exposes it
- new_task: rely solely on data-message-count==0 (welcome-screen no
longer has a testid)
- wait_gateway_ready: degrade to chat-page selector wait
- send_file: raise NotImplementedError (Electron IPC hook missing)
Public API signatures unchanged. window.__jc_sending__ remains the
core sending signal.
Compatibility: jiangchang v2.0.17+ only.
Refs: jiangchang/docs/sdk-migration-discovery.md
jiangchang/docs/JIANGCHANG_CUSTOM_ANCHORS.md
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-18 16:05:04 +08:00
089f00c3ff
feat(tools): add screencast recording engine
...
Adds tools/screencast/ — a reusable screen-recording pipeline for
skill demo videos. Wraps a pytest desktop E2E run with:
- ScreenRecorder: mss-based full-screen frame capture (background thread)
- SubtitleEngine: stdout keyword → timestamped SRT generation
- compose_video: FFmpeg filter_complex merge (video + subtitles + BGM)
- run_screencast: main orchestrator wiring all three layers
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-17 20:38:47 +08:00
20294fd23a
新增依赖
2026-05-06 19:33:46 +08:00
f52d7fc352
ci(publish): use repository-level PACKAGE_TOKEN secret
Publish Python Package to Gitea / publish (push) Successful in 19s
v0.1.0
2026-05-06 18:21:35 +08:00
cff1408d87
ci(publish): use repository-level PACKAGE_TOKEN secret
2026-05-06 18:15:22 +08:00
f55c7bdc52
ci(publish): use auto-injected github.token with explicit permissions
2026-05-06 18:07:10 +08:00
ebdd8b562d
ci(publish): align with internal runner conventions (python3.12 + intra-Gitea checkout + cn mirrors)
Publish Python Package to Gitea / publish (push) Failing after 31s
2026-05-06 17:28:13 +08:00
d2dbb5f61e
重构项目路径
Publish Python Package to Gitea / publish (push) Failing after 59s
2026-05-06 17:16:09 +08:00
8bbf5084f5
修改打包将test打包进去
2026-05-06 11:47:17 +08:00
b9cd4dacec
优化代码
2026-04-23 11:04:44 +08:00
d6ad90a7db
提交修改
2026-04-22 15:51:37 +08:00
2174b2b573
加入匠厂桌面测试
2026-04-20 13:40:53 +08:00
71a9ab1700
提交修改
2026-04-19 15:35:47 +08:00
ca117cb5ac
提交修改
2026-04-19 15:17:57 +08:00
892cf837a6
调整流水线
2026-04-16 15:06:49 +08:00
a6bbd89350
调整流水线
2026-04-16 13:58:32 +08:00
8778d641ab
调整流水线
2026-04-16 13:46:19 +08:00
5037d83b3d
调整流水线
2026-04-16 13:41:36 +08:00
8154de452b
调整流水线
2026-04-16 13:29:45 +08:00
0bb6707e68
调整流水线
2026-04-16 11:49:06 +08:00
4b15c6d99c
ci: sync readme_md and description from references/README.md with SKILL.md fallback
...
Made-with: Cursor
2026-04-12 09:10:58 +08:00
4856167682
ci: deploy 用 cp 替代 rsync;同步 contrib 模板;更新产品说明
2026-04-10 13:39:54 +08:00
c67487ba16
ci: add reusable-release-frontend for static sites (fangzhen)
2026-04-10 13:31:08 +08:00
69702f8ea2
ci: add reusable-release-frontend for static sites (fangzhen)
2026-04-10 12:04:51 +08:00
60b4f7a77f
release: python-runtime README, runtime_env sdk
v1.0.3
2026-04-08 14:01:23 +08:00
7ac6e39ff9
release: python-runtime, runtime_env sync, docs
v1.0.2
2026-04-08 12:06:14 +08:00
9926eb04cb
chore: get_sibling_skills_root prefer co-located inference over env
...
Made-with: Cursor
2026-04-07 10:37:36 +08:00
4c2b1b634c
feat: release ZIP keeps scripts/ tree; JIANGCHANG_SKILLS_ROOT and sibling skills root
v1.0.1
2026-04-06 18:37:54 +08:00
c8fc7dcccb
ci: recursive PyArmor for scripts/ and copy references/assets; release.ps1 preflight check
...
Made-with: Cursor
2026-04-06 14:01:44 +08:00
312e7ede63
ci: use domestic PyPI mirrors for PyArmor cross-platform pip installs
...
Made-with: Cursor
2026-04-06 13:15:56 +08:00
7fdd481c60
ci: optional PYARMOR_REG_B64 secret for multi-script obfuscation
...
Made-with: Cursor
2026-04-05 09:28:51 +08:00
3ee09bbd73
fix(ci): pin PyArmor 8.5.3 and obfuscate scripts one file per gen
...
Made-with: Cursor
2026-04-05 09:22:11 +08:00
9230ce64e9
chore: sync from OpenClaw workspace (2026-04-05 09:17)
2026-04-05 09:17:32 +08:00
ea294472cb
fix(ci): pin PyArmor to 8.5.3 in reusable skill release
...
Made-with: Cursor
2026-04-05 09:11:10 +08:00
c4521dc4b2
feat: centralize release script and simplify workflow input
...
Move release.ps1 into the platform kit as the shared source of truth and remove include_readme_md input so all skills always publish readme_md by default.
2026-03-30 19:23:10 +08:00
117d31298e
feat: add jiangchang platform kit skeleton
...
Add a shared SDK scaffold for entitlement checks and a reusable Gitea release workflow template to standardize skill packaging and publishing across projects.
2026-03-30 18:49:29 +08:00