Skip to content

Commit f8fdb02

Browse files
feat(mentor): server-side Pi mentor over SSE with live LLM tests (#1081)
1 parent 6bd50fd commit f8fdb02

471 files changed

Lines changed: 24500 additions & 47497 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.

.claude/skills/fix-ci/SKILL.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,13 @@ Before fixing anything, categorize every failure into this table.
7373
| 1 | Formatting | "Formatting failed", biome/prettier diff | `npm run format` |
7474
| 2 | Lint | Biome lint errors | `npm run check:fix` |
7575
| 3 | TypeScript | TS2xxx errors, type mismatch | Fix the type error in source |
76-
| 4 | Build failure | Compilation errors, missing exports | Fix imports/exports, verify with `npm run build:intelligence-service` or `npm run build:webhook-ingest` |
76+
| 4 | Build failure | Compilation errors, missing exports | Fix imports/exports, verify with `npm run build:webhook-ingest` |
7777
| 5 | Webapp tests | "FAIL" in webapp test output | Fix test or source, verify with `npm run test:webapp` |
7878
| 5 | App server tests | Maven test failures, assertion errors | Fix test or source, verify with `cd server/application-server && ./mvnw test -Dsurefire.includedGroups="unit" -Dmaven.test.skip=false -T 2C --batch-mode -q` |
79-
| 5 | Intelligence tests | Vitest failures in intelligence-service | Fix test or source, verify with `npm run test:intelligence-service:unit` |
8079
| 5 | Webhook tests | Vitest failures in webhook-ingest | Fix test or source, verify with `npm run test:webhook-ingest` |
8180
| 6 | OpenAPI sync | "OpenAPI out of sync" | `npm run generate:api` |
8281
| 6 | DB schema | "Schema drift detected" | `npm run db:draft-changelog` |
8382
| 6 | DB ERD | "ERD outdated" | `npm run db:generate-erd-docs` |
84-
| 6 | DB models | "DB models out of sync" | `npm run db:generate-models:intelligence-service` |
8583

8684
## 5. Fix ALL Issues
8785

@@ -108,8 +106,6 @@ npm run test:webapp
108106
# If webhook-ingest tests failed:
109107
npm run test:webhook-ingest
110108

111-
# If intelligence-service tests failed:
112-
npm run test:intelligence-service:unit
113109

114110
# If app-server tests failed:
115111
cd server/application-server && ./mvnw test -Dsurefire.includedGroups="unit" -Dmaven.test.skip=false -T 2C --batch-mode -q && cd ../..

.claude/skills/land-pr/SKILL.md

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,10 @@ git diff --name-only HEAD
3636
Map paths to components (mirrors CI's dorny/paths-filter config):
3737
- `webapp/**` → webapp changed
3838
- `server/application-server/**` OR `scripts/db-utils.sh` → app-server changed
39-
- `server/intelligence-service/**` OR `scripts/install-platform-binaries.mjs` OR `scripts/generate-mermaid-erd.ts` OR `scripts/postprocess-openapi-java.ts` → intelligence changed
4039
- `server/webhook-ingest/**` → webhook changed
41-
- `package.json` OR `package-lock.json` OR `.node-version` → webapp + intelligence + webhook changed
40+
- `package.json` OR `package-lock.json` OR `.node-version` → webapp + webhook changed
4241
- `docs/**` → docs-only (skip all validation if nothing else changed)
4342

44-
**Transitive dependency**: If app-server changed, also mark intelligence as changed
45-
(intelligence-service depends on app-server schema for DB models).
46-
4743
## 3. Format
4844

4945
```bash
@@ -77,21 +73,8 @@ npm run db:draft-changelog
7773
npm run db:generate-erd-docs
7874
```
7975

80-
**Intelligence-service API changed:**
81-
82-
```bash
83-
MODEL_NAME=fake:model npm run generate:api:intelligence-service:specs
84-
npm run generate:api:intelligence-service:client
85-
```
86-
8776
## 6. Build Affected TS Services
8877

89-
If intelligence changed:
90-
91-
```bash
92-
npm run build:intelligence-service
93-
```
94-
9578
If webhook changed:
9679

9780
```bash
@@ -116,12 +99,6 @@ If webapp changed:
11699
npm run test:webapp
117100
```
118101

119-
If intelligence changed:
120-
121-
```bash
122-
npm run test:intelligence-service:unit
123-
```
124-
125102
If app-server changed (and mvn available):
126103

127104
```bash
@@ -132,7 +109,7 @@ ALL tests must pass before proceeding.
132109

133110
## 8. OpenAPI Sync Check
134111

135-
If app-server or intelligence changed:
112+
If app-server changed:
136113

137114
```bash
138115
npm run generate:api

.github/CODEOWNERS

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@ renovate.json @ls1intum/hephaestus-maintainers
1212
# Application Server (Java/Spring)
1313
server/application-server/ @ls1intum/hephaestus-maintainers
1414

15-
# Intelligence Service (TypeScript/Hono)
16-
server/intelligence-service/ @ls1intum/hephaestus-maintainers
17-
1815
# Webhook Ingest (TypeScript/Hono)
1916
server/webhook-ingest/ @ls1intum/hephaestus-maintainers
2017

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,7 @@ body:
4747
description: Which part of the system is affected?
4848
options:
4949
- Webapp (React UI)
50-
- Application Server (Java/Spring)
51-
- Intelligence Service (TypeScript/AI)
50+
- Application Server (Java/Spring, includes Pi mentor agent)
5251
- Webhook Ingest
5352
- Don't know
5453
validations:

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ AFTER API CHANGES:
2121
2222
AFTER DATABASE/ENTITY CHANGES:
2323
npm run db:draft-changelog # Generate Liquibase migration
24-
npm run db:generate-erd-docs # Update ERD documentation
25-
npm run db:generate-models:intelligence-service # Sync Drizzle schema
24+
npm run db:generate-erd-docs # Update ERD documentation
2625
-->
2726

2827
## Description

.github/actions/setup-caches/action.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,22 @@ runs:
1414
steps:
1515
# Node.js caching
1616
- name: Setup Node.js
17-
if: contains(fromJSON('["application-server-quality", "webapp-quality", "webapp-visual", "webapp-unit", "webapp-storybook", "openapi-validation", "intelligence-service-quality", "intelligence-service-unit-arch", "intelligence-service-integration", "webhook-ingest-quality", "webhook-ingest-unit", "database-validation"]'), inputs.cache-type)
17+
if: contains(fromJSON('["application-server-quality", "webapp-quality", "webapp-visual", "webapp-unit", "webapp-storybook", "openapi-validation", "webhook-ingest-quality", "webhook-ingest-unit", "database-validation"]'), inputs.cache-type)
1818
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
1919
with:
2020
node-version-file: ".node-version"
2121
cache: "npm"
2222

2323
- name: Cache Node.js dependencies
24-
if: contains(fromJSON('["application-server-quality", "webapp-quality", "webapp-visual", "webapp-unit", "webapp-storybook", "openapi-validation", "webhook-ingest-quality", "webhook-ingest-unit", "intelligence-service-quality", "intelligence-service-unit-arch", "intelligence-service-integration", "database-validation"]'), inputs.cache-type)
24+
if: contains(fromJSON('["application-server-quality", "webapp-quality", "webapp-visual", "webapp-unit", "webapp-storybook", "openapi-validation", "webhook-ingest-quality", "webhook-ingest-unit", "database-validation"]'), inputs.cache-type)
2525
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
2626
with:
2727
path: |
2828
~/.npm
2929
webapp/node_modules
3030
server/webhook-ingest/node_modules
31-
server/intelligence-service/node_modules
3231
node_modules
33-
key: ${{ inputs.os }}-node-${{ hashFiles('package-lock.json', 'webapp/package.json', 'server/webhook-ingest/package.json', 'server/intelligence-service/package.json') }}
32+
key: ${{ inputs.os }}-node-${{ hashFiles('package-lock.json', 'webapp/package.json', 'server/webhook-ingest/package.json') }}
3433
restore-keys: |
3534
${{ inputs.os }}-node-${{ hashFiles('package-lock.json') }}-
3635
${{ inputs.os }}-node-
@@ -76,7 +75,7 @@ runs:
7675
# We cache them in ~/.cache/platform-binaries and restore after npm ci wipes node_modules.
7776
- name: Cache platform binaries
7877
id: platform-cache
79-
if: contains(fromJSON('["webapp-quality", "webapp-visual", "webapp-unit", "webapp-storybook", "intelligence-service-quality", "intelligence-service-unit-arch", "intelligence-service-integration", "webhook-ingest-quality", "webhook-ingest-unit", "database-validation"]'), inputs.cache-type) && runner.os == 'Linux'
78+
if: contains(fromJSON('["webapp-quality", "webapp-visual", "webapp-unit", "webapp-storybook", "webhook-ingest-quality", "webhook-ingest-unit", "database-validation"]'), inputs.cache-type) && runner.os == 'Linux'
8079
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
8180
with:
8281
path: ~/.cache/platform-binaries

.github/copilot-environment.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ preinstall: |
3535
echo "🐳 Checking Docker availability..."
3636
docker --version || echo "⚠️ Docker not available, some database operations may fail"
3737
38-
# Install project npm dependencies (includes all workspaces: webapp, intelligence-service, webhook-ingest)
38+
# Install project npm dependencies (includes all workspaces: webapp, webhook-ingest)
3939
echo "📦 Installing npm dependencies..."
4040
# Always remove node_modules to ensure a clean install
4141
if [ -d "node_modules" ]; then
@@ -82,8 +82,5 @@ environment:
8282
SPRING_DATASOURCE_USERNAME: root
8383
SPRING_DATASOURCE_PASSWORD: root
8484

85-
# Intelligence service model configuration (fake provider for tooling/generation)
86-
MODEL_NAME: fake:model
87-
8885
# Add Java 21 to PATH
8986
PATH: /usr/lib/jvm/temurin-21-jdk-amd64/bin:$PATH

.github/labeler.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@ application-server:
1313
- changed-files:
1414
- any-glob-to-any-file: server/application-server/**
1515

16-
intelligence-service:
17-
- changed-files:
18-
- any-glob-to-any-file: "server/intelligence-service/**"
19-
2016
webhook-ingest:
2117
- changed-files:
2218
- any-glob-to-any-file: "server/webhook-ingest/**"

.github/prompts/fix-ci.prompt.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,13 @@ Before fixing anything, categorize every failure into this table.
5858
| 1 | Formatting | "Formatting failed", biome/prettier diff | `npm run format` |
5959
| 2 | Lint | Biome lint errors | `npm run check:fix` |
6060
| 3 | TypeScript | TS2xxx errors, type mismatch | Fix the type error in source |
61-
| 4 | Build failure | Compilation errors, missing exports | Fix imports/exports, verify with `npm run build:intelligence-service` or `npm run build:webhook-ingest` |
61+
| 4 | Build failure | Compilation errors, missing exports | Fix imports/exports, verify with `npm run build:webhook-ingest` |
6262
| 5 | Webapp tests | "FAIL" in webapp test output | Fix test or source, verify with `npm run test:webapp` |
6363
| 5 | App server tests | Maven test failures, assertion errors | Fix test or source, verify with `cd server/application-server && ./mvnw test -Dsurefire.includedGroups="unit" -Dmaven.test.skip=false -T 2C --batch-mode -q` |
64-
| 5 | Intelligence tests | Vitest failures in intelligence-service | Fix test or source, verify with `npm run test:intelligence-service:unit` |
6564
| 5 | Webhook tests | Vitest failures in webhook-ingest | Fix test or source, verify with `npm run test:webhook-ingest` |
6665
| 6 | OpenAPI sync | "OpenAPI out of sync" | `npm run generate:api` |
6766
| 6 | DB schema | "Schema drift detected" | `npm run db:draft-changelog` |
6867
| 6 | DB ERD | "ERD outdated" | `npm run db:generate-erd-docs` |
69-
| 6 | DB models | "DB models out of sync" | `npm run db:generate-models:intelligence-service` |
7068

7169
## 5. Fix ALL Issues
7270

@@ -93,9 +91,6 @@ npm run test:webapp
9391
# If webhook-ingest tests failed:
9492
npm run test:webhook-ingest
9593

96-
# If intelligence-service tests failed:
97-
npm run test:intelligence-service:unit
98-
9994
# If app-server tests failed:
10095
cd server/application-server && ./mvnw test -Dsurefire.includedGroups="unit" -Dmaven.test.skip=false -T 2C --batch-mode -q && cd ../..
10196
```

.github/prompts/land-pr.prompt.md

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,10 @@ git diff --name-only HEAD
2222
Map paths to components (mirrors CI's dorny/paths-filter config):
2323
- `webapp/**` → webapp changed
2424
- `server/application-server/**` OR `scripts/db-utils.sh` → app-server changed
25-
- `server/intelligence-service/**` OR `scripts/install-platform-binaries.mjs` OR `scripts/generate-mermaid-erd.ts` OR `scripts/postprocess-openapi-java.ts` → intelligence changed
2625
- `server/webhook-ingest/**` → webhook changed
27-
- `package.json` OR `package-lock.json` OR `.node-version` → webapp + intelligence + webhook changed
26+
- `package.json` OR `package-lock.json` OR `.node-version` → webapp + webhook changed
2827
- `docs/**` → docs-only (skip all validation if nothing else changed)
2928

30-
**Transitive dependency**: If app-server changed, also mark intelligence as changed
31-
(intelligence-service depends on app-server schema for DB models).
32-
3329
## 3. Format
3430

3531
```bash
@@ -63,21 +59,8 @@ npm run db:draft-changelog
6359
npm run db:generate-erd-docs
6460
```
6561

66-
**Intelligence-service API changed:**
67-
68-
```bash
69-
MODEL_NAME=fake:model npm run generate:api:intelligence-service:specs
70-
npm run generate:api:intelligence-service:client
71-
```
72-
7362
## 6. Build Affected TS Services
7463

75-
If intelligence changed:
76-
77-
```bash
78-
npm run build:intelligence-service
79-
```
80-
8164
If webhook changed:
8265

8366
```bash
@@ -102,12 +85,6 @@ If webapp changed:
10285
npm run test:webapp
10386
```
10487

105-
If intelligence changed:
106-
107-
```bash
108-
npm run test:intelligence-service:unit
109-
```
110-
11188
If app-server changed (and mvn available):
11289

11390
```bash
@@ -118,7 +95,7 @@ ALL tests must pass before proceeding.
11895

11996
## 8. OpenAPI Sync Check
12097

121-
If app-server or intelligence changed:
98+
If app-server changed:
12299

123100
```bash
124101
npm run generate:api

0 commit comments

Comments
 (0)