diff --git a/crates/buzz-agent/sprout-agent.png b/crates/buzz-agent/sprout-agent.png deleted file mode 100644 index 029625676d..0000000000 Binary files a/crates/buzz-agent/sprout-agent.png and /dev/null differ diff --git a/desktop/src/features/projects/projectCreation.test.mjs b/desktop/src/features/projects/projectCreation.test.mjs index 9a3cf0212b..5d98c64d07 100644 --- a/desktop/src/features/projects/projectCreation.test.mjs +++ b/desktop/src/features/projects/projectCreation.test.mjs @@ -15,16 +15,16 @@ const CHANNEL = "9a1657ac-f7aa-5db0-b632-d8bbeb6dfb50"; test("buildProjectAnnouncementTemplate emits a channel-first NIP-MP project", () => { const templates = buildProjectAnnouncementTemplate({ description: "A workspace that starts as a conversation", - name: "Sprout", + name: "Buzz", ownerPubkey: OWNER, projectChannelId: CHANNEL, }); - assert.equal(templates.dtag, "sprout"); + assert.equal(templates.dtag, "buzz"); assert.equal(templates.project.kind, 30621); assert.deepEqual(templates.project.tags, [ - ["d", "sprout"], - ["name", "Sprout"], + ["d", "buzz"], + ["name", "Buzz"], ["buzz-channel", CHANNEL], ["description", "A workspace that starts as a conversation"], ]); @@ -36,9 +36,9 @@ test("buildProjectAnnouncementTemplate emits a channel-first NIP-MP project", () }); test("buildProjectAnnouncementTemplate records unlisted visibility and members", () => { - const address = `30617:${OWNER}:sprout`; + const address = `30617:${OWNER}:buzz`; const templates = buildProjectAnnouncementTemplate({ - name: "Sprout", + name: "Buzz", ownerPubkey: OWNER, projectChannelId: CHANNEL, projectVisibility: "unlisted", @@ -46,8 +46,8 @@ test("buildProjectAnnouncementTemplate records unlisted visibility and members", }); assert.deepEqual(templates.project.tags, [ - ["d", "sprout"], - ["name", "Sprout"], + ["d", "buzz"], + ["name", "Buzz"], ["buzz-channel", CHANNEL], ["buzz-visibility", "unlisted"], ["a", address], @@ -57,26 +57,26 @@ test("buildProjectAnnouncementTemplate records unlisted visibility and members", test("buildProjectBootstrapTemplates binds a default repository to the home channel", () => { const templates = buildProjectBootstrapTemplates({ description: "A workspace that starts as a conversation", - name: "Sprout", + name: "Buzz", ownerPubkey: OWNER, projectChannelId: CHANNEL, }); - const repositoryAddress = `30617:${OWNER}:sprout`; + const repositoryAddress = `30617:${OWNER}:buzz`; - assert.equal(templates.dtag, "sprout"); + assert.equal(templates.dtag, "buzz"); assert.equal(templates.repositoryAddress, repositoryAddress); assert.equal(templates.project.kind, 30621); assert.equal(templates.repository.kind, 30617); assert.deepEqual(templates.project.tags, [ - ["d", "sprout"], - ["name", "Sprout"], + ["d", "buzz"], + ["name", "Buzz"], ["buzz-channel", CHANNEL], ["description", "A workspace that starts as a conversation"], ["a", repositoryAddress], ]); assert.deepEqual(templates.repository.tags, [ - ["d", "sprout"], - ["name", "Sprout"], + ["d", "buzz"], + ["name", "Buzz"], ["buzz-channel", CHANNEL], ["description", "A workspace that starts as a conversation"], ]); @@ -109,7 +109,7 @@ test("buildProjectAnnouncementTemplate enforces the description tag byte limit", assert.doesNotThrow(() => buildProjectAnnouncementTemplate({ description: "🙂".repeat(512), - name: "Sprout", + name: "Buzz", ownerPubkey: OWNER, projectChannelId: CHANNEL, }), @@ -118,7 +118,7 @@ test("buildProjectAnnouncementTemplate enforces the description tag byte limit", () => buildProjectAnnouncementTemplate({ description: "🙂".repeat(513), - name: "Sprout", + name: "Buzz", ownerPubkey: OWNER, projectChannelId: CHANNEL, }), @@ -130,7 +130,7 @@ test("buildProjectAnnouncementTemplate rejects an invalid project channel", () = assert.throws( () => buildProjectAnnouncementTemplate({ - name: "Sprout", + name: "Buzz", ownerPubkey: OWNER, projectChannelId: "not-a-channel", }), @@ -143,13 +143,13 @@ test("conflictingListedProject ignores the caller's own slug and legacy cards", conflictingListedProject( [ { - dtag: "sprout", + dtag: "buzz", legacy: false, - name: "Sprout", + name: "Buzz", owner: OWNER, }, ], - { dtag: "sprout", name: "Sprout", ownerPubkey: OWNER }, + { dtag: "buzz", name: "Buzz", ownerPubkey: OWNER }, ), null, ); @@ -157,13 +157,13 @@ test("conflictingListedProject ignores the caller's own slug and legacy cards", conflictingListedProject( [ { - dtag: "sprout", + dtag: "buzz", legacy: true, - name: "Sprout", + name: "Buzz", owner: "b".repeat(64), }, ], - { dtag: "sprout", name: "Sprout", ownerPubkey: OWNER }, + { dtag: "buzz", name: "Buzz", ownerPubkey: OWNER }, ), null, ); diff --git a/desktop/src/features/sidebar/ui/SidebarProjectsSection.test.mjs b/desktop/src/features/sidebar/ui/SidebarProjectsSection.test.mjs index 336747ddeb..94ee180dd4 100644 --- a/desktop/src/features/sidebar/ui/SidebarProjectsSection.test.mjs +++ b/desktop/src/features/sidebar/ui/SidebarProjectsSection.test.mjs @@ -55,12 +55,12 @@ function makeProject(overrides = {}) { return { createdAt: 0, description: "", - dtag: "sprout", - id: `30621:${OWNER}:sprout`, - name: "sprout", + dtag: "buzz", + id: `30621:${OWNER}:buzz`, + name: "buzz", owner: OWNER, primaryRepositoryAddress: null, - projectAddress: `30621:${OWNER}:sprout`, + projectAddress: `30621:${OWNER}:buzz`, projectChannelId: null, repositories: [], repositoryAddresses: [], @@ -74,12 +74,12 @@ test("selectedProjectRouteId reads the project id from the detail route", () => assert.equal(selectedProjectRouteId("/projects/"), undefined); assert.equal(selectedProjectRouteId("/agents"), undefined); assert.equal( - selectedProjectRouteId("/projects/30621:abc:sprout"), - "30621:abc:sprout", + selectedProjectRouteId("/projects/30621:abc:buzz"), + "30621:abc:buzz", ); assert.equal( - selectedProjectRouteId("/projects/30621%3Aabc%3Asprout"), - "30621:abc:sprout", + selectedProjectRouteId("/projects/30621%3Aabc%3Abuzz"), + "30621:abc:buzz", ); }); diff --git a/desktop/src/shared/lib/linkPreview.test.mjs b/desktop/src/shared/lib/linkPreview.test.mjs index 731ec9a9b9..03950ff662 100644 --- a/desktop/src/shared/lib/linkPreview.test.mjs +++ b/desktop/src/shared/lib/linkPreview.test.mjs @@ -9,12 +9,12 @@ import { test("parseSupportedLinkPreview parses GitHub pull request URLs", () => { assert.deepEqual( - parseSupportedLinkPreview("https://github.com/block/sprout/pull/1234"), + parseSupportedLinkPreview("https://github.com/block/buzz/pull/1234"), { kind: "github-pull-request", - href: "https://github.com/block/sprout/pull/1234", + href: "https://github.com/block/buzz/pull/1234", provider: "GitHub", - title: "block/sprout #1234", + title: "block/buzz #1234", typeLabel: "PR", }, ); @@ -26,18 +26,18 @@ test("parseSupportedLinkPreview strips the fragment from the preview href", () = // snapshot-URL guard and drop the preview entirely. assert.equal( parseSupportedLinkPreview( - "https://github.com/block/sprout/pull/1234#pullrequestreview-99", + "https://github.com/block/buzz/pull/1234#pullrequestreview-99", )?.href, - "https://github.com/block/sprout/pull/1234", + "https://github.com/block/buzz/pull/1234", ); }); test("extractSupportedLinkPreviews collapses fragment variants of one page", () => { const previews = extractSupportedLinkPreviews( [ - "https://github.com/block/sprout/pull/1234#pullrequestreview-99", - "https://github.com/block/sprout/pull/1234#issuecomment-1", - "https://github.com/block/sprout/pull/5678", + "https://github.com/block/buzz/pull/1234#pullrequestreview-99", + "https://github.com/block/buzz/pull/1234#issuecomment-1", + "https://github.com/block/buzz/pull/5678", ].join("\n"), ); // Two anchors into the same page dedupe to one card at first occurrence; the @@ -45,33 +45,30 @@ test("extractSupportedLinkPreviews collapses fragment variants of one page", () assert.deepEqual( previews.map((preview) => preview.href), [ - "https://github.com/block/sprout/pull/1234", - "https://github.com/block/sprout/pull/5678", + "https://github.com/block/buzz/pull/1234", + "https://github.com/block/buzz/pull/5678", ], ); }); test("parseSupportedLinkPreview parses GitHub repository URLs", () => { - assert.deepEqual( - parseSupportedLinkPreview("https://github.com/block/sprout"), - { - kind: "github-repository", - href: "https://github.com/block/sprout", - provider: "GitHub", - title: "block/sprout", - typeLabel: "repo", - }, - ); + assert.deepEqual(parseSupportedLinkPreview("https://github.com/block/buzz"), { + kind: "github-repository", + href: "https://github.com/block/buzz", + provider: "GitHub", + title: "block/buzz", + typeLabel: "repo", + }); }); test("parseSupportedLinkPreview trims markdown punctuation around GitHub URLs", () => { assert.deepEqual( - parseSupportedLinkPreview("https://github.com/block/sprout/pull/1234)."), + parseSupportedLinkPreview("https://github.com/block/buzz/pull/1234)."), { kind: "github-pull-request", - href: "https://github.com/block/sprout/pull/1234", + href: "https://github.com/block/buzz/pull/1234", provider: "GitHub", - title: "block/sprout #1234", + title: "block/buzz #1234", typeLabel: "PR", }, ); @@ -79,7 +76,7 @@ test("parseSupportedLinkPreview trims markdown punctuation around GitHub URLs", test("parseSupportedLinkPreview ignores unsupported GitHub URLs", () => { assert.equal( - parseSupportedLinkPreview("https://github.com/block/sprout/tree/main"), + parseSupportedLinkPreview("https://github.com/block/buzz/tree/main"), null, ); }); @@ -312,13 +309,13 @@ test("extractSupportedLinkPreviews returns unique supported links in order", () assert.deepEqual( extractSupportedLinkPreviews( [ - "See github.com/block/sprout/pull/1", + "See github.com/block/buzz/pull/1", "and https://linear.app/buzz/issue/BUG-2/fix-preview", - "then https://github.com/block/sprout/pull/1 again.", + "then https://github.com/block/buzz/pull/1 again.", "plus https://docs.google.com/document/d/doc123/edit", ].join(" "), ).map((preview) => preview.title), - ["block/sprout #1", "BUG-2", "Document"], + ["block/buzz #1", "BUG-2", "Document"], ); }); @@ -352,9 +349,9 @@ test("extractSupportedLinkPreviews excludes markdown-labeled Buzz clone URLs", ( test("extractSupportedLinkPreviews handles markdown link serialization", () => { assert.deepEqual( extractSupportedLinkPreviews( - "[https://github.com/block/sprout/pull/44](https://github.com/block/sprout/pull/44)", + "[https://github.com/block/buzz/pull/44](https://github.com/block/buzz/pull/44)", ).map((preview) => preview.title), - ["block/sprout #44"], + ["block/buzz #44"], ); }); @@ -396,14 +393,14 @@ test("extractSupportedLinkPreviews skips URLs inside inline and fenced code", () assert.deepEqual( extractSupportedLinkPreviews( [ - "`https://github.com/block/sprout/pull/1`", + "`https://github.com/block/buzz/pull/1`", "```", "https://linear.app/buzz/issue/BUG-2/fix-preview", "```", - "https://github.com/block/sprout/pull/3", + "https://github.com/block/buzz/pull/3", ].join("\n"), ).map((preview) => preview.title), - ["block/sprout #3"], + ["block/buzz #3"], ); }); @@ -412,11 +409,11 @@ test("extractSupportedLinkPreviews skips URLs inside indented code", () => { extractSupportedLinkPreviews( [ " https://docs.google.com/document/d/hidden/edit", - "\tgithub.com/block/sprout/pull/4", - "https://github.com/block/sprout/pull/5", + "\tgithub.com/block/buzz/pull/4", + "https://github.com/block/buzz/pull/5", ].join("\n"), ).map((preview) => preview.title), - ["block/sprout #5"], + ["block/buzz #5"], ); }); @@ -425,7 +422,7 @@ test("extractSupportedLinkPreviews skips markdown image link URLs", () => { extractSupportedLinkPreviews( [ "![alt](https://docs.google.com/document/d/doc123/edit)", - "![alt](https://github.com/block/sprout)", + "![alt](https://github.com/block/buzz)", "[Composer attachment polish](https://docs.google.com/document/d/doc456/edit)", ].join("\n"), ).map((preview) => preview.title), @@ -437,12 +434,12 @@ test("extractSupportedLinkPreviews treats other absolute HTTPS URLs as generic", assert.deepEqual( extractSupportedLinkPreviews( [ - "https://evil-github.com/block/sprout/pull/1", + "https://evil-github.com/block/buzz/pull/1", "https://example.com/go/https://docs.google.com/document/d/doc123/edit", - "(https://github.com/block/sprout/pull/2)", + "(https://github.com/block/buzz/pull/2)", ].join(" "), ).map((preview) => preview.title), - ["evil-github.com", "example.com", "block/sprout #2"], + ["evil-github.com", "example.com", "block/buzz #2"], ); }); @@ -452,10 +449,10 @@ test("extractSupportedLinkPreviews skips links inside inline spoilers", () => { [ "Keep", "||[roadmap](https://docs.google.com/document/d/hidden/edit)||", - "hidden, but show https://github.com/block/sprout/pull/7", + "hidden, but show https://github.com/block/buzz/pull/7", ].join(" "), ).map((preview) => preview.title), - ["block/sprout #7"], + ["block/buzz #7"], ); }); @@ -468,19 +465,19 @@ test("extractSupportedLinkPreviews skips links inside block spoilers", () => { "https://linear.app/buzz/issue/BUG-99/hidden-spoiler-link", "", "||", - "https://github.com/block/sprout/pull/8", + "https://github.com/block/buzz/pull/8", ].join("\n"), ).map((preview) => preview.title), - ["block/sprout #8"], + ["block/buzz #8"], ); }); test("isSupportedLinkAutolinkLabel matches normalized bare URL labels", () => { - const preview = parseSupportedLinkPreview("github.com/block/sprout/pull/5"); + const preview = parseSupportedLinkPreview("github.com/block/buzz/pull/5"); assert.ok(preview); assert.equal( isSupportedLinkAutolinkLabel( - "https://github.com/block/sprout/pull/5", + "https://github.com/block/buzz/pull/5", preview, ), true, diff --git a/docs/assets/sprout-icon.png b/docs/assets/sprout-icon.png deleted file mode 100644 index 284c85f618..0000000000 Binary files a/docs/assets/sprout-icon.png and /dev/null differ diff --git a/docs/assets/sprout.png b/docs/assets/sprout.png deleted file mode 100644 index 65bb6059a2..0000000000 Binary files a/docs/assets/sprout.png and /dev/null differ