Files
Fu-Jie_openwebui-extensions/plugins/pipes/github-copilot-sdk/v0.9.0.md
Fu-Jie 0c7201902c 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
2026-02-28 03:50:56 +08:00

102 lines
4.3 KiB
Markdown

# 🚀 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>