Skip to content

feat(core): remix published Square games into a new game - #140

Merged
feizhenhua merged 1 commit into
mainfrom
feat/remix-square-games
Jun 24, 2026
Merged

feat(core): remix published Square games into a new game#140
feizhenhua merged 1 commit into
mainfrom
feat/remix-square-games

Conversation

@feizhenhua

Copy link
Copy Markdown
Contributor

Summary

Adds a native Remix tool (peer to the existing Publish tool) plus the wiring to make remix a default built-in skill for the Deeptide agent.

  • RemixTool (crates/deeptide-core/src/tools/remix.rs): download the source of one or more published Paean Apps Square games by hash — resolve → POST /square/apps/:hash/remixGET /v2/workspace/:ws/export/zip → zip-slip-safe extraction into .remix-sources/<hash>/. Scaffolds clide.json, LICENSE, .clideignore.
  • Multi-parent remix graph in clide.json: tree-compatible remix.parent (mirrors the backend's single-parent field) and the full remix.parents[] DAG (each upstream with its borrowed role + revenue weight), so upstream creators can be credited.
  • Wired as a default built-in: registry registration, the remix built-in skill prompt (dry-run → confirm → build → publish), the Remix wire-tool schema, permission lists (plan-blocked + confirm-by-default, matching Publish), and the discovery hint map.
  • Docs: skills/publish and skills/remix playbooks + skills/README.md.

Accepted source forms: bare hashKey, hash.8x.gg, hash.clide.app, https://hash.clide.app/, https://8x.gg/hash, or hash=role (e.g. h1=gameplay h2=art h3=theme).

Security

  • The Paean token stays in-process (bearer header only) — never logged or shell-exposed.
  • Zip extraction uses enclosed_name() (rejects absolute paths / .. traversal).
  • .remix-sources/ and clide.json are excluded from publishing.

Verification

  • cargo build (full workspace) ✅
  • cargo test -p deeptide-core — 556 lib + all integration tests pass (incl. built-in-skills catalog and tool-schema assertions) ✅
  • cargo clippy -p deeptide-core — clean ✅
  • Verified the committed branch builds + tests green in an isolated worktree (no unrelated working-tree edits).

🤖 Generated with Claude Code

@feizhenhua
feizhenhua force-pushed the feat/remix-square-games branch from 88cb651 to c933c53 Compare June 24, 2026 14:26
Add a native Remix tool that downloads the source of one or more published
Paean Apps Square games by hash (resolve -> remix -> export-zip -> extract),
then scaffolds a new project with a clide.json remix graph, LICENSE, and
.clideignore. Records lineage in both the tree-compatible `remix.parent` and
the multi-parent `remix.parents[]` graph (role + weight) so upstream creators
can be credited.

Wire it as a default built-in: registry registration, the `remix` built-in
skill prompt, the Remix wire-tool schema, permission lists (plan-blocked +
confirm-by-default, matching Publish), and the discovery hint map. Add
skills/publish and skills/remix playbook docs. The Paean token stays
in-process; zip extraction is zip-slip safe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@feizhenhua
feizhenhua force-pushed the feat/remix-square-games branch from c933c53 to db262ac Compare June 24, 2026 14:30
@feizhenhua
feizhenhua merged commit 0b04fe0 into main Jun 24, 2026
1 check passed
@feizhenhua
feizhenhua deleted the feat/remix-square-games branch June 24, 2026 14:32
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