* 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
4.3 KiB
4.3 KiB
🚀 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_skillsTool (Extension): In-session deterministic skill lifecycle tool forlist/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.mdplus templates/scripts/resources. - 🧱 Environment Refactor: New persistent config/workspace/toolchain layout under
/app/backend/datawith stricter isolation and better reproducibility.
📦 Quick Installation
- GitHub Copilot SDK (Pipe): Install v0.9.0
- GitHub Copilot SDK (Filter): Install v0.1.3
🚀 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:
listinstall(single URL / multiple URLs)createeditshowdelete
3. Publishing Behavior
- HTML:
artifacts(code-block embed output) orrichui(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->~/.copilotfallback. - Ensures session/config state survives container restarts in standard OpenWebUI deployments.
- Introduced
-
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_idare sanitized to prevent traversal.
- Workspace root is now
-
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/npmviaNPM_CONFIG_PREFIX. - Python tool execution is isolated in
/app/backend/data/.copilot_tools/venvviaVIRTUAL_ENV. PYTHONUSERBASEandPIP_USERare cleared to avoid leaking user-site installs.- PATH is rewritten to prioritize npm/venv bins for consistent tool resolution.
- Global tool root:
-
CLI bootstrap hardening
- Copilot CLI discovery chain:
COPILOT_CLI_PATH-> systemPATH-> SDK bundled binary. COPILOT_AUTO_UPDATE=falseto prevent uncontrolled runtime drift.- Successful discovery auto-injects CLI bin dir into PATH.
- Copilot CLI discovery chain:
-
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_DIRfor troubleshooting. - Cross-user session access remains forbidden.
5. New Valves
COPILOTSDK_CONFIG_DIRENABLE_OPENWEBUI_SKILLSOPENWEBUI_SKILLS_SHARED_DIRDISABLED_SKILLS
🔄 Migration
- No breaking changes from v0.8.0.
ENABLE_WORKSPACE_TOOLSreplaced byENABLE_OPENWEBUI_SKILLS.