Skip to content

ci(polymarket): publish bounded market recorder image - #280

Merged
proerror77 merged 3 commits into
mainfrom
codex/polymarket-market-recorder-image-279
Jul 23, 2026
Merged

ci(polymarket): publish bounded market recorder image#280
proerror77 merged 3 commits into
mainfrom
codex/polymarket-market-recorder-image-279

Conversation

@proerror77

@proerror77 proerror77 commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Closes #279

Change contract

Publish a dedicated exact-source new-ploy-runner --features full OCI target for bounded, dry-run-only ACK Polymarket market recording without changing any running collector.

Out of scope

Production ECS deployment/cutover, data collection, reference collection, evidence/snapshot/evaluator logic, and Paper/Shadow/Live execution.

Dependency / merge order

None. Merge before the bounded ACK acquisition issue consumes the immutable image digest.

Focused validation

  • Red proof: recorder Dockerfile and ACR target were absent before this change.
  • cargo tree --locked -p new-ploy-runner --features full -e features contains no live-execution.
  • cargo check --locked -p new-ploy-runner --features full
  • cargo run --locked -p new-ploy-runner --features full -- --help 2>&1 | grep -Fq -- --dry-run
  • cargo test --locked -p new-ploy-runner --features full
  • ACR workflow YAML parse, target-matrix selection, and git diff --check.
  • Branch ACR build/source-label/CLI smoke will be attached before merge because the local Docker daemon is unavailable and the requested execution boundary is cloud-only.

Rollout / rollback impact

Adds one opt-in image repository/target. No service adopts it automatically. Rollback removes the target; already published immutable images remain inert.

Matt flow

Focused infrastructure defect issue -> failing capability proof -> minimum Docker/workflow implementation -> targeted validation -> code review. A separate PRD is unnecessary because #279 defines one bounded publication contract.

Summary by CodeRabbit

  • New Features

    • Added support for publishing the Polymarket market recorder container image.
    • Added a secure, minimal runtime image that runs as a non-root user.
    • The container now supports the --dry-run option and displays help by default.
  • Tests

    • Added automated verification of the image version and command-line functionality.

@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

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

Next review available in: 50 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: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 884436e8-4d36-4671-a72e-b98038dcf1b5

📥 Commits

Reviewing files that changed from the base of the PR and between 7c160f2 and 8b1eb48.

📒 Files selected for processing (3)
  • .github/workflows/acr-publish.yml
  • rust_hft/deployment/docker/Dockerfile.polymarket-market-recorder
  • rust_hft/deployment/docker/polymarket-market-recorder-entrypoint.sh
📝 Walkthrough

Walkthrough

Adds a multi-stage Docker image for new-ploy-runner as a Polymarket market recorder and integrates it into the ACR publishing workflow with revision-label and --dry-run verification.

Changes

Polymarket market recorder image

Layer / File(s) Summary
Recorder image build
rust_hft/deployment/docker/Dockerfile.polymarket-market-recorder
Builds new-ploy-runner with locked dependencies and full features, validates that live-execution is absent, and packages it in a non-root Debian runtime with tini.
ACR publish and image verification
.github/workflows/acr-publish.yml
Adds the explicit recorder target and Docker matrix entry, then verifies the image revision label and --dry-run help output.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant GitHubActions
  participant DockerBuild
  participant ACR
  participant RecorderContainer
  GitHubActions->>DockerBuild: Build polymarket-market-recorder image
  DockerBuild->>ACR: Push image
  GitHubActions->>ACR: Pull image
  GitHubActions->>ACR: Check org.opencontainers.image.revision
  GitHubActions->>RecorderContainer: Run --help
  RecorderContainer-->>GitHubActions: Return --dry-run help output
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: publishing a Polymarket market recorder OCI image.
Description check ✅ Passed All required sections are present and filled with concrete details for contract, out-of-scope work, validation, rollout, and scope exception.
Linked Issues check ✅ Passed The Dockerfile and workflow add the dedicated target, full-feature no-live-execution build, revision check, and dry-run verification needed for #279.
Out of Scope Changes check ✅ Passed The changes stay focused on the new image target and workflow support, with no unrelated functionality or deployment changes evident.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/polymarket-market-recorder-image-279

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.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7c160f272f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

pkg-config \
&& rm -rf /var/lib/apt/lists/*

COPY prediction-markets/ prediction-markets/

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Copy the external workspace dependencies into the builder

With the workflow's rust_hft build context, this copies only prediction-markets, but that workspace includes crates/ploy-research, whose manifest references ../../../data-pipelines/core and ../../../research-core/search-kernel. Cargo loads all workspace-member manifests before selecting -p new-ploy-runner; reproducing the copied layout with cargo metadata --locked --no-deps fails because /work/data-pipelines/core/Cargo.toml is absent. Consequently this target—and the new entry in an all publication—cannot build until those external path dependencies are included in the image context.

Useful? React with 👍 / 👎.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/acr-publish.yml:
- Around line 208-219: Update the Polymarket market recorder verification step
and its image/launcher contract: make bounded-job invocations require and pass
--dry-run, reject executions that omit it, and replace the help-text grep with
an executable smoke test that confirms --dry-run prevents execution. Preserve
the existing image pull and source-revision validation around the Verify
Polymarket market recorder image step.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a3965cf3-669d-4e09-8ebd-77d57fde5922

📥 Commits

Reviewing files that changed from the base of the PR and between 4ac9ecc and 7c160f2.

📒 Files selected for processing (2)
  • .github/workflows/acr-publish.yml
  • rust_hft/deployment/docker/Dockerfile.polymarket-market-recorder

Comment thread .github/workflows/acr-publish.yml Outdated
@proerror77

Copy link
Copy Markdown
Owner Author

Final focused evidence on head 8b1eb489cfafe61221d44a2daf73510e0b30f3b2:

  • ACR run: https://github.com/proerror77/monday/actions/runs/30028722894
  • Immutable image: polymarket-market-recorder@sha256:625eda3e15c884e7cdd685acf346662c4a072577564266cfc7fb922810a0186b
  • OCI source revision matched the PR head.
  • Executable smoke rejected an invocation without --dry-run and accepted --dry-run --help.
  • The Docker build now includes the complete Rust workspace context; the earlier missing hft-data manifest failure is resolved.
  • Focused code review found no remaining behavior-contract issue.

@proerror77
proerror77 merged commit 7fecb9d into main Jul 23, 2026
40 of 41 checks passed
@proerror77
proerror77 deleted the codex/polymarket-market-recorder-image-279 branch July 23, 2026 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Publish an exact-main Polymarket market recorder image for bounded ACK acquisition

1 participant