mcp-rubber-duck 1.2.2 โ 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/Dockerfile +5 -3
- package/package.json +4 -1
- package/.github/workflows/docker-build.yml +0 -138
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [1.2.4](https://github.com/nesquikm/mcp-rubber-duck/compare/v1.2.3...v1.2.4) (2025-11-17)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* avoid npm ci on ARM64 by copying node_modules from builder ([b5a9777](https://github.com/nesquikm/mcp-rubber-duck/commit/b5a977772c44a138dc65554e8f2448be63fb0976))
|
|
7
|
+
|
|
8
|
+
## [1.2.3](https://github.com/nesquikm/mcp-rubber-duck/compare/v1.2.2...v1.2.3) (2025-11-17)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* resolve js-yaml security vulnerability with package override ([822a550](https://github.com/nesquikm/mcp-rubber-duck/commit/822a550397cb9b3e3966a8c5335c2ab1182bfd91))
|
|
14
|
+
|
|
1
15
|
## [1.2.2](https://github.com/nesquikm/mcp-rubber-duck/compare/v1.2.1...v1.2.2) (2025-09-17)
|
|
2
16
|
|
|
3
17
|
## [1.2.1](https://github.com/nesquikm/mcp-rubber-duck/compare/v1.2.0...v1.2.1) (2025-09-17)
|
package/Dockerfile
CHANGED
|
@@ -32,13 +32,15 @@ WORKDIR /app
|
|
|
32
32
|
# Copy package files
|
|
33
33
|
COPY package*.json ./
|
|
34
34
|
|
|
35
|
-
#
|
|
36
|
-
|
|
37
|
-
npm cache clean --force
|
|
35
|
+
# Copy production node_modules from builder (avoids npm ci issues with QEMU)
|
|
36
|
+
COPY --from=builder /app/node_modules ./node_modules
|
|
38
37
|
|
|
39
38
|
# Copy built application from builder
|
|
40
39
|
COPY --from=builder /app/dist ./dist
|
|
41
40
|
|
|
41
|
+
# Remove dev dependencies to reduce image size
|
|
42
|
+
RUN npm prune --production
|
|
43
|
+
|
|
42
44
|
# Copy configuration examples
|
|
43
45
|
COPY config/config.example.json ./config/
|
|
44
46
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-rubber-duck",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.4",
|
|
4
4
|
"description": "An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -61,5 +61,8 @@
|
|
|
61
61
|
"ts-jest": "^29.0.0",
|
|
62
62
|
"tsx": "^4.0.0",
|
|
63
63
|
"typescript": "^5.0.0"
|
|
64
|
+
},
|
|
65
|
+
"overrides": {
|
|
66
|
+
"js-yaml": "^4.1.1"
|
|
64
67
|
}
|
|
65
68
|
}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
name: ๐ณ Docker Build & Deploy
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [ master, main ]
|
|
6
|
-
paths-ignore:
|
|
7
|
-
- '**.md'
|
|
8
|
-
- 'docs/**'
|
|
9
|
-
- '.gitignore'
|
|
10
|
-
pull_request:
|
|
11
|
-
branches: [ master, main ]
|
|
12
|
-
paths-ignore:
|
|
13
|
-
- '**.md'
|
|
14
|
-
- 'docs/**'
|
|
15
|
-
- '.gitignore'
|
|
16
|
-
|
|
17
|
-
env:
|
|
18
|
-
REGISTRY: ghcr.io
|
|
19
|
-
IMAGE_NAME: ${{ github.repository }}
|
|
20
|
-
|
|
21
|
-
jobs:
|
|
22
|
-
test:
|
|
23
|
-
name: ๐งช Test
|
|
24
|
-
runs-on: ubuntu-latest
|
|
25
|
-
steps:
|
|
26
|
-
- name: ๐ฅ Checkout
|
|
27
|
-
uses: actions/checkout@v4
|
|
28
|
-
|
|
29
|
-
- name: ๐ฆ Setup Node.js
|
|
30
|
-
uses: actions/setup-node@v4
|
|
31
|
-
with:
|
|
32
|
-
node-version: '20'
|
|
33
|
-
cache: 'npm'
|
|
34
|
-
|
|
35
|
-
- name: ๐ฅ Install dependencies
|
|
36
|
-
run: npm ci
|
|
37
|
-
|
|
38
|
-
# Temporarily disabled lint to fix deployment
|
|
39
|
-
# - name: ๐ Lint
|
|
40
|
-
# run: npm run lint
|
|
41
|
-
|
|
42
|
-
- name: ๐๏ธ Build
|
|
43
|
-
run: npm run build
|
|
44
|
-
|
|
45
|
-
- name: ๐ฌ Type check
|
|
46
|
-
run: npm run typecheck
|
|
47
|
-
|
|
48
|
-
# Temporarily disabled tests to fix deployment
|
|
49
|
-
# - name: ๐งช Test
|
|
50
|
-
# run: npm test
|
|
51
|
-
|
|
52
|
-
build-and-push:
|
|
53
|
-
name: ๐ณ Build & Push
|
|
54
|
-
needs: test
|
|
55
|
-
runs-on: ubuntu-latest
|
|
56
|
-
# Only build images on push to master (not PRs)
|
|
57
|
-
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
|
|
58
|
-
permissions:
|
|
59
|
-
contents: read
|
|
60
|
-
packages: write
|
|
61
|
-
|
|
62
|
-
steps:
|
|
63
|
-
- name: ๐ฅ Checkout
|
|
64
|
-
uses: actions/checkout@v4
|
|
65
|
-
|
|
66
|
-
- name: ๐ ๏ธ Set up QEMU
|
|
67
|
-
uses: docker/setup-qemu-action@v3
|
|
68
|
-
|
|
69
|
-
- name: ๐ ๏ธ Set up Docker Buildx
|
|
70
|
-
uses: docker/setup-buildx-action@v3
|
|
71
|
-
|
|
72
|
-
- name: ๐ Login to Container Registry
|
|
73
|
-
uses: docker/login-action@v3
|
|
74
|
-
with:
|
|
75
|
-
registry: ${{ env.REGISTRY }}
|
|
76
|
-
username: ${{ github.actor }}
|
|
77
|
-
password: ${{ secrets.GITHUB_TOKEN }}
|
|
78
|
-
|
|
79
|
-
- name: ๐ท๏ธ Extract metadata
|
|
80
|
-
id: meta
|
|
81
|
-
uses: docker/metadata-action@v5
|
|
82
|
-
with:
|
|
83
|
-
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
|
84
|
-
tags: |
|
|
85
|
-
type=ref,event=branch
|
|
86
|
-
type=ref,event=pr
|
|
87
|
-
type=raw,value=latest,enable={{is_default_branch}}
|
|
88
|
-
type=raw,value={{date 'YYYY-MM-DD'}},enable={{is_default_branch}}
|
|
89
|
-
labels: |
|
|
90
|
-
org.opencontainers.image.title=MCP Rubber Duck
|
|
91
|
-
org.opencontainers.image.description=Multi-platform MCP server for multiple OpenAI-compatible LLMs
|
|
92
|
-
|
|
93
|
-
- name: ๐ณ Build and push Docker image
|
|
94
|
-
id: build
|
|
95
|
-
uses: docker/build-push-action@v5
|
|
96
|
-
with:
|
|
97
|
-
context: .
|
|
98
|
-
platforms: linux/amd64,linux/arm64
|
|
99
|
-
push: true
|
|
100
|
-
tags: ${{ steps.meta.outputs.tags }}
|
|
101
|
-
labels: ${{ steps.meta.outputs.labels }}
|
|
102
|
-
cache-from: type=gha
|
|
103
|
-
cache-to: type=gha,mode=max
|
|
104
|
-
build-args: |
|
|
105
|
-
BUILDKIT_INLINE_CACHE=1
|
|
106
|
-
|
|
107
|
-
- name: ๐ Image digest
|
|
108
|
-
run: echo ${{ steps.build.outputs.digest }}
|
|
109
|
-
|
|
110
|
-
- name: ๐ง Make package public
|
|
111
|
-
if: success()
|
|
112
|
-
run: |
|
|
113
|
-
# Wait a moment for package to appear
|
|
114
|
-
sleep 10
|
|
115
|
-
|
|
116
|
-
# Try to make package public (may fail if already public)
|
|
117
|
-
gh api --method PATCH \
|
|
118
|
-
"user/packages/container/${{ github.event.repository.name }}" \
|
|
119
|
-
--field visibility=public \
|
|
120
|
-
--silent || echo "Package may already be public or visibility change failed"
|
|
121
|
-
env:
|
|
122
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
123
|
-
|
|
124
|
-
- name: ๐ Image size
|
|
125
|
-
if: success()
|
|
126
|
-
run: |
|
|
127
|
-
echo "๐ **Docker Image Built Successfully!**" >> $GITHUB_STEP_SUMMARY
|
|
128
|
-
echo "" >> $GITHUB_STEP_SUMMARY
|
|
129
|
-
echo "๐ฆ **Image Details:**" >> $GITHUB_STEP_SUMMARY
|
|
130
|
-
echo "- ๐ท๏ธ **Tags:** \`${{ steps.meta.outputs.tags }}\`" >> $GITHUB_STEP_SUMMARY
|
|
131
|
-
echo "- ๐๏ธ **Platforms:** AMD64, ARM64" >> $GITHUB_STEP_SUMMARY
|
|
132
|
-
echo "- ๐ **Registry:** ${{ env.REGISTRY }}" >> $GITHUB_STEP_SUMMARY
|
|
133
|
-
echo "" >> $GITHUB_STEP_SUMMARY
|
|
134
|
-
echo "๐ **Quick Start:**" >> $GITHUB_STEP_SUMMARY
|
|
135
|
-
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
|
|
136
|
-
echo "docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest" >> $GITHUB_STEP_SUMMARY
|
|
137
|
-
echo "docker compose up -d" >> $GITHUB_STEP_SUMMARY
|
|
138
|
-
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
|