feat(harness): add base composition for harness inheritance (ADR-0045 PR 4/7)#2180
Conversation
E2E tests did not runE2E tests run automatically for org/repo members and collaborators on pull requests. For other contributors, a maintainer must add the See E2E testing guide for details. |
|
🤖 Finished Review · ✅ Success · Started 3:09 PM UTC · Completed 3:22 PM UTC |
Site previewPreview: https://e6cfe4f9-site.fullsend-ai.workers.dev Commit: |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
ReviewFindingsLow
Info
Previous runReviewFindingsMedium
Low
Info
Previous runReviewFindingsMedium
Low
Info
Previous run (2)ReviewFindingsHigh
Medium
Low
Previous run (3)ReviewFindingsHigh
Medium
Low
Previous run (4)ReviewFindingsMedium
Low
Info
Previous run (5)ReviewFindingsHigh
Medium
Low
Info
Previous run (6)ReviewFindingsHigh
Medium
Low
Info
|
d690457 to
2affba7
Compare
|
🤖 Finished Review · ✅ Success · Started 3:39 PM UTC · Completed 3:51 PM UTC |
2affba7 to
eaadd7a
Compare
|
🤖 Finished Review · ✅ Success · Started 4:03 PM UTC · Completed 4:15 PM UTC |
eaadd7a to
3694b84
Compare
|
🤖 Finished Review · ✅ Success · Started 4:37 PM UTC · Completed 4:51 PM UTC |
3694b84 to
c3f11d0
Compare
|
🤖 Finished Review · ✅ Success · Started 5:37 PM UTC · Completed 5:49 PM UTC |
c3f11d0 to
cc00b23
Compare
… PR 4/7) Add the `base` field to harness YAML schema and implement LoadWithBase() for harness-to-harness composition. A harness can now reference another harness (local path or URL) as its foundation, inheriting all fields and overriding only what differs. Key changes: - Add `Base` field to Harness struct with URL validation requiring #sha256=... integrity hash - Create compose.go with LoadWithBase(), mergeHarness(), and helpers - Implement ADR-0045 merge rules: scalars override, slices concat, maps merge, pointer structs replace - Support recursive base chains with cycle detection and depth limit (5) - URL bases use ADR-0038's SSRF-hardened fetch infrastructure - Return base dependencies for lock file integration (PR 5) Signed-off-by: Claude <noreply@anthropic.com> Signed-off-by: Greg Allen <gallen@redhat.com>
cc00b23 to
f3ccb43
Compare
|
🤖 Review · Started 6:31 PM UTC |
|
🤖 Finished Review · ✅ Success · Started 6:34 PM UTC · Completed 6:46 PM UTC |
|
🤖 Finished Retro · ✅ Success · Started 11:48 AM UTC · Completed 11:59 AM UTC |
Retro: PR #2180 — feat(harness): add base composition for harness inheritanceOverall assessment: Workflow went well. The review agent delivered high-quality findings on a security-sensitive 1684-line change, catching a self-authorization bypass (fail-open when OrgAllowlist empty), path traversal in local base resolution, and privilege escalation via AllowedRemoteResources injection from URL-fetched bases. All high/medium findings were remediated by the author across 3 review iterations before approval. What went well
Known waste patterns observed (already tracked)
No new proposals — all improvement opportunities identified are already covered by existing open issues. |
Summary
basefield to harness YAML schema for harness-to-harness inheritanceLoadWithBase()for recursive base chain merging with cycle detectionTest plan
make go-test— all tests pass including 24 new compose testsmake go-vet— no issuesmake lint— passesLoadWithBaseinto CLI for end-to-end verification🤖 Generated with Claude Code