Skip to content

Commit fd75bed

Browse files
devartifexCopilot
andauthored
feat: Phase 0+1 — Infrastructure, GHAS, GitHub Flow + SDK features
* ci: add CodeQL scanning workflow and secret scanning setup script - Create .github/workflows/codeql.yml (JS/TS analysis, weekly + PR triggers) - Create scripts/setup-security.sh for enabling secret scanning + push protection - Update SECURITY.md with secret scanning documentation Closes #78 Closes #79 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * ci: add branch protection script and release-please workflow - Create scripts/setup-branch-protection.sh (gh api, requires admin) - Create .github/workflows/release.yml (release-please for semver + changelog) - Create release-please-config.json and .release-please-manifest.json Closes #75 Closes #80 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * ci: enhance CI with Playwright E2E, conventional commit check, caching - Add e2e job with Playwright desktop tests and artifact upload on failure - Add commit-lint job checking PR title against conventional commits pattern - Add concurrency group to cancel redundant runs - Add npm cache via setup-node Closes #70 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: enhance PR template, YAML issue forms, and CODEOWNERS - Upgrade PR template with GitHub Flow + security checklist - Convert issue templates from Markdown to YAML forms - Add SDK feature issue template - Add security advisory contact link - Create CODEOWNERS with path-based ownership Closes #73 Closes #74 Closes #77 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * ci: add PR auto-labeler and stale issues/PR management - Create labeler config with 10 path-based labels (backend, frontend, sdk, etc.) - Create labeler.yml workflow using actions/labeler@v5 - Create stale.yml workflow (30-day stale, 7-day close, exempt security/killer-feature) Closes #71 Closes #72 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: add Copilot prompt files and rewrite copilot-instructions.md - Create 4 prompt files: generate-test, review-security, add-feature, fix-bug - Rewrite copilot-instructions.md with accurate counts (20 components, 78 message types) - Add skills system, testing sections, updated project structure Closes #76 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * feat: adopt awesome-copilot skills, agents, instructions, and workflows Skills added (4): github-issues, doublecheck, copilot-spaces, automate-this Agents added (6): 4.1-Beast, critical-thinking, implementation-plan, refine-issue, polyglot-test-generator, adr-generator Instructions added (2): code-review-generic, performance-optimization Workflows added (2): codespell, check-pr-target Closes #86 Closes #87 Closes #88 Closes #69 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * feat: add SDK SessionHooks support (#49) Wire all six SDK session hooks (onPreToolUse, onPostToolUse, onSessionStart, onSessionEnd, onErrorOccurred) to forward events over WebSocket as new message types. Changes: - Add HookPreToolMessage, HookPostToolMessage, HookSessionStartMessage, HookSessionEndMessage, HookErrorMessage types to ServerMessage union - Add HookEventCallback type and buildSessionHooks() factory to session.ts - Add onHookEvent option to CreateSessionOptions - Wire hooks in both session creation paths in handler.ts - Add 7 unit tests covering all hook types and wiring Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: validate attachment paths to prevent arbitrary file reads (#52) - Add isValidAttachmentPath() to ensure attachment paths are inside the upload directory (tmpdir/copilot-uploads/), preventing malicious WebSocket clients from reading arbitrary server files via the SDK - Log rejected paths via security logger at warn level - Add unit tests for path validation (8 tests covering traversal, relative paths, prefix spoofing, etc.) - Add image-specific upload tests verifying all 5 image types (jpg, jpeg, png, gif, webp) are accepted with correct MIME types - Add test verifying upload returns absolute server-side paths Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: complete MCP server integration (#51) - Extract parseMcpServers() helper with defense-in-depth enabled filtering - Pass MCP servers (GitHub + user) on resume_session (SDK + fallback) - Update ResumeSessionMessage type to include mcpServers - Client sends enabled MCP servers when resuming sessions - Add unit tests for MCP parser (9 tests) and session config (3 tests) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: add path traversal protection to session persistence (#55) - Add isValidSessionId() UUID validation for getSessionDetail/buildSessionContext - Reset isProcessing flag on resume to prevent stale state - Add 4 unit tests for UUID validation and path traversal rejection Closes #55 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 03bd63d commit fd75bed

49 files changed

Lines changed: 3654 additions & 116 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.codespellrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[codespell]
2+
skip = node_modules,build,dist,coverage,playwright-report,package-lock.json,.svelte-kit,bundled-sessions,bundled-session-store.db
3+
ignore-words-list = crate,ot

.github/CODEOWNERS

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Default owner for all files
2+
* @devartifex
3+
4+
# Backend / SDK integration
5+
/src/lib/server/ @devartifex
6+
/server.js @devartifex
7+
8+
# Frontend components & stores
9+
/src/lib/components/ @devartifex
10+
/src/lib/stores/ @devartifex
11+
12+
# Infrastructure & deployment
13+
/Dockerfile @devartifex
14+
/docker-compose.yml @devartifex
15+
/infra/ @devartifex
16+
17+
# CI/CD & GitHub config
18+
/.github/workflows/ @devartifex
19+
/.github/agents/ @devartifex
20+
/.github/instructions/ @devartifex
21+
22+
# Documentation
23+
/docs/ @devartifex
24+
25+
# Tests
26+
/tests/ @devartifex
27+
/playwright.config.ts @devartifex
28+
29+
# Skills
30+
/skills/ @devartifex

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 0 additions & 28 deletions
This file was deleted.
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: 🐛 Bug Report
2+
description: Report a bug or unexpected behavior
3+
labels: ["bug"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: "Thanks for reporting a bug! Please fill out the form below."
8+
- type: textarea
9+
id: description
10+
attributes:
11+
label: Describe the bug
12+
description: A clear description of what the bug is.
13+
validations:
14+
required: true
15+
- type: textarea
16+
id: steps
17+
attributes:
18+
label: Steps to reproduce
19+
description: Steps to reproduce the behavior.
20+
placeholder: |
21+
1. Go to '...'
22+
2. Click on '...'
23+
3. See error
24+
validations:
25+
required: true
26+
- type: textarea
27+
id: expected
28+
attributes:
29+
label: Expected behavior
30+
description: What you expected to happen.
31+
validations:
32+
required: true
33+
- type: textarea
34+
id: screenshots
35+
attributes:
36+
label: Screenshots / Recordings
37+
description: If applicable, add screenshots or screen recordings.
38+
- type: dropdown
39+
id: browser
40+
attributes:
41+
label: Browser
42+
options:
43+
- Chrome
44+
- Firefox
45+
- Safari
46+
- Edge
47+
- Other
48+
validations:
49+
required: true
50+
- type: dropdown
51+
id: device
52+
attributes:
53+
label: Device
54+
options:
55+
- Desktop
56+
- Tablet
57+
- Phone
58+
validations:
59+
required: true
60+
- type: input
61+
id: deployment
62+
attributes:
63+
label: Deployment type
64+
placeholder: "Docker, Azure, Local dev"

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
11
blank_issues_enabled: true
2+
contact_links:
3+
- name: 🔒 Security Vulnerability
4+
url: https://github.com/devartifex/copilot-unleashed/security/advisories/new
5+
about: Report security vulnerabilities privately

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 0 additions & 19 deletions
This file was deleted.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: ✨ Feature Request
2+
description: Suggest a new feature or improvement
3+
labels: ["enhancement"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: "Thanks for suggesting a feature!"
8+
- type: textarea
9+
id: problem
10+
attributes:
11+
label: Is your feature request related to a problem?
12+
description: A clear description of the problem.
13+
- type: textarea
14+
id: solution
15+
attributes:
16+
label: Describe the solution you'd like
17+
description: What you want to happen.
18+
validations:
19+
required: true
20+
- type: textarea
21+
id: alternatives
22+
attributes:
23+
label: Alternatives considered
24+
description: Any alternative solutions or features you've considered.
25+
- type: dropdown
26+
id: area
27+
attributes:
28+
label: Area
29+
options:
30+
- UI/UX
31+
- Backend/SDK
32+
- CI/CD
33+
- Security
34+
- Documentation
35+
- Other
36+
validations:
37+
required: true
38+
- type: textarea
39+
id: context
40+
attributes:
41+
label: Additional context
42+
description: Any other context or screenshots.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: 🔌 SDK Feature
2+
description: Track a Copilot SDK feature implementation or verification
3+
labels: ["enhancement"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: "Track implementation/verification of a @github/copilot-sdk feature."
8+
- type: input
9+
id: sdk_feature
10+
attributes:
11+
label: SDK Feature Name
12+
placeholder: "e.g., Hooks, MCP Servers, Image Input"
13+
validations:
14+
required: true
15+
- type: input
16+
id: sdk_doc
17+
attributes:
18+
label: SDK Documentation Link
19+
placeholder: "https://github.com/github/copilot-sdk/blob/main/docs/features/..."
20+
- type: dropdown
21+
id: status
22+
attributes:
23+
label: Current Implementation Status
24+
options:
25+
- Not implemented
26+
- Partially implemented
27+
- Implemented but needs verification
28+
validations:
29+
required: true
30+
- type: textarea
31+
id: tasks
32+
attributes:
33+
label: Implementation Tasks
34+
description: What needs to be done to complete this feature.
35+
validations:
36+
required: true
37+
- type: textarea
38+
id: affected_files
39+
attributes:
40+
label: Affected Files
41+
description: Which files need to be created or modified.

0 commit comments

Comments
 (0)