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
Comment on lines 18 to 19

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, unlike every sibling

The DiskSage caller job removes its id-token: write grant, leaving only workflow-level contents: read; every sibling hourly-review-repair caller keeps it. The reusable pr-review-fix-scheduler.yml requests id-token: write and exchanges an OIDC OpenCode app token (token exchange). A reusable workflow cannot exceed the caller job's permissions, so DiskSage's scheduler loses OIDC and its app-token exchange degrades to unavailable. Mutation still works through PR_REVIEW_MERGE_TOKEN/OPENCODE_APPROVE_TOKEN, and DiskSage doctoring already states 'only contents: read', so this matches its doc but diverges from siblings and drops the OIDC fallback.

Open in Devin Review

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

with:
target_repository: ContextualWisdomLab/disksage
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
4 changes: 0 additions & 4 deletions .github/workflows/opencode-review-dispatch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4477,10 +4477,6 @@ jobs:
# 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"
# 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
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
Comment on lines 465 to -466

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 now delete protected security files

The guard that blocked the autofix and conflict-resolution flows from deleting or renaming protected security-contract files (origin validation, its tests, the standards doc) is removed. The remaining allowlist check (.github/workflows/pr-review-autofix.yml:509-522) treats a deletion or rename as acceptable whenever the path is allowlisted, so a review thread that names such a path can let the write-capable agent remove origin validation or its regression evidence.

Open in Devin Review

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

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

- 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