Repository navigation
Cloud goals take --check and a model pin; Claude 5.5 prices - #37
Conversation
- phonton goal --check '<JSON array>' without --local runs that command on the verification copy in place of the detected Cargo, npm test and browser checks. Worker and orchestrator re-verification both use it. - [provider] pin_model = true sends every tier to the configured model. - A symlinked or junctioned node_modules reaches the verification copy. - A test command the shell cannot find is Unavailable, not a retried and escalated failure. - Budget prices for claude-haiku-5-5, claude-sonnet-5-5, claude-opus-5-5.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1c8ccd7e81
ℹ️ 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".
| let mut prompt_file: Option<PathBuf> = None; | ||
| let mut read_stdin = false; | ||
| let mut resume_task_id: Option<TaskId> = None; | ||
| let mut checks = Vec::new(); |
There was a problem hiding this comment.
Preserve custom checks across resumed goals
When a goal started with --check pauses and is later continued with the documented --resume <task-id> command, this fresh option list is empty unless the user happens to repeat every check. PausedRunSnapshot does not persist the checks, so the resumed orchestrator silently falls back to detected Cargo/npm/browser checks and can accept subsequent edits that fail the verification command selected for the original run. Persist and restore the checks with the paused snapshot, or require them explicitly when resuming.
Useful? React with 👍 / 👎.
* Release 0.26.0: Cloud goals run your own checks Bump the version in phonton-cli/Cargo.toml, Cargo.lock, package.json and the README badge, date the Unreleased CHANGELOG entry as 0.26.0, and add release-notes/v0.26.0.md. The release carries #37 (cloud `--check`, `pin_model`, Claude 5.5 prices, linked node_modules, missing test runner stops as unavailable) and #38 (64K reply cap with streaming for Claude 5+, retry of a thinking-only reply at low effort). * Release notes: forth and bowling pass on the release binary
With a cloud key,
phonton goalpicked its own checks: Cargo,npm testor the browser check. A Python repository ended "Verification not run", and nothing pinned the model, so standard and frontier work went to larger models than the configured one. A fair comparison with the bare model or another harness was not possible on the cloud path. A Claude smoke run on Aider Polyglot exercises found these gaps, plus two that cost money: a junctionednode_moduleswas dropped from the verification copy, and the resulting'jest' is not recognizedfailure was retried and escalated ($0.46 on one exercise).Changes
phonton goal --check '<JSON array>'without--local, parsed exactly likephonton goal --local --check. Each check runs on the patched verification copy in place of the detected Cargo,npm testand browser checks and must exit 0; repeat the flag for several. Without it, detection is unchanged. The worker and the orchestrator's independent re-verification both use the checks, and they are part of the verdict cache key. A goal routed to the local harness forwards them.pin_model = trueunder[provider]sends every tier tomodel. Off by default, so escalation is unchanged.node_moduleswhen it is a symlink or a Windows junction, not only a real directory.'jest' is not recognized,sh: 1: jest: not found,command not found, macOSexecvp()failure) isVerifyResult::Unavailable, which stops without retrying or escalating, fornpm testand for--checkcommands.claude-haiku-5-5($0.10 / $0.50 per 1M tokens),claude-sonnet-5-5($2 / $10) andclaude-opus-5-5($4 / $20), list prices for prompts up to 100K tokens, so receipts no longer saypricing_known: false.Tests
explicit_checks_replace_detection_and_run_in_the_copy,missing_test_runner_is_recognized_on_each_shell,linked_node_modules_reach_the_check_copy, and the check-aware memo key incheck_memo_keys_on_exact_tree_content_and_skips_unavailable(phonton-verify).explicit_checks_reach_worker_verification(phonton-worker dispatcher).headless_goal_check_takes_json_arrays_like_local_goals,pinned_model_dispatches_on_every_tier,claude_5_5_prices_cover_every_dispatch_tier(phonton-cli).Verified on Windows
cargo fmt --all -- --checkandcargo clippy --locked --workspace --all-targets -- -D warningspass.cargo test --locked --workspace --no-fail-fastafternpm ci --ignore-scriptsandnpx playwright install chromium: 812 passed, 0 failed, 15 ignored, including the browser check.phonton goal --helpshows--check, andphonton config showreadspin_model = true.scale-generator(Python),ledger(JavaScript),luhn-from(Rust), arms phonton/bare/opencode, every arm onclaude-haiku-5-5(pin_model = true). Phonton got the same test command as the scorer through--check, as the local harness does. All 9 runs passed the pristine tests with no false passes. Each Phonton goal ended review-ready after one model hop on Haiku 5.5, with the test layer passing andpricing_known: true; its receipts total $0.0092. The whole smoke cost about $0.05 (bare $0.006, OpenCode $0.033).jestwent missing from the verification copy ($0.46).