-
Notifications
You must be signed in to change notification settings - Fork 16
feat: add release workflow for version tag sync #25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
10d6edb
feat: add release workflow for version tag sync
ggallen f08f6a9
fix(release): address review findings
ggallen 3e5f2a0
fix(release): keep release.yml extension to match fullsend
ggallen bec2e76
docs: add README
ggallen 24eef7e
fix(docs): correct workflow filename in AGENTS.md
ggallen File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,62 @@ | ||
| name: Release | ||
|
|
||
| on: | ||
| push: | ||
| tags: | ||
| - "v[0-9]+.[0-9]+.[0-9]+*" | ||
|
ggallen marked this conversation as resolved.
|
||
|
|
||
| permissions: | ||
| contents: write # required for gh release create and git push (v0 tag) | ||
|
|
||
| concurrency: | ||
| group: release | ||
| cancel-in-progress: false | ||
|
|
||
| jobs: | ||
| release: | ||
| runs-on: ubuntu-24.04 | ||
| steps: | ||
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | ||
| with: | ||
| fetch-depth: 0 | ||
|
|
||
| - name: Create GitHub Release | ||
| env: | ||
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| run: | | ||
| set -euo pipefail | ||
| TAG="${GITHUB_REF_NAME}" | ||
|
|
||
| if gh release view "${TAG}" >/dev/null 2>&1; then | ||
| echo "Release ${TAG} already exists, skipping" | ||
| exit 0 | ||
| fi | ||
|
|
||
| PRERELEASE="" | ||
| if [[ "${TAG}" == *-* ]]; then | ||
| PRERELEASE="--prerelease" | ||
| fi | ||
|
|
||
| gh release create "${TAG}" \ | ||
| --title "${TAG}" \ | ||
|
ggallen marked this conversation as resolved.
|
||
| --notes "Synced with [fullsend ${TAG}](https://github.com/fullsend-ai/fullsend/releases/tag/${TAG})" \ | ||
| ${PRERELEASE} | ||
|
|
||
| - name: Move v0 floating tag | ||
|
ggallen marked this conversation as resolved.
|
||
| if: "!contains(github.ref_name, '-')" | ||
| run: | | ||
| set -euo pipefail | ||
| CURRENT="" | ||
| if git rev-parse v0 >/dev/null 2>&1; then | ||
| CURRENT=$(git rev-parse v0) | ||
|
ggallen marked this conversation as resolved.
|
||
| if ! git merge-base --is-ancestor "${CURRENT}" "${GITHUB_SHA}"; then | ||
| echo "::warning::v0 already points at a newer commit, skipping" | ||
| exit 0 | ||
| fi | ||
| fi | ||
| git tag -f v0 "${GITHUB_SHA}" | ||
| if [[ -n "${CURRENT}" ]]; then | ||
| git push --force-with-lease="v0:${CURRENT}" origin v0 | ||
| else | ||
| git push origin v0 | ||
| fi | ||
|
ggallen marked this conversation as resolved.
ggallen marked this conversation as resolved.
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| # fullsend agents | ||
|
|
||
| First-class agents for the [fullsend](https://github.com/fullsend-ai/fullsend) platform. These agents automate the software development lifecycle on GitHub — from issue triage through code implementation, review, fix, prioritization, and retrospective analysis. | ||
|
|
||
| ## Agents | ||
|
|
||
| | Agent | Description | Trigger | | ||
| |-------|-------------|---------| | ||
| | **Triage** | Assesses issue sufficiency, searches for duplicates, applies control labels | New issues, `/fs-triage` | | ||
| | **Code** | Implements fixes and features following repo conventions | `ready-to-code` label, `/fs-code` | | ||
| | **Review** | Dispatches parallel sub-agents across six review dimensions | PR events, `/fs-review` | | ||
| | **Fix** | Implements targeted fixes from review feedback | Review comments, `/fs-fix` | | ||
| | **Prioritize** | Scores issues using the RICE framework | Schedule, `/fs-prioritize` | | ||
| | **Retro** | Analyzes completed workflows and proposes improvements | PR close, `/fs-retro` | | ||
|
|
||
| See [`docs/`](docs/) for detailed documentation on each agent. | ||
|
|
||
| ## Repository structure | ||
|
|
||
| ``` | ||
| agents/ Agent system prompts (one per agent) | ||
| docs/ User-facing documentation | ||
| harness/ Harness configurations (sandbox image, timeout, scripts, plugins) | ||
| policies/ Sandbox security policies (filesystem, network, binary restrictions) | ||
| env/ Per-agent environment variables | ||
| schemas/ JSON Schema for validating agent structured output | ||
| scripts/ Pre-scripts (input validation) and post-scripts (GitHub mutations) | ||
| skills/ Reusable skill definitions loaded by agents at runtime | ||
| plugins/ Sandbox plugins (e.g. gopls LSP for the code agent) | ||
| common/ Shared configuration (GCP Vertex AI auth) | ||
| ``` | ||
|
|
||
| ## Architecture | ||
|
|
||
| Agents run inside sandboxed containers with strict filesystem, network, and binary restrictions. Each agent follows a three-phase pipeline: | ||
|
|
||
| 1. **Pre-script** — runs on the GitHub Actions runner to validate inputs and prepare the environment | ||
| 2. **Sandbox** — runs the agent with restricted permissions; the agent writes code and produces structured JSON output | ||
| 3. **Post-script** — runs on the runner with elevated permissions to perform GitHub mutations (pushing branches, creating PRs, posting comments, applying labels) | ||
|
|
||
| The agent never has direct write access to the repository. All mutations flow through post-scripts. | ||
|
|
||
| ## Versioning | ||
|
|
||
| This repository is versioned in lockstep with [fullsend](https://github.com/fullsend-ai/fullsend). Tags are pushed by fullsend's release workflow after a successful release — they are not created here directly. The `v0` floating tag always points to the latest stable (non-prerelease) version. | ||
|
|
||
| ## Workflows | ||
|
|
||
| | File | Managed by | Purpose | | ||
| |------|-----------|---------| | ||
| | `fullsend.yaml` | fullsend (centrally managed) | Routes GitHub events to agent dispatch workflows | | ||
| | `release.yml` | This repo | Creates GitHub Releases and moves the `v0` tag on version tag push | |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.