Skip to content
Closed
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/workflows/afipc-hourly-review-repair.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
# DiagramWeave (12), pg-erd-cloud (13), mhtml-etl-gateway (14),
# html4tree (15), nonnest2 (16), orchestrator (17), newsdom-api (18),
# noema (19), github (21), Clearfolio (23), accounting-information-platform (27),
# Keyverse (29), Scopeweave (31), contextual-orchestrator (34), DiskSage (37), Appguardrail (41),
# Keyverse (29), Scopeweave (31), DiskSage (37), Appguardrail (41),
# governance-risk-compliance (43), Inkspan (47), fast-mlsirm (49),
# BandScope (53), orgmetra (58), and semantic-data-portal (59).
- cron: "2 * * * *"
Expand Down

This file was deleted.

3 changes: 0 additions & 3 deletions .github/workflows/disksage-hourly-review-repair.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@ permissions:

jobs:
dispatch-review-repair:
permissions:
contents: read
id-token: write
uses: ./.github/workflows/pr-review-fix-scheduler.yml
with:
target_repository: ContextualWisdomLab/disksage
Comment on lines 18 to 21

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔍 DiskSage caller drops id-token: write for the reusable scheduler

The disksage caller removed its job-level id-token: write, disabling the reusable scheduler's OIDC app-token exchange (a reusable workflow's token scopes are capped by the caller job). aFIPC, nonnest2, and OriginWeave keep it; clearfolio never had it and runs via secret tokens, so OIDC is a fallback rather than mandatory. Confirm whether disksage depends on the OIDC path when the secret tokens are absent.

(Refers to this code)

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Expand Down
7 changes: 0 additions & 7 deletions .github/workflows/hourly-nvidia-nim-review-repair.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ on:
- scripts/ci/pr_review_fix_scheduler.py
- .github/workflows/pr-review-autofix.yml
- .github/workflows/bandscope-hourly-review-repair.yml
- .github/workflows/contextual-orchestrator-hourly-review-repair.yml
- .github/workflows/clearfolio-hourly-review-repair.yml
- .github/workflows/disksage-hourly-review-repair.yml
- .github/workflows/fast-mlsirm-hourly-review-repair.yml
Expand All @@ -31,7 +30,6 @@ on:
- tests/test_orgmetra_hourly_review_caller.py
- tests/test_originweave_hourly_review_caller.py
- tests/test_quarantine_sandbox_hourly_review_caller.py
- tests/test_contextual_orchestrator_hourly_review_caller.py
- tests/test_afipc_hourly_review_caller.py
- tests/test_hourly_autofix_context_quality_gate.py
- tests/test_pr_review_conflict_scope.py
Expand All @@ -58,15 +56,13 @@ on:
- docs/doctoring/orgmetra-hourly-review-caller.md
- docs/doctoring/originweave-hourly-review-caller.md
- docs/doctoring/quarantine-sandbox-hourly-review-caller.md
- docs/doctoring/contextual-orchestrator-hourly-review-caller.md
- docs/doctoring/afipc-hourly-review-caller.md
push:
paths:
- .github/workflows/pr-review-fix-scheduler.yml
- scripts/ci/pr_review_fix_scheduler.py
- .github/workflows/pr-review-autofix.yml
- .github/workflows/bandscope-hourly-review-repair.yml
- .github/workflows/contextual-orchestrator-hourly-review-repair.yml
- .github/workflows/clearfolio-hourly-review-repair.yml
- .github/workflows/disksage-hourly-review-repair.yml
- .github/workflows/fast-mlsirm-hourly-review-repair.yml
Expand All @@ -90,7 +86,6 @@ on:
- tests/test_orgmetra_hourly_review_caller.py
- tests/test_originweave_hourly_review_caller.py
- tests/test_quarantine_sandbox_hourly_review_caller.py
- tests/test_contextual_orchestrator_hourly_review_caller.py
- tests/test_afipc_hourly_review_caller.py
- tests/test_hourly_autofix_context_quality_gate.py
- tests/test_pr_review_conflict_scope.py
Expand All @@ -117,7 +112,6 @@ on:
- docs/doctoring/orgmetra-hourly-review-caller.md
- docs/doctoring/originweave-hourly-review-caller.md
- docs/doctoring/quarantine-sandbox-hourly-review-caller.md
- docs/doctoring/contextual-orchestrator-hourly-review-caller.md
- docs/doctoring/afipc-hourly-review-caller.md

permissions:
Expand Down Expand Up @@ -176,7 +170,6 @@ jobs:
tests/test_orgmetra_hourly_review_caller.py \
tests/test_originweave_hourly_review_caller.py \
tests/test_quarantine_sandbox_hourly_review_caller.py \
tests/test_contextual_orchestrator_hourly_review_caller.py \
tests/test_afipc_hourly_review_caller.py \
tests/test_pr_review_conflict_scope_control_files.py \
tests/test_hourly_autofix_context_quality_gate.py \
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/nonnest2-hourly-review-repair.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
# psychometrics-commons (9), OriginWeave (10), naruon (11),
# DiagramWeave (12), pg-erd-cloud (13), mhtml-etl-gateway (14),
# html4tree (15), orchestrator (17), noema (19), Clearfolio (23),
# Keyverse (29), Scopeweave (31), contextual-orchestrator (34), DiskSage (37), Appguardrail (41),
# Keyverse (29), Scopeweave (31), DiskSage (37), Appguardrail (41),
# newsdom-api (43), Inkspan (47), fast-mlsirm (49), BandScope (53),
# and semantic-data-portal (59).
- cron: "16 * * * *"
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/opencode-review-dispatch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4058,8 +4058,8 @@ jobs:
"apiKey": "{env:OPENAI_API_KEY}"
},
"models": {
"gpt-5.4": {
"name": "OpenAI GPT-5.4 (direct)",
"gpt-5.6-luna": {
"name": "OpenAI GPT-5.6 Luna (direct)",
"tool_call": true,
"reasoning": true,
"options": {
Expand Down Expand Up @@ -4471,17 +4471,17 @@ jobs:
# or used for product/model improvement, so private repositories
# include neither NIM nor anonymous free candidates and start at the
# existing keyed fallback list: OpenCode Zen GPT-5.6 Terra, DeepSeek
# V3, the direct GPT-5.4 slot, and pinned PAID
# V3, the direct GPT-5.6 Luna slot, and pinned PAID
# OpenRouter coder models (free-tier candidates hit the shared
# free-models-per-day cap and hung for the full candidate timeout,
# so the OpenRouter slots use cheap paid models billed against the
# org's OpenRouter credits), then the full-size GPT-4.1 long-context
# endpoint and provider-specific GPT/o3 fallbacks.
# The direct-OpenAI slot runs GPT-5.4: gpt-5.6-luna returns 404 on
# the OpenAI API (see a724582), so the pool keeps the newest VALID
# direct-OpenAI model instead of burning a candidate on a certain
# failure.
OPENCODE_MODEL_CANDIDATES: "${{ needs.validate-pr-metadata.outputs.is_private == 'false' && 'nvidia-nim/nvidia/llama-3.3-nemotron-super-49b-v1.5 nvidia-nim/nvidia/llama-3.1-nemotron-ultra-253b-v1 nvidia-nim/nvidia/nemotron-3-super-120b-a12b nvidia-nim/nvidia/nemotron-3-ultra-550b-a55b nvidia-nim/meta/llama-3.3-70b-instruct nvidia-nim/deepseek-ai/deepseek-v4-pro nvidia-nim/mistralai/codestral-22b-instruct-v0.1 opencode-free/nemotron-3-ultra-free opencode-free/deepseek-v4-flash-free opencode-free/north-mini-code-free opencode-free/laguna-s-2.1-free opencode-free/ling-3.0-flash-free opencode-free/big-pickle opencode-free/mimo-v2.5-free opencode-free/hy3-free opencode-free/minimax-m3-free opencode-free/glm-5-free opencode-free/kimi-k2.5-free opencode-free/qwen3.6-plus-free ' || '' }}opencode/gpt-5.6-terra github-models/deepseek/deepseek-v3-0324 openai/gpt-5.4 openrouter/deepseek/deepseek-v3.2 openrouter/qwen/qwen3-coder github-models/openai/gpt-4.1 github-models/openai/gpt-5 github-models/openai/gpt-5-chat github-models/openai/o3 github-models/deepseek/deepseek-r1-0528 github-models/deepseek/deepseek-r1"
# The direct-OpenAI slot runs GPT-5.6 Luna: the newest family's
# cost-efficient tier, cheaper than the legacy gpt-5 it replaced
# ($1/$6 vs $1.25/$10 per 1M tokens) so the org OpenAI budget
# stretches further between top-ups.
OPENCODE_MODEL_CANDIDATES: "${{ needs.validate-pr-metadata.outputs.is_private == 'false' && 'nvidia-nim/nvidia/llama-3.3-nemotron-super-49b-v1.5 nvidia-nim/nvidia/llama-3.1-nemotron-ultra-253b-v1 nvidia-nim/nvidia/nemotron-3-super-120b-a12b nvidia-nim/nvidia/nemotron-3-ultra-550b-a55b nvidia-nim/meta/llama-3.3-70b-instruct nvidia-nim/deepseek-ai/deepseek-v4-pro nvidia-nim/mistralai/codestral-22b-instruct-v0.1 opencode-free/nemotron-3-ultra-free opencode-free/deepseek-v4-flash-free opencode-free/north-mini-code-free opencode-free/laguna-s-2.1-free opencode-free/ling-3.0-flash-free opencode-free/big-pickle opencode-free/mimo-v2.5-free opencode-free/hy3-free opencode-free/minimax-m3-free opencode-free/glm-5-free opencode-free/kimi-k2.5-free opencode-free/qwen3.6-plus-free ' || '' }}opencode/gpt-5.6-terra github-models/deepseek/deepseek-v3-0324 openai/gpt-5.6-luna openrouter/deepseek/deepseek-v3.2 openrouter/qwen/qwen3-coder github-models/openai/gpt-4.1 github-models/openai/gpt-5 github-models/openai/gpt-5-chat github-models/openai/o3 github-models/deepseek/deepseek-r1-0528 github-models/deepseek/deepseek-r1"
# One attempt per model, then fall through to the next model. Retrying
# the SAME model 5x let a rate-limited/hung leader consume the whole
# step, so the pool never reached a healthy fallback model.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/originweave-hourly-review-repair.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
# codec-carver (5), life-os (6), Wardnet (7), mightyETL (8),
# psychometrics-commons (9), naruon (11), pg-erd-cloud (13),
# orchestrator (17), noema (19), Clearfolio (23), Keyverse (29),
# Scopeweave (31), contextual-orchestrator (34), DiskSage (37), Appguardrail (41), newsdom-api (43),
# Scopeweave (31), DiskSage (37), Appguardrail (41), newsdom-api (43),
# Inkspan (47), fast-mlsirm (49), BandScope (53), and
# semantic-data-portal (59).
- cron: "10 * * * *"
Expand Down
48 changes: 0 additions & 48 deletions .github/workflows/pr-review-autofix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -463,32 +463,6 @@ jobs:
--snapshot "$ordinary_scope_snapshot" \
--allowed-paths "$allowed_paths_zlist"

- name: Reject protected security-contract deletions and renames
run: |
set -euo pipefail
cd "$TARGET_WORKSPACE"
# Security-contract files may be edited only when a review explicitly
# names them, but an autofix must never delete or rename them. This
# keeps an unrelated optimization from removing origin validation,
# its regression evidence, or the standards record.
protected_security_paths=(
"backend/core/local_http.py"
"backend/core/url_validation.py"
"backend/tests/test_local_http.py"
"backend/tests/test_url_validation.py"
"docs/doctoring/local-http-origin-port-validation.md"
)
for protected_path in "${protected_security_paths[@]}"; do
while IFS=$'\t' read -r status _; do
case "$status" in
D|R*)
echo "::error::Autofix cannot delete or rename protected security-contract path: $protected_path"
exit 1
;;
esac
done < <(git diff HEAD --name-status -- "$protected_path")
done
Comment on lines -466 to -490

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟨 Autofix can delete or rename protected security-contract files

The PR removes the guards that failed closed when the OpenCode autofix deleted or renamed protected security-contract paths (backend/core/local_http.py, backend/core/url_validation.py, their tests, and the origin-port-validation record), in both the ordinary autofix step and the conflict-resolution path. An autofix, or a review thread scoping one of these paths, can now strip origin/URL validation and its regression evidence and push it to the PR head. The contract tests enforcing the guards are deleted too.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.


- name: Validate changed files
if: env.RESOLVE_CONFLICT != 'true'
run: |
Expand Down Expand Up @@ -520,7 +494,6 @@ jobs:
exit 1
fi
done

changed_python_files=()
changed_workflows=()
for changed_file in "${changed_files[@]}"; do
Expand Down Expand Up @@ -667,27 +640,6 @@ jobs:
--allowed-paths "$conflicted_paths_file"
fi

# Conflict resolution edits happen after the ordinary autofix guard;
# re-check the protected security contract immediately before staging
# so conflict-mode deletion and rename attempts also fail closed.
protected_security_paths=(
"backend/core/local_http.py"
"backend/core/url_validation.py"
"backend/tests/test_local_http.py"
"backend/tests/test_url_validation.py"
"docs/doctoring/local-http-origin-port-validation.md"
)
for protected_path in "${protected_security_paths[@]}"; do
while IFS=$'\t' read -r status _; do
case "$status" in
D|R*)
echo "::error::Conflict resolution cannot delete or rename protected security-contract path: $protected_path"
exit 1
;;
esac
done < <(git diff HEAD --name-status -- "$protected_path")
done

# Fail closed: never push unresolved conflict markers.
git add -A
marker_report="$(git diff --cached --check 2>&1 || true)"
Expand Down
Loading
Loading