audit-repo-health.md: - All 9 steps now read from repos.txt dynamically - Repos without relevant files (package.json, .dockerignore, etc.) are skipped - No more manual maintenance when repos are added/removed verify-all-backends.md: - Remove duplicate learning_ai_notes entry - Add learning_ai_efforise backend - Add learning_ai_efforise client + learning_ai_local_llms dashboard to web checks gitea-ci.md: - Steps 3+4 read from repos.txt, skip repos without gitea remote - Handle oss/ subdirectory repos via basename for Gitea API
113 lines
3.1 KiB
Markdown
113 lines
3.1 KiB
Markdown
---
|
|
description: Quick local typecheck + test + build across all product backends (fast complement to /gitea-ci)
|
|
---
|
|
|
|
# Verify All Backends (Local)
|
|
|
|
Run typecheck, test, and build across all product backends locally — without needing Gitea.
|
|
Use this for fast pre-push validation. For full CI verification, use `/gitea-ci` instead.
|
|
|
|
**When to use:**
|
|
|
|
- After modifying a `@bytelyst/*` shared package
|
|
- Before a bulk push to all repos
|
|
- Quick health check without waiting for Gitea runner queue
|
|
|
|
## 1. Build common-plat packages first (dependency for all backends)
|
|
|
|
```bash
|
|
cd /Users/sd9235/code/mygh/learning_ai_common_plat && pnpm build
|
|
```
|
|
|
|
## 2. Verify all product backends
|
|
|
|
Run typecheck + test + build for each backend. Stops on first failure.
|
|
|
|
```bash
|
|
REPOS_DIR="/Users/sd9235/code/mygh"
|
|
PASSED=0
|
|
FAILED=0
|
|
FAILURES=""
|
|
|
|
for entry in \
|
|
"learning_ai_notes:@notelett/backend" \
|
|
"learning_ai_local_memory_gpt:@localmemgpt/backend" \
|
|
"learning_ai_trails:@actiontrail/backend" \
|
|
"learning_ai_fastgap:@nomgap/backend" \
|
|
"learning_ai_clock:@chronomind/backend" \
|
|
"learning_ai_jarvis_jr:@jarvisjr/backend" \
|
|
"learning_ai_peakpulse:@peakpulse/backend" \
|
|
"learning_voice_ai_agent:@lysnrai/backend" \
|
|
"learning_ai_flowmonk:@flowmonk/backend" \
|
|
"learning_ai_efforise:@efforise/backend"; do
|
|
|
|
repo="${entry%%:*}"
|
|
filter="${entry##*:}"
|
|
echo ""
|
|
echo "━━━ $repo ($filter) ━━━"
|
|
|
|
cd "$REPOS_DIR/$repo"
|
|
if pnpm --filter "$filter" run typecheck 2>&1 | tail -3 && \
|
|
pnpm --filter "$filter" run test 2>&1 | tail -5 && \
|
|
pnpm --filter "$filter" run build 2>&1 | tail -3; then
|
|
echo "✅ $repo PASSED"
|
|
PASSED=$((PASSED + 1))
|
|
else
|
|
echo "❌ $repo FAILED"
|
|
FAILED=$((FAILED + 1))
|
|
FAILURES="$FAILURES\n - $repo"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo "✅ Passed: $PASSED"
|
|
echo "❌ Failed: $FAILED"
|
|
if [ -n "$FAILURES" ]; then
|
|
echo -e "Failures:$FAILURES"
|
|
fi
|
|
```
|
|
|
|
## 3. (Optional) Verify all web apps too
|
|
|
|
Web builds take longer. Only run if you suspect web-side breakage.
|
|
|
|
```bash
|
|
REPOS_DIR="/Users/sd9235/code/mygh"
|
|
|
|
for entry in \
|
|
"learning_ai_notes:@notelett/web" \
|
|
"learning_ai_local_memory_gpt:@localmemgpt/web" \
|
|
"learning_ai_trails:@actiontrail/web" \
|
|
"learning_ai_fastgap:@nomgap/web" \
|
|
"learning_ai_clock:web" \
|
|
"learning_ai_jarvis_jr:jarvisjr-web" \
|
|
"learning_voice_ai_agent:user-dashboard-web" \
|
|
"learning_ai_flowmonk:@flowmonk/web" \
|
|
"learning_ai_efforise:client" \
|
|
"learning_ai_local_llms:dashboard"; do
|
|
|
|
repo="${entry%%:*}"
|
|
filter="${entry##*:}"
|
|
echo ""
|
|
echo "━━━ $repo web ($filter) ━━━"
|
|
|
|
cd "$REPOS_DIR/$repo"
|
|
if pnpm --filter "$filter" run typecheck 2>&1 | tail -3 && \
|
|
pnpm --filter "$filter" run build 2>&1 | tail -5; then
|
|
echo "✅ $repo web PASSED"
|
|
else
|
|
echo "❌ $repo web FAILED"
|
|
fi
|
|
done
|
|
```
|
|
|
|
## 4. After fixing issues
|
|
|
|
If any backend/web failed:
|
|
|
|
1. Fix the issue in the affected repo
|
|
2. Re-run the failing step only to confirm
|
|
3. Commit with: `fix(scope): description`
|
|
4. Run `/gitea-ci` for full CI verification
|