Skip to content

feat(etl): add conditional durable-job status validation - #131

Closed
seonghobae wants to merge 7 commits into
feat/durable-job-poll-advisory-v2from
feat/durable-job-conditional-status-v2
Closed

feat(etl): add conditional durable-job status validation#131
seonghobae wants to merge 7 commits into
feat/durable-job-poll-advisory-v2from
feat/durable-job-conditional-status-v2

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Stack dependency and current repair state

This pull request is locally stacked on PR #130 at exact base e7495b4fe558f543fe5fc1a1834e2f87542263a1; exact current head is addfe57e8948a8e274b297cf629582895fb760fc. The immediate local boundary remains exact and GitHub reports this PR mergeable.

The global stack is not eligible for progression. PR #122 is closed as superseded by draft replacement #138. The earliest invalid boundary remains exact current PR #121 head 75265fae9fcf5faac6f8b9cab63247ac86f23dd4 -> #138, which is diverged. PR #129 also remains non-mergeable against the closed former-worker branch. Do not deepen or repair this conditional-status slice until the upstream #121 -> #138 -> repaired/replacement #129 -> #130 chain is valid. Old checks, reviews, statuses, approvals, and base snapshots do not transfer across later repairs.

The former conditional-status head aa7bb331faf8e7b3be439a17c36bafed9fc9638d was reconciled non-destructively with PR #130's exact head at merge commit addfe57e8948a8e274b297cf629582895fb760fc, preserving implementation and fail-first history, including the null-versus-empty validator regression, without force push, ours/theirs shortcuts, discarded predecessor work, or rewritten test evidence.

Closes #127.

Product gap

Adds standards-based weak entity-tag validation to the authenticated owner-scoped durable-job status resource, allowing unchanged polls to return an empty RFC 9110 304 Not Modified response instead of retransmitting the complete JSON representation.

Implemented bounded slice

  • deterministic weak SHA-256 ETag from typed, marker-separated, length-prefixed canonical values for every operator-visible status field;
  • dedicated null marker distinct from an explicitly empty represented value;
  • Spring MVC ordinary weak entity-tag conditional processing;
  • explicit If-None-Match: * handling only after authentication and owner-safe resource selection;
  • validator invalidation when lifecycle state, attempt count, failure code, creation time, or update time changes;
  • retained Cache-Control: no-store, owner scoping, lease fencing, worker-availability polling behavior, and existing wire body;
  • unchanged submission, list, problem, mutation-precondition, persistence, database, and unrelated-controller behavior;
  • deterministic tests for ordinary matches, wildcard matches, changed state, changed failure code, null-versus-empty distinction, submission isolation, owner-safe not-found behavior, and predecessor contracts;
  • merged polling contract, rollback guidance, privacy boundary, APA 7th RFC 9110 and primary Spring source evidence, and CHANGELOG.md entries.

Current exact-head evidence

For exact head addfe57e8948a8e274b297cf629582895fb760fc on its current stacked target:

Successful exact-head evidence:

  • CI run 31093530695: success;
  • Dependency Review run 31093530341: success;
  • CycloneDX SBOM run 31093530750: success;
  • CodeRabbit commit status: success;
  • unresolved review threads: zero;
  • formal reviews: zero.

Not passing / still blocking:

  • global predecessor stack integrity is not satisfied because #121 -> #138 is diverged and feat(etl): list durable jobs with owner-scoped cursors #129 is not a valid next boundary;
  • SAST Semgrep and Security Scan are absent on this non-default stacked base;
  • qualifying independent non-author APPROVED review is absent.

The successful evidence above is exact-head evidence only for this current target and does not authorize stack progression or transfer to a later head/base. Queued, pending, absent, skipped-required, neutral-required, cancelled, failed, stale-head, predecessor-head, old-base, and synthetic-merge-only evidence are not passing.

Safety boundaries

  • authentication and owner-safe lookup precede every conditional decision, including wildcard handling;
  • malformed, absent, and foreign-owned identifiers retain one 404 etl_job_not_found surface and receive no validator;
  • payload, raw principal, idempotency key, internal hash, lease identifier, SQL, exception text, target identity, and queue depth never enter the validator;
  • Cache-Control: no-store remains authoritative; the tag supports explicit authenticated revalidation and does not authorize shared caching;
  • no database object, migration, body field, mutation precondition, webhook, SSE, or long polling is introduced.

Merge policy

Keep manual-merge applied. Repair the earliest invalid stack boundaries first, then repair each downstream boundary from its exact current predecessor without destructive rewriting. After all predecessors integrate, retarget the valid conditional-status PR to protected develop, regenerate complete direct-base exact-head CI, SAST, security, coverage, packaging, provenance/SBOM, status, review-thread, automated-review, and independent non-author approval evidence, and merge only with expected-head semantics. Never bypass stack order, branch protection, tests, or security gates.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@seonghobae, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 4 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1f787500-5296-43df-8367-a353145af2be

📥 Commits

Reviewing files that changed from the base of the PR and between e7495b4 and addfe57.

📒 Files selected for processing (4)
  • CHANGELOG.md
  • docs/etl/durable-job-polling.md
  • etl-service/src/main/java/com/xtrmetl/etl/controller/EtlJobController.java
  • etl-service/src/test/java/com/xtrmetl/etl/job/EtlJobConditionalStatusTest.java

Comment @coderabbitai help to get the list of available commands.

…onal-status-v2

Advance conditional status validation to the repaired polling and hourly OpenCode lineage without discarding either change set.
Carry the corrected hourly OpenCode tests and documentation through the repaired polling head while preserving conditional status behavior.

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

Review exact current head aa7bb331faf8e7b3be439a17c36bafed9fc9638d only. Dependency Review and CycloneDX SBOM succeed and cross-platform CI is running on the repaired lineage. Verify owner-safe conditional status lookup, ordinary weak If-None-Match, wildcard handling after authorization, null-versus-empty validator separation, Cache-Control: no-store, absence of sensitive values in the tag, and preservation of every predecessor contract. Treat later heads as requiring a new review.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

requested='aa7bb331faf8e7b3be439a17c36bafed9fc9638d'

printf '%s\n' '== Checkout identity =='
git rev-parse HEAD
git cat-file -t "$requested"
git show -s --format='%H%n%P%n%s' "$requested"

printf '%s\n' '== Changed paths in reviewed commit =='
git diff-tree --no-commit-id --name-status -r "$requested"

printf '%s\n' '== Changed paths relative to first parent =='
parent="$(git rev-parse "${requested}^")"
git diff --name-status "$parent" "$requested"

printf '%s\n' '== Java source and test outlines =='
fd -e java . | while IFS= read -r file; do
  ast-grep outline "$file" --items all --type class,interface,method --match 'Job|Status|ETag|Etag|Tag|Controller' 2>/dev/null || true
done

printf '%s\n' '== Conditional request, ETag, cache, and canonicalization references =='
rg -n -i -C 5 \
  'if-none-match|etag|e-tag|cache-control|not modified|notmodified|sha-?256|canonical|null marker|length.?prefix|durable.?job|job.?status' \
  -g '*.java' -g '*.md' -g '*.yml' -g '*.yaml' -g '*.properties' .

printf '%s\n' '== Diff =='
git diff --find-renames --find-copies --unified=80 "$parent" "$requested" -- \
  '*.java' '*.md' '*.yml' '*.yaml' '*.properties'

Length of output: 196913


🏁 Script executed:

#!/bin/bash
set -euo pipefail

commit='aa7bb331faf8e7b3be439a17c36bafed9fc9638d'

echo '== Exact commit identity =='
printf 'checked_out_head='
git rev-parse HEAD
printf 'requested_commit='
git rev-parse "$commit"
git show -s --format='subject=%s%nparents=%P%ncommit_date=%cI' "$commit"

echo '== Paths in requested commit related to status validation =='
git ls-tree -r --name-only "$commit" | rg -i \
  '(etag|entity.?tag|conditional|if.?none.?match|job.*status|status.*job|polling|durable.*job)'

echo '== Matching source/test lines in requested commit =='
git grep -n -i -E \
  'if-none-match|etag|entity.?tag|not.?modified|sha-?256|canonical|null|cache-control|findowned' \
  "$commit" -- '*.java' '*.md' || true

echo '== Commit-level conditional-status diff =='
parent="$(git rev-parse "${commit}^")"
git diff --find-renames --unified=30 "$parent" "$commit" -- \
  'etl-service/src/main/**/*.java' \
  'etl-service/src/test/**/*.java' \
  'docs/**/*.md' \
  'CHANGELOG.md'

echo '== Exact controller source slices =='
git ls-tree -r --name-only "$commit" | rg 'EtlJobController\.java$|EtlJob.*Status.*Test\.java$|.*Etag.*\.java$|.*ETag.*\.java$' \
  | while IFS= read -r path; do
      echo "--- $path ---"
      git show "$commit:$path" | nl -ba | sed -n '1,420p'
    done

Length of output: 201875


🏁 Script executed:

#!/bin/bash
set -euo pipefail

commit='aa7bb331faf8e7b3be439a17c36bafed9fc9638d'

show_file() {
  local path="$1"
  echo "===== ${path} ====="
  git show "${commit}:${path}"
}

show_file 'etl-service/src/main/java/com/xtrmetl/etl/controller/EtlJobController.java'
show_file 'etl-service/src/main/java/com/xtrmetl/etl/controller/EtlJobPollingAdvice.java'
show_file 'etl-service/src/main/java/com/xtrmetl/etl/job/EtlJobStatusResponse.java'
show_file 'etl-service/src/main/java/com/xtrmetl/etl/job/EtlJobSnapshot.java'
show_file 'etl-service/src/test/java/com/xtrmetl/etl/job/EtlJobConditionalStatusTest.java'

echo '===== Exact conditional-status paths and definitions ====='
git grep -n -E \
  'class EtlJobPollingAdvice|record EtlJobStatusResponse|ResponseEntity<|checkNotModified|If-None-Match|IF_NONE_MATCH|ETAG|ETag|EntityTag|MessageDigest|failureCode|findOwned' \
  "$commit" -- \
  'etl-service/src/main/java/**/*.java' \
  'etl-service/src/test/java/com/xtrmetl/etl/job/EtlJobConditionalStatusTest.java' \
  || true

Length of output: 52110


@seonghobae I completed the static review for commit aa7bb331faf8e7b3be439a17c36bafed9fc9638d only.

I found no blocking issues.

Verified items:

  • The status endpoint authenticates and performs owner-scoped findOwned(...) before conditional handling.
  • Ordinary weak If-None-Match uses Spring MVC conditional processing with the response weak ETag.
  • Wildcard If-None-Match: * is handled only after owner-safe lookup.
  • A missing or foreign-owned job remains 404 etl_job_not_found without an ETag.
  • The validator uses length-prefixed values and a distinct N; null marker. null and "" cannot collide.
  • The validator covers all status representation fields: job ID, lifecycle state, attempt count, failure code, creation time, and update time.
  • The validator excludes payloads, principals, idempotency keys, internal hashes, lease values, SQL, and exception text.
  • Cache-Control: no-store remains present on 200 OK, explicit 304 Not Modified, and error responses.
  • The focused tests cover ordinary weak matching, wildcard matching, state and failure-code invalidation, null-versus-empty separation, submission isolation, and owner-safe not-found behavior.

This review does not apply to a later head. CI remains required for runtime verification.

⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Preserve the complete conditional-status implementation and fail-first history while incorporating PR #130 exact head e7495b4. Resolve CHANGELOG.md additively and retain all predecessor policy evidence.
seonghobae added a commit that referenced this pull request Aug 6, 2026
Preserve the complete cancellation implementation and fail-first history while incorporating PR #131 exact head addfe57. Resolve CHANGELOG.md additively and retain exact-head publication-policy safeguards.

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review
@cwl-noema-review
@opencode-agent

Please review the exact live head against its declared #130 stacked base only. Verify weak ETags are built from typed marker-separated length-prefixed values for every operator-visible field, null remains distinct from empty, authentication and owner-safe lookup precede ordinary and wildcard If-None-Match handling, validator invalidates on every represented lifecycle field change, Cache-Control:no-store and body compatibility are preserved, and inherited polling/pagination/worker/NVIDIA-NIM contracts remain intact. Review only; do not retarget, update the branch, remove manual-merge, merge, release, or alter protections.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo='ContextualWisdomLab/mightyETL'
expected_head='addfe57e8948a8e274b297cf629582895fb760fc'
expected_base='e7495b4fe558f543fe5fc1a1834e2f87542263a1'

echo '== GitHub pull request identity =='
gh pr view 131 --repo "$repo" --json number,headRefOid,baseRefOid,baseRefName,headRefName,mergeable,state \
  --jq '{number, headRefOid, baseRefOid, baseRefName, headRefName, mergeable, state}'

echo '== Local commit identity and ancestry =='
printf 'checked_out_head='; git rev-parse HEAD
printf 'expected_head='; git rev-parse "$expected_head"
printf 'expected_base='; git rev-parse "$expected_base"
git merge-base --is-ancestor "$expected_base" "$expected_head"
echo 'base_is_ancestor=true'
git show -s --format='head=%H%nparents=%P%nsubject=%s' "$expected_head"
git show -s --format='base=%H%nsubject=%s' "$expected_base"

echo '== Changed paths from declared base to exact head =='
git diff --name-status "$expected_base" "$expected_head"

echo '== Map candidate source and test files =='
fd -e java -e md . | rg -i \
  '(EtlJob.*(Controller|Polling|Status|Conditional|Pagination|Worker)|Nim|Nvidia|CHANGELOG)'

echo '== Conditional request and contract references =='
rg -n -i -C 3 \
  'if-none-match|etag|e-tag|checkNotModified|not modified|cache-control|no-store|sha-256|messageDigest|length.?prefix|null marker|findOwned|pagination|polling|worker|nvidia|nim' \
  -g '*.java' -g '*.md' -g '*.yml' -g '*.yaml' .

echo '== Exact diff, restricted to code, tests, and changelog =='
git diff --find-renames --unified=55 "$expected_base" "$expected_head" -- \
  '*.java' '*.md' '*.yml' '*.yaml'

Length of output: 202151


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo='ContextualWisdomLab/mightyETL'
head='addfe57e8948a8e274b297cf629582895fb760fc'
base='e7495b4fe558f543fe5fc1a1834e2f87542263a1'

echo '== Exact GitHub and local identities =='
gh pr view 131 --repo "$repo" --json headRefOid,baseRefOid,mergeable,state \
  --jq '{headRefOid, baseRefOid, mergeable, state}'
printf 'local_head='; git rev-parse HEAD
printf 'review_head='; git rev-parse "$head"
printf 'review_base='; git rev-parse "$base"
git merge-base --is-ancestor "$base" "$head" && echo 'declared_base_is_ancestor=true'

echo '== Full declared-base diff path list =='
git diff --name-status "$base" "$head"

echo '== Relevant file outlines =='
for path in \
  etl-service/src/main/java/com/xtrmetl/etl/controller/EtlJobController.java \
  etl-service/src/main/java/com/xtrmetl/etl/controller/EtlJobPollingAdvice.java \
  etl-service/src/main/java/com/xtrmetl/etl/job/EtlJobStatusResponse.java \
  etl-service/src/test/java/com/xtrmetl/etl/job/EtlJobConditionalStatusTest.java \
  etl-service/src/test/java/com/xtrmetl/etl/job/EtlJobPollingAdviceTest.java \
  etl-service/src/test/java/com/xtrmetl/etl/job/EtlJobPaginationControllerTest.java \
  etl-service/src/test/java/com/xtrmetl/etl/job/EtlJobWorkerTest.java; do
  if git cat-file -e "$head:$path" 2>/dev/null; then
    echo "--- OUTLINE $path ---"
    git show "$head:$path" > "/tmp/$(basename "$path")"
    ast-grep outline "/tmp/$(basename "$path")" --items all --type class,method --view compact || true
  fi
done

echo '== Exact conditional implementation =='
git show "$head:etl-service/src/main/java/com/xtrmetl/etl/controller/EtlJobController.java" \
  | nl -ba | sed -n '150,330p'
git show "$head:etl-service/src/main/java/com/xtrmetl/etl/job/EtlJobStatusResponse.java" \
  | nl -ba | sed -n '1,180p'
git show "$head:etl-service/src/main/java/com/xtrmetl/etl/controller/EtlJobPollingAdvice.java" \
  | nl -ba | sed -n '1,260p'
git show "$head:etl-service/src/test/java/com/xtrmetl/etl/job/EtlJobConditionalStatusTest.java" \
  | nl -ba | sed -n '1,280p'

echo '== Status endpoint and polling advice changes relative to base =='
git diff --unified=30 "$base" "$head" -- \
  etl-service/src/main/java/com/xtrmetl/etl/controller/EtlJobController.java \
  etl-service/src/main/java/com/xtrmetl/etl/controller/EtlJobPollingAdvice.java \
  etl-service/src/main/java/com/xtrmetl/etl/job/EtlJobStatusResponse.java

echo '== Inherited-contract file changes relative to base =='
for path in \
  etl-service/src/main/java/com/xtrmetl/etl/job/EtlJobWorker.java \
  etl-service/src/main/java/com/xtrmetl/etl/job/EtlJobWorkerProperties.java \
  etl-service/src/main/java/com/xtrmetl/etl/job/EtlJobService.java \
  etl-service/src/main/java/com/xtrmetl/etl/controller/EtlApiProblemHandler.java \
  etl-service/src/main/java/com/xtrmetl/etl/nim/NvidiaNimClient.java; do
  if git cat-file -e "$head:$path" 2>/dev/null; then
    printf '%s: ' "$path"
    git diff --quiet "$base" "$head" -- "$path" && echo 'unchanged' || echo 'changed'
  fi
done

echo '== Test coverage references for representation fields and inherited contracts =='
rg -n -C 2 \
  'createdAt|updatedAt|attemptCount|jobStatus|failureCode|If-None-Match|ETag|Retry-After|pagination|NVIDIA|Nim|pollOnce' \
  etl-service/src/test/java/com/xtrmetl/etl/job/EtlJobConditionalStatusTest.java \
  etl-service/src/test/java/com/xtrmetl/etl/job/EtlJobPollingAdviceTest.java \
  etl-service/src/test/java/com/xtrmetl/etl/job/EtlJobPaginationControllerTest.java \
  etl-service/src/test/java/com/xtrmetl/etl/job/EtlJobWorkerTest.java 2>/dev/null || true

Length of output: 6092


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='addfe57e8948a8e274b297cf629582895fb760fc'
base='e7495b4fe558f543fe5fc1a1834e2f87542263a1'

show_range() {
  local path="$1"
  local start="$2"
  local end="$3"
  echo "--- ${path}:${start}-${end} ---"
  git show "${head}:${path}" | cat -n | sed -n "${start},${end}p"
}

echo '== Source outlines =='
for path in \
  etl-service/src/main/java/com/xtrmetl/etl/controller/EtlJobController.java \
  etl-service/src/main/java/com/xtrmetl/etl/controller/EtlJobPollingAdvice.java \
  etl-service/src/main/java/com/xtrmetl/etl/job/EtlJobStatusResponse.java \
  etl-service/src/test/java/com/xtrmetl/etl/job/EtlJobConditionalStatusTest.java; do
  echo "--- OUTLINE ${path} ---"
  git show "${head}:${path}" > "/tmp/$(basename "$path")"
  ast-grep outline "/tmp/$(basename "$path")" --items all --type class,method --view signatures || true
done

echo '== Controller conditional status implementation =='
show_range etl-service/src/main/java/com/xtrmetl/etl/controller/EtlJobController.java 150 320

echo '== Status response model =='
show_range etl-service/src/main/java/com/xtrmetl/etl/job/EtlJobStatusResponse.java 1 180

echo '== Polling response advice =='
show_range etl-service/src/main/java/com/xtrmetl/etl/controller/EtlJobPollingAdvice.java 1 280

echo '== Conditional status tests =='
show_range etl-service/src/test/java/com/xtrmetl/etl/job/EtlJobConditionalStatusTest.java 1 280

echo '== Base-to-head diff for controller and response model =='
git diff --unified=40 "$base" "$head" -- \
  etl-service/src/main/java/com/xtrmetl/etl/controller/EtlJobController.java \
  etl-service/src/main/java/com/xtrmetl/etl/controller/EtlJobPollingAdvice.java \
  etl-service/src/main/java/com/xtrmetl/etl/job/EtlJobStatusResponse.java

echo '== Locate NVIDIA-NIM implementation and verify it is unchanged =='
fd -i -e java 'nim|nvidia' etl-service/src/main/java | while IFS= read -r path; do
  printf '%s: ' "$path"
  git diff --quiet "$base" "$head" -- "$path" && echo 'unchanged' || echo 'changed'
done

echo '== Verify inherited implementation files are unchanged =='
for path in \
  etl-service/src/main/java/com/xtrmetl/etl/job/EtlJobWorker.java \
  etl-service/src/main/java/com/xtrmetl/etl/job/EtlJobWorkerProperties.java \
  etl-service/src/main/java/com/xtrmetl/etl/job/EtlJobService.java \
  etl-service/src/main/java/com/xtrmetl/etl/controller/EtlApiProblemHandler.java; do
  printf '%s: ' "$path"
  git diff --quiet "$base" "$head" -- "$path" && echo 'unchanged' || echo 'changed'
done

Length of output: 44663


@seonghobae I completed the static review of exact head addfe57e8948a8e274b297cf629582895fb760fc against exact base e7495b4fe558f543fe5fc1a1834e2f87542263a1 only.

I found no blocking issues.

Verified items:

  • PR #131 has the declared live head and declared stacked base. The base is an ancestor of the head.
  • The diff is bounded to the conditional-status controller, its tests, polling documentation, and CHANGELOG.md.
  • EtlJobController.status(...) authenticates the principal and completes findOwned(...) before it derives or evaluates an entity tag.
  • Missing, malformed, and foreign-owned resources retain the owner-safe error path. They do not receive an ETag.
  • Ordinary If-None-Match uses the weak ETag supplied through ResponseEntity.
  • Explicit If-None-Match: * handling occurs only after owner-safe lookup.
  • The tag input includes every EtlJobStatusResponse field: jobRecordId, jobStatus, attemptCount, failureCode, createdAt, and updatedAt.
  • Canonical values use a value marker and decimal length prefix. Null uses a separate N; marker. Thus, null and "" produce different tag inputs.
  • The SHA-256 tag input excludes payloads, principals, idempotency keys, internal hashes, lease data, SQL, and exception text.
  • Changes to lifecycle state, attempt count, failure code, creation time, or update time change the validator.
  • Cache-Control: no-store remains present for status 200 OK responses and explicit wildcard 304 Not Modified responses.
  • The status JSON body model remains unchanged for non-conditional requests.
  • Submission responses do not receive the status ETag.
  • The durable-worker, worker configuration, job service, and problem-handler implementations are unchanged from the declared base. The bounded diff therefore preserves inherited polling, pagination, worker, and unrelated-controller contracts.

This was a static review. It does not replace exact-head runtime CI and security evidence.

⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@opencode-agent

opencode-agent Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Queued @cwl-noema-review ; Rejected @opencode-agent: repository is absent from OPENCODE_REPOSITORY_DISPATCH_TARGETS for PR #131 at head addfe57e8948a8e274b297cf629582895fb760fc. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

Copy link
Copy Markdown
Collaborator Author

Superseded by Draft PR #146 on the repaired stack. Replacement #146 descends from exact repaired predecessor #145 and preserves the bounded conditional-status implementation and fail-first history through ordinary auditable commits. Its current exact head 9e4d69e0bb33ab57627c697a5d028b5309eca2bb has successful exact-head CI, Dependency Review, CycloneDX SBOM, CodeRabbit status, zero unresolved review threads, and GitHub mergeability on its current stacked base. This old branch remains preserved as historical evidence. None of #131's checks, reviews, approvals, statuses, or base snapshots transfer to #146. Closing this PR only removes the obsolete duplicate stack boundary; it does not make either branch merge-eligible or waive direct-base security and independent-review gates.

@seonghobae seonghobae closed this Aug 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant