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

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_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


🚀 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