Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
23 changes: 23 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Secrets / config
.env
.env.*
receipts/

# VCS
.git

# Dependencies / caches
node_modules/
.venv/
__pycache__/

# Runtime data
data/
sessions/
workspace/data/
backend/.agent-os/runs/

# OS/editor cruft
.DS_Store
*.log

9 changes: 9 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Code owners control default reviewers and approvals.
# Use GitHub teams or usernames. Example: @org/team-name

* @mrhpython

# Examples (uncomment and adjust as teams evolve):
# backend/* @mrhpython
# agents/* @mrhpython

38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Bug report
description: Report a problem to help us improve
title: "[bug] <short description>"
labels: [bug]
body:
- type: textarea
id: summary
attributes:
label: Summary
description: What happened? What did you expect?
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: Provide minimal steps to reproduce
placeholder: |
1. Go to ...
2. Run ...
3. See error ...
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs / screenshots
description: Include relevant logs or screenshots
validations:
required: false
- type: input
id: version
attributes:
label: Version / commit
description: App version or git commit SHA
validations:
required: false

6 changes: 6 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
blank_issues_enabled: false
contact_links:
- name: Questions / help
url: https://github.com/mrhpython/Soulfield/discussions
about: Ask questions and discuss ideas in Discussions

31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Feature request
description: Suggest an idea or improvement
title: "[feature] <short description>"
labels: [enhancement]
body:
- type: textarea
id: summary
attributes:
label: Summary
description: What problem does this solve? What’s the proposal?
validations:
required: true
- type: textarea
id: scope
attributes:
label: Scope / acceptance criteria
description: Define success and out-of-scope items
placeholder: |
- Must have:
- Nice to have:
- Out of scope:
validations:
required: false
- type: textarea
id: context
attributes:
label: Context / references
description: Links to specs, designs, or prior art
validations:
required: false

11 changes: 11 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"

20 changes: 20 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Title: <short summary>

Summary
- What changed and why (1–3 lines).

Checklist
- [ ] Scope is minimal and focused
- [ ] CI green locally (if applicable)
- [ ] Tests added/updated or not applicable
- [ ] Docs updated or not applicable

Validation
- Steps to verify manually:
1.
2.

Links
- Related issue: #
- Context/spec:

58 changes: 58 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: CI

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
node:
if: ${{ hashFiles('package.json') != '' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install
run: npm ci
- name: API health (offline)
run: |
DEV_NO_API=1 node backend/index.cjs &
echo $! > api.pid
sleep 1
curl -fsS http://127.0.0.1:8790/health | tee health.json
kill $(cat api.pid)
- name: Lint (if present)
run: npm run -s lint --if-present
- name: Test (if present)
run: npm run -s test --if-present

python:
if: ${{ hashFiles('requirements.txt') != '' || hashFiles('pyproject.toml') != '' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install deps (if requirements.txt)
run: |
if [ -f requirements.txt ]; then
python -m pip install --upgrade pip
pip install -r requirements.txt
fi
- name: Run pytest if tests are present
run: |
if ls -1 tests test_*.py 2>/dev/null | grep -q .; then
pip install pytest
pytest -q
else
echo "No python tests found; skipping"
fi
11 changes: 11 additions & 0 deletions tests/test_root.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from fastapi.testclient import TestClient

import main


def test_root_endpoint():
Comment on lines +3 to +6
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[P1] Drop FastAPI test that imports nonexistent main app

The new test exercises a FastAPI app via import main and TestClient(main.app), but the repository contains no main.py module or FastAPI application at all. As written, the Python CI job will import a module that does not exist and the entire test suite will fail regardless of runtime behavior. Either add the FastAPI entry point or remove/adjust this test so that CI reflects the actual codebase.

Useful? React with 👍 / 👎.

client = TestClient(main.app)
res = client.get("/")
assert res.status_code == 200
assert res.json().get("status") == "ok"