Repository navigation
v0.50.0
Choose when the fleet agents run, from config.yaml. A CEL trigger on the review, retro, triage or prioritize entry in .fullsend/config.yaml now decides when that agent runs on GitHub, in place of the dispatch workflow's built-in rules. For example, to stop the automatic review on every pull request but keep /fs-review on demand:
agents:
- name: review
trigger: >-
event.transition.kind == "comment_added"
&& has(event.entity.linked_change_proposal)
&& has(event.transition.comment.command)
&& event.transition.comment.command == "/fs-review"
&& event.actor.kind == "human"Repositories without a trigger keep today's behaviour, so nothing changes unless you opt in. The trigger is read from your default branch, so a pull request cannot change its own routing. An invalid trigger makes every agent run in the repository fail with invalid agent config, so check the expression before you merge it. A harness trigger: never changes when a built-in agent runs; copy it into config.yaml to opt in. Triggers for the code and fix agents are coming in a later release. See Choosing when review runs, Choosing when retro runs and Choosing when triage and prioritize run in the customizing-agents guide.
Permission checks on CEL dispatch are now per harness: agents whose harness sets role: triage or role: review can be started by users with triage access, while every other role still needs write. Claude runs now set CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 on every route, including Vertex, a harness with its own ANTHROPIC_BASE_URL and runs with security hooks off; before, only the runner-managed gateway route set it. Nothing for you to change.
On GitLab, fullsend run adds the configured forge host to the attached credential profile, so self-managed hosts work with the stock GitLab providers. fullsend repos install now applies runner tag changes even from a build without a release ref, keeps blank lines when it rewrites .gitlab-ci.yml, and resolves extends: and !reference when it scans trigger jobs. Runner VMs refuse job images that pin OpenShell 0.0.x with a clear error instead of downgrading the host. fullsend agent new now generates agents that read the forge-neutral work item URL.
Changelog
Breaking Changes
- 7b1296c: test(#8622)!: wire cross-org repo slots into behaviour and playback (@fullsend-ai-coder[bot])
Features
- 460779d: feat(#8413): add GitHub bot-role lookup and behaviour matrix (@fullsend-ai-coder[bot])
- 3d911f7: feat(#8724): apply per-harness permission threshold on the CEL path (@fullsend-ai-coder[bot])
- b4a4b94: feat(#8726): let agents[].trigger decide when review runs (@fullsend-ai-coder[bot])
- 047dc29: feat(#8736): let config triggers route retro, triage and prioritize (@fullsend-ai-coder[bot])
Bug Fixes
- 7f4a950: fix(#8090): show the reason code in the e2e gate comment (@gklein)
- 2165590: fix(#8648): use work item URL in generated agents (@Aliciapet11)
- 9604e7f: fix(#8683): add GitLab forge host to the attached credential profile (@fullsend-ai-coder[bot])
- 3ae6f0a: fix(#8683): resolve YAML aliases when adding the GitLab forge endpoint (@fullsend-ai-coder[bot])
- f11f5e5: fix(#8688): keep blank lines when rewriting .gitlab-ci.yml (@fullsend-ai-coder[bot])
- 95443c3: fix(#8689): converge GitLab runner tags without a resolvable ref (@fullsend-ai-coder[bot])
- 69c9a0e: fix(#8689): keep main-marked GitLab scaffolds out of unstamped detection (@fullsend-ai-coder[bot])
- 401375f: fix(#8691): bound !reference expansion work in GitLab trigger job scan (@fullsend-ai-coder[bot])
- abd9043: fix(#8691): memoize extends resolution in GitLab trigger job scan (@fullsend-ai-coder[bot])
- ea5ba28: fix(#8691): resolve extends and !reference in GitLab trigger job scan (@fullsend-ai-coder[bot])
- 399b94c: fix(#8710): bound GitLab YAML merge-key lookup work (@fullsend-ai-coder[bot])
- 06dd062: fix(#8724): filter harnesses before CEL and align authorization docs (@waynesun09)
- 484b653: fix(#8725): skip built-in agents in GitHub CEL dispatch (@fullsend-ai-coder[bot])
- 44fdffc: fix(#8726): fail the review route on invalid config, keep harness dispatch triggers (@waynesun09)
- 55c7c98: fix(#8726): skip on trigger evaluation errors and harden CEL route steps (@waynesun09)
- 305a0e0: fix(#8730): refuse pre-0.1 OpenShell job images on GitLab runners (@fullsend-ai-coder[bot])
- 3b7f143: fix(#8736): grant lifecycle close only on the retro route (@waynesun09)
- 73f8746: fix(#8750): disable Claude Code nonessential traffic on every route (@fullsend-ai-coder[bot])
- 51f7f2f: fix(#8750): pin nonessential traffic off without sandbox hooks (@waynesun09)
- 6cf036c: fix: address review feedback on PR #8687 (@fullsend-ai-coder[bot])
- a418e2a: fix: address review feedback on PR #8687 (@fullsend-ai-coder[bot])
- 2cf39e2: fix: address review feedback on PR #8696 (@fullsend-ai-coder[bot])
- dd5e943: fix: address review feedback on PR #8713 (@fullsend-ai-coder[bot])