Skip to content

feat(etl): replace polling cadence on repaired pagination stack - #145

Draft
seonghobae wants to merge 7 commits into
repair/durable-job-cursor-list-fda8dedfrom
repair/durable-job-poll-advisory-2a37789
Draft

feat(etl): replace polling cadence on repaired pagination stack#145
seonghobae wants to merge 7 commits into
repair/durable-job-cursor-list-fda8dedfrom
repair/durable-job-poll-advisory-2a37789

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

Stack repair purpose

This Draft replaces old-stack PR #130 with a non-destructive polling-advisory branch rooted at the exact current replacement pagination predecessor PR #144. The original #130 branch and its fail-first history remain preserved. No checks, reviews, approvals, statuses, comments, or base snapshots from #130 transfer to this replacement.

Exact current boundary

  • immediate predecessor PR: feat(etl): replace durable-job pagination on repaired worker stack #144;
  • base branch: repair/durable-job-cursor-list-fda8ded;
  • exact current predecessor/base tip: 2a37789e651316e9bf29cbbd68902aa827a50c63;
  • replacement branch: repair/durable-job-poll-advisory-2a37789;
  • exact current head: 2e388ad163cd97c53688decdca63d2b2dd98366f;
  • exact comparison: four commits ahead, zero behind, merge base exactly 2a37789e651316e9bf29cbbd68902aa827a50c63;
  • changed files: exactly the bounded four-file polling slice;
  • GitHub mergeability: true;
  • intended repaired order: #121 -> #143 -> #144 -> #145.

PR #144 remains the immediate stack predecessor. This replacement cannot transfer any old #130 evidence and must be revalidated again after every future predecessor/base movement.

Stack-divergence RCA and remediation feasibility

Old PR #130 targets the superseded pagination branch feat/durable-job-cursor-list-v2; its predecessor PR #129 is closed and was replaced by #144. Continuing #130 therefore preserves an obsolete ancestry boundary even though its local branch is internally mergeable.

Material options were tested against current repository authority and non-destructive stack policy:

The replacement path was therefore the smallest feasible root-cause repair.

TDD evidence

RED

Commit f6a7f3dc0b6659f05736916ef6cbb493fdbbee4d added only EtlJobPollingAdviceTest on exact predecessor #144. PR-triggered CI run 31293819337 checked out that literal head. macOS job 93195518812 reached Maven test compilation and failed with cannot find symbol: class EtlJobPollingAdvice exclusively from the new polling-advice test. Production compilation had already completed. The failure therefore proved the intended missing-production-type boundary rather than an import, fixture, dependency, runner, or stale-checkout defect. The later missing JaCoCo report in that job was a secondary consequence of test compilation stopping the reactor and is not treated as the root cause.

GREEN and documentation

  • 793f823259962a03e260fe2fd44e6a9f93a37f16 restores the minimal controller-scoped EtlJobPollingAdvice production implementation;
  • 2e840691d2ddb23f06377051c232d5498c09ed37 restores the RFC 9110 operator/client contract and rollback evidence in docs/etl/durable-job-polling.md;
  • exact current head 2e388ad163cd97c53688decdca63d2b2dd98366f records the behavior and test/documentation evidence in CHANGELOG.md.

The implementation advertises RFC 9110 Retry-After for PENDING and RUNNING status bodies only when the durable worker is enabled, derives a positive whole-second value by upward rounding of the validated fixed delay, removes stale advice for disabled-worker and terminal responses, leaves unrelated bodies unchanged, and adds no database object or persisted state.

Exact-current-head evidence

Accepted for literal head 2e388ad163cd97c53688decdca63d2b2dd98366f on the unchanged stacked base:

  • CI run 31294055411: success; Ubuntu, macOS, and Windows jobs each completed literal exact-head checkout, exact-SHA verification, and their applicable full Maven test command;
  • Dependency Review run 31294055431: success;
  • CycloneDX SBOM run 31294055437: success;
  • CodeRabbit exact-head commit status: success;
  • GitHub mergeability: true;
  • unresolved review threads: zero;
  • formal review submissions: zero.

The conditional self-hosted CI job is skipped and is not counted as positive evidence.

Not passing / still blocking:

  • SAST Semgrep and Security Scan are absent on this non-default stacked base and are not inferred from feat(etl): replace durable-job pagination on repaired worker stack #144, protected develop, a predecessor head, or a synthetic merge;
  • a qualifying independent non-author formal APPROVED review is absent;
  • every future predecessor/base integration invalidates this exact-head/base evidence and requires fresh direct-base acceptance evidence before merge.

Queued, pending, skipped-required, neutral-required, absent, cancelled, failed, stale-head, old-base, predecessor-head, and synthetic-merge-only evidence are not passing.

Security, compatibility, and rollback boundary

  • Retry-After is advisory and grants no authority;
  • disabled execution never advertises a local processing cadence;
  • the header contains only a bounded integer and no job, lease, principal, key, hash, payload, SQL, exception, target, or queue-depth data;
  • owner-scoped status authorization and Cache-Control: no-store remain unchanged;
  • the slice adds no database object, migration, persisted state, lifecycle transition, or API body field;
  • rollback removes only the optional response advice and documentation while older and newer clients remain compatible with header absence.

Gate policy

Keep this PR Draft and do not deepen the repaired stack in this invocation. After every predecessor integration, refresh the base and regenerate exact direct-base CI, Dependency Review, SBOM, SAST, Security Scan, commit status, review-thread, and independent non-author approval evidence. Merge only in dependency order with expected-head semantics and without weakening branch protection, security, coverage, or review requirements.

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: aea59343-6c2b-492c-beec-ea93e75c8c54

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@opencode-agent opencode-agent Bot added area: data Database, schema, migration, ETL, or lineage priority: medium Normal-priority or P2 work status: draft Draft pull request type: feature New or expanded product capability labels Aug 22, 2026
@seonghobae seonghobae added the enhancement New feature or request label Sep 7, 2026 — with ChatGPT Codex Connector
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: data Database, schema, migration, ETL, or lineage enhancement New feature or request manual-merge priority: medium Normal-priority or P2 work status: draft Draft pull request type: feature New or expanded product capability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant