From 6b4db2b9340a2c2d40c6752c39cdaf9dc90c27c5 Mon Sep 17 00:00:00 2001 From: Anthony Ettinger Date: Sun, 14 Jun 2026 16:46:59 +0000 Subject: [PATCH] Use the Profullstack ASCII logo as the BBS banner Replace the figlet "profullstack.com" wordmark with a scaled-down ASCII rendition of the Profullstack mark (derived from the brand image), shown on the join@ onboarding and the ssh @ hub. Reuses the existing banner plumbing; the mark is sourced from internal/brand and rendered in Profullstack red. Co-Authored-By: Claude Opus 4.8 --- cmd/agentbbs/main.go | 8 +++----- internal/brand/banner.go | 26 ++++++++++++++++++++++++++ internal/hub/hub.go | 2 +- 3 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 internal/brand/banner.go diff --git a/cmd/agentbbs/main.go b/cmd/agentbbs/main.go index 7e166a4..0f5e835 100644 --- a/cmd/agentbbs/main.go +++ b/cmd/agentbbs/main.go @@ -52,6 +52,7 @@ import ( gossh "golang.org/x/crypto/ssh" "github.com/profullstack/agentbbs/internal/auth" + "github.com/profullstack/agentbbs/internal/brand" "github.com/profullstack/agentbbs/internal/calls" "github.com/profullstack/agentbbs/internal/chat" "github.com/profullstack/agentbbs/internal/forgejo" @@ -330,12 +331,9 @@ func (a *app) router() wish.Middleware { } // bbsBanner is the ASCII brand mark shown atop the hub menu and the join@ flow. -const bbsBanner = "" + - "┌─┐┬─┐┌─┐┌─┐┬ ┬┬ ┬ ┌─┐┌┬┐┌─┐┌─┐┬┌─\n" + - "├─┘├┬┘│ │├┤ │ ││ │ └─┐ │ ├─┤│ ├┴┐\n" + - "┴ ┴└─└─┘└ └─┘┴─┘┴─┘└─┘ ┴ ┴ ┴└─┘┴ ┴ .com" +var bbsBanner = brand.Logo() -var bannerStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#38bdf8")) +var bannerStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#e11d2a")) // hubMOTD is the welcome message shown in a box on the hub menu. The body is // operator-overridable via AGENTBBS_MOTD; it is tailored for guests vs members. diff --git a/internal/brand/banner.go b/internal/brand/banner.go new file mode 100644 index 0000000..fd6c3e6 --- /dev/null +++ b/internal/brand/banner.go @@ -0,0 +1,26 @@ +// Package brand holds AgentBBS's terminal branding — the ASCII logo shown +// at the top of the join@ onboarding and the ssh @ hub prompts. +// Scaled down from the Profullstack mark. +package brand + +import "strings" + +// logo is the ASCII rendition of the brand mark (UTF-8 block glyphs). +const logo = ` + ▓████▓▒ + ▒█████▓ + +▒▓ +▓████▓+ ▒+ + :+▒▓▓▓▓ :▓██▓█▓+ ▒▓▓▓▒+ + +▒▒▓▓▓▓▓▓▓ ▓▓▓▓▓▓+ ▒▓▓▓▓▓▒▒+ +:+▒▓▓▓▓▓▓▓▒+ ▒▓▓▓▓▓▒ +▒▓▓▓▓▓▓▒▒: +▒▓▓▒▓▒▒▒: +▓▓▓▓▓▓ :▒▒▒▒▒▒▒▒ +▒▒▒▒++ ▒▓▓▓▓▓+ ++▒▒▒▒ +▒▒+ +▓▓▓▓▓▒ ++▒ +▒▒▒▒+ ▒▓▓▓▓▒ +▒▒▒ +▒▒▒▒▒▒▒+ ▒▓▓▓▓▒ +▒▒▒▒▒▒▒ ++▒▒▒▒▒▒▒▒▒+ +▓▓▓▓▓: +▒▒▒▒▒▒▒▒++ +` + +// Logo returns the plain (unstyled) multi-line ASCII brand banner, without +// leading or trailing blank lines. The hub/join@ flows apply their own color. +func Logo() string { return strings.Trim(logo, "\n") } diff --git a/internal/hub/hub.go b/internal/hub/hub.go index 9f42402..d3a6092 100644 --- a/internal/hub/hub.go +++ b/internal/hub/hub.go @@ -27,7 +27,7 @@ var ( cursorStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#4ade80")) selStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#e2e8f0")) lockStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("203")) - bannerStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#38bdf8")) + bannerStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#e11d2a")) motdStyle = lipgloss.NewStyle(). Border(lipgloss.RoundedBorder()). BorderForeground(lipgloss.Color("#4ade80")).