chore: remove pinned agent digests, disable scaffold sync dispatch - #6486
Conversation
PR Summary by QodoRemove pinned agent digests and disable scaffold sync push trigger
AI Description
Diagram
High-Level Assessment
Files changed (2)
|
The CLI now falls back to resolving agents from heads/main when no agents are configured in config.yaml, making the pinned SHA entries and automatic sync dispatch unnecessary. The scaffold sync workflow is kept but only triggerable manually via workflow_dispatch. The qualityflow agent entry is retained because it comes from an external repo (redhat-community-ai-tools/qualityflow-fullsend) and is not covered by the CLI fallback. 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>
928d2b2 to
b4f14fb
Compare
|
🤖 Review · Commit: |
|
🤖 Review · Commit: |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Code Review by Qodo
1. Scribe agent no longer resolvable
|
| - source: https://raw.githubusercontent.com/fullsend-ai/agents/6414483f2c90acc54a6b7868ac2829fc76eb46e8/harness/review.yaml#sha256=8e761b0f56f87379635ca559dc33b5aa45304f8c951d75f456a0d2a42456531c | ||
| - source: https://raw.githubusercontent.com/fullsend-ai/agents/6414483f2c90acc54a6b7868ac2829fc76eb46e8/harness/retro.yaml#sha256=907c0ce9c4da6ebfd4d3be7297afd0050026494f6d1d8c135e6bd5671f49a7c2 | ||
| - source: https://raw.githubusercontent.com/fullsend-ai/agents/6414483f2c90acc54a6b7868ac2829fc76eb46e8/harness/prioritize.yaml#sha256=026fdd71a4779cbf2155f27f1846065fa20add11e42493013beabbc32cbcea6a | ||
| - source: https://raw.githubusercontent.com/fullsend-ai/agents/6414483f2c90acc54a6b7868ac2829fc76eb46e8/harness/scribe.yaml#sha256=988dc1b90889abda5cf9cca06059bcdd0df6ca32e860318a8a433f698b9d9004 |
There was a problem hiding this comment.
1. Scribe agent no longer resolvable 🐞 Bug ≡ Correctness
Removing the config entry for the scribe harness makes fullsend run scribe fail because the agents-repo fallback only supports a fixed known-agent allowlist that does not include "scribe". Any workflow/user invocation of the scribe agent will now error with "not in config and agents-repo fallback unavailable".
Agent Prompt
## Issue description
The PR removes the `scribe.yaml` agent registration from `.fullsend/config.yaml`. The runtime fallback to `fullsend-ai/agents` only applies to a small hard-coded set of known agents and does **not** include `scribe`, so resolving `scribe` now fails.
## Issue Context
- After this PR, `.fullsend/config.yaml` lists only the external qualityflow harness under `agents:`.
- In `internal/cli/run.go`, `resolveAgentSource` falls back to `tryAgentsRepoFallback` when an agent is not found in config.
- `tryAgentsRepoFallback` is gated by `defaultAgentsRepoKnownAgents`, which does not include `scribe`, so fallback is skipped and resolution fails.
## Fix Focus Areas
- .fullsend/config.yaml[8-20]
- internal/cli/run.go[3858-3886]
- internal/cli/run.go[91-106]
## Expected fix
Choose one:
1) Re-add the `scribe` agent entry in `.fullsend/config.yaml` (with integrity pin) if `scribe` is still intended to be runnable in this repo.
2) If `scribe` is now intended to be resolved via fallback, add `"scribe": true` to `defaultAgentsRepoKnownAgents` and ensure `fullsend-ai/agents` actually contains `harness/scribe.yaml`.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
| - source: https://raw.githubusercontent.com/fullsend-ai/agents/6414483f2c90acc54a6b7868ac2829fc76eb46e8/harness/triage.yaml#sha256=44b1cecd335aa0a857e3d11a9224d9a1fb8ca60d2ffbd3abe3b84c6c7653e1c9 | ||
| - source: https://raw.githubusercontent.com/fullsend-ai/agents/6414483f2c90acc54a6b7868ac2829fc76eb46e8/harness/code.yaml#sha256=0658cd738a4747a2ebac4726c857dca466cca54f9c92305a3a9fea3587a6866b | ||
| - source: https://raw.githubusercontent.com/fullsend-ai/agents/6414483f2c90acc54a6b7868ac2829fc76eb46e8/harness/fix.yaml#sha256=929c8b44f724cf6f385c9fa2987786a24813c331bd9537ca7b01e90a7ef26e9d | ||
| - source: https://raw.githubusercontent.com/fullsend-ai/agents/6414483f2c90acc54a6b7868ac2829fc76eb46e8/harness/review.yaml#sha256=8e761b0f56f87379635ca559dc33b5aa45304f8c951d75f456a0d2a42456531c |
There was a problem hiding this comment.
2. Unpinned agent resolution increased 🐞 Bug ⛨ Security
By removing the pinned fullsend-ai/agents URLs (commit+sha256), most first-party agents will now be resolved via the agents-repo fallback from heads/main, which is not deterministic across runs and does not use enrollment-time integrity fragments. This increases supply-chain risk and can cause agent behavior to change without any config change in this repo.
Agent Prompt
## Issue description
The PR removes commit+sha256 pinned harness URLs for first-party agents (triage/code/fix/review/retro/prioritize). Those agents will now resolve through the agents-repo fallback, which tracks `heads/main` for non-release builds and does not use the enrollment-time `#sha256=...` integrity fragment.
## Issue Context
- `resolveAgentsRef()` returns `heads/main` when the build is not a tagged release.
- `fetchPinnedAgentsRepoFile` explicitly documents that it performs no self-referential hash verification and relies on the resolved commit SHA from the ref.
- Removing the pinned config entries increases reliance on this weaker / more dynamic path.
## Fix Focus Areas
- .fullsend/config.yaml[13-20]
- internal/cli/run.go[3921-3926]
- internal/cli/run.go[3961-4015]
## Expected fix
Pick the desired security posture:
1) Re-introduce explicit `agents:` entries for first-party harnesses with `#sha256=...` integrity fragments (best reproducibility and strongest pinning).
2) Alternatively, change fallback behavior to resolve against a stable ref (e.g., a tag matching the fullsend version input) even for non-release builds, or require an opt-in flag/config for `heads/main` fallback.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
|
🤖 Finished Review · ✅ Success · Started 6:51 PM UTC · Completed 7:02 PM UTC Commit: |
|
Review skipped — this PR is already merged. The Posted by fullsend pre-review check |
|
Review skipped — this PR is already merged. The Posted by fullsend post-review check |
Summary
fullsend-ai/agentsSHA+hash entries from.fullsend/config.yaml, keeping only the external qualityflow agentpush → maintrigger onnotify-scaffold-sync.yml(workflow_dispatch retained for manual use)The CLI now falls back to resolving agents from
heads/mainwhen no agents are configured inconfig.yaml(commit072f8dfca), making the pinned SHA entries unnecessary. The pinned digests were also perpetually stale — the sync job that updated them created a new commit on each repo's main, so the pins were immediately behind the agents repo's actual HEAD.The scaffold sync dispatch is similarly a no-op: all repos already reference
@mainin their shim workflows, so the upgrade logic finds nothing to change.Both sync workflows are kept in their respective repos for manual re-pinning or rollback use cases — only the automatic triggers are removed.
Companion PRs
notify-agent-sync.ymlpush trigger + config.yaml agent entriesTest plan
heads/mainwhenagents:block only contains the qualityflow entry🤖 Generated with Claude Code