Skip to content

Harbor export - #62

Closed
Frame17 wants to merge 14 commits into
facebookresearch:mainfrom
Frame17:harbor-export
Closed

Harbor export#62
Frame17 wants to merge 14 commits into
facebookresearch:mainfrom
Frame17:harbor-export

Conversation

@Frame17

@Frame17 Frame17 commented Aug 31, 2026

Copy link
Copy Markdown

No description provided.

Frame17 and others added 14 commits August 14, 2026 16:32
Co-Authored-By: Claude <claude@air.dev>
Move the Harbor task exporter (added in 25f8dde) out of programbench and
into a new sibling package src/kotlinai: core conversion, CLI, verifier
scripts, and Jinja templates. harbor.py now resolves its own package root
and loads templates via PackageLoader("kotlinai", ...); programbench keeps
providing shared data-loading/filtering infrastructure. The build backend
ships both modules and the programbench CLI registers the harbor sub-app
from kotlinai.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add `solve.sh` template to reconstruct source and build gold executables.
- Enhance `test.sh` to retry tests serially on xdist crashes.
- Extend verifier to include per-branch test failures in reports.
- Replace `solve.sh` with branch-agnostic `compile.sh` in solution packages.
- Update `README.md` with golden solution details and usage instructions.
- Bump `programbench` dependency to 1.2.4.
…onverter. Implement task configuration options.
…omparison CLI

- Enable Kotlin and Java toolchains for agent and verifier Dockerfiles.
- Add `compare` CLI command for running cross-language experiments.
- Enhance `config.yaml` to support language-specific tasks and parallelism.
- Update README with language comparison experiment documentation.
- Include tests for toolchain integration and language comparison workflows.
- Copy task-level build script (`build.sh`) if not provided in the destination.
- Add `scripts/run_oracle_verification.sh` for streamlined Oracle agent execution.
- Introduce `harbor export-config` CLI command for exporting tasks from a Harbor config.
- Update shell scripts (`run_agent.sh`, `run_oracle_verification.sh`) to support skipping config exports using the `HARBOR_SKIP_EXPORT` environment variable.
- Extend test coverage to include Harbor config export functionality.
- Raise `n_concurrent_trials` and `parallelism` from 2 to 8 for increased task export concurrency.
- Implement `on_error` handler to skip and log failed task conversions without halting the entire batch.
- Extend failure reporting to include skipped instances in conversion summaries.
- Add new task repositories and task-level `build.sh` script for the `rust-lang__mdbook` task.
- Introduce fallback mechanism for task-level build scripts when missing in branches.
…olicies

- Introduce `--agent-user` option in `harbor export` to enable Oracle-verifiable tasks requiring root access.
- Refine `Dockerfile` to drop unnecessary `NOPASSWD` sudo access for enhanced security.
- Update `task.toml` to hand off the full workspace without exclusions, avoiding symlink issues.
- Add paired-difference summaries for language comparisons with descriptive 95% confidence intervals.
- Pin agent CLI version for experiment consistency, avoiding run-to-run confounds.
- Expand agent image with inspection tools (`file`, `xxd`) necessary for trials.
… symlink protection

- Move reference binary to a root-only directory (`/opt/programbench/reference`) and replace it with a symlink to prevent unauthorized modifications.
- Harden `test.sh` by dropping symlinks that escape or dangle outside the workspace.
- Ensure verifier image wipes relocated reference binaries for cleanroom guarantees.
- Expand testing to cover relocation, verifier cleanup, and symlink drop logic.
…periment robustness

- Extend `AGENT_TIMEOUT_SEC` to 3 hours for long-running tasks, with per-run spend capped at $30 to maintain budget control.
- Define a default retry policy (`max_retries=2`) to handle transient API errors while excluding genuine timeouts.
- Update `run_agent.sh` with Anthropic API key and base URL support.
- Ensure user-supplied configurations override defaults for retry and spend cap.
- Expand unit tests to validate new retry logic, cost cap enforcement, and timeout adjustments.
…owed hosts

- Require Gradle project structure for Kotlin/Java tasks with offline-compatible dependencies.
- Extend default agent allowed hosts to include Maven, Gradle, Kotlin, and related build-tool documentation.
- Adjust default retry policy: set `n_attempts=3` and `max_retries=2`.
- Update templates and Dockerfile to reflect Gradle integration.
- Introduce new dependencies (`ipykernel`, `matplotlib`, `pandas`) in `pyproject.toml`.
- Expand test coverage for Gradle enforcement, allowed hosts, and policy adjustments.
@meta-cla

meta-cla Bot commented Aug 31, 2026

Copy link
Copy Markdown

Hi @Frame17!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

@Frame17 Frame17 closed this Aug 31, 2026
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.

1 participant