Skip to content

restore: fork messaging + moa toolsets (revert #1132) — Ace KEEP - #1238

Merged
ang-fleet-lander[bot] merged 1 commit into
mainfrom
revert/restore-messaging-moa
Sep 26, 2026
Merged

ang-fleet-lander[bot] merged 1 commit into
mainfrom
revert/restore-messaging-moa

Conversation

@ang-fleet-interactive

@ang-fleet-interactive ang-fleet-interactive Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Reverts #1132 exactly (restores send_message messaging toolset, mixture_of_agents tool + moa toolset, and the fork canary test tests/agent/test_fork_custom_toolsets.py).

Why: #1132 was marked ACE-GATED — DRAFT, DO NOT MERGE (fork-features registry entry 4 is fork-permanent). It was merged 2026-09-26 07:23Z by a sweep lane without Ace's ruling. Ace's ruling (00:5x PT): keep these toolsets. Registry entry 4 stays fork-permanent.

Local: tests/agent/test_fork_custom_toolsets.py tests/test_toolsets.py → 31 passed.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

…-09-26

#1132 was an ACE-GATED draft (registry entry 4, fork-permanent) that a sweep lane merged at
07:23Z without Ace's ruling. Ace, 00:5x PT: keep the toolsets. Restores f504b1c + 091b3f9
+ 7e50554 exactly; tests/agent/test_fork_custom_toolsets.py back (31 passed with test_toolsets).
@ang-fleet-lander

Copy link
Copy Markdown

🤖 merged-by: apollo · lane: kanban-merge-pass · gate: BYPASS: FleetReview paused since 09-22; gate = CI green + Apollo diff review · why: restore messaging+moa toolsets (revert #1132, ACE-GATED draft merged without ruling; Ace KEEP 00:5x); exact revert; 31 tests pass

@ang-fleet-lander
ang-fleet-lander Bot added this pull request to the merge queue Sep 26, 2026
Merged via the queue into main with commit 86d48d9 Sep 26, 2026
56 checks passed
@ang-fleet-lander
ang-fleet-lander Bot deleted the revert/restore-messaging-moa branch September 26, 2026 08:31
@ang-prism

ang-prism Bot commented Sep 27, 2026

Copy link
Copy Markdown

FleetReview

Review: post-merge · head 86d48d92536f · duration 12m 03s
Profile: full recipe · policy: changed-lines>400
Roster: B-assert-ctx → gpt-6-sol (openai), B-state → gpt-6-sol (openai), C-assert-xhigh → claude-code-opus-5-5 (anthropic), F → gpt-6-sol (openai), G → grok-4.6 (xai), L6 → gpt-6-sol (openai)

Post-merge review (fleetreview:post-merge override): this reviewed the merge commit against its first parent — the bytes that already shipped. It is not a pre-merge gate pass.

Confidence: 3/5

Findings

  • P1 tests/agent/test_fork_custom_toolsets.py:60 — Provenance Check · agreed: B-assert-ctx,L6 (openai)
  • P1 tools/mixture_of_agents_tool.py:234 — Reasoning Returned · agreed: B-assert-ctx,G (openai, xai)
  • P1 tools/mixture_of_agents_tool.py:388 — Incorrect provenance · agreed: B-assert-ctx,L6,G (openai, xai)
  • P1 tools/mixture_of_agents_tool.py:366 — Prompt Injection · agreed: B-assert-ctx,B-state (openai)
  • P2 tools/mixture_of_agents_tool.py:319 — Prompt logging · agreed: B-state,L6 (openai)
  • P2 tools/mixture_of_agents_tool.py:399 — Debug write failure · agreed: B-state,G (openai, xai)
  • P1 tests/agent/test_fork_custom_toolsets.py:31 — Registration Gap · agreed: L6,C-assert-xhigh (openai, anthropic)
  • P1 toolsets.py:387 — Restored 'messaging' toolset points at send_message, which is never registered, so the toggle does nothing · agreed: C-assert-xhigh,F (anthropic, openai)
  • P1 tools/mixture_of_agents_tool.py:155 — Restored tool relies on a process-global cached OpenRouter client: another profile's key gets reused, and the client stays bound to a closed event loop · agreed: C-assert-xhigh (anthropic)
  • P1 toolsets.py:393 — MoA rejects profile-scoped OpenRouter credentials at execution time · agreed: F (openai)
  • P1 tools/mixture_of_agents_tool.py:149 — OpenRouter client is reused across profile secret scopes · agreed: F (openai)
  • P1 tools/mixture_of_agents_tool.py:87 — Debug session writes other profiles' prompts to its initial profile directory · agreed: F (openai)

FleetReview provenance · models: B=gpt-6-sol, C=claude-code-opus-5-5, D=grok-4.6, F=gpt-6-sol · cost: $3.55 · duration: 12m 00s · rounds: 1 · files examined: 8

ang-fleet-workers Bot added a commit that referenced this pull request Sep 27, 2026
…s (t_9c9e757c)

FleetReview retro-backfill 2026-09-27, class C4. Each finding re-verified at
5a9d284; one RED-on-base / GREEN test per confirmed instance.

- #813 agent/quota_registry_gate.py: missing/unparseable observed_at now fails
  open (docstring contract), no longer skips a working fallback.
- #1017 cron/lifecycle_guard.py: mask allowlist refuses module callables passed
  as values (json.dumps(p, default=subprocess.run), sorted(key=...)).
- #1019 agent/lsp/manager.py: slot-dir OSError in _has_capacity -> run without
  LSP instead of raising out of enabled_for()/write_file.
- #1026 cron/scheduler.py: owner-deadman exemption scoped to the host it owns;
  a note naming only another DOWN host is gated.
- #1229 scripts/ci/live_comment.py: comment lookup/update network errors no
  longer kill the poller; a failed post is retried next poll.
- #1230 plugins_cmd.py: pinned-plugin remedy shell-quotes the recorded source
  (CLI + dashboard).
- #1238 tools/mixture_of_agents_tool.py: reference responses move from the
  aggregator system message to a tagged data block in the user message.

Verified: test-gate narrow pytest; new tests 13 RED on base, all GREEN with fix;
neighbouring suites (lifecycle_guard x4, host_down_gate, quota wiring,
plugins_cmd, fallback_policy, fork toolsets) pass.
ang-fleet-workers Bot added a commit that referenced this pull request Sep 27, 2026
…s (t_9c9e757c)

FleetReview retro-backfill 2026-09-27, class C4. Each finding re-verified at
5a9d284; one RED-on-base / GREEN test per confirmed instance.

- #813 agent/quota_registry_gate.py: missing/unparseable observed_at now fails
  open (docstring contract), no longer skips a working fallback.
- #1017 cron/lifecycle_guard.py: superseded by #1348 (6662bbd) on main; this
  slice's 5 callback cases pass against it, so the edit was dropped on rebase.
- #1019 agent/lsp/manager.py: slot-dir OSError in _has_capacity -> run without
  LSP instead of raising out of enabled_for()/write_file.
- #1026 cron/scheduler.py: owner-deadman exemption scoped to the host it owns;
  a note naming only another DOWN host is gated.
- #1229 scripts/ci/live_comment.py: comment lookup/update network errors no
  longer kill the poller; a failed post is retried next poll.
- #1230 plugins_cmd.py: pinned-plugin remedy shell-quotes the recorded source
  (CLI + dashboard).
- #1238 tools/mixture_of_agents_tool.py: reference responses move from the
  aggregator system message to a tagged data block in the user message.

Verified: test-gate narrow pytest; new tests 13 RED on base, all GREEN with fix;
neighbouring suites (lifecycle_guard x4, host_down_gate, quota wiring,
plugins_cmd, fallback_policy, fork toolsets) pass.
Kyzcreig pushed a commit that referenced this pull request Sep 27, 2026
)

* fix(security): Backfill C3 secret/PII exposure class (t_36b0277a)

- tools/tool_wait_watchdog: redact tool args (force + URL creds) before the
  240-char cut; long-wait log lines carried raw commands/tokens (#1012).
- tools/openrouter_client: one client per OpenRouter credential, not per process;
  a multiplexed gateway sent later profiles' MoA prompts under the first profile's
  key (#1238). mixture_of_agents_tool uses the scope-aware key check.
- plugins/kanban-home-cards: redact URL credentials in card text and redact the
  board slug, both injected into model context (#968).
- agent/fallback_events: persisted err_head redacts URL credentials (#1211).
- gateway/run.py: STT INFO line logs size+latency, not the user's words (#1064).
- agent/turn_handoff: tool args/results redacted before /resume-handoff (#813).

Verified: each new test fails on base and passes on head; test_turn_handoff (34),
test_voice_inbound_accounting + test_gateway_foreground_deafness (39),
test_kanban_home_cards + test_fallback_events_ledger (101),
test_secret_scope_tier1_migration (23 passed, 2 skipped).

* test: build fake URL credentials by concatenation (gitleaks generic-api-key) (t_36b0277a)

---------

Co-authored-by: ang-fleet-workers[bot] <333956806+ang-fleet-workers[bot]@users.noreply.github.com>
Kyzcreig pushed a commit that referenced this pull request Sep 27, 2026
…s (t_9c9e757c) (#1353)

FleetReview retro-backfill 2026-09-27, class C4. Each finding re-verified at
5a9d284; one RED-on-base / GREEN test per confirmed instance.

- #813 agent/quota_registry_gate.py: missing/unparseable observed_at now fails
  open (docstring contract), no longer skips a working fallback.
- #1017 cron/lifecycle_guard.py: superseded by #1348 (6662bbd) on main; this
  slice's 5 callback cases pass against it, so the edit was dropped on rebase.
- #1019 agent/lsp/manager.py: slot-dir OSError in _has_capacity -> run without
  LSP instead of raising out of enabled_for()/write_file.
- #1026 cron/scheduler.py: owner-deadman exemption scoped to the host it owns;
  a note naming only another DOWN host is gated.
- #1229 scripts/ci/live_comment.py: comment lookup/update network errors no
  longer kill the poller; a failed post is retried next poll.
- #1230 plugins_cmd.py: pinned-plugin remedy shell-quotes the recorded source
  (CLI + dashboard).
- #1238 tools/mixture_of_agents_tool.py: reference responses move from the
  aggregator system message to a tagged data block in the user message.

Verified: test-gate narrow pytest; new tests 13 RED on base, all GREEN with fix;
neighbouring suites (lifecycle_guard x4, host_down_gate, quota wiring,
plugins_cmd, fallback_policy, fork toolsets) pass.

Co-authored-by: ang-fleet-workers[bot] <333956806+ang-fleet-workers[bot]@users.noreply.github.com>
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