Skip to content

Commit 41fccb9

Browse files
Merge upstream/main into 012-unified-health-status
Resolved conflicts in CLAUDE.md: kept unified health status docs, added REST API reference and Windows/Prerelease sections from upstream 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2 parents bdb5b84 + c7079d6 commit 41fccb9

60 files changed

Lines changed: 25725 additions & 576 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: CLAUDE.md Size Check
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- 'CLAUDE.md'
7+
8+
jobs:
9+
check-size:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
14+
- name: Check CLAUDE.md size
15+
run: |
16+
SIZE=$(wc -c < CLAUDE.md)
17+
echo "CLAUDE.md size: $SIZE characters"
18+
echo ""
19+
20+
if [ $SIZE -gt 40000 ]; then
21+
echo "::error file=CLAUDE.md::CLAUDE.md exceeds 40,000 character limit ($SIZE chars)."
22+
echo ""
23+
echo "To fix this issue:"
24+
echo " 1. Move detailed content to docs/ folder"
25+
echo " 2. Add a link like: See [docs/topic.md](docs/topic.md) for details"
26+
echo " 3. Keep CLAUDE.md focused on essential context only"
27+
echo ""
28+
echo "Target size: <25,000 characters for optimal AI agent performance"
29+
exit 1
30+
elif [ $SIZE -gt 38000 ]; then
31+
echo "::warning file=CLAUDE.md::CLAUDE.md approaching limit: $SIZE/40,000 characters."
32+
echo ""
33+
echo "Consider moving detailed content to docs/ folder to stay under the limit."
34+
echo "Target size: <25,000 characters for optimal AI agent performance"
35+
else
36+
echo "CLAUDE.md size OK: $SIZE/40,000 characters"
37+
fi

.github/workflows/docs.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: Documentation
2+
3+
on:
4+
# Build validation on PRs
5+
pull_request:
6+
paths:
7+
- 'docs/**'
8+
- 'website/**'
9+
- '.github/workflows/docs.yml'
10+
11+
# Deploy on push to main
12+
push:
13+
branches:
14+
- main
15+
paths:
16+
- 'docs/**'
17+
- 'website/**'
18+
- '.github/workflows/docs.yml'
19+
20+
jobs:
21+
build:
22+
runs-on: ubuntu-latest
23+
steps:
24+
- uses: actions/checkout@v4
25+
26+
- name: Setup Node.js
27+
uses: actions/setup-node@v4
28+
with:
29+
node-version: '20'
30+
cache: 'npm'
31+
cache-dependency-path: website/package-lock.json
32+
33+
- name: Install dependencies
34+
working-directory: website
35+
run: npm ci
36+
37+
- name: Build documentation
38+
working-directory: website
39+
run: npm run build
40+
41+
- name: Verify build output
42+
run: |
43+
if [ ! -f website/build/index.html ]; then
44+
echo "::error::Documentation build failed - no index.html found"
45+
exit 1
46+
fi
47+
48+
if [ ! -f website/build/llms.txt ]; then
49+
echo "::warning::llms.txt not generated"
50+
fi
51+
52+
echo "Documentation build successful!"
53+
echo "Build size: $(du -sh website/build | cut -f1)"
54+
echo "Pages: $(find website/build -name '*.html' | wc -l)"
55+
56+
# Deploy to Cloudflare Pages on push to main (skipped for forks/PRs)
57+
- name: Deploy to Cloudflare Pages
58+
if: |
59+
github.event_name == 'push' &&
60+
github.ref == 'refs/heads/main' &&
61+
github.repository == 'smart-mcp-proxy/mcpproxy-go'
62+
uses: cloudflare/wrangler-action@v3
63+
with:
64+
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
65+
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
66+
command: pages deploy website/build --project-name=mcpproxy-docs
67+
continue-on-error: true

.github/workflows/release.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1160,3 +1160,65 @@ jobs:
11601160
git push
11611161
echo "Changes committed and pushed successfully"
11621162
fi
1163+
1164+
# Deploy documentation to Cloudflare Pages
1165+
deploy-docs:
1166+
needs: release
1167+
runs-on: ubuntu-latest
1168+
if: startsWith(github.ref, 'refs/tags/v') && github.repository == 'smart-mcp-proxy/mcpproxy-go'
1169+
# Non-blocking: docs failure doesn't block release
1170+
continue-on-error: true
1171+
1172+
steps:
1173+
- name: Checkout
1174+
uses: actions/checkout@v4
1175+
1176+
- name: Setup Node.js
1177+
uses: actions/setup-node@v4
1178+
with:
1179+
node-version: '20'
1180+
cache: 'npm'
1181+
cache-dependency-path: website/package-lock.json
1182+
1183+
- name: Set version for docs
1184+
run: |
1185+
VERSION="${{ github.ref_name }}"
1186+
# Extract minor version: v0.11.2 → 0.11
1187+
MINOR_VERSION=$(echo "$VERSION" | sed 's/^v//' | cut -d. -f1,2)
1188+
echo "MCPPROXY_VERSION=$MINOR_VERSION" >> $GITHUB_ENV
1189+
echo "Documentation version: $MINOR_VERSION"
1190+
1191+
- name: Install dependencies
1192+
working-directory: website
1193+
run: npm ci
1194+
1195+
- name: Build docs with version
1196+
working-directory: website
1197+
run: |
1198+
# Inject version into config
1199+
sed -i "s/__VERSION__/$MCPPROXY_VERSION/g" docusaurus.config.js
1200+
npm run build
1201+
1202+
- name: Deploy to Cloudflare Pages
1203+
uses: cloudflare/wrangler-action@v3
1204+
with:
1205+
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
1206+
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
1207+
command: pages deploy website/build --project-name=mcpproxy-docs
1208+
1209+
# Trigger marketing site to update download links
1210+
trigger-marketing-update:
1211+
needs: release
1212+
runs-on: ubuntu-latest
1213+
if: startsWith(github.ref, 'refs/tags/v') && github.repository == 'smart-mcp-proxy/mcpproxy-go'
1214+
# Non-blocking: marketing update failure doesn't block release
1215+
continue-on-error: true
1216+
1217+
steps:
1218+
- name: Trigger marketing site update
1219+
uses: peter-evans/repository-dispatch@v3
1220+
with:
1221+
token: ${{ secrets.MARKETING_SITE_DISPATCH_TOKEN }}
1222+
repository: smart-mcp-proxy/mcpproxy.app-website
1223+
event-type: update-version
1224+
client-payload: '{"version": "${{ github.ref_name }}"}'

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,3 +124,12 @@ internal_docs/
124124

125125
# Git worktrees
126126
.worktrees/
127+
128+
# Docusaurus documentation site
129+
website/build/
130+
website/.docusaurus/
131+
website/.cache-loader/
132+
website/node_modules/
133+
website/docs/
134+
website/npm-debug.log*
135+
website/yarn-error.log*

0 commit comments

Comments
 (0)