Skip to content

chore: back-merge main → dev (post v0.7.21 — fix merge-base)#464

Merged
mabry1985 merged 2 commits intodevfrom
chore/backmerge-main-to-dev
Apr 21, 2026
Merged

chore: back-merge main → dev (post v0.7.21 — fix merge-base)#464
mabry1985 merged 2 commits intodevfrom
chore/backmerge-main-to-dev

Conversation

@mabry1985
Copy link
Copy Markdown

Auto-generated style back-merge. Merges main's #418 (v0.7.21) merge commit into dev's ancestry. Content stays as dev (uses -X ours), this only fixes the merge-base so the next dev → main promotion (#463 superseded) doesn't conflict on the 4 files that merged in #418's squash window:

  • src/loaders/ceremonyYamlLoader.ts
  • src/plugins/__tests__/CeremonyPlugin.test.ts
  • workspace/actions.yaml
  • workspace/agents/ava.yaml

After this merges, the next dev → main promotion will be a clean merge.

mabry1985 and others added 2 commits April 19, 2026 18:11
* fix: extension URIs use proto-labs.ai (not protolabs.ai) (#407)

All 27 references to https://protolabs.ai/a2a/ext/* changed to
https://proto-labs.ai/a2a/ext/* to match the actual domain. These
URIs are opaque identifiers (not published specs today) but should
reference a domain we own.

Breaking: external agents (Quinn, protoPen) whose cards declare the
old URI will stop matching the registry until they update. Filed on
Quinn to update her card.

Co-authored-by: Automaker <automaker@localhost>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore(release): bump to v0.7.20 (#408)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* chore: remove protoaudio + protovoice from agent rollcall (#410)

Both services decommissioned. Containers stopped + removed.
Only reference in protoWorkstacean was the rollcall script.

Note: homelab-iac/stacks/ai/docker-compose.yml still has a
worldmonitor network reference at line 521 + service at line 833.
Needs separate cleanup in that repo.

Co-authored-by: Automaker <automaker@localhost>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat: upgrade web_search → searxng_search + give Ava fleet health tools (#411)

Two changes:

1. Replace the basic `web_search` tool (5 results, hardcoded engines)
   with `searxng_search` — adapted from rabbit-hole.io's full-surface
   SearXNG integration. New capabilities:
   - Category routing: general, news, science, it
   - Time range filtering: day, week, month, year
   - Bang syntax: !wp (Wikipedia), !scholar, !gh (GitHub)
   - Infoboxes, direct answers, suggestions in response
   - Configurable max_results (default 10, was 5)

   Updated in both bus-tools.ts (@protolabsai/sdk pattern) and
   deep-agent-executor.ts (LangChain pattern).

2. Give Ava three fleet health tools she was missing:
   - get_ci_health — CI success rates across repos
   - get_pr_pipeline — open PRs, conflicts, staleness
   - get_incidents — security/ops incidents

   Ava can now answer fleet health questions directly instead of
   always delegating to Quinn.

Ava's tool count: 10 → 13. Tool rename: web_search → searxng_search
(greenfield, no backward compat alias).

Co-authored-by: Automaker <automaker@localhost>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore(projects): register protoAgent in projects.yaml (#414)

protoAgent is the new GitHub Template repo that replaces per-agent
A2A bootstrapping. Registers it as an active dev project owned by
Quinn, matching the shape of existing entries. Plane / GitHub
webhook / Discord provisioning remain TODO — those integrations
aren't configured in this deployment, so the onboard plugin
skipped them.

Co-authored-by: Josh <artificialcitizens@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(release): bump to v0.7.21 (#413)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat(ava): expand helm toolset, wire GOAP skills, fix ceremony disable bug (#415)

Ava agent audit + overhaul:
- Tools: 10 → 22 (direct observation, propose_config_change, incident reporting)
- Skills: 3 → 7 (debug_ci_failures, fleet_incident_response, downshift_models, investigate_orphaned_skills)
- System prompt rewritten: self-improvement instructions, escalation policy, GOAP-dispatch playbook
- DeepAgentExecutor now applies skill-level systemPromptOverride (goal_proposal, diagnose_pr_stuck)
- Fix ceremony loader bug: disabled ceremonies were filtered out, preventing hot-reload from cancelling timers
- Clean up board.pr-audit.yaml (remove spurious action field, restore schedule, keep disabled)
- Update docs: README, deep-agent runtime, agent-skills reference, self-improving loop

Co-authored-by: Automaker <automaker@localhost>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(pr-remediator): close dispatch gap — self-dispatch + broaden auto-approve (#417)

Two root causes prevented PRs from being auto-merged:

1. Dispatch gap: tier_0 short-circuit in ActionDispatcherPlugin completed
   all actions immediately without dispatching to agent.skill.request.
   Every action in actions.yaml is tier_0, so the fireAndForget path
   (which publishes the skill request) was unreachable dead code.
   Fix: tier_0 now falls through when meta.fireAndForget is set.

2. Approval gap: readyToMerge requires reviewState=approved, but
   auto-approve only covered dependabot/renovate/promote:/chore(deps.
   Human PRs, release PRs (chore(release), and github-actions PRs
   all lacked approved reviews and sat indefinitely.
   Fix: added app/github-actions to authors, chore(release, chore:,
   docs( to safe title prefixes.

Additionally, PrRemediatorPlugin now self-dispatches remediation on
every world.state.updated tick — checking for readyToMerge, dirty,
failingCi, and changesRequested PRs directly from cached domain data.
This removes the dependency on GOAP dispatch reaching the plugin via
pr.remediate.* topics (which were never published in production after
Arc 1.4 removed meta.topic routing).

Co-authored-by: Automaker <automaker@localhost>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(goap): issue_zero domain + goals — track open GitHub issues across fleet (#419)

Adds a github_issues domain that polls /repos/{repo}/issues?state=open
for all managed projects and classifies by label (critical, bug,
enhancement). Three GOAP goals enforce issue hygiene:

  - issues.zero_critical (critical severity, max: 0)
  - issues.zero_bugs (high severity, max: 0)
  - issues.total_low (medium severity, max: 5)

Each goal has a matching alert action and a triage dispatch action
that invokes Ava's new issue_triage skill. The skill instructs Ava
to resolve, convert to board features, delegate, or close issues
with rationale — driving toward zero open issues across all repos.

Domain polls every 5 minutes (issue velocity is low, GitHub rate
limits are a concern with 6+ repos).

Co-authored-by: Automaker <automaker@localhost>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat: manage_board list action (#247) + a2a.trace extension (#359) (#420)

Two enhancements to reach issue zero:

manage_board list (#247):
  - Added GET /api/board/features/list endpoint proxying to Studio
  - Added "list" action to manage_board tool with status filter
  - Ava can now query "show me all blocked features" directly

a2a.trace extension (#359):
  - New langfuse-trace extension stamps a2a.trace metadata on all
    outbound A2A dispatches (traceId, callerAgent, skill, project)
  - Quinn reads this to link Langfuse traces across agent boundaries
  - Registered at startup alongside cost/confidence/blast extensions

Closes #247, closes #359.

Co-authored-by: Automaker <automaker@localhost>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(pr-remediator): case-insensitive auto-approve prefix matching (#421)

* feat: manage_board list action (#247) + a2a.trace extension (#359)

Two enhancements to reach issue zero:

manage_board list (#247):
  - Added GET /api/board/features/list endpoint proxying to Studio
  - Added "list" action to manage_board tool with status filter
  - Ava can now query "show me all blocked features" directly

a2a.trace extension (#359):
  - New langfuse-trace extension stamps a2a.trace metadata on all
    outbound A2A dispatches (traceId, callerAgent, skill, project)
  - Quinn reads this to link Langfuse traces across agent boundaries
  - Registered at startup alongside cost/confidence/blast extensions

Closes #247, closes #359.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(pr-remediator): case-insensitive auto-approve prefix matching

"Promote dev to main" titles start with capital P, but the prefix
check was case-sensitive against "promote:". Now lowercases the
title before matching so both "promote:" and "Promote" patterns
are caught.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Automaker <automaker@localhost>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Automaker <automaker@localhost>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <artificialcitizens@gmail.com>
@mabry1985 mabry1985 enabled auto-merge (squash) April 21, 2026 07:43
@mabry1985 mabry1985 disabled auto-merge April 21, 2026 07:44
@mabry1985 mabry1985 enabled auto-merge April 21, 2026 07:44
@mabry1985 mabry1985 merged commit 647e1a4 into dev Apr 21, 2026
4 checks passed
@mabry1985 mabry1985 deleted the chore/backmerge-main-to-dev branch April 21, 2026 07:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant