Skip to content

fork sync: merge block/buzz main (7c789dee0) - #157

Merged
yjc801 merged 6 commits into
mainfrom
fork-sync/2026-09-14
Sep 15, 2026
Merged

yjc801 merged 6 commits into
mainfrom
fork-sync/2026-09-14

Conversation

@yjc801

@yjc801 yjc801 commented Sep 15, 2026

Copy link
Copy Markdown
Owner

Merges block/buzz main through 7c789de into fork main. Closes #153.

Upstream commits

Conflict resolutions (all from block#7578 / block#7594)

  • managed_agents/types.rs — kept fork's record_views.rs extraction; ported session_policy into both views.
  • readiness.rs, discovery/tests.rs — kept fork's JSON fixtures; added session_policy to the persona_with_runtime literal.
  • shared/api/tauri.ts, types.ts — kept fork's managedAgentRaw.ts / managedAgent.ts extractions; ported session_policy/sessionPolicy + AcpSessionPolicy (re-exported from types.ts).
  • discovery/presets.rs — upstream's new buzz-pi-acp hint, with Waggle branding.
  • Conflict-free branding fix: config-nudge-attachment missing-binary message says "restart Waggle". (buzz-acp's own nudge text is left as upstream — the crate isn't fork-branded.)

Local validation (sync clone, no hooks)

  • cargo check Tauri --all-targets + workspace --all-targets: clean; Tauri clippy -D warnings: clean
  • Tauri lib tests: 3277 passed; buzz-acp 945 / buzz-agent 542 passed
  • desktop tsc, pnpm test (6643 passed), pnpm check; just fmt-check, just file-size-check: clean

🤖 Generated with Claude Code

salman1993 and others added 6 commits September 11, 2026 20:38
## Summary

PR block#6732 taught the ACP harness to honor `BUZZ_ACP_SESSION_POLICY`, but
the desktop exposed that policy as one global experiment. Turning it on
changed every managed agent at once, even though conversation scope is
part of how an individual agent should behave. Some agents need
continuity across a channel, while agents such as validators may need
clean context for each thread.

This moves the choice onto the agent definition under Advanced as
**Conversation context**, with **Entire channel** and **Each thread**
options. **Entire channel** remains the default, so existing definitions
keep their current behavior.

The policy now travels through create and update IPC, returned agent
summaries, persona events, snapshots, teams, and community catalog
copies. Launches pass the effective definition value to the harness.
Editing a running agent uses the same lifecycle as a model edit: it
shows the restart-required state, leaves the deployed process untouched,
and applies the new policy on restart.

The global Thread Scoped ACP Sessions experiment and its desktop
command/state have been removed because the setting no longer has a
useful global meaning. There is intentionally no migration for the old
preview override. Users who enabled it can choose **Each thread** for
the agents that need it.

Unknown or null policy values degrade to **Entire channel** across
stored agents, persona events, and catalog projections. This keeps
forward-version data from dropping complete agent records.

### Related issue

No matching issue found. Builds on block#6732.

### Testing

- Focused Playwright create flow selected **Each thread** and verified
`create_persona` received `sessionPolicy: "thread"`.
- Focused Playwright catalog flow added a thread-scoped agent and
verified the local copy stored `session_policy: "thread"`.

Generated with Codex

---------

Signed-off-by: Salman Mohammed <smohammed@squareup.com>
## Summary

CI is failing in `main` before tests start because Docker Hub denies
pulls for `minio/minio` and `minio/mc`. Retrying the failed jobs
produced the same errors.

Use MinIO’s Quay images in the development, harness, deployment Compose,
and Helm configurations. Pin each image to its multi-platform digest and
retain the release tags already used by deployment templates. Update the
architecture reference to match.

### Related issue

No duplicate issue or PR found. Addresses the image-pull failures in
[main CI attempt
2](https://github.com/block/buzz/actions/runs/34645306855/attempts/2).

### Testing

- Pulled both pinned images for Linux ARM64 and AMD64.
- Started an isolated Compose stack derived from the updated MinIO
service definitions, once per architecture (AMD64 under local
emulation).
- Verified the existing health check passed and the bucket initializer
exited with code 0.
- Uploaded an object with `mc cp`, read it with `mc cat`, compared its
content, and deleted it with `mc rm` on both architectures.
- Confirmed the initialized bucket was private and removed the temporary
stack and volume.

Generated with Codex

Signed-off-by: Salman Mohammed <smohammed@squareup.com>
## Summary

Handle missing Pi adapter setup and update its install guidance.

### Related issue

None found.

### Testing

No manual testing.

Generated with Amp

---------

Signed-off-by: Salman Mohammed <smohammed@squareup.com>
Co-authored-by: Amp <amp@ampcode.com>
…#7606)

Posted by Brain, Wes Billman’s AI assistant, on behalf of `wesbillman`.

## Summary

Add an opt-in `databricks::DatabricksConnection` over the existing
PKCE/coordinator and v2 catalog machinery. It accepts an explicit HTTPS
workspace origin, absolute caller-owned cache root, and browser opener;
it does not start an agent or infer credentials/host from the
environment.

- Validate both OAuth endpoints on the actual discovery response used
for grants; native HTTP redirects are disabled and requests have a
30-second timeout.
- Keep strict cache/single-flight state in a separate namespace. Connect
is explicit/user-initiated; catalog lookup and its one 401 refresh stay
headless. Tokens are not exposed by the connection API.
- Preserve existing legacy constructors, endpoint/redirect policy, cache
layout, intents, and catalog filtering/pagination/partial/default
semantics. No internal host default, credential migration, app
integration or release configuration changes.

### Intentional shared changes

OAuth success/discovery JSON is capped at 1 MiB; error JSON at 16 KiB.
Oversized/malformed responses are infrastructure failures, while bounded
client-error `invalid_grant` retains its existing classification. OAuth
diagnostics omit raw bodies/URLs/opener/callback details. Overflowing
token expiry returns an infrastructure failure. These changes affect
legacy callers too and have synthetic regression coverage.

See [the reuse contract](crates/buzz-agent/DATABRICKS_REUSE.md) for API,
compatibility and caller obligations. Total operation deadlines,
stale-result fencing, private root ownership, nonlogging opener behavior
and credential-removal UX remain the caller’s responsibility.

### Related issue

Related discovery work: block#6918. Searched existing Databricks PRs and
OAuth issues; no duplicate of this strict opt-in API was found among
those results. This is a new reuse boundary, not a claim of a live
credential leak.

### Testing

Published head: `cf33eb2f4f267d5808e068e35127d5504f0bc674`, based on
main `78618804ec86a014524ad7d1fb55928e8f5c3edf`.
Two implementation/doc commits were transplanted from a release-derived
local base to exclude unrelated release files. `git range-diff` reports
both patches unchanged; independent source review of the transplant
found no blocker.

**At the published head:** normal pre-push hooks passed: branch skew,
push-head scope, file-size checks, Rust test lane and desktop Tauri
Clippy/tests. The fallback Rust lane actually ran `buzz-agent --lib`:
542 passed / 1 ignored, NOT the full package integration suite. Hosted
full package/repository CI remains pending. The first push attempt was
interrupted by the command runner’s 300-second limit; the second
completed normally with all hooks enabled.

**At reviewed implementation checkpoint `8cb3b72d4`:** 16 strict, 27
auth, 32 catalog and 63 coordinator/OAuth/CLI tests passed,
independently rerun; 18 author-selected mutations and four independent
reviewer mutations failed tests with passing restored controls. The
subsequent `539319411` delta changed only two doc-comment blocks. These
earlier test/mutation results are not silently attributed to the rebased
head.

Synthetic coverage includes HTTPS grants/catalog, off-origin endpoint
and redirect rejection, cancellation/socket/listener cleanup,
host/root/legacy namespace isolation, bounded declared/chunked bodies
and exact-limit controls, redaction with positive log capture, malformed
expiry, legacy endpoint/redirect controls, and real CLI cached-auth
aliases.

Desktop native checks used fail-closed sidecar stubs: compile/test
evidence, **not** a runnable or packaged app. No real provider
credentials, browser sign-in, app launch, or agent cutover was
performed. Cross-platform execution and real-provider acceptance remain
separate gates. No merge or downstream adoption is requested by this PR.

---------

Signed-off-by: Brain <1a02c72794dcd0f07058a353bc3a81f4028b8c77c92c87fce6d5c8b85970a20b@buzz.block.builderlab.xyz>
Co-authored-by: Brain <1a02c72794dcd0f07058a353bc3a81f4028b8c77c92c87fce6d5c8b85970a20b@buzz.block.builderlab.xyz>
Apple Silicon simulator builds fail because MLImage and MLKit contain
device-labelled ARM64 objects.

Enable the Flutter ML Kit package's upstream compatibility helper, which
restores device labels for iPhone builds. This preserves the MLKit-based
functionality (avatar background removal) and complements the
notification-extension linker isolation in block#7187.

Adds a complete iOS simulator build to CI to catch this build
regression.

---------

Signed-off-by: Tom Brow <tomb@block.xyz>
Conflicts from upstream block#7578 (ACP session scope per agent):
- managed_agents/types.rs: keep fork's record_views.rs extraction; port
  session_policy into into_agent_record / to_definition_view there.
- readiness.rs, discovery/tests.rs: keep fork's JSON record fixtures; add
  session_policy to the persona_with_runtime struct literal.
- shared/api/tauri.ts, types.ts: keep fork's managedAgentRaw.ts /
  managedAgent.ts extractions; port session_policy / sessionPolicy and
  AcpSessionPolicy (re-exported from types.ts).
- discovery/presets.rs: take upstream's buzz-pi-acp hint, keep Waggle branding.

Silent branding break: config-nudge-attachment missing-binary message now
says restart Waggle.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Junchao Yan <yjc801@gmail.com>
@github-actions github-actions Bot added the size/XL PR size tier XL (docs/pr-size.md) label Sep 15, 2026
@github-actions

Copy link
Copy Markdown

size/XL — 2341 reviewable lines, over the 800-line limit. Split this pull request, or add a ## Why not split section to the description explaining why it has to land as one change. The section has to be your own sentences: the template pasted unedited, a code block or a bare link does not count. This check fails until one of those happens.

Lines Files
Counted toward size 2341 108
Tests (not counted) 250 11
Generated, lockfiles, binary (not counted) 180 4
Whole-file deletions (not counted) 79 1

Budget: S ≤ 200 · M ≤ 400 · L ≤ 800 · XL above. Ways to split while keeping each pull request coherent: docs/pr-size.md.

@yjc801
yjc801 merged commit 83a5d04 into main Sep 15, 2026
41 of 43 checks passed
@yjc801
yjc801 deleted the fork-sync/2026-09-14 branch September 15, 2026 17:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/XL PR size tier XL (docs/pr-size.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fork sync conflict with block/buzz main (2026-09-11)

4 participants