feat(github-copilot-sdk): add workspace skills support (v0.9.0) (#51)
* feat(github-copilot-sdk): add workspace skills support - Introduce ENABLE_WORKSPACE_SKILLS valve to enable/disable workspace custom tools discovery - Modify _build_session_config() to auto-load tools from .copilot-skills/ directory - Add workspace_skills_example.py template with 3 working example tools - Update README.md and README_CN.md with Workspace Skills guide and usage examples - Create v0.9.0.md and v0.9.0_CN.md release notes - Sync version to all docs files (index.md, index.zh.md, and main docs) - Bump version from 0.8.0 to 0.9.0 across all 7+ locations * docs: establish temp files handling policy (project-based, not /tmp) - Add TEMP_FILES_POLICY.md guideline for all skills and workflows - Update pr-submitter skill to use .temp/ directory instead of /tmp - Update release-prep skill documentation with temp file convention - Add .temp/ and .build/ entries to .gitignore - Create internal policy memo in /memories/repo/ This policy ensures: - All temporary files stay within project workspace (not system /tmp) - Alignment with OpenWebUI workspace isolation principles - Multi-user safety and cleanup traceability - Consistent handling across all skills and development workflows * fix(terminology): rename 'workspace skills' to 'workspace custom tools' for accuracy The term 'Skills' in Anthropic context refers to instruction-based frameworks (SKILL.md files with YAML frontmatter + markdown), not custom tool functions. Our implementation uses @define_tool decorator to define custom tools that the SDK auto-discovers from .copilot-skills/ directory. These are Tools, not Skills. Changes: - Rename ENABLE_WORKSPACE_SKILLS valve -> ENABLE_WORKSPACE_TOOLS - Update all documentation (README, README_CN, docs, release notes) - Fix section headings and descriptions throughout - Ensure consistent terminology across all files This is a terminology-only change; functionality remains identical. * feat(pipes): release v0.9.0 of GitHub Copilot SDK Pipe - Integrated OpenWebUI Skills Bridge and manage_skills tool - Reinforced status bar stability with session_finalized logic - Added persistent SDK config directory support * docs(pipes): add comprehensive guides and v0.9.0 notes for Copilot SDK - Added skill manager and best practices guides - Added publishing tool documentation - Included v0.9.0 release notes and deployment script - Updated usage guides
This commit is contained in:
101
plugins/pipes/github-copilot-sdk/v0.9.0.md
Normal file
101
plugins/pipes/github-copilot-sdk/v0.9.0.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# 🚀 GitHub Copilot SDK Pipe v0.9.0: Copilot SDK Skills Core Capabilities & Extended Delivery
|
||||
|
||||
**GitHub Copilot SDK Pipe v0.9.0** centers on making **Copilot SDK Skills** a first-class capability (native directory support + bidirectional sync + deterministic `manage_skills` lifecycle), then extends delivery with improved publishing behavior.
|
||||
|
||||
---
|
||||
|
||||
## ⭐ Release Highlights
|
||||
|
||||
- **🧩 Copilot SDK Skills Support (Core)**: Native support for SDK skill directories (`SKILL.md` + optional resources), so skills are loaded as first-class runtime context.
|
||||
- **🔄 OpenWebUI Skills Bridge (Extension)**: Bidirectional sync between OpenWebUI and local SDK skill folders.
|
||||
- **🛠️ `manage_skills` Tool (Extension)**: In-session deterministic skill lifecycle tool for `list/install/create/edit/show/delete`.
|
||||
- **📤 Publishing Update**: HTML supports `artifacts` / `richui`; PDF is delivered via Markdown links.
|
||||
- **📁 Folder-based Skills**: A skill can include `SKILL.md` plus templates/scripts/resources.
|
||||
- **🧱 Environment Refactor**: New persistent config/workspace/toolchain layout under `/app/backend/data` with stricter isolation and better reproducibility.
|
||||
|
||||
---
|
||||
|
||||
## 📦 Quick Installation
|
||||
|
||||
- **GitHub Copilot SDK (Pipe)**: [Install v0.9.0](https://openwebui.com/posts/ce96f7b4-12fc-4ac3-9a01-875713e69359)
|
||||
- **GitHub Copilot SDK (Filter)**: [Install v0.1.3](https://openwebui.com/posts/403a62ee-a596-45e7-be65-fab9cc249dd6)
|
||||
|
||||
---
|
||||
|
||||
## 🚀 What's New in v0.9.0
|
||||
|
||||
### 1. OpenWebUI Skills ↔ SDK Sync
|
||||
|
||||
All skills are unified under `{OPENWEBUI_SKILLS_SHARED_DIR}/shared/` and synced automatically between DB and files.
|
||||
|
||||
### 2. `manage_skills` Tool
|
||||
|
||||
The built-in tool (not a skill) supports:
|
||||
|
||||
- `list`
|
||||
- `install` (single URL / multiple URLs)
|
||||
- `create`
|
||||
- `edit`
|
||||
- `show`
|
||||
- `delete`
|
||||
|
||||
### 3. Publishing Behavior
|
||||
|
||||
- HTML: `artifacts` (code-block embed output) or `richui` (emitter auto-render) mode.
|
||||
- PDF: Markdown links only (no iframe embed).
|
||||
|
||||
### 4. Environment Refactor (Detailed)
|
||||
|
||||
This release includes a substantial runtime environment redesign:
|
||||
|
||||
- **Persistent SDK config directory**
|
||||
- Introduced `COPILOTSDK_CONFIG_DIR`.
|
||||
- Resolution order: Valve override -> `/app/backend/data/.copilot` -> `~/.copilot` fallback.
|
||||
- Ensures session/config state survives container restarts in standard OpenWebUI deployments.
|
||||
|
||||
- **User + Chat isolated workspace model**
|
||||
- Workspace root is now `/app/backend/data/copilot_workspace` (container mode).
|
||||
- Effective path is isolated per user and chat: `/app/backend/data/copilot_workspace/{user_id}/{chat_id}`.
|
||||
- `user_id`/`chat_id` are sanitized to prevent traversal.
|
||||
|
||||
- **Deterministic CLI tool runtime under data volume**
|
||||
- Global tool root: `/app/backend/data/.copilot_tools`.
|
||||
- NPM prefix is forced to `/app/backend/data/.copilot_tools/npm` via `NPM_CONFIG_PREFIX`.
|
||||
- Python tool execution is isolated in `/app/backend/data/.copilot_tools/venv` via `VIRTUAL_ENV`.
|
||||
- `PYTHONUSERBASE` and `PIP_USER` are cleared to avoid leaking user-site installs.
|
||||
- PATH is rewritten to prioritize npm/venv bins for consistent tool resolution.
|
||||
|
||||
- **CLI bootstrap hardening**
|
||||
- Copilot CLI discovery chain: `COPILOT_CLI_PATH` -> system `PATH` -> SDK bundled binary.
|
||||
- `COPILOT_AUTO_UPDATE=false` to prevent uncontrolled runtime drift.
|
||||
- Successful discovery auto-injects CLI bin dir into PATH.
|
||||
|
||||
- **System prompt path context hardening**
|
||||
- Session context now injects explicit paths: isolated workspace, skills directory, config directory, and tools path.
|
||||
- This reduces ambiguity and prevents accidental writes outside the approved workspace.
|
||||
|
||||
- **Regular-user security boundary refinement**
|
||||
- Non-admin users still cannot access env vars/db/global internals.
|
||||
- They can read **their own current chat session metadata** under `COPILOTSDK_CONFIG_DIR` for troubleshooting.
|
||||
- Cross-user session access remains forbidden.
|
||||
|
||||
### 5. New Valves
|
||||
|
||||
- `COPILOTSDK_CONFIG_DIR`
|
||||
- `ENABLE_OPENWEBUI_SKILLS`
|
||||
- `OPENWEBUI_SKILLS_SHARED_DIR`
|
||||
- `DISABLED_SKILLS`
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Migration
|
||||
|
||||
- No breaking changes from v0.8.0.
|
||||
- `ENABLE_WORKSPACE_TOOLS` replaced by `ENABLE_OPENWEBUI_SKILLS`.
|
||||
|
||||
---
|
||||
|
||||
## 📚 Detailed Docs
|
||||
|
||||
- README: <https://github.com/Fu-Jie/openwebui-extensions/blob/main/plugins/pipes/github-copilot-sdk/README.md>
|
||||
- manage_skills Tool Guide: <https://github.com/Fu-Jie/openwebui-extensions/blob/main/plugins/pipes/github-copilot-sdk/SKILLS_MANAGER.md>
|
||||
Reference in New Issue
Block a user