Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
3b1c136
feat: add repository-map.md (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
402ecb7
feat: add issue-task-checklist.md (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
545f4ae
feat: add CODEOWNERS (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
76b59f1
feat: add openapi.yaml (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
15b5813
feat: add .versionrc (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
15607c4
feat: add CHANGELOG.md (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
6e4132d
feat: add bug_report.md (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
da6a6ab
feat: add feature_request.md (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
8b73ead
feat: add Dockerfile (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
ca1cc68
feat: add docker-compose.yml (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
de25bb1
feat: add .dockerignore (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
a472d08
feat: add index.js (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
a3d7052
feat: add index.js (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
dca1181
feat: add agent-system.txt (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
dda3297
feat: add orchestrator-routing.txt (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
e921926
feat: add settlement-review.txt (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
a21fbee
feat: add index.js (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
2dab8e8
feat: add circuit-breaker.js (Stellar Wave #23-#48)
laurentketterle-hub Aug 9, 2026
ecf7686
docs: add environment variables table (#43)
laurentketterle-hub Aug 9, 2026
ab54124
fix: lint errors - prefix unused options param with underscore
laurentketterle-hub Aug 10, 2026
6d9fea3
fix: lint - prefix unused params with underscore in providers/index.js
laurentketterle-hub Aug 10, 2026
cdf3c8d
style: fix Prettier formatting
laurentketterle-hub Aug 12, 2026
e58b0ee
style: fix Prettier formatting
laurentketterle-hub Aug 12, 2026
e19f1bf
style: fix Prettier formatting
laurentketterle-hub Aug 12, 2026
10aeeeb
style: fix Prettier formatting
laurentketterle-hub Aug 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
node_modules
.git
.gitignore
*.md
!README.md
.env
.DS_Store
logs/
*.log
tests/
coverage/
.nyc_output/
19 changes: 19 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,22 @@ RUN_HISTORY_STORAGE=file
RUN_HISTORY_FILE=./data/run-history.json
# Max number of recent runs to keep
RUN_HISTORY_MAX_RUNS=200

# ============================================
# Environment Variables Reference (Stellar Wave #43)
# ============================================
# | Variable | Required | Default | Description |
# |-----------------------|----------|-------------------|--------------------------------------|
# | PORT | No | 3000 | Server port |
# | NODE_ENV | No | development | Environment (development/production) |
# | LOG_LEVEL | No | info | Logging level (debug/info/warn/error)|
# | API_KEY | Yes | — | Master API key for auth |
# | JWT_SECRET | Yes | — | Secret for JWT token signing |
# | PROVIDER_OPENAI_KEY | No | — | OpenAI API key |
# | PROVIDER_ANTHROPIC_KEY| No | — | Anthropic API key |
# | RATE_LIMIT_WINDOW_MS | No | 60000 | Rate limit window in ms |
# | RATE_LIMIT_MAX | No | 100 | Max requests per window |
# | AUDIT_DIR | No | logs/audit | Audit log directory |
# | AUDIT_RETENTION_DAYS | No | 90 | Audit retention period (days) |
# | REDIS_URL | No | — | Redis connection URL (optional) |
Comment on lines +69 to +82

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

Align the environment-variable table with src/config.js.

PORT defaults to 3001, not 3000. The runtime reads ANTHROPIC_API_KEY, not PROVIDER_ANTHROPIC_KEY. The runtime also uses RATE_LIMIT_*_SEC variables, not RATE_LIMIT_WINDOW_MS.

Regenerate this table from the configuration contract. Document the Docker port override separately if the container must use port 3000.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.env.example around lines 69 - 82, Update the environment-variable table to
match the configuration contract in src/config.js: change PORT’s default to
3001, rename PROVIDER_ANTHROPIC_KEY to ANTHROPIC_API_KEY, and replace
RATE_LIMIT_WINDOW_MS with the runtime’s RATE_LIMIT_*_SEC variables. If Docker
still overrides the port to 3000, document that separately rather than in the
application default table.

# ============================================
14 changes: 14 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Code Owners
# Automatically request reviews from the right people

# Core infrastructure
* @Flamki

# Documentation
*.md @Flamki
docs/ @Flamki

# CI/CD workflows
.github/workflows/ @Flamki

# Generated for Stellar Wave bounty #41
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
name: Bug Report
about: Report a bug to help improve StellarMind
title: '[BUG] '
labels: ['bug', 'triage']
assignees: []
---

### Description
A clear and concise description of the bug.

### Steps to Reproduce
1. Go to '...'
2. Click on '...'
3. Scroll to '...'
4. See error

### Expected Behavior
What you expected to happen.

### Actual Behavior
What actually happened.

### Screenshots
If applicable, add screenshots.

### Environment
- OS: [e.g. Windows, macOS, Linux]
- Browser: [e.g. Chrome, Firefox]
- Node.js version: [e.g. 20.11]
- StellarMind version: [e.g. 1.0.0]

### Additional Context
Add any other context about the problem here.

_Generated for Stellar Wave bounty #32_
27 changes: 27 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
name: Feature Request
about: Suggest a new feature for StellarMind
title: '[FEATURE] '
labels: ['enhancement', 'triage']
assignees: []
---

### Problem Statement
A clear description of the problem this feature would solve.

### Proposed Solution
Describe the solution you'd like.

### Alternatives Considered
Describe any alternative solutions you've considered.

### Use Case
Who would benefit from this feature and how?

### Implementation Ideas
Any initial thoughts on how this could be implemented.

### Additional Context
Add any other context or screenshots about the feature request.
Comment on lines +9 to +25

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Make the issue templates collect the required triage data.

The templates do not expose explicit fields for all required inputs. Add structured fields instead of relying on free-form context.

  • .github/ISSUE_TEMPLATE/feature_request.md#L9-L25: add Acceptance Criteria, Security / Privacy Considerations, and Logs / Diagnostics; tell reporters not to include secrets.
  • .github/ISSUE_TEMPLATE/bug_report.md#L24-L34: add Logs / Diagnostics and Security Impact; tell reporters to redact secrets and use private reporting for suspected vulnerabilities.
📍 Affects 2 files
  • .github/ISSUE_TEMPLATE/feature_request.md#L9-L25 (this comment)
  • .github/ISSUE_TEMPLATE/bug_report.md#L24-L34
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/ISSUE_TEMPLATE/feature_request.md around lines 9 - 25, Update
.github/ISSUE_TEMPLATE/feature_request.md lines 9-25 to add structured
Acceptance Criteria, Security / Privacy Considerations, and Logs / Diagnostics
fields, explicitly instructing reporters not to include secrets. Update
.github/ISSUE_TEMPLATE/bug_report.md lines 24-34 to add structured Logs /
Diagnostics and Security Impact fields, instructing reporters to redact secrets
and use private reporting for suspected vulnerabilities.


_Generated for Stellar Wave bounty #32_
17 changes: 17 additions & 0 deletions .versionrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"types": [
{"type": "feat", "section": "Features"},
{"type": "fix", "section": "Bug Fixes"},
{"type": "docs", "section": "Documentation"},
{"type": "style", "section": "Styles"},
{"type": "refactor", "section": "Code Refactoring"},
{"type": "perf", "section": "Performance Improvements"},
{"type": "test", "section": "Tests"},
{"type": "build", "section": "Build System"},
{"type": "ci", "section": "CI/CD"},
{"type": "chore", "section": "Chores"}
],
"commitUrlFormat": "https://github.com/Flamki/stellarmind/commit/{{hash}}",
"compareUrlFormat": "https://github.com/Flamki/stellarmind/compare/{{previousTag}}...{{currentTag}}",
"issueUrlFormat": "https://github.com/Flamki/stellarmind/issues/{{id}}"
}
Comment on lines +1 to +17

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Expect: package.json declares a release tool and script.
rg -n '"(semantic-release|standard-version|commit-and-tag-version)"|"release"|changelog' package.json || true

# Expect: documentation names the same tool and release command.
rg --hidden -n --glob '!.git' --glob 'package.json' --glob '.versionrc' --glob '*.md' \
  'semantic-release|standard-version|commit-and-tag-version|npm (run )?release|CHANGELOG|git tag|rollback' . || true

Repository: Flamki/stellarmind

Length of output: 156


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== repo files =="
git ls-files | sed -n '1,120p'

echo
echo "== package files =="
fd -a '^(package(-lock)?\.json|pnpm-lock\.yaml|yarn.lock|bun.lockb?)$' . | sort

echo
echo "== .versionrc =="
if [ -f .versionrc ]; then cat -n .versionrc; else echo "no .versionrc"; fi

echo
echo "== package.json dependency/script excerpt =="
if [ -f package.json ]; then python3 - <<'PY'
import json
p=json.load(open('package.json'))
for key in ['dependencies','devDependencies','scripts']:
    print(key, json.dumps(p.get(key, None), sort_keys=True, indent=2)[:2000])
PY
fi

echo
echo "== README/headings =="
fd -a '^readme\.md$|^README\.md$|^CONTRIBUTING\.md$|^CHANGELOG\.md$' . | while read -r f; do
  echo "--- $f"
  sed -n '1,80p' "$f"
done

Repository: Flamki/stellarmind

Length of output: 10723


Wire .versionrc to an installed release tool.

.versionrc only affects changelog/release commands that read it; package.json has no matching release dependency, release script, or documentation. Add the intended tool/command and docs, or remove this config and any unused changelog generation step.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.versionrc around lines 1 - 17, Align the release configuration with an
actually installed release workflow: either add the release tool dependency,
package command, and usage documentation that consume `.versionrc`, or remove
`.versionrc` and any unused changelog-generation step. Ensure no orphaned
release configuration remains.

21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Changelog

All notable changes to StellarMind will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.0] — 2026-08-09

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Complete the 1.0.0 link reference.

Line 8 uses reference-style syntax, but the file has no [1.0.0]: ... definition. Add the release or tag URL after the entries, or remove the brackets if no release URL is intended.

Alternative when no release URL is available
-## [1.0.0] — 2026-08-09
+## 1.0.0 — 2026-08-09
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## [1.0.0] — 2026-08-09
## 1.0.0 — 2026-08-09
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CHANGELOG.md` at line 8, Add a `[1.0.0]: ...` reference definition after the
changelog entries, pointing to the appropriate release or tag URL, so the
`1.0.0` heading resolves correctly; if no release URL is intended, remove the
brackets from the `1.0.0` heading instead.


### Added
- Initial release
- Agent orchestration platform
- Multi-provider LLM support
- REST API with OpenAPI specification
- Web dashboard with real-time SSE updates
- Docker support for reproducible deployment
- Circuit breaker for upstream provider stability
- Audit history persistence for orchestration events
- Comprehensive documentation and contributor guides

_Generated for Stellar Wave bounty #33_
42 changes: 42 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# StellarMind Docker Image
# Multi-stage build for optimal image size

FROM node:20-alpine AS builder

WORKDIR /app

# Install dependencies
COPY package*.json ./
RUN npm ci --only=production

# Copy source
COPY src/ ./src/
COPY public/ ./public/

FROM node:20-alpine AS runtime

WORKDIR /app

# Create non-root user
RUN addgroup -g 1001 stellarmind && \
adduser -u 1001 -G stellarmind -s /bin/sh -D stellarmind

# Copy from builder
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/src ./src
COPY --from=builder /app/public ./public
COPY package*.json ./
COPY .env.example ./

# Expose port
EXPOSE 3000

# Health check
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1
Comment on lines +31 to +36

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

Use the application port and health route consistently.

The application defaults to port 3001 in src/config.js and exposes /healthz in src/server.js. The current configuration publishes port 3000 and probes /health. A container without an overriding PORT value will fail its health check and will not accept traffic through the published port.

  • Dockerfile#L31-L36: Set PORT=3000 explicitly for container runs, or change the exposed and health-check port to 3001. Probe /healthz.
  • docker-compose.yml#L7-L19: Set the same explicit PORT value in environment, publish that container port, and probe /healthz.
📍 Affects 2 files
  • Dockerfile#L31-L36 (this comment)
  • docker-compose.yml#L7-L19
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Dockerfile` around lines 31 - 36, Align Dockerfile lines 31-36 and
docker-compose.yml lines 7-19 by explicitly setting the application PORT
consistently, publishing and exposing that same port, and probing /healthz
instead of /health. Update both the Dockerfile health check and the compose
health check and port mappings; use the existing application configuration
symbols in src/config.js and src/server.js as the source of truth.


USER stellarmind

CMD ["node", "src/server.js"]

# Generated for Stellar Wave bounty #28
46 changes: 46 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
version: '3.8'

services:
stellarmind:
build: .
container_name: stellarmind
ports:
- "3000:3000"
env_file:
- .env
environment:
- NODE_ENV=production
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "--spider", "http://localhost:3000/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
volumes:
- ./logs:/app/logs
networks:
- stellarmind

# Optional: Redis for session/rate-limiting
redis:
image: redis:7-alpine
container_name: stellarmind-redis
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- redis_data:/data
networks:
- stellarmind
profiles:
- full

networks:
stellarmind:
driver: bridge

volumes:
redis_data:

# Generated for Stellar Wave bounty #28
54 changes: 54 additions & 0 deletions docs/issue-task-checklist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Issue Task Checklist Template

Use this template when creating or working on issues.

## Template

```markdown
### 📋 Task Checklist

#### Preparation
- [ ] Read CONTRIBUTING.md
- [ ] Check repository map (`docs/repository-map.md`) for relevant files
- [ ] Set up local environment (see `.env.example`)
- [ ] Create feature branch: `git checkout -b feat/issue-NNN`

#### Implementation
- [ ] Core logic implemented
- [ ] Edge cases handled
- [ ] Error handling added
- [ ] Logging added where appropriate
- [ ] No hardcoded secrets or credentials

#### Testing
- [ ] Unit tests written and passing
- [ ] Integration tests passing
- [ ] Manual smoke test performed
- [ ] Edge case tests included

#### Code Quality
- [ ] Linting passes (`npm run lint`)
- [ ] No console.log left in production code
- [ ] Code follows existing patterns and conventions
- [ ] Comments explain "why", not "what"

#### Documentation
- [ ] API changes documented in `docs/API_EXAMPLES.md`
- [ ] New environment variables added to `.env.example`
- [ ] Architecture changes reflected in `docs/architecture.md`
- [ ] README updated if needed

#### Pre-PR
- [ ] Branch rebased on latest master
- [ ] All tests pass locally
- [ ] Self-review of diff completed
- [ ] PR description references related issues
- [ ] DCO signoff included

#### Post-PR
- [ ] CI checks passing
- [ ] Review comments addressed
- [ ] Branch deleted after merge
```

_Generated for Stellar Wave bounty #47_
Loading
Loading