Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ env:

jobs:
go-test:
if: (github.event_name != 'pull_request' && github.event_name != 'pull_request_target') || (github.head_ref == 'trunk' && github.event.pull_request.head.repo.full_name == github.repository && github.base_ref == 'main')
name: Go Test
runs-on: ubuntu-latest
timeout-minutes: 15
Expand All @@ -37,7 +36,6 @@ jobs:
run: go test ./...

go-build:
if: (github.event_name != 'pull_request' && github.event_name != 'pull_request_target') || (github.head_ref == 'trunk' && github.event.pull_request.head.repo.full_name == github.repository && github.base_ref == 'main')
name: Go Build
runs-on: ubuntu-latest
needs: go-test
Expand Down Expand Up @@ -68,7 +66,6 @@ jobs:
if-no-files-found: error

sdk-typecheck:
if: (github.event_name != 'pull_request' && github.event_name != 'pull_request_target') || (github.head_ref == 'trunk' && github.event.pull_request.head.repo.full_name == github.repository && github.base_ref == 'main')
name: SDK Typecheck
runs-on: ubuntu-latest
timeout-minutes: 15
Expand Down Expand Up @@ -111,7 +108,6 @@ jobs:
run: npm run test:bundle:bun --workspace=packages/sdk/typescript

client-typecheck:
if: (github.event_name != 'pull_request' && github.event_name != 'pull_request_target') || (github.head_ref == 'trunk' && github.event.pull_request.head.repo.full_name == github.repository && github.base_ref == 'main')
name: Client Typecheck
runs-on: ubuntu-latest
timeout-minutes: 15
Expand Down Expand Up @@ -144,7 +140,6 @@ jobs:
run: npm run test --workspace=@relayfile/client

e2e:
if: (github.event_name != 'pull_request' && github.event_name != 'pull_request_target') || (github.head_ref == 'trunk' && github.event.pull_request.head.repo.full_name == github.repository && github.base_ref == 'main')
name: E2E
runs-on: ubuntu-latest
needs: go-build
Expand Down Expand Up @@ -184,7 +179,6 @@ jobs:
npx tsx scripts/e2e.ts --ci

backend-conformance:
if: (github.event_name != 'pull_request' && github.event_name != 'pull_request_target') || (github.head_ref == 'trunk' && github.event.pull_request.head.repo.full_name == github.repository && github.base_ref == 'main')
name: Backend Conformance (Go oracle)
runs-on: ubuntu-latest
timeout-minutes: 25
Expand Down Expand Up @@ -225,7 +219,6 @@ jobs:
retention-days: 14

release-tooling:
if: (github.event_name != 'pull_request' && github.event_name != 'pull_request_target') || (github.head_ref == 'trunk' && github.event.pull_request.head.repo.full_name == github.repository && github.base_ref == 'main')
name: Release Tooling
runs-on: ubuntu-latest
timeout-minutes: 10
Expand All @@ -249,7 +242,6 @@ jobs:
run: npm run test:release

workers-typecheck:
if: (github.event_name != 'pull_request' && github.event_name != 'pull_request_target') || (github.head_ref == 'trunk' && github.event.pull_request.head.repo.full_name == github.repository && github.base_ref == 'main')
name: Workers Typecheck
runs-on: ubuntu-latest
timeout-minutes: 15
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/contract.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ on:

jobs:
contract:
if: (github.event_name != 'pull_request' && github.event_name != 'pull_request_target') || (github.head_ref == 'trunk' && github.event.pull_request.head.repo.full_name == github.repository && github.base_ref == 'main')
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/relayfile-evals.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ env:

jobs:
evals:
if: (github.event_name != 'pull_request' && github.event_name != 'pull_request_target') || (github.head_ref == 'trunk' && github.event.pull_request.head.repo.full_name == github.repository && github.base_ref == 'main')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟥 Fork PRs can modify repository reviews

On a fork PR, evals now reaches the comment step with a write-capable token. The PR checkout supplies its script, so the contributor can use that token to alter repository pull-request comments.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not valid for this workflow. relayfile-evals.yml triggers on pull_request, not pull_request_target, and this repo is public. GitHub always gives a fork's pull_request run a read-only GITHUB_TOKEN and no secrets, whatever permissions: declares, so pull-requests: write only applies to same-repo PRs and pushes. This PR also only restores the pre-rollout job definition by removing the trunk gate line; nothing else in the workflow changes.

name: Provider-backed evals
runs-on: ubuntu-latest

Expand Down
22 changes: 0 additions & 22 deletions .github/workflows/trunk-guard.yml

This file was deleted.

43 changes: 0 additions & 43 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -202,46 +202,3 @@ Relayfile runtime changes that write provider records must keep
ingest behavior.

Full rule: `.claude/rules/relayfile-integration-digests.md`.

<!-- prpm:snippet:start @agent-relay/merge-train-snippet@1.0.1 -->
## Merging: `trunk` + the `mergeable` label

CI suites do **not** run automatically on feature branches. They run only on
this repository's `trunk` → `main` pull request and on pushes to `main`. The
one check that does run on a feature PR into `main` is `Trunk guard`, which
fails it on purpose; manually dispatched workflows (`workflow_dispatch`) still
run on any branch. (Repos whose default branch is not
`main`, e.g. `master`, use that branch wherever this says `main`.) A merge
agent batches ready PRs into `trunk`, gets that one PR green, and merges it.

**When you open a PR**
1. Branch from `trunk` and open the PR with **base `trunk`**, not `main`.
A PR into `main` from any other branch fails the `Trunk guard` check.
2. No CI runs on your PR, so verify locally before calling it ready: run the
typecheck, tests and lint this repo uses, and list the exact commands and
results in the PR body.

**When the PR is ready**
3. Add the label **`mergeable`** once all of these are true:
- The change is complete and the local checks above pass.
- Review feedback (human and bot) is addressed or answered.
- It is not a draft and does not depend on an unmerged PR.
4. Remove `mergeable` if the PR stops being ready (new work, a failing check, a
blocking question). The label is read live from GitHub on every sweep.

**What you must not do**
- Do not merge your own PR, and never merge into or push to `trunk` or `main`
directly.
- Do not re-enable CI for feature branches or edit the `trunk` gates in
`.github/workflows/`.

**The merge agent** sweeps open `mergeable` PRs with base `trunk` about every
10 minutes. It reads each PR's linked sessions (the `Agent Relay sessions`
block in the PR body, then the session summary) for context, merges them into
`trunk`, opens or updates the `trunk` → `main` PR, fixes CI there, merges when
green, and posts a summary. If your PR conflicts with `trunk`, it may ask you
to rebase on `trunk`; do so and keep the label.

> Interim: the sweep worker is not deployed yet. Until it is, a human or a
> designated agent performs the merge-agent steps manually. Labelling is unchanged.
<!-- prpm:snippet:end @agent-relay/merge-train-snippet@1.0.1 -->
19 changes: 1 addition & 18 deletions prpm.lock
Original file line number Diff line number Diff line change
Expand Up @@ -153,26 +153,9 @@
"sourceFormat": "claude",
"sourceSubtype": "skill",
"installedPath": ".opencode/skills/running-headless-orchestrator/SKILL.md"
},
"@agent-relay/merge-train-snippet#agents.md:AGENTS.md": {
"version": "1.0.1",
"resolved": "https://registry.prpm.dev/api/v1/packages/%40agent-relay%2Fmerge-train-snippet/1.0.1.tar.gz",
"integrity": "sha256-b993f4fd7a737b5788f10fca8b02d6eea02c803b1d4483f6536f3cfd3f85126e",
"format": "agents.md",
"subtype": "snippet",
"sourceFormat": "generic",
"sourceSubtype": "snippet",
"installedPath": "AGENTS.md",
"snippetMetadata": {
"targetPath": "AGENTS.md",
"config": {
"target": "AGENTS.md",
"position": "append"
}
}
}
},
"generated": "2026-10-08T23:07:22.828Z",
"generated": "2026-05-09T18:19:51.246Z",
"collections": {
"agent-relay-starter": {
"name_slug": "agent-relay-starter",
Expand Down
Loading