Files
buzz/crates/buzz-test-client
Duncan 017c4aeea7 Merge origin/main into duncan/workspace-scoped-agent-store
Compose main's post-C3 changes with the workspace-scoped agent store
(WSA) refactor, keeping BOTH sides' semantics. Non-mechanical resolutions
(per Paul's cluster ruling, thread eb3246b2):

- Pollen rename → scoped-pipeline step 1.5 (NOT global pre-scope): the
  live store on HEAD is scopes/<id>/managed-agents.json, so a global-only
  rename never reaches an adopted scope and orphans the reconcile queue.
  READY_MARKER_VERSION bumped v1→v2 so scopes marked ready under v1 re-run
  the two new idempotent steps.
- Team-membership repair → scoped step 4.5 (before the step-5 detach; the
  clean-repair gate is preserved by construction via fatal-on-Err) PLUS a
  per-apply repair-only call in apply_workspace, preserving main's
  every-boot cadence upstream of the superseding-head write.
- Event-sync fatal team leg + run_event_sync_blocking awaited in
  apply_workspace, keyed off the scoped active_retention_scope +
  definitions_dir; spawn_pending_profile_reconciliations after apply.
  main's migrate_legacy_retention_into is dropped as subsumed by
  scope-init's pre-Ready migrate_legacy_retention_db (Step A).
- inbound.rs apply composed HEAD's §2.8 linkage-freeze with main's
  access-policy runtime-refresh into InboundAgentApply { linkage,
  access_changed }.
- P29-C1 owner-identity egress lease ported to net-new main sign sites
  (project owner announcement, relay/get.rs, sign_project_issue_assignee
  operation) to compile against submit_signed_event_with_keys(&lease).

Merge fallout resolved: #5682's local-spawn idle-pool-sleep env
(idle_pool_sleep_env / IDLE_POOL_SLEEP_SECS) is subsumed — its only call
site was the local direct-env block HEAD's ff16a80b deleted, and the
remote-deploy policy_env path never carried it; the orphaned symbols are
dropped. spawn_event_sync removed (its sole caller became
run_event_sync_blocking). mesh_llm_tests.rs import fixed for main's
readiness→mesh_readiness rename (its symbols' coverage now lives in
mesh_readiness.rs's own inline tests). Test call sites updated for main's
new prospective_spawn_config_snapshot enforced_owner_only arg,
ManagedAgentRecord::provider_policy_pending field,
AgentUpdateRollback::new preserve_access_policy arg, private AppState.keys
(via identity_lifecycle_keys_guard), and submit_event_with_keys(&lease).

File-size ratchet (base 978e585e): four files crossed the 1000-line cap
after the merge and were split, never trimmed. team_snapshot.rs →
team_snapshot/retain.rs (retain_agent_pending); personas/inbound.rs →
inbound/tombstone.rs (parse_deletion_coordinate + reconcile_inbound_
tombstone); inbound/inbound_tests.rs → inbound/team_tests.rs (kind:30176
team-inbound tests); managed_agents/retention.rs → retention/tests.rs
(inline test module).

Desktop test mocks stamped: main-authored identity-command mocks
(sidebarSyncTestHelpers.mjs installTauriMock; communityThemeSync.test.mjs
onboarding-fetch decrypt) returned bare values, which the C3 owner-
identity adapters unwrap as .value → undefined. Wrapped in the
{value, artifact:{id,generation}} stamped shape (inert stamp in C3),
matching the resolution already applied to the file's other mocks.

Gates at merge HEAD: cargo fmt --check clean; cargo clippy --workspace
--all-targets -D warnings clean (default features); cargo test --lib
2710 passed / 0 failed; desktop-check (file-size ratchet) clean;
desktop-typecheck clean; desktop-test 4991 passed / 0 failed; mesh-llm
leg 90 passed / 0 failed.

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
2026-08-18 06:29:23 -04:00
..