Skip to content

Commit 08c625c

Browse files
v5.9.3 — CI fix, ServiceRecovery, built-in skills, lifecycle tests, release automation
0 parents  commit 08c625c

462 files changed

Lines changed: 138948 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
name: Bug Report
2+
description: Report a bug in Genesis Agent
3+
title: "[Bug] "
4+
labels: ["bug"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for reporting. Please fill out as much as you can — the more detail, the faster the fix.
10+
11+
- type: input
12+
id: version
13+
attributes:
14+
label: Genesis Version
15+
description: "Run `node cli.js --version` or check package.json"
16+
placeholder: "e.g. 5.9.2"
17+
validations:
18+
required: true
19+
20+
- type: dropdown
21+
id: backend
22+
attributes:
23+
label: LLM Backend
24+
options:
25+
- Ollama (local)
26+
- Anthropic (Claude)
27+
- OpenAI (GPT)
28+
- Multiple
29+
validations:
30+
required: true
31+
32+
- type: dropdown
33+
id: mode
34+
attributes:
35+
label: Mode
36+
options:
37+
- Electron (Desktop)
38+
- CLI (Headless)
39+
- MCP Server
40+
validations:
41+
required: true
42+
43+
- type: textarea
44+
id: description
45+
attributes:
46+
label: What happened?
47+
description: "Clear description of the bug."
48+
validations:
49+
required: true
50+
51+
- type: textarea
52+
id: expected
53+
attributes:
54+
label: Expected behavior
55+
description: "What should have happened instead?"
56+
validations:
57+
required: true
58+
59+
- type: textarea
60+
id: reproduce
61+
attributes:
62+
label: Steps to reproduce
63+
description: "Minimal steps to trigger the bug."
64+
placeholder: |
65+
1. Start Genesis with `node cli.js --minimal`
66+
2. Type "..."
67+
3. See error
68+
validations:
69+
required: true
70+
71+
- type: textarea
72+
id: logs
73+
attributes:
74+
label: Error output / logs
75+
description: "Paste relevant console output. Use `--verbose` for full logs."
76+
render: shell
77+
78+
- type: textarea
79+
id: environment
80+
attributes:
81+
label: Environment
82+
description: "OS, Node version, CPU/RAM if relevant"
83+
placeholder: |
84+
- OS: Windows 11 / macOS 15 / Ubuntu 24
85+
- Node: v22.x
86+
- Electron: 35.x
87+
- Model: qwen2.5:7b
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Feature Request
2+
description: Suggest a new feature or improvement
3+
title: "[Feature] "
4+
labels: ["enhancement"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Feature requests are welcome. Be specific about what you need and why.
10+
11+
- type: textarea
12+
id: problem
13+
attributes:
14+
label: Problem / Motivation
15+
description: "What problem does this solve? Why is it needed?"
16+
validations:
17+
required: true
18+
19+
- type: textarea
20+
id: solution
21+
attributes:
22+
label: Proposed Solution
23+
description: "How should this work? Be as specific as possible."
24+
validations:
25+
required: true
26+
27+
- type: textarea
28+
id: alternatives
29+
attributes:
30+
label: Alternatives Considered
31+
description: "Other approaches you've thought about."
32+
33+
- type: dropdown
34+
id: area
35+
attributes:
36+
label: Area
37+
options:
38+
- Core / Architecture
39+
- Cognitive Subsystems
40+
- MCP / Integration
41+
- CLI / Headless
42+
- Dashboard / UI
43+
- Skills / Plugins
44+
- Colony / Multi-Agent
45+
- Deployment
46+
- Documentation
47+
- Other
48+
validations:
49+
required: true

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
## What
2+
3+
<!-- Brief description of what this PR does. -->
4+
5+
## Why
6+
7+
<!-- Motivation: bug fix, feature, refactor, etc. Link to issue if applicable. -->
8+
9+
## How
10+
11+
<!-- Key implementation decisions. What changed and why. -->
12+
13+
## Checklist
14+
15+
- [ ] `npm test` passes
16+
- [ ] `node scripts/validate-events.js` passes
17+
- [ ] `node scripts/validate-channels.js` passes
18+
- [ ] `node scripts/architectural-fitness.js --ci` passes (90/90)
19+
- [ ] New events have payload schemas in `EventPayloadSchemas.js`
20+
- [ ] New IPC channels added to both `preload.js` and `preload.mjs`
21+
- [ ] CHANGELOG.md updated
22+
- [ ] No new `@ts-nocheck` files introduced
23+
24+
## Testing
25+
26+
<!-- How was this tested? Include test output if relevant. -->

.github/workflows/ci.yml

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
name: Genesis CI
2+
3+
on:
4+
push:
5+
branches: [main, develop]
6+
pull_request:
7+
branches: [main]
8+
9+
env:
10+
# Skip Electron binary download on CI — tests don't need it.
11+
# Saves ~100MB download + avoids missing libgtk issues on Ubuntu.
12+
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
13+
14+
jobs:
15+
test:
16+
name: Test (${{ matrix.os }}, Node ${{ matrix.node }})
17+
runs-on: ${{ matrix.os }}
18+
strategy:
19+
matrix:
20+
os: [ubuntu-latest, windows-latest]
21+
node: [20, 22]
22+
fail-fast: false
23+
24+
steps:
25+
- uses: actions/checkout@v4
26+
27+
- name: Setup Node.js ${{ matrix.node }}
28+
uses: actions/setup-node@v4
29+
with:
30+
node-version: ${{ matrix.node }}
31+
32+
- name: Install dependencies
33+
run: npm install --ignore-scripts
34+
35+
- name: Build bundles (optional)
36+
run: node scripts/build-bundle.js || echo "[CI] Bundle build skipped (no electron binary)"
37+
38+
- name: Run tests
39+
run: npm test
40+
41+
- name: Validate event contracts
42+
run: node scripts/validate-events.js
43+
44+
- name: Validate IPC channels
45+
run: node scripts/validate-channels.js
46+
47+
- name: Architectural fitness check
48+
run: node scripts/architectural-fitness.js --ci
49+
50+
- name: Fitness trend tracking
51+
run: node scripts/fitness-trend.js --ci --threshold 2
52+
continue-on-error: true # First run on fresh checkout has no baseline
53+
54+
- name: TypeScript type check
55+
run: npx tsc --project tsconfig.json --noEmit
56+
57+
coverage:
58+
name: Coverage Report
59+
runs-on: ubuntu-latest
60+
needs: test
61+
62+
steps:
63+
- uses: actions/checkout@v4
64+
65+
- uses: actions/setup-node@v4
66+
with:
67+
node-version: 22
68+
69+
- name: Install dependencies
70+
run: npm install --ignore-scripts
71+
72+
- name: Run coverage
73+
run: npm run test:coverage
74+
75+
- name: Enforce coverage thresholds
76+
run: npm run test:coverage:enforce
77+
78+
audit:
79+
name: Security Audit
80+
runs-on: ubuntu-latest
81+
82+
steps:
83+
- uses: actions/checkout@v4
84+
85+
- uses: actions/setup-node@v4
86+
with:
87+
node-version: 22
88+
89+
- name: Install dependencies
90+
run: npm install --ignore-scripts
91+
92+
- name: npm audit (production only)
93+
run: npm audit --omit=dev --omit=optional
94+
continue-on-error: true
95+
96+
- name: Event audit (strict)
97+
run: npm run audit:events:strict
98+
99+
- name: Degradation matrix
100+
run: npm run audit:degradation

.gitignore

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
node_modules/
2+
sandbox/
3+
.genesis/
4+
dist/
5+
uploads/
6+
*.log
7+
*.tmp
8+
.DS_Store
9+
Thumbs.db
10+
.fitness-history/
11+
coverage/
12+
.c8_output/

0 commit comments

Comments
 (0)