run without asking user #16

Closed
opened 2026-07-03 13:45:27 +02:00 by ffaerber · 13 comments
Owner

i like to create a issue that will get handelt by the agents without me.
so i create a issue the pm starts getting the issue hands it over to a dev
dev is creating PR
qa is reading pr and merge it if its ok. issue will get closed

i like to create a issue that will get handelt by the agents without me. so i create a issue the pm starts getting the issue hands it over to a dev dev is creating PR qa is reading pr and merge it if its ok. issue will get closed
Author
Owner

@pm here

@pm here

🤖 @pm

Analysis

What you're describing is a fully autonomous pipeline: issue → @pm auto-triages → hands to a dev with no human "go" → dev opens PR → @qa reviews and merges → issue auto-closes. Here's how that maps onto what actually exists today in agent.yml/AGENTS.md:

Already works:

  • New issue by you → @pm auto-runs (no @mention needed) and assesses it.
  • @pm plans and can auto-delegate to a dev via DELEGATE: @agent (the AGENT_TOKEN posts the mention that fires the next run).
  • Dev agent (@junior/@senior/@lead) builds on a branch and a PR is opened automatically.
  • Explicit CLOSE_ISSUE marker already lets a comment-mode agent close an issue.

Gaps — this is where the real design/safety decisions are:

  1. The approval gate is a deliberate safety stop, not a bug. @pm's prompt (and every repo's AGENTS.md golden rules) currently require your explicit "yes" before delegating to a dev. Skipping it means any issue you open starts writing code and opening PRs with zero human checkpoint, repo-wide, for every repo that calls this shared workflow — that's a meaningful blast-radius change, not just a tweak to issue #16's repo.
  2. QA has no merge authority today, by design. Every AGENTS.md (including this repo's own) says "NEVER merge a pull request… you do not have merge authority." @qa also runs in mode: comment — it never even checks out a branch or gets push credentials. Giving it merge rights means: a new Gitea token/scope for @qa with actual write/merge permission, plus new logic in agent.yml to call the merge API, plus rewriting that golden rule everywhere.
  3. Auto-close on merge — Gitea doesn't guarantee GitHub-style "Resolves #N" auto-close on merge by default (needs verifying against your instance config); safest is an explicit PATCH to close the issue right after @qa's merge succeeds, same pattern the CLOSE_ISSUE marker already uses.

None of this is technically hard, but "let an AI agent merge its own team's PRs into main/production with no human in the loop" is a real risk decision (this repo's own template literally deploys to prod on merge), so I want to check scope before anyone builds it:

@ffaerber:

  1. Scope — do you want this fully autonomous by default for every issue on every repo, or opt-in per issue (e.g. you add a label like autopilot, or open the issue with a magic phrase) so existing repos/issues keep the current human-approval behavior unless you explicitly ask for the autonomous path?
  2. Merge authority — are you OK giving @qa real merge rights (a token with write access, used only to merge a PR it just approved), understanding that removes the "human always merges" backstop everywhere this workflow is used? Or would you rather @qa still just says "LGTM, ready to merge" and something else (still you, or a lighter-weight auto-merge-if-CI-green step) does the actual merge?
  3. Rejection path — if @qa finds a bug, should it auto-bounce back to the same dev to fix (another autonomous loop), or stop and comment for you?
  4. Kill switch — since this removes your normal checkpoints, do you want a way to interrupt an in-flight autopilot run (e.g. commenting "stop")?

Once you've answered these I'll turn it into a concrete plan and name who builds it (this is a change to the shared agent.yml gate/loop logic itself, so it'll need @lead, given it touches the trigger gate and cross-repo safety rules called out in this repo's own AGENTS.md).

🤖 **@pm** ## Analysis What you're describing is a fully autonomous pipeline: issue → `@pm` auto-triages → hands to a dev with no human "go" → dev opens PR → `@qa` reviews and **merges** → issue auto-closes. Here's how that maps onto what actually exists today in `agent.yml`/`AGENTS.md`: **Already works:** - New issue by you → `@pm` auto-runs (no @mention needed) and assesses it. - `@pm` plans and can auto-delegate to a dev via `DELEGATE: @agent` (the `AGENT_TOKEN` posts the mention that fires the next run). - Dev agent (`@junior`/`@senior`/`@lead`) builds on a branch and a PR is opened automatically. - Explicit `CLOSE_ISSUE` marker already lets a comment-mode agent close an issue. **Gaps — this is where the real design/safety decisions are:** 1. **The approval gate is a deliberate safety stop, not a bug.** `@pm`'s prompt (and every repo's `AGENTS.md` golden rules) currently *require* your explicit "yes" before delegating to a dev. Skipping it means any issue you open starts writing code and opening PRs with zero human checkpoint, repo-wide, for every repo that calls this shared workflow — that's a meaningful blast-radius change, not just a tweak to issue #16's repo. 2. **QA has no merge authority today, by design.** Every `AGENTS.md` (including this repo's own) says *"NEVER merge a pull request… you do not have merge authority."* `@qa` also runs in `mode: comment` — it never even checks out a branch or gets push credentials. Giving it merge rights means: a new Gitea token/scope for `@qa` with actual write/merge permission, plus new logic in `agent.yml` to call the merge API, plus rewriting that golden rule everywhere. 3. **Auto-close on merge** — Gitea doesn't guarantee GitHub-style "Resolves #N" auto-close on merge by default (needs verifying against your instance config); safest is an explicit `PATCH` to close the issue right after `@qa`'s merge succeeds, same pattern the `CLOSE_ISSUE` marker already uses. None of this is technically hard, but "let an AI agent merge its own team's PRs into `main`/production with no human in the loop" is a real risk decision (this repo's own template literally deploys to prod on merge), so I want to check scope before anyone builds it: **@ffaerber:** 1. **Scope** — do you want this fully autonomous *by default for every issue on every repo*, or opt-in per issue (e.g. you add a label like `autopilot`, or open the issue with a magic phrase) so existing repos/issues keep the current human-approval behavior unless you explicitly ask for the autonomous path? 2. **Merge authority** — are you OK giving `@qa` real merge rights (a token with write access, used only to merge a PR it just approved), understanding that removes the "human always merges" backstop everywhere this workflow is used? Or would you rather `@qa` still just says "LGTM, ready to merge" and something else (still you, or a lighter-weight auto-merge-if-CI-green step) does the actual merge? 3. **Rejection path** — if `@qa` finds a bug, should it auto-bounce back to the same dev to fix (another autonomous loop), or stop and comment for you? 4. **Kill switch** — since this removes your normal checkpoints, do you want a way to interrupt an in-flight autopilot run (e.g. commenting "stop")? Once you've answered these I'll turn it into a concrete plan and name who builds it (this is a change to the shared `agent.yml` gate/loop logic itself, so it'll need `@lead`, given it touches the trigger gate and cross-repo safety rules called out in this repo's own `AGENTS.md`).
Author
Owner

@pm this will be need for building vibe coding new app. i like to create a app idea. than pm createsmaby with lead a specs.md
after the specs.md is merge into main
pm will start creating ticket from the specs.md

than dev agent will start building.
if some point a dev agent needs a feature in the current issue that is not avilabe like a redis db with docker-compose. it will stop building.
it will create a issue for pm that he delegate to a dev.
a dev agent will making PR. qa will merge it and notify pm that the redis db is ready.

later i like to disable the fully autonomous pipeline after its deployed to homelab.

@pm this will be need for building vibe coding new app. i like to create a app idea. than pm createsmaby with lead a specs.md after the specs.md is merge into main pm will start creating ticket from the specs.md than dev agent will start building. if some point a dev agent needs a feature in the current issue that is not avilabe like a redis db with docker-compose. it will stop building. it will create a issue for pm that he delegate to a dev. a dev agent will making PR. qa will merge it and notify pm that the redis db is ready. later i like to disable the fully autonomous pipeline after its deployed to homelab.

🤖 @pm

@ffaerber — this is a much bigger ask than "run without asking" now: you're describing an end-to-end AI app-factory pipeline (idea → specs.md → tickets → autonomous build → auto-dependency-resolution → auto-merge → notify), with an on/off switch for later. That's a real architecture project, not a config tweak, so before I hand it to @lead I want to lock down the pieces that materially change risk/security in the shared workflow.

Breaking your description into stages:

  1. Specs stage — you + @pm/@lead collaborate on an issue to produce specs.md, merged to main via normal PR review (human still merges here, presumably — you didn't say otherwise).
  2. Ticketing stage — once specs.md lands on main, @pm reads it and opens one issue per feature/task. (New: needs a trigger on push/merge-to-main, not just on issue comment — agent.yml currently only fires on issue/comment events.)
  3. Autonomous build stage — dev picks up a spec-derived ticket and builds without waiting for your "yes" (the actual ask in #16).
  4. Blocking-dependency stage — dev hits a missing infra piece (e.g. redis compose), stops, opens a new issue, @pm delegates it, a dev builds it, @qa reviews and merges it, then notifies (you said "notify pm") — implying the original blocked ticket needs to resume automatically once that dependency merges.
  5. QA merge authority@qa goes from "comment only, never merge" (current golden rule, every repo) to actually merging PRs.
  6. Kill switch — a way to flip this whole autopilot off later, per repo, once it's running in your homelab.

Decisions I need before this can be scoped into buildable tickets:

  • Opt-in mechanism (this is your kill switch): I'd implement autopilot as something explicit — e.g. a repo variable (AUTOPILOT=true) or an issue label — rather than new default behavior. That way "disable later" is just flipping one variable, and it doesn't silently change how your other existing repos behave today. OK to build it that way?
  • @qa merge rights: this needs a real Gitea token/scope with write+merge permission for @qa, and rewriting the "never merge" golden rule in AGENTS.md — but only when acting inside an autopilot-flagged repo/issue, not everywhere. Confirm you're fine provisioning that token.
  • Resuming a blocked ticket: once the dependency PR merges and @pm is notified, should the original blocked dev issue auto-retrigger and continue building automatically, or do you want to eyeball it first before it resumes?
  • Rejection path: if @qa finds a bug in a spec-derived autopilot ticket, should it bounce back to the same dev automatically (another loop), or stop and post for you?
  • Specs.md → tickets granularity: one specs.md per app, with @pm splitting it into N issues — any convention you want for linking tickets back to the spec (e.g. issue title prefix, label)?

Once these are answered, this splits into independently mergeable pieces (trigger-on-merge for ticket generation, autopilot flag/gate change, @qa merge token + workflow step, dependency-resume logic) — @lead should own the design since it touches the trigger gate, secrets/permissions, and the cross-repo safety rules called out in this repo's own AGENTS.md.

🤖 **@pm** @ffaerber — this is a much bigger ask than "run without asking" now: you're describing an end-to-end **AI app-factory pipeline** (idea → specs.md → tickets → autonomous build → auto-dependency-resolution → auto-merge → notify), with an on/off switch for later. That's a real architecture project, not a config tweak, so before I hand it to `@lead` I want to lock down the pieces that materially change risk/security in the shared workflow. **Breaking your description into stages:** 1. **Specs stage** — you + `@pm`/`@lead` collaborate on an issue to produce `specs.md`, merged to `main` via normal PR review (human still merges here, presumably — you didn't say otherwise). 2. **Ticketing stage** — once `specs.md` lands on `main`, `@pm` reads it and opens one issue per feature/task. (New: needs a trigger on push/merge-to-main, not just on issue comment — `agent.yml` currently only fires on issue/comment events.) 3. **Autonomous build stage** — dev picks up a spec-derived ticket and builds **without** waiting for your "yes" (the actual ask in #16). 4. **Blocking-dependency stage** — dev hits a missing infra piece (e.g. redis compose), stops, opens a *new* issue, `@pm` delegates it, a dev builds it, `@qa` reviews **and merges** it, then notifies (you said "notify pm") — implying the original blocked ticket needs to resume automatically once that dependency merges. 5. **QA merge authority** — `@qa` goes from "comment only, never merge" (current golden rule, every repo) to actually merging PRs. 6. **Kill switch** — a way to flip this whole autopilot off later, per repo, once it's running in your homelab. **Decisions I need before this can be scoped into buildable tickets:** - **Opt-in mechanism (this *is* your kill switch)**: I'd implement autopilot as something explicit — e.g. a repo variable (`AUTOPILOT=true`) or an issue label — rather than new default behavior. That way "disable later" is just flipping one variable, and it doesn't silently change how your other existing repos behave today. OK to build it that way? - **`@qa` merge rights**: this needs a real Gitea token/scope with write+merge permission for `@qa`, and rewriting the "never merge" golden rule in `AGENTS.md` — but only when acting inside an autopilot-flagged repo/issue, not everywhere. Confirm you're fine provisioning that token. - **Resuming a blocked ticket**: once the dependency PR merges and `@pm` is notified, should the *original* blocked dev issue auto-retrigger and continue building automatically, or do you want to eyeball it first before it resumes? - **Rejection path**: if `@qa` finds a bug in a spec-derived autopilot ticket, should it bounce back to the same dev automatically (another loop), or stop and post for you? - **Specs.md → tickets granularity**: one `specs.md` per app, with `@pm` splitting it into N issues — any convention you want for linking tickets back to the spec (e.g. issue title prefix, label)? Once these are answered, this splits into independently mergeable pieces (trigger-on-merge for ticket generation, autopilot flag/gate change, `@qa` merge token + workflow step, dependency-resume logic) — `@lead` should own the design since it touches the trigger gate, secrets/permissions, and the cross-repo safety rules called out in this repo's own `AGENTS.md`.
Author
Owner

@pm i think we need labels or tags on the issue like fully-automatic or semiautomatic
this way the issue can be run difrently. this way we have also a killswitch. changing from ful to semi. will pm from delegating or qa from merging

@pm i think we need labels or tags on the issue like fully-automatic or semiautomatic this way the issue can be run difrently. this way we have also a killswitch. changing from ful to semi. will pm from delegating or qa from merging

🤖 @pm

Response as @pm

Good — labels give us both the opt-in mechanism and the kill switch in one mechanism, and it's per-issue instead of a repo-wide flag, which is safer. Concrete proposal so we're aligned before this goes to @lead:

Label scheme:

  • fully-automatic@pm auto-delegates without asking "ready to build?", and @qa auto-merges the PR if checks pass and it looks correct. Issue auto-closes after merge.
  • semi-automatic (or no label = same default) — today's behavior: @pm asks for your "yes" before delegating, @qa only comments "LGTM, ready to merge" and a human merges.
  • Kill switch = you (or @pm) flip the label on an already-running issue from fully-automaticsemi-automatic mid-flight. Next agent run (whoever's turn it is — @pm before delegating, or @qa before merging) checks the current label first and halts to semi-automatic behavior if it changed.

That covers stage 3 (autonomous build) and stage 5 (QA merge) cleanly. Still open, and I don't want @lead building on guesses for these:

  1. @qa merge rights — this needs @qa to actually get a Gitea token/scope with write+merge permission (it currently has none — comment-only). Are you OK provisioning that token specifically for @qa, understanding it only merges when the issue is labeled fully-automatic?
  2. Rejection path — in fully-automatic mode, if @qa finds a bug, should it auto-bounce back to the same dev (another autopilot loop, no human touch), or always stop and comment regardless of label?
  3. Specs.md → tickets stage — this still needs a new trigger (push/merge-to-main → @pm reads specs.md → opens N issues), since agent.yml today only fires on issue/comment events. Should each generated issue automatically get the fully-automatic label, or do you want to review/label each ticket individually before it starts building?
  4. Blocked-ticket resume — once a dependency issue (e.g. redis compose) merges and closes, should the original blocked ticket auto-reopen/retrigger and resume building, or do you want to eyeball and manually re-nudge it?

Once you answer those, this is a well-scoped set of independent changes (label-gate logic in agent.yml, @qa merge token + merge step, merge-to-main ticket-generation trigger, resume-on-dependency-merge logic) — @lead should own the design since it touches the trigger gate, secrets, and the "never merge" rule this repo's own AGENTS.md currently mandates everywhere.

@ffaerber — can you answer 1–4 above?

🤖 **@pm** ## Response as @pm Good — labels give us both the opt-in mechanism *and* the kill switch in one mechanism, and it's per-issue instead of a repo-wide flag, which is safer. Concrete proposal so we're aligned before this goes to `@lead`: **Label scheme:** - `fully-automatic` — `@pm` auto-delegates without asking "ready to build?", and `@qa` auto-merges the PR if checks pass and it looks correct. Issue auto-closes after merge. - `semi-automatic` (or **no label** = same default) — today's behavior: `@pm` asks for your "yes" before delegating, `@qa` only comments "LGTM, ready to merge" and a human merges. - **Kill switch** = you (or `@pm`) flip the label on an *already-running* issue from `fully-automatic` → `semi-automatic` mid-flight. Next agent run (whoever's turn it is — `@pm` before delegating, or `@qa` before merging) checks the current label first and halts to semi-automatic behavior if it changed. That covers stage 3 (autonomous build) and stage 5 (QA merge) cleanly. Still open, and I don't want `@lead` building on guesses for these: 1. **`@qa` merge rights** — this needs `@qa` to actually get a Gitea token/scope with write+merge permission (it currently has none — comment-only). Are you OK provisioning that token specifically for `@qa`, understanding it only merges when the issue is labeled `fully-automatic`? 2. **Rejection path** — in `fully-automatic` mode, if `@qa` finds a bug, should it auto-bounce back to the same dev (another autopilot loop, no human touch), or always stop and comment regardless of label? 3. **Specs.md → tickets stage** — this still needs a *new* trigger (push/merge-to-main → `@pm` reads `specs.md` → opens N issues), since `agent.yml` today only fires on issue/comment events. Should each generated issue automatically get the `fully-automatic` label, or do you want to review/label each ticket individually before it starts building? 4. **Blocked-ticket resume** — once a dependency issue (e.g. redis compose) merges and closes, should the original blocked ticket auto-reopen/retrigger and resume building, or do you want to eyeball and manually re-nudge it? Once you answer those, this is a well-scoped set of independent changes (label-gate logic in `agent.yml`, `@qa` merge token + merge step, merge-to-main ticket-generation trigger, resume-on-dependency-merge logic) — `@lead` should own the design since it touches the trigger gate, secrets, and the "never merge" rule this repo's own `AGENTS.md` currently mandates everywhere. @ffaerber — can you answer 1–4 above?
Author
Owner

@pm lets do only the fully-automatic stuff
1.yes qa gets merge rigths
2. if qa finds a bug. remove fully-automatic. and ask user waht todo
3. forget for now.
4. forget for now

@pm lets do only the fully-automatic stuff 1.yes qa gets merge rigths 2. if qa finds a bug. remove fully-automatic. and ask user waht todo 3. forget for now. 4. forget for now

🤖 @pm

Plan

Scope is now locked to fully-automatic only (specs.md/ticketing and blocked-dependency-resume are explicitly deferred per your last comment). Concrete plan:

1. Label-gated behavior in agent.yml

  • fully-automatic label present → @pm plans and delegates in the same turn (skips the "ready to build?" gate).
  • No label (default) → today's behavior unchanged: @pm still asks for your "yes."
  • Check the label fresh at the start of every agent run (not cached from issue-open time) — this is what makes removing the label mid-flight act as a real kill switch.

2. @qa gets real merge rights, but only conditionally

  • New/expanded Gitea token scope for @qa (write + merge on PRs, write on issue labels). Needs provisioning — will note as a required secret in the PR.
  • If issue has fully-automatic and @qa judges the PR correct → merge PR via API, then close the issue.
  • If @qa finds a bug → remove the fully-automatic label (via API) and post a comment describing the bug, asking you what to do next. Explicitly no auto-bounce back to dev — you were clear on that.

3. Update this repo's own AGENTS.md

  • The current golden rule ("@qa NEVER merges") needs an explicit, narrow carve-out: "@qa may merge only when the issue carries the fully-automatic label, and must remove that label + halt instead of merging on any doubt."

4. Guardrails kept

  • Merge still requires the PR to actually look correct to @qa (no blind/unconditional auto-merge).
  • Any CI checks configured on the repo must still pass before merge.
  • Removing the label is the only kill-switch path for now — no separate "pause" mechanism, per your instructions.

Who builds this: This touches the shared trigger gate, a new merge-scoped secret, and rewrites a cross-repo safety rule (AGENTS.md golden rule) — exactly the class of change flagged in every prior round as needing @lead, not @junior/@senior. @lead should design and implement the label-check logic, the @qa merge step, and the token/permission wiring; @qa should then do a real dry-run pass on a test PR once it's built.

@ffaerber ready to start building? reply yes to proceed.

🤖 **@pm** ## Plan Scope is now locked to **fully-automatic only** (specs.md/ticketing and blocked-dependency-resume are explicitly deferred per your last comment). Concrete plan: **1. Label-gated behavior in `agent.yml`** - `fully-automatic` label present → `@pm` plans and delegates in the *same* turn (skips the "ready to build?" gate). - No label (default) → today's behavior unchanged: `@pm` still asks for your "yes." - Check the label fresh at the *start of every agent run* (not cached from issue-open time) — this is what makes removing the label mid-flight act as a real kill switch. **2. `@qa` gets real merge rights, but only conditionally** - New/expanded Gitea token scope for `@qa` (write + merge on PRs, write on issue labels). Needs provisioning — will note as a required secret in the PR. - If issue has `fully-automatic` **and** `@qa` judges the PR correct → merge PR via API, then close the issue. - If `@qa` finds a bug → **remove the `fully-automatic` label** (via API) and post a comment describing the bug, asking you what to do next. Explicitly **no auto-bounce back to dev** — you were clear on that. **3. Update this repo's own `AGENTS.md`** - The current golden rule ("`@qa` NEVER merges") needs an explicit, narrow carve-out: *"`@qa` may merge only when the issue carries the `fully-automatic` label, and must remove that label + halt instead of merging on any doubt."* **4. Guardrails kept** - Merge still requires the PR to actually look correct to `@qa` (no blind/unconditional auto-merge). - Any CI checks configured on the repo must still pass before merge. - Removing the label is the only kill-switch path for now — no separate "pause" mechanism, per your instructions. **Who builds this:** This touches the shared trigger gate, a new merge-scoped secret, and rewrites a cross-repo safety rule (`AGENTS.md` golden rule) — exactly the class of change flagged in every prior round as needing `@lead`, not `@junior`/`@senior`. `@lead` should design and implement the label-check logic, the `@qa` merge step, and the token/permission wiring; `@qa` should then do a real dry-run pass on a test PR once it's built. @ffaerber ready to start building? reply yes to proceed.
Author
Owner

@pm yes

@pm yes

🤖 @pm

Approved — handing off to build

Scope locked: fully-automatic only, per label-gated behavior:

  1. agent.yml: check the fully-automatic label fresh at the start of every run. If present, @pm plans and delegates in the same turn (no "ready to build?" gate). No label = today's unchanged behavior.
  2. @qa merge rights: new/expanded Gitea token scope (write+merge on PRs, write on labels). @qa merges the PR and closes the issue only when fully-automatic is set and the PR looks correct with CI green.
  3. Bug path: if @qa finds a problem, it removes the fully-automatic label, comments the bug, and stops — no auto-bounce to dev, per your instruction.
  4. AGENTS.md: update the "QA never merges" golden rule with a narrow, explicit carve-out tied to the label.
  5. Deferred (per your instructions): specs.md→tickets generation, blocked-dependency auto-resume.

This touches the shared trigger gate, a new merge-scoped secret, and a cross-repo safety rule — @lead owns it. @qa should do a real dry-run on a test PR once it's built.

🤖 **@pm** ## Approved — handing off to build Scope locked: **fully-automatic only**, per label-gated behavior: 1. **`agent.yml`**: check the `fully-automatic` label fresh at the start of every run. If present, `@pm` plans and delegates in the same turn (no "ready to build?" gate). No label = today's unchanged behavior. 2. **`@qa` merge rights**: new/expanded Gitea token scope (write+merge on PRs, write on labels). `@qa` merges the PR and closes the issue only when `fully-automatic` is set and the PR looks correct with CI green. 3. **Bug path**: if `@qa` finds a problem, it removes the `fully-automatic` label, comments the bug, and stops — no auto-bounce to dev, per your instruction. 4. **`AGENTS.md`**: update the "QA never merges" golden rule with a narrow, explicit carve-out tied to the label. 5. Deferred (per your instructions): specs.md→tickets generation, blocked-dependency auto-resume. This touches the shared trigger gate, a new merge-scoped secret, and a cross-repo safety rule — `@lead` owns it. `@qa` should do a real dry-run on a test PR once it's built.
Author
Owner

@lead please proceed with issue #16 per the plan above (delegated by pm).

@lead please proceed with issue #16 per the plan above (delegated by pm).

🔨 @lead is on it — building on branch ai/issue-16. I'll open a PR when it's ready.

🔨 **@lead** is on it — building on branch [`ai/issue-16`](https://git.ffaerber.duckdns.org/ffaerber/agents/src/branch/ai/issue-16). I'll open a PR when it's ready.

🤖 @lead 1 PR ready for review — @ffaerber please review & merge:

🤖 **@lead** — ✅ 1 PR ready for review — @ffaerber please review & merge: - https://git.ffaerber.duckdns.org/ffaerber/agents/pulls/20
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gitea/agents#16