Skip to content
Open
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
2 changes: 1 addition & 1 deletion .github/ai-review-rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The AI PR reviewer workflow uses a GitHub App token (not a PAT) for least-privil

| Secret | Purpose |
|---|---|
| `BOT_CLIENT_ID` | GitHub App client ID — used by `actions/create-github-app-token` to generate a short-lived token scoped to this repository only |
| `BOT_APP_ID` | GitHub App client ID — used by `actions/create-github-app-token` to generate a short-lived token scoped to this repository only |
| `BOT_APP_PRIVATE_KEY` | GitHub App private key (PEM) — signs the JWT for app authentication |
| `LITELLM_API_KEY` | API key for the LiteLLM proxy that routes AI model requests |

Expand Down
18 changes: 3 additions & 15 deletions .github/workflows/ai-pr-review.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
id: app-token
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
with:
client-id: ${{ secrets.BOT_CLIENT_ID }}
client-id: ${{ secrets.BOT_APP_ID }}
private-key: ${{ secrets.BOT_APP_PRIVATE_KEY }}

# The gate script ships with the action; the authorization decision
Expand Down Expand Up @@ -86,31 +86,19 @@ jobs:
ai_api_format: ${{ vars.PRIMARY_FORMAT }}
ai_model: ${{ vars.PRIMARY_MODEL }}
ai_api_key: ${{ secrets.LITELLM_API_KEY }}
ai_response_format: json_object
ai_fallback_base_url: ${{ vars.LITELLM_URL }}
ai_fallback_api_format: ${{ vars.FALLBACK_FORMAT }}
ai_fallback_model: ${{ vars.FALLBACK_MODEL }}
ai_fallback_api_key: ${{ secrets.LITELLM_API_KEY }}
review_routing_mode: auto
ai_smart_base_url: ${{ vars.LITELLM_URL }}
ai_smart_api_format: ${{ vars.SMART_FORMAT }}
ai_smart_model: ${{ vars.SMART_MODEL }}
ai_smart_api_key: ${{ secrets.LITELLM_API_KEY }}
context_limit_mode: normal
ci_status_check: "true"
ci_timeout_sec: "600"
tool_mode: plan_execute_loop
tool_max_rounds: "2"
tool_mode: plan_execute_once
tool_max_requests: "4"
tool_planning_timeout_sec: "45"
tool_planning_max_context_bytes: "15000"
tool_planning_max_tokens: "1500"
tool_planning_max_tokens: "300"
tool_max_response_bytes: "12000"
tool_allowed_gh_api_repos: "misospace/windowstead"
tool_request_timeout_sec: "15"
tool_enable_for_forks: "false"
on_model_failure: notice
inline_findings: "true"
verdict_policy: findings_severity_gated
publish_mode: review_verdict
allow_approve: "true"
48 changes: 48 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,54 @@ jobs:
exit 1
fi

- name: Run resource trend tests (issue #176)
shell: bash
run: |
set -euo pipefail
./.tools/Godot_v${{ steps.godot-config.outputs.version }}-${{ steps.godot-config.outputs.status }}_linux.x86_64 --headless --path . --script res://tests/test_resource_trends.gd > trend-tests.log 2>&1
TREND_EXIT=$?
cat trend-tests.log
if [ $TREND_EXIT -ne 0 ]; then
echo "::error::Resource trend tests failed (exit code $TREND_EXIT)"
exit 1
fi

- name: Run food upkeep tests (issue #176)
shell: bash
run: |
set -euo pipefail
./.tools/Godot_v${{ steps.godot-config.outputs.version }}-${{ steps.godot-config.outputs.status }}_linux.x86_64 --headless --path . --script res://tests/test_food_upkeep.gd > food-tests.log 2>&1
FOOD_EXIT=$?
cat food-tests.log
if [ $FOOD_EXIT -ne 0 ]; then
echo "::error::Food upkeep tests failed (exit code $FOOD_EXIT)"
exit 1
fi

- name: Run recruit worker tests (issue #176)
shell: bash
run: |
set -euo pipefail
./.tools/Godot_v${{ steps.godot-config.outputs.version }}-${{ steps.godot-config.outputs.status }}_linux.x86_64 --headless --path . --script res://tests/test_recruit_worker.gd > recruit-tests.log 2>&1
RECRUIT_EXIT=$?
cat recruit-tests.log
if [ $RECRUIT_EXIT -ne 0 ]; then
echo "::error::Recruit worker tests failed (exit code $RECRUIT_EXIT)"
exit 1
fi

- name: Run worker cap tests (issue #176)
shell: bash
run: |
set -euo pipefail
./.tools/Godot_v${{ steps.godot-config.outputs.version }}-${{ steps.godot-config.outputs.status }}_linux.x86_64 --headless --path . --script res://tests/test_worker_cap.gd > cap-tests.log 2>&1
CAP_EXIT=$?
cat cap-tests.log
if [ $CAP_EXIT -ne 0 ]; then
echo "::error::Worker cap tests failed (exit code $CAP_EXIT)"
exit 1
fi

macos-validation:
name: macOS validation
runs-on: macos-latest
Expand Down
Loading
Loading