Commit Graph

37 Commits

Author SHA1 Message Date
34f9a2c141 docs: Stage 2 SDK data-jcid migration report
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-18 16:05:16 +08:00
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
All checks were successful
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)
Some checks failed
Publish Python Package to Gitea / publish (push) Failing after 31s
2026-05-06 17:28:13 +08:00
d2dbb5f61e 重构项目路径
Some checks failed
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