Skip to content

Replace the README banner with a vector logo for light and dark - #24

Merged
CodeWithBehnam merged 2 commits into
mainfrom
claude/lucid-franklin-gsu7v4
Oct 1, 2026
Merged

CodeWithBehnam merged 2 commits into
mainfrom
claude/lucid-franklin-gsu7v4

Conversation

@CodeWithBehnam

Copy link
Copy Markdown
Owner

What does this PR do?

Replaces the raster README banner with the chosen logo, concept 5 (gust glyph): three wind strokes in teal, ink and orange, next to VAYU and وایو.

  • assets/logo-light.svg and assets/logo-dark.svg are about 3 KB each, versus the 5.8 MB PNG. The README picks the right one with <picture> and prefers-color-scheme.
  • The text is stored as outlines: "VAYU" in Manrope ExtraBold, and "وایو" in Vazirmatn SemiBold, shaped with HarfBuzz so the Persian letters join correctly (final و, initial Farsi ی). Nothing depends on fonts being installed.
  • The images use absolute raw.githubusercontent.com/.../main/... URLs, so the logo also shows on PyPI, where relative paths don't resolve. Those URLs only work once this is on main, so the logo won't show in this PR's file preview.
  • scripts/make_logo.py regenerates both SVGs. It needs fonttools and uharfbuzz, and fetches both fonts (OFL) from Google Fonts.
  • assets/banner.png is removed. It also carried an AI-image watermark in the bottom-right corner.

How was this tested?

  • Tested with audio file(s)

  • Ran existing tests (pytest): no Python package changes; CI runs them anyway

  • Tested CLI (vayu audio.mp3)

  • Rendered both SVGs in Chromium on GitHub's light (#ffffff) and dark (#0d1117) backgrounds. Every element is inside the frame, including the descender of و.

  • scripts/make_logo.py reproduces the committed files: the path data is the same apart from whitespace.

  • Checked that raw.githubusercontent.com serves SVGs as image/svg+xml, so browsers display them.

claude-review will fail as on #12 (the repository's CLAUDE_CODE_OAUTH_TOKEN secret, see this comment).

🤖 Generated with Claude Code

https://claude.ai/code/session_01TMXYMqgLAykqRApmbRfpTA


Generated by Claude Code

The new logo (the gust-glyph concept): three wind strokes in teal, ink
and orange, with "VAYU" and "وایو". The text is shaped with HarfBuzz and
stored as outlines, so it renders the same everywhere without web fonts.
There are two versions, assets/logo-light.svg and assets/logo-dark.svg,
and the README picks one with <picture> and prefers-color-scheme. The
images use absolute raw.githubusercontent URLs so they also show on PyPI,
where relative paths don't resolve.

scripts/make_logo.py regenerates both files (fonttools + uharfbuzz;
Manrope and Vazirmatn are fetched from Google Fonts, both OFL).

assets/banner.png, the raster banner it replaces, is removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TMXYMqgLAykqRApmbRfpTA
@CodeWithBehnam
CodeWithBehnam force-pushed the claude/lucid-franklin-gsu7v4 branch from cbe28d2 to 4b11aae Compare October 1, 2026 05:06

Copy link
Copy Markdown
Owner Author

The claude-review failure is now confirmed, and it isn't caused by this PR or any earlier one. A one-off diagnostic run with show_full_output: true (since removed from the branch) logged:

"api_error_status": 401,
"result": "Failed to authenticate. API Error: 401 OAuth access token has been revoked."

The CLAUDE_CODE_OAUTH_TOKEN repository secret holds a revoked token, and every Claude Code Review run since the workflow was added has failed this way. The fix can't be made from a PR: generate a new token with claude setup-token (or run /install-github-app again in Claude Code), then update the secret under Settings → Secrets and variables → Actions. After that, re-running the failed job should pass.


Generated by Claude Code

@CodeWithBehnam CodeWithBehnam left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated code review, 10 findings. None of them is a blocking correctness bug in the shipped SVGs. I reran scripts/make_logo.py and it reproduces both committed files byte for byte. The findings cover how long the README links keep working, how the generator script fails and whether it can be reproduced, and some layout and alignment details.


Generated by Claude Code


Generated by Claude Code

Comment thread README.md
Comment thread scripts/make_logo.py Outdated
Comment thread scripts/make_logo.py Outdated
Comment thread README.md
Comment thread scripts/make_logo.py Outdated
Comment thread scripts/make_logo.py Outdated
Comment thread scripts/make_logo.py Outdated
Comment thread scripts/make_logo.py Outdated
Comment thread scripts/make_logo.py Outdated
Comment thread scripts/make_logo.py Outdated
- Space and centre the text against the mark's ink, not its nominal
  88 px box, and size the frame from the union of all ink plus a margin
- Right-align the Persian line to VAYU's visible letters
- Cache fonts per user and per font version, with timeouts, an atomic
  write and a clear error if Google Fonts returns other than one TTF
- Fail if a font lacks a glyph instead of drawing .notdef boxes
- Drop the redundant rtl override and default HarfBuzz features
- Pin README image links to the release tag when building for PyPI

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TMXYMqgLAykqRApmbRfpTA
@CodeWithBehnam
CodeWithBehnam merged commit 5a671b2 into main Oct 1, 2026
23 of 24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants