Skip to content
This repository was archived by the owner on Jan 29, 2026. It is now read-only.

Commit 8fee9eb

Browse files
Copilotclduab11
andcommitted
Merge main branch and resolve conflicts
- Merge latest changes from main branch - Adopt Pino structured logger from main (replaces simple logger) - Integrate backup system with new request tracking middleware - Maintain all backup functionality with improved logging - Server now uses Pino logger for structured output - Backup system compatible with production logging standards Co-authored-by: clduab11 <185000089+clduab11@users.noreply.github.com>
1 parent d8d3767 commit 8fee9eb

File tree

23 files changed

+2343
-65
lines changed

23 files changed

+2343
-65
lines changed

DOCKER.md

Lines changed: 508 additions & 0 deletions
Large diffs are not rendered by default.

GEMINI.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ gemini-flow is now available as an official Gemini CLI extension, packaging:
2929

3030
```bash
3131
# Install from GitHub
32-
gemini extensions install github:clduab11/gemini-flow
32+
gemini extensions install https://github.com/clduab11/gemini-flow
3333

3434
# Install from local clone
3535
cd /path/to/gemini-flow
@@ -39,6 +39,8 @@ gemini extensions install .
3939
gemini extensions enable gemini-flow
4040
```
4141

42+
> **⚠️ Important**: Use the full GitHub URL (`https://github.com/clduab11/gemini-flow`). The shorthand syntax `github:username/repo` is **not supported** and will cause installation errors.
43+
4244
### Using gemini-flow Commands
4345

4446
Once enabled, use gemini-flow commands directly in Gemini CLI:
@@ -100,7 +102,7 @@ gemini-flow also includes its own extension management commands:
100102

101103
```bash
102104
# Using gem-extensions command
103-
gemini-flow gem-extensions install github:user/extension
105+
gemini-flow gem-extensions install https://github.com/user/extension
104106
gemini-flow gem-extensions list
105107
gemini-flow gem-extensions enable extension-name
106108
gemini-flow gem-extensions info extension-name
@@ -157,7 +159,7 @@ This documentation is specifically engineered for **Gemini Code Assist** using G
157159
gemini-flow is now available as an official Gemini CLI extension. Install it with:
158160

159161
```bash
160-
gemini extensions install github:clduab11/gemini-flow
162+
gemini extensions install https://github.com/clduab11/gemini-flow
161163
```
162164

163165
---

README.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ gemini-flow init --protocols a2a,mcp --topology hierarchical
3636
gemini-flow agents spawn --count 50 --specialization "enterprise-ready"
3737

3838
# NEW: Official Gemini CLI Extension (October 8, 2025)
39-
gemini extensions install github:clduab11/gemini-flow # Install as Gemini extension
40-
gemini extensions enable gemini-flow # Enable the extension
41-
gemini hive-mind spawn "Build AI application" # Use commands in Gemini CLI
39+
gemini extensions install https://github.com/clduab11/gemini-flow # Install as Gemini extension
40+
gemini extensions enable gemini-flow # Enable the extension
41+
gemini hive-mind spawn "Build AI application" # Use commands in Gemini CLI
4242
```
4343

4444
**🚀 Modern Protocol Support**: Native A2A and MCP integration for seamless inter-agent communication and model coordination
@@ -489,7 +489,7 @@ gemini-flow is now available as an **official Gemini CLI extension**, providing
489489

490490
```bash
491491
# Install from GitHub
492-
gemini extensions install github:clduab11/gemini-flow
492+
gemini extensions install https://github.com/clduab11/gemini-flow
493493

494494
# Install from local clone
495495
cd /path/to/gemini-flow
@@ -499,6 +499,8 @@ gemini extensions install .
499499
gemini extensions enable gemini-flow
500500
```
501501

502+
> **Note**: Always use the full GitHub URL format (`https://github.com/username/repo`). The shorthand syntax `github:username/repo` is **not supported** by Gemini CLI and will result in "Install source not found" errors.
503+
502504
### What's Included
503505

504506
The extension packages gemini-flow's complete AI orchestration platform:
@@ -560,7 +562,7 @@ gemini-flow also includes its own extension management commands:
560562

561563
```bash
562564
# Using gem-extensions command
563-
gemini-flow gem-extensions install github:user/extension
565+
gemini-flow gem-extensions install https://github.com/user/extension
564566
gemini-flow gem-extensions list
565567
gemini-flow gem-extensions enable extension-name
566568
gemini-flow gem-extensions info extension-name

backend/.dockerignore

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Dependencies
2+
node_modules
3+
npm-debug.log
4+
yarn-error.log
5+
pnpm-debug.log
6+
7+
# Environment files
8+
.env
9+
.env.*
10+
!.env.example
11+
12+
# Git
13+
.git
14+
.gitignore
15+
16+
# Data directories (should be volume mounted)
17+
.data
18+
.data-test
19+
.data/*
20+
backups
21+
logs
22+
23+
# Testing
24+
coverage
25+
*.test.js
26+
*.spec.js
27+
__tests__
28+
29+
# Documentation (except README)
30+
*.md
31+
!README.md
32+
33+
# IDE
34+
.vscode
35+
.idea
36+
*.swp
37+
*.swo
38+
*~
39+
40+
# OS
41+
.DS_Store
42+
Thumbs.db
43+
.Spotlight-V100
44+
.Trashes
45+
46+
# Build artifacts
47+
dist
48+
build
49+
*.tgz
50+
51+
# Temporary files
52+
tmp
53+
temp
54+
*.tmp
55+
*.cache
56+
57+
# Development
58+
nodemon.json
59+
.eslintrc*
60+
.prettierrc*

backend/.env.example

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,13 @@ GOOGLE_AI_API_KEY=your_google_ai_api_key_here
1111
PORT=3001
1212

1313
# CORS Origins (for development)
14-
CORS_ORIGINS=http://localhost:5173,http://localhost:3000
14+
CORS_ORIGINS=http://localhost:5173,http://localhost:3000
15+
16+
# Logging Configuration
17+
# Log levels: trace, debug, info, warn, error, fatal
18+
# Recommended: 'debug' for development, 'info' for production
19+
LOG_LEVEL=info
20+
21+
# Environment (affects log formatting)
22+
# 'development' enables pretty printing, 'production' uses JSON
23+
NODE_ENV=development

backend/Dockerfile

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# =============================================================================
2+
# Stage 1: Builder - Install dependencies and prepare application
3+
# =============================================================================
4+
FROM node:18-alpine AS builder
5+
6+
WORKDIR /app
7+
8+
# Copy package files first (for better caching)
9+
COPY package*.json ./
10+
11+
# Install ALL dependencies (including devDependencies for potential build steps)
12+
RUN npm ci && npm cache clean --force
13+
14+
# Copy application source
15+
COPY . .
16+
17+
# Remove development dependencies
18+
RUN npm prune --production
19+
20+
# =============================================================================
21+
# Stage 2: Production - Minimal runtime image
22+
# =============================================================================
23+
FROM node:18-alpine
24+
25+
# Install dumb-init to handle PID 1 responsibilities
26+
RUN apk add --no-cache dumb-init
27+
28+
# Create non-root user and group
29+
RUN addgroup -g 1001 -S nodejs && \
30+
adduser -S geminiflow -u 1001 -G nodejs
31+
32+
WORKDIR /app
33+
34+
# Create data directory with correct permissions
35+
RUN mkdir -p .data logs && \
36+
chown -R geminiflow:nodejs .data logs
37+
38+
# Copy dependencies from builder stage
39+
COPY --from=builder --chown=geminiflow:nodejs /app/node_modules ./node_modules
40+
41+
# Copy application code with correct ownership
42+
COPY --chown=geminiflow:nodejs package*.json ./
43+
COPY --chown=geminiflow:nodejs src ./src
44+
45+
# Switch to non-root user
46+
USER geminiflow
47+
48+
# Expose port
49+
EXPOSE 3001
50+
51+
# Health check (runs as non-root user)
52+
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
53+
CMD node -e "require('http').get('http://localhost:3001/health', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})" || exit 1
54+
55+
# Use dumb-init to handle signals properly
56+
ENTRYPOINT ["dumb-init", "--"]
57+
58+
# Start server
59+
CMD ["node", "src/server.js"]
60+
61+
# Metadata
62+
LABEL org.opencontainers.image.title="Gemini Flow Backend" \
63+
org.opencontainers.image.description="Backend API and WebSocket server for Gemini Flow" \
64+
org.opencontainers.image.version="1.0.0" \
65+
org.opencontainers.image.vendor="Gemini Flow" \
66+
org.opencontainers.image.source="https://github.com/clduab11/gemini-flow" \
67+
maintainer="clduab11"

0 commit comments

Comments
 (0)