mirror of
https://github.com/block/buzz.git
synced 2026-11-07 09:52:03 +00:00
🤖 I’m Larry, updating this description on Logan’s behalf. ## Summary Build named macOS demo apps without Finder automation or collisions with installed Buzz. `just desktop-demo-build "PR 6407 Demo"` produces a matching app and DMG, with a fresh build identity even when the same display name is reused. - The headless DMG packager uses `hdiutil`; optional Finder styling is bounded. The existing production release recipe is unchanged. - Each demo has independent app data, keychain, nest, CLI name, voice-model storage, repository discovery, and agent OAuth/config storage. Reset preserves production and sibling-demo state, and retains retry intent when credential removal or root resolution fails. - Native links accept only the active build’s registered scheme, then translate validated entity links into the frontend’s canonical `buzz:` format. - The recipe builds all six executable sidecars. Display names are capped at 31 ASCII characters so the generated identity fits Rust’s build-time limit. **Open delivery requirement:** downloaded demos must run without a Gatekeeper security override. The current recipe is ad-hoc signed and unnotarized; it does **not** satisfy this requirement. Trusted branch-demo signing/distribution remains blocked on establishing an approved signing path. This PR is not being presented as complete download-and-run delivery. ### Related issue N/A — reported in the Buzz DMG-packaging workstream. ### Testing At `11ce21ff97cb387ad676e7caa65b00964097d0bb`, macOS Blox passed the Tauri workspace suite and compiled-flags gate (including the full named-demo state; each library pass: 2,992 passed, 19 ignored), Tauri all-target clippy, the full `buzz-agent` package suite, and frontend lint/typecheck plus 5,733 tests. Regression coverage includes cold-start/running entity-link handling, wrong-build rejection, OAuth deletion failure and retry, unresolved credential roots, and production/sibling preservation. At the same head, an extra full named-demo/mesh-enabled run had 3,092 passing tests and one failure: a pre-existing shared-compute `auto` versus `mesh` expectation, also reproduced on the old published head `a77b25eca`. The ordinary and demo-state matrix above passes; this is not an all-features-green claim. Live macOS Launch Services delivery remains unverified. GitHub CI completed with 30 successful checks and 9 skipped. The exact-range security review has not run; its authorization notice remains open. CI success does not establish trusted signing or downloaded-app launch. Earlier demo artifacts established matching app/DMG names, side-by-side launch, and six non-empty executable arm64 sidecars. These screenshots show an earlier artifact, not a new build of the final repair commit. Signature-integrity checks are not Gatekeeper/notarization evidence. <img width="1032" height="548" alt="Buzz PR 6407 Demo disk image containing the matching app" src="https://github.com/user-attachments/assets/bca0277e-db03-4308-b280-fcad55e6d601" /> <img width="1186" height="821" alt="Buzz PR 6407 Demo running alongside other Buzz installations" src="https://github.com/user-attachments/assets/b4bf4ae5-c341-4e15-8090-9d2ea7c623b6" /> --------- Signed-off-by: Logan Johnson <loganj@squareup.com> Signed-off-by: Larry <8cf5a83f590ec0955b11647d1c88f796a98e088c30a492c58e0e46c3026ae7a4@buzz.block.builderlab.xyz> Co-authored-by: Other Brother Darryl <cee32d92756729ee0c097c5661b879c6199931cd25315c8cf398dcbf0f155cf1@buzz.block.builderlab.xyz> Co-authored-by: Larry <loganj+sandbox-larry@squareup.com> Co-authored-by: Larry <8cf5a83f590ec0955b11647d1c88f796a98e088c30a492c58e0e46c3026ae7a4@buzz.block.builderlab.xyz>
65 lines
2.2 KiB
Rust
65 lines
2.2 KiB
Rust
/// Service name for the desktop OS keyring. Debug builds default to a distinct
|
|
/// service, while standalone worktree launches may request a scoped dev service.
|
|
fn dev_keyring_service(configured: Option<String>) -> String {
|
|
configured
|
|
.filter(|service| service.starts_with("buzz-desktop-dev."))
|
|
.unwrap_or_else(|| "buzz-desktop-dev".to_string())
|
|
}
|
|
|
|
pub(crate) fn keyring_service() -> &'static str {
|
|
if crate::build_identity::is_demo_build() {
|
|
static DEMO_SERVICE: std::sync::OnceLock<String> = std::sync::OnceLock::new();
|
|
DEMO_SERVICE
|
|
.get_or_init(|| crate::build_identity::keyring_service().into_owned())
|
|
.as_str()
|
|
} else if cfg!(debug_assertions) {
|
|
static DEV_SERVICE: std::sync::OnceLock<String> = std::sync::OnceLock::new();
|
|
DEV_SERVICE
|
|
.get_or_init(|| dev_keyring_service(std::env::var("BUZZ_DEV_KEYRING_SERVICE").ok()))
|
|
.as_str()
|
|
} else {
|
|
"buzz-desktop"
|
|
}
|
|
}
|
|
|
|
pub(super) fn migration_marker_name(service: &str, default_name: &str) -> String {
|
|
if service == "buzz-desktop" || service == "buzz-desktop-dev" {
|
|
default_name.to_string()
|
|
} else {
|
|
format!("identity.{service}.migrated")
|
|
}
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::{dev_keyring_service, migration_marker_name};
|
|
|
|
#[test]
|
|
fn standalone_scope_must_remain_under_dev_service() {
|
|
assert_eq!(
|
|
dev_keyring_service(Some("buzz-desktop-dev.example".to_string())),
|
|
"buzz-desktop-dev.example"
|
|
);
|
|
assert_eq!(
|
|
dev_keyring_service(Some("buzz-desktop".to_string())),
|
|
"buzz-desktop-dev"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn standalone_scope_uses_its_own_migration_marker() {
|
|
assert_eq!(
|
|
migration_marker_name("buzz-desktop", "identity.migrated"),
|
|
"identity.migrated"
|
|
);
|
|
assert_eq!(
|
|
migration_marker_name("buzz-desktop-dev", "identity.migrated"),
|
|
"identity.migrated"
|
|
);
|
|
assert_eq!(
|
|
migration_marker_name("buzz-desktop-dev.example", "identity.migrated"),
|
|
"identity.buzz-desktop-dev.example.migrated"
|
|
);
|
|
}
|
|
}
|