feat(skills): add skill upload/download with zip and folder support#68
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b8358a3f0e
ℹ️ About Codex in GitHub
Your team has set up Codex to 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 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
b8358a3 to
42e6139
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 42e6139252
ℹ️ About Codex in GitHub
Your team has set up Codex to 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 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
42e6139 to
a2f532b
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a2f532b50a
ℹ️ About Codex in GitHub
Your team has set up Codex to 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 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
a2f532b to
7cd50c7
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7cd50c7247
ℹ️ About Codex in GitHub
Your team has set up Codex to 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 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Add "Upload file" method to skill creation dialog for importing from .zip archives or folders. Multi-skill zips trigger bulk import. Download button on skill detail page exports as .zip. - fflate zip parsing; SKILL.md frontmatter extraction - Drag-and-drop .zip, folder picker, bulk import with progress - Upload and download use updateFrontmatter with YAML-safe escaping to sync edited name/description into SKILL.md content - File.size check before arrayBuffer() for zip size guard - Full i18n (en + zh-Hans) - Path policy: rejects traversal/control chars/drive letters/SKILL.md variants/dot-prefixed directories/sensitive dotfiles (.env, .npmrc, .netrc); allows safe dot-prefixed leaf files (.gitignore etc.); case-insensitive collision detection; hidden SKILL.md root rejection with subtree suppression; zip inflation filter; 50 MiB cap; binary blocklist - 62 unit tests Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
7cd50c7 to
b8fd732
Compare
Summary
.ziparchives and folder uploads containingSKILL.md.zipfileDetails
Upload (create-skill-dialog)
fflate(new catalog dependency).zipfiles + folder picker viawebkitdirectoryPOST /api/skillsendpoint — no backend changes neededDownload (skill-detail-page)
Security hardening (from code review)
.env,.config, etc.)/,..)Test plan
.zip→ verify name/description pre-filled from frontmatter, skill created.zip(e.g. 归档2.zip with 2 folders) → verify bulk list, select/deselect, import progress and summarypnpm --filter @multica/views exec vitest run locales/parity.test.ts)pnpm typecheck)🤖 Generated with Claude Code