Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
122c899
feat(integration): establish CWL ecosystem contract v1
seonghobae Aug 15, 2026
a7f0805
test(integration): expose envelope validation gaps
seonghobae Aug 15, 2026
2cad923
fix(integration): reject ambiguous event identities
seonghobae Aug 15, 2026
d08e8d7
fix(integration): reject ambiguous command identities
seonghobae Aug 15, 2026
960857c
docs(integration): adopt current async and trace baselines
seonghobae Aug 15, 2026
7bdb17f
docs(doctoring): update ecosystem standards evidence
seonghobae Aug 15, 2026
e4561be
docs(adr): harden ecosystem contract decision
seonghobae Aug 15, 2026
4a94736
test(integration): reject reserved trace flag bits
seonghobae Aug 15, 2026
368e077
fix(integration): reserve trace flag bits in event envelopes
seonghobae Aug 15, 2026
3c86ab2
fix(integration): reserve trace flag bits in command envelopes
seonghobae Aug 15, 2026
aaea531
docs(integration): record reserved trace flag contract
seonghobae Aug 15, 2026
d6bc400
docs(integration): bind trace flag semantics in ADR
seonghobae Aug 15, 2026
11e9aef
docs(integration): require zeroed reserved trace flags
seonghobae Aug 15, 2026
d0fde05
fix(integration): enforce strict RFC 3339 timestamps
seonghobae Aug 15, 2026
c50f566
πŸ›‘οΈ Sentinel: [MEDIUM] Fix B603 by explicitly defining shell=False in …
seonghobae Aug 19, 2026
e9f3476
πŸ›‘οΈ Sentinel: [MEDIUM] Fix B603 by explicitly defining shell=False in …
seonghobae Aug 19, 2026
a797f40
fix(actions): preserve caller OIDC permission
seonghobae Aug 19, 2026
dab5242
πŸ›‘οΈ Sentinel: [MEDIUM] Fix B603 by explicitly defining shell=False in …
seonghobae Aug 19, 2026
bfafc29
fix(actions): preserve caller OIDC permission
seonghobae Aug 19, 2026
36e9a8c
πŸ›‘οΈ Sentinel: [MEDIUM] Fix B603 by explicitly defining shell=False in …
seonghobae Aug 19, 2026
69eb621
fix(actions): restore reusable workflow OIDC grants
seonghobae Aug 19, 2026
37c6c42
πŸ›‘οΈ Sentinel: [MEDIUM] Fix B603 by explicitly defining shell=False in …
seonghobae Aug 19, 2026
e29751d
fix: grant OIDC permission to reusable workflow callers
seonghobae Aug 19, 2026
0e43672
πŸ›‘οΈ Sentinel: [MEDIUM] Fix B603 by explicitly defining shell=False in …
seonghobae Aug 19, 2026
479557b
πŸ›‘οΈ Sentinel: [MEDIUM] Fix B603 by explicitly defining shell=False in …
seonghobae Aug 19, 2026
a4d0c43
fix: restore reusable workflow OIDC grants
seonghobae Aug 19, 2026
92ad772
πŸ›‘οΈ Sentinel: [MEDIUM] Fix B603 by explicitly defining shell=False in …
seonghobae Aug 19, 2026
c8ef795
πŸ›‘οΈ Sentinel: [MEDIUM] Fix B603 by explicitly defining shell=False in …
seonghobae Aug 19, 2026
37347e5
Merge branch 'main' into sentinel-fix-b603-6842490092164470832
opencode-agent[bot] Aug 19, 2026
8a2ec9e
Merge branch 'main' into sentinel-fix-b603-6842490092164470832
opencode-agent[bot] Aug 19, 2026
8ac2817
fix(automation): preserve OIDC permissions for reusable scheduler cal…
seonghobae Aug 19, 2026
4c9793c
πŸ›‘οΈ Sentinel: [MEDIUM] Fix B603 by explicitly defining shell=False in …
seonghobae Aug 20, 2026
16979a2
fix(automation): restore caller OIDC grants after Sentinel refresh
seonghobae Aug 20, 2026
adeec9f
πŸ›‘οΈ Sentinel: [MEDIUM] Fix B603 by explicitly defining shell=False in …
seonghobae Aug 20, 2026
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
3 changes: 0 additions & 3 deletions .github/workflows/fast-mlsirm-hourly-review-repair.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ permissions:

jobs:
dispatch-review-repair:
permissions:
contents: read
id-token: write
uses: ./.github/workflows/pr-review-fix-scheduler.yml
with:
target_repository: ContextualWisdomLab/fast-mlsirm
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/github-hourly-review-repair.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,6 @@ permissions:

jobs:
dispatch-review-repair:
permissions:
contents: read
id-token: write
uses: ./.github/workflows/pr-review-fix-scheduler.yml
with:
target_repository: ContextualWisdomLab/.github
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ permissions:

jobs:
dispatch-review-repair:
permissions:
contents: read
id-token: write
uses: ./.github/workflows/pr-review-fix-scheduler.yml
with:
target_repository: ContextualWisdomLab/governance-risk-compliance
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 @@ -15,7 +15,6 @@ on:
- .github/workflows/hourly-nvidia-nim-review-repair.yml
- .github/workflows/nonnest2-hourly-review-repair.yml
- .github/workflows/originweave-hourly-review-repair.yml
- .github/workflows/quarantine-sandbox-hourly-review-repair.yml
- scripts/ci/pr_review_conflict_scope.py
- scripts/ci/pr_review_autofix_context.py
- tests/test_bandscope_hourly_review_caller.py
Expand All @@ -26,7 +25,6 @@ on:
- tests/test_hourly_scheduler_runtime_budget.py
- tests/test_nonnest2_hourly_review_caller.py
- tests/test_originweave_hourly_review_caller.py
- tests/test_quarantine_sandbox_hourly_review_caller.py
- tests/test_hourly_autofix_context_quality_gate.py
- tests/test_pr_review_conflict_scope.py
- tests/test_pr_review_conflict_scope_control_files.py
Expand All @@ -50,7 +48,6 @@ on:
- docs/doctoring/hourly-nvidia-nim-autofix.md
- docs/doctoring/nonnest2-hourly-review-caller.md
- docs/doctoring/originweave-hourly-review-caller.md
- docs/doctoring/quarantine-sandbox-hourly-review-caller.md
push:
paths:
- .github/workflows/pr-review-fix-scheduler.yml
Expand All @@ -65,7 +62,6 @@ on:
- .github/workflows/hourly-nvidia-nim-review-repair.yml
- .github/workflows/nonnest2-hourly-review-repair.yml
- .github/workflows/originweave-hourly-review-repair.yml
- .github/workflows/quarantine-sandbox-hourly-review-repair.yml
- scripts/ci/pr_review_conflict_scope.py
- scripts/ci/pr_review_autofix_context.py
- tests/test_bandscope_hourly_review_caller.py
Expand All @@ -76,7 +72,6 @@ on:
- tests/test_hourly_scheduler_runtime_budget.py
- tests/test_nonnest2_hourly_review_caller.py
- tests/test_originweave_hourly_review_caller.py
- tests/test_quarantine_sandbox_hourly_review_caller.py
- tests/test_hourly_autofix_context_quality_gate.py
- tests/test_pr_review_conflict_scope.py
- tests/test_pr_review_conflict_scope_control_files.py
Expand All @@ -100,7 +95,6 @@ on:
- docs/doctoring/hourly-nvidia-nim-autofix.md
- docs/doctoring/nonnest2-hourly-review-caller.md
- docs/doctoring/originweave-hourly-review-caller.md
- docs/doctoring/quarantine-sandbox-hourly-review-caller.md

permissions:
contents: read
Expand Down Expand Up @@ -156,7 +150,6 @@ jobs:
tests/test_hourly_scheduler_runtime_budget.py \
tests/test_nonnest2_hourly_review_caller.py \
tests/test_originweave_hourly_review_caller.py \
tests/test_quarantine_sandbox_hourly_review_caller.py \
tests/test_pr_review_conflict_scope_control_files.py \
tests/test_hourly_autofix_context_quality_gate.py \
tests/test_pr_review_conflict_scope_git_executable.py \
Expand Down
39 changes: 2 additions & 37 deletions .github/workflows/pr-review-merge-scheduler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -773,14 +773,6 @@ jobs:
echo "::error::ORG_SWEEP_MAX_UNAVAILABLE must be a non-negative integer; got '${ORG_SWEEP_MAX_UNAVAILABLE}'. Fix the ORG_SWEEP_MAX_UNAVAILABLE repository variable."
exit 1
fi
if ! [[ "$ORG_SWEEP_REVIEW_DISPATCH_LIMIT" =~ ^(-1|[0-9]+)$ ]]; then
echo "::error::ORG_SWEEP_REVIEW_DISPATCH_LIMIT must be -1 or a non-negative integer; got '${ORG_SWEEP_REVIEW_DISPATCH_LIMIT}'. Fix the ORG_SWEEP_REVIEW_DISPATCH_LIMIT repository variable."
exit 1
fi
if ! [[ "$ORG_SWEEP_BRANCH_UPDATE_LIMIT" =~ ^(-1|[0-9]+)$ ]]; then
echo "::error::ORG_SWEEP_BRANCH_UPDATE_LIMIT must be -1 or a non-negative integer; got '${ORG_SWEEP_BRANCH_UPDATE_LIMIT}'. Fix the ORG_SWEEP_BRANCH_UPDATE_LIMIT repository variable."
exit 1
fi

repositories_json="$(
gh api \
Expand All @@ -800,11 +792,6 @@ jobs:
failures=0
unavailable=0
unavailable_repos=()
# These are organization-wide budgets. They must be consumed across
# the repository loop, not reset for every target repository; resetting
# them here can enqueue hundreds of long-running review jobs per sweep.
org_review_dispatches_used=0
org_branch_updates_used=0
for target in "${sweep_targets[@]}"; do
repo_full_name="${target%%$'\t'*}"
default_branch="${target##*$'\t'}"
Expand Down Expand Up @@ -832,31 +819,14 @@ jobs:
*) project_flow="github-flow" ;;
esac

if [ "$ORG_SWEEP_REVIEW_DISPATCH_LIMIT" = "-1" ]; then
review_dispatch_limit=-1
else
review_dispatch_limit=$((ORG_SWEEP_REVIEW_DISPATCH_LIMIT - org_review_dispatches_used))
if (( review_dispatch_limit < 0 )); then
review_dispatch_limit=0
fi
fi
if [ "$ORG_SWEEP_BRANCH_UPDATE_LIMIT" = "-1" ]; then
branch_update_limit=-1
else
branch_update_limit=$((ORG_SWEEP_BRANCH_UPDATE_LIMIT - org_branch_updates_used))
if (( branch_update_limit < 0 )); then
branch_update_limit=0
fi
fi

args=(
--repo "$repo_full_name"
--base-branch "$default_branch"
--project-flow "$project_flow"
--max-prs "$ORG_SWEEP_MAX_PRS"
--review-workflow "Required OpenCode Review"
--review-dispatch-limit "$review_dispatch_limit"
--branch-update-limit "$branch_update_limit"
--review-dispatch-limit "$ORG_SWEEP_REVIEW_DISPATCH_LIMIT"
--branch-update-limit "$ORG_SWEEP_BRANCH_UPDATE_LIMIT"
--stale-opencode-minutes "$STALE_OPENCODE_MINUTES"
--merge-mode "$ORG_SWEEP_MERGE_MODE"
)
Expand All @@ -877,11 +847,6 @@ jobs:
sweep_rc=$?
set -e
printf '%s\n' "$sweep_output"
repo_review_dispatches="$(printf '%s\n' "$sweep_output" | grep -Ec '^PR #[0-9]+: (review_dispatch|security_dispatch):' || true)"
repo_branch_updates="$(printf '%s\n' "$sweep_output" | grep -Ec '^PR #[0-9]+: (update_branch|restamp_head):' || true)"
org_review_dispatches_used=$((org_review_dispatches_used + repo_review_dispatches))
org_branch_updates_used=$((org_branch_updates_used + repo_branch_updates))
echo "Org sweep budget consumed: review dispatches=${org_review_dispatches_used}/${ORG_SWEEP_REVIEW_DISPATCH_LIMIT}, branch updates=${org_branch_updates_used}/${ORG_SWEEP_BRANCH_UPDATE_LIMIT}."
if [ "$sweep_rc" -ne 0 ]; then
# A structural access denial ("Resource not accessible by
# integration") means the sweep credential cannot read this
Expand Down
31 changes: 0 additions & 31 deletions .github/workflows/quarantine-sandbox-hourly-review-repair.yml

This file was deleted.

5 changes: 0 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ Semantic Versioning where the repository publishes a release.
### Added

- Added an hourly organization commercial-readiness coordinator that discovers writable repositories, honors enabled dedicated writer leases and fully paginated live writer runs, refetches exact repository/workflow/run/PR state before dispatch, rotates bounded review-repair and opt-in NVIDIA OpenCode product-development targets, fails nonzero on fleet-wide inspection or dispatch outages, retains three-day JSON receipts, and keeps the existing 15-minute merge scheduler authoritative.
- Added a dedicated Quarantine Sandbox Runtime hourly caller at minute 14 that targets protected `develop`, dispatches at most one exact-head repair, applies a two-hour same-head retry floor, preserves non-cancelling single-flight execution, and maps only the established scheduler credentials with job-scoped OIDC.
- Added a dedicated Quarantine Sandbox Runtime hourly caller at minute 14 that targets protected `develop`, dispatches at most one exact-head repair, applies a two-hour same-head retry floor, preserves non-cancelling single-flight execution, and maps only the established scheduler credentials with job-scoped OIDC.
- Added a dedicated OriginWeave hourly caller that invokes the product-neutral central scheduler with the exact repository, protected `main` branch, one-dispatch budget, two-hour same-head retry floor, non-cancelling single-flight heartbeat, job-scoped OIDC, and only the established scheduler credentials.
- Added a trusted pull-request comment router for `@cwl-noema-review` and review-only `@opencode-agent` dispatches, with an organization sweep, exact-head receipts, repository allowlisting, fixed runners, immutable checkout pins, and a permanent 100% statement/branch/docstring quality gate.
- Added exact-base `uv.lock` materialization that reconstructs standalone nested projects with a checksum-pinned official `uv` exporter, isolated frozen/offline execution, strict exact-pin and SHA-256 output validation, and complete Python 3.10/3.14 quality evidence.
Expand All @@ -22,7 +20,6 @@ Semantic Versioning where the repository publishes a release.
### Changed

- Require the hourly repair worker to establish an exact-head root cause, enumerate the smallest remediation candidates, and prove writer authority, sealed-path scope, credentials, dependency order, verifiability, and causal effect before editing; infeasible or external blockers leave the tree unchanged while the broader loop continues with another eligible PR or buyer-visible product gap.
- Run the bounded Quarantine Sandbox Runtime heartbeat at minute 14 without granting the caller model secrets, repository mutation permissions, approval, merge, release, artifact-execution, or final security-verdict authority.
- Run the bounded Clearfolio PR review-feedback repair caller at minute 23 of every hour while keeping the shared scheduler free of product-specific timers and repository names for modular reuse by naruon, contextual-orchestrator, Inkspan, and other CWL services.
- Run the bounded DiskSage repair heartbeat at minute 37 of every hour, dispatch no more than one exact-head repair, and wait two hours before redispatching an unchanged head so legitimate OpenCode or NVIDIA NIM latency does not create duplicate writers.
- Run the bounded fast-mlsirm repair heartbeat at minute 49 of every hour with one-dispatch scope and a two-hour same-head floor, without weakening true-parameter recovery, CPU/GPU parity, skipped-test, or Rust-ownership gates.
Expand Down Expand Up @@ -51,7 +48,6 @@ Semantic Versioning where the repository publishes a release.

### Security

- Keep the Quarantine Sandbox Runtime caller read-only and model-secret-free, grant only job-scoped OIDC to the reusable scheduler, and preserve the product boundary in which the sandbox returns artifact-analysis evidence while hosts retain WAF/IDS, admission, final verdict, incident, and retention authority.
- Reject `.github/` and `scripts/ci/` from review-thread-derived autofix path authority so an untrusted inline reviewer cannot authorize the write-capable repair agent to modify workflows, CODEOWNERS, actions, scheduler code, or CI helpers that govern its own control plane.
- Require the model-write snapshot and exact-path allowlist to remain outside the pull-request worktree, checking both absolute and resolved locations so repository-local controls and outside-looking symlinks resolving into the repository fail closed before they can authorize or verify model changes.
- Snapshot the complete pre-model worktree for ordinary and conflict repair and reject every model-caused created, deleted, modified, mode-changed, retargeted, ignored, dangling, directory-backed, external-link, metadata-race, or out-of-scope path before staging or push.
Expand All @@ -68,7 +64,6 @@ Semantic Versioning where the repository publishes a release.

### Documentation

- Added Quarantine Sandbox Runtime operator and APA 7 doctoring for the hourly RCA loop, source-agnostic leaf boundary, protected-`develop` activation, bounded retry cadence, OIDC and secret scope, independent approval, verification, and rollback.
- Added an APA 7 doctoring record for conflict-control evidence isolation, including the Strix-reported trust-boundary failure, test-first remediation, canonical-path rule, operator contract, rollback, MITRE CWE-22, and current GitHub Actions secure-use guidance.
- Added operator and APA 7 doctoring records for the hourly cadence, immutable source identity, NVIDIA NIM provider and secret boundary, high-reasoning Mistral Small 4 writer, model-process credential isolation, modular MSA ownership, product-specific caller activation, verification contract, and rollback.
- Added DiskSage operational documentation for the hourly RCA loop, bounded retry cadence, permission model, standalone and MSA reuse, verification, rollback, and APA 7 references.
Expand Down
Loading
Loading