π¨ style(brand): refresh the drydock whale logo everywhere#439
Merged
Conversation
New master render (drydock.png) replaces the brand mark across all surfaces, regenerated from the single master via scripts/regenerate-brand-assets.sh: - App UI: in-app logo (whale-logo, drydock-logo) + favicon.ico/.svg/-96, apple-touch, PWA manifest icons - Website (apps/web) + demo (apps/demo): favicons, PWA icons, OpenGraph cards, header logo - README + docs: docs/assets/whale-logo.png and the dark-mode variant (derived by RGB-negate, matching the favicon.svg dark invert) Filenames preserved in place β docs/assets/whale-logo.png is the Home Assistant entity_picture URL contract (Hass.ts), renaming it broke HASS once (CHANGELOG #138). CodesWhat org logo, selfhst/* service icons, and app screenshots intentionally untouched.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Codecov Reportβ All modified and coverable lines are covered by tests. π’ Thoughts on this report? Let us know! |
biggest-littlest
approved these changes
Jun 16, 2026
biggest-littlest
left a comment
Member
There was a problem hiding this comment.
Brand asset refresh β regenerated marks/favicons/PWA/OG from the new master. Filenames preserved in place, CI green. LGTM.
ALARGECOMPANY
approved these changes
Jun 16, 2026
ALARGECOMPANY
left a comment
Member
There was a problem hiding this comment.
All 27 assets derived from one master via the committed regenerate script. HASS entity_picture path unchanged. Approving.
scttbnsn
added a commit
that referenced
this pull request
Jun 16, 2026
## What
drydock now renders a compact colored banner of the whale logo on
startup when attached to an interactive terminal, followed by a `drydock
v<version> Β· <mode>` identity line.
## How
- **Build-time bake.** `scripts/gen-banner.mjs` samples the master logo
(`drydock.png`) to a 50-cell-wide grid and renders each terminal row as
two pixel rows via the `β` half-block (upper pixel = foreground, lower =
background) using 24-bit truecolor escapes. Transparent cells become
spaces; blank top/bottom rows are trimmed. The result is baked into
`app/banner/art.ts` so **startup decodes no image** and pulls in no
image library. The generator is deterministic β re-running produces no
diff.
- **Render.** `renderBanner({ mode })` writes the art + identity line to
**stderr**, centering it when the terminal is wider than the banner.
- **Quiet by default where it matters.** Suppressed automatically when
the stream is not a TTY or when `NO_COLOR` is set (non-empty), so piped
output, log capture, and CI stay clean. Called from the entrypoint for
both controller and agent modes.
## Tests
- `app/banner/index.test.ts` β 11 cases covering TTY gating, `NO_COLOR`
(set / empty / unset), centering vs no-padding vs undefined columns, the
stderr/env fallbacks, and identity-line content for both modes.
- `app/index.test.ts` β asserts `renderBanner` runs with `{ mode:
'controller' }` and `{ mode: 'agent' }`.
- Full app gate green locally: 366 files / 10,875 tests, 100% coverage.
Builds on the new master logo landed in #439.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
New master render (
drydock.png, repo root) replaces the whale brand mark across every surface, all regenerated from the single master via the new committedscripts/regenerate-brand-assets.sh(ImageMagick).Replaced (filenames preserved in place):
drydock-logo.png,whale-logo.png,favicon.ico/.svg/-96,apple-touch-icon, PWA manifest iconsapps/web) + demo (apps/demo): favicons, PWA icons, OpenGraph cards, header logodocs/assets/whale-logo.pngand the dark-mode variant (RGB-negate β orange, mirroring the existingfavicon.svgdarkinvert(1))Untouched: CodesWhat org logo,
selfhst/*service icons, app screenshots.Safety: no renames β
docs/assets/whale-logo.pngis the Home Assistantentity_pictureURL contract (Hass.ts); renaming broke HASS once (CHANGELOG #138).