feat(harness): fetch scripts from URL-referenced base harnesses#2525
Conversation
PR Summary by Qodoharness: fetch scripts from URL-referenced base harnesses Description
Diagram
High-Level Assessment
Files changed (3)
|
Site previewPreview: https://220a79d7-site.fullsend-ai.workers.dev Commit: |
|
🤖 Review · |
Code Review by Qodo
1. Abs-path base script bypass
|
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
b0fb28d to
dcbbf8c
Compare
|
🤖 Finished Review · ✅ Success · Started 7:03 PM UTC · Completed 7:19 PM UTC |
ReviewFindingsMedium
Low
Previous runReviewFindingsMedium
Low
Previous runReviewFindingsHigh
Medium
Low
Previous run (2)ReviewFindingsMedium
Low
Labels: PR modifies harness composition logic and ADR documentation Labels: PR modifies the trust model for executable resources by adding remote script fetching, warranting the security label alongside existing component labels. Previous runReviewFindingsMedium
Low
Previous run (2)ReviewFindingsHigh
Medium
Low
Previous run (3)ReviewFindingsHigh
Medium
Low
Previous run (4)ReviewFindingsMedium
Low
Labels: PR modifies harness composition logic and ADR documentation |
ralphbean
left a comment
There was a problem hiding this comment.
I think this needs a few changes before we can merge. See inline comments.
dcbbf8c to
76293c0
Compare
76293c0 to
091c671
Compare
|
🤖 Review · |
|
🤖 Finished Review · ❌ Failure · Started 7:34 PM UTC · Completed 7:50 PM UTC |
091c671 to
d70669b
Compare
|
🤖 Finished Review · ✅ Success · Started 7:58 PM UTC · Completed 8:13 PM UTC |
ralphbean
left a comment
There was a problem hiding this comment.
Previous findings addressed. One minor note inline.
…0038) Extend base: composition to resolve pre_script, post_script, validation_loop.script fields from URL-referenced base harnesses. Scripts are fetched from the base URL's directory, cached content-addressed, and paths rewritten to local cache paths before ValidateResourceTypes runs — preserving the invariant that standalone script URL references remain rejected. Absolute paths, URL references, and path traversal (..) in base script fields are rejected with explicit errors. agent_input is excluded from URL-base resolution since runtime treats it as a directory. This removes the last blocker for hosting agents in standalone repositories: a thin local harness can now inherit all resources (including scripts) from a remote base via URL. Includes URL-to-hash index for offline mode support, audit logging for script fetches, forge-level script resolution, and executable permission on cached scripts. Signed-off-by: Greg Allen <gallen@redhat.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Greg Allen <gallen@redhat.com>
d70669b to
23a44bf
Compare
|
🤖 Finished Review · ✅ Success · Started 9:16 PM UTC · Completed 9:56 PM UTC |
|
🤖 Finished Retro · ✅ Success · Started 10:14 PM UTC · Completed 10:24 PM UTC |
Retro: PR #2525 —
|
…se-scripts feat(harness): fetch scripts from URL-referenced base harnesses
Summary
base:composition to fetchpre_script,post_script,validation_loop.script, andagent_inputfrom URL-referenced base harnesses, removing the last blocker for hosting agents in standalone repositoriesfetch.FetchURL→fetch.CachePut), cached content-addressed, and paths rewritten to local cache paths beforeValidateResourceTypesruns — standalone script URL references remain rejected.fullsend-cache/url-index.json) for offline mode support, audit logging for script fetches, forge-level script resolution, and executable permission on cached scriptsbase:composition exception and its security rationaleTest plan
compose_test.gocovering all script types, forge scripts, child overrides, allowlist rejection, 404 errors, offline mode (cache miss + hit), executable permissions, audit logging, and edge cases🤖 Generated with Claude Code