Skip to content

feat(skill): add Medeo Video as bundled static skill#751

Merged
lefarcen merged 6 commits intomainfrom
feat/medeo-video-skill
Apr 2, 2026
Merged

feat(skill): add Medeo Video as bundled static skill#751
lefarcen merged 6 commits intomainfrom
feat/medeo-video-skill

Conversation

@alchemistklk
Copy link
Copy Markdown
Contributor

What

Add Medeo Video (Seedance 2.0) as a bundled static skill shipped with the desktop app.

Why

Enable users to generate AI short videos (up to 15 seconds) out of the box via the Medeo Gateway proxy service.

How

  • Add apps/desktop/static/bundled-skills/medeo-video/ with:
    • SKILL.md — agent instructions covering setup, generation, polling, error handling
    • scripts/medeo_video.py — CLI tool (setup, check, upload, spawn-task, task-status, recover)
    • scripts/feishu_send_video.py — Feishu video delivery script
  • Register "medeo-video" in STATIC_SKILL_SLUGS in curated-skills.ts

Affected areas

  • apps/desktop/static/bundled-skills/ — new skill directory
  • apps/controller/src/services/skillhub/curated-skills.ts — slug registration

Checklist

  • No Chinese in SKILL.md or code comments (all English)
  • No API keys or secrets in committed files
  • Follows existing bundled skill structure (matches nano-banana-one-shop pattern)
  • pnpm typecheck passes
  • Gateway deployed at https://medeo-gateway.powerformer.workers.dev
  • Skill tested locally with real Medeo API (text-to-video + image-to-video verified)

Add AI video generation skill (Seedance 2.0 via Medeo Gateway) to the
bundled skills shipped with the desktop app.

- SKILL.md with agent instructions for video generation workflow
- medeo_video.py: CLI for setup, check, upload, spawn-task, recover
- feishu_send_video.py: Feishu video delivery script
- Register "medeo-video" in STATIC_SKILL_SLUGS
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c083dfbf50

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread apps/desktop/static/bundled-skills/medeo-video/scripts/medeo_video.py Outdated
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Apr 1, 2026

Deploying nexu-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 63d03aa
Status: ✅  Deploy successful!
Preview URL: https://108dbcc9.nexu-docs.pages.dev
Branch Preview URL: https://feat-medeo-video-skill.nexu-docs.pages.dev

View logs

@alchemistklk alchemistklk force-pushed the feat/medeo-video-skill branch from 63d03aa to 0fc5938 Compare April 1, 2026 17:05
alchemistklk and others added 4 commits April 2, 2026 01:26
…753)

* fix(controller): bootstrap skill ledger before first OpenClaw config push

syncAllImmediate() ran before skillhubService.start(), so the first
compiled config was missing static/bundled skills that hadn't been
copied to disk yet. OpenClaw booted with an incomplete agent skills
allowlist, and because config-reload treats agents/skills changes as
kind "none", the snapshot was never rebuilt for existing sessions.

Add SkillhubService.bootstrap() — runs syncNow + copyStaticSkills
before the first config push — so the compiled allowlist is complete
from the start.

* fix(controller): touch SKILL.md after config push to bump OpenClaw snapshot

After syncAll pushes a new config (with updated agent skills allowlist),
touch one SKILL.md in the skills directory to trigger OpenClaw's chokidar
watcher → bumpSkillsSnapshotVersion. Without this, existing sessions keep
using a stale skills snapshot because OpenClaw's config-reload treats
agents/skills changes as kind "none" (no hot-reload action).
* feat(skill): add progress notifications for medeo video generation

Sub-agent now sends stage-change updates to the user via message tool
(composing → rendering → storing) instead of silently waiting until
completion. Poll interval reduced from 3min to 1min for faster feedback.

Final video URL is returned as plain text to the main agent so it can
deliver with conversation context, keeping the interaction natural.

* feat(skill): use cron-based progress monitoring for medeo video

Replace sessions_spawn sub-agent approach with cron systemEvent:
- Main agent sets a 2-minute cron after submitting a video task
- Each cron fires a systemEvent in the same session, prompting the
  agent to check task-status and update the user conversationally
- Agent decides whether to notify based on stage change and time
  since last update — no mechanical notifications
- task-status output reminds agent to remove cron when task finishes
- Support MEDEO_GATEWAY_URL env var override for local testing

* fix(skill): restore production gateway URL, strengthen completion delivery

- GATEWAY_URL defaults to production, overridable via MEDEO_GATEWAY_URL env
- SKILL.md: agent MUST send video URL on completion, not just report status

* fix(skill): hardcode production gateway URL
- Add libtv-video to STATIC_SKILL_SLUGS (pinned as first entry)
- Seedance 2.0 as default model, auto-appended to prompts
- Supports text-to-video, image-to-video, upload, session polling
- Includes recover command for session recovery after agent restart
- All user-facing output in English with friendly status messages
@alchemistklk
Copy link
Copy Markdown
Contributor Author

/cr

@slack-code-review-channel
Copy link
Copy Markdown

✅ CR topic created in Feishu topic group Refly CR.

@lefarcen lefarcen merged commit 0718e64 into main Apr 2, 2026
18 checks passed
This was referenced Apr 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants