Skip to content

add EP66: 用 TS 写命令行工具,比你想的简单多了#69

Merged
AnnatarHe merged 1 commit into
masterfrom
claude/cool-noether-6Obyd
Jun 2, 2026
Merged

add EP66: 用 TS 写命令行工具,比你想的简单多了#69
AnnatarHe merged 1 commit into
masterfrom
claude/cool-noether-6Obyd

Conversation

@AnnatarHe
Copy link
Copy Markdown
Member

概要 / Summary

新增播客单集 EP66:用 TS 写命令行工具,比你想的简单多了,文件为 src/content/posts/ep66.mdx,沿用现有单集模板。

主题:用 TypeScript + Bun 写命令行工具,命令解析用 citty、TUI 用 Ink,bun build --compile 打成单文件 binary,再用 goreleaser 搞定 checksum、changelog、签名、公证与 Homebrew 分发。

元数据 / Metadata

字段
标题 EP66 用 TS 写命令行工具,比你想的简单多了
副标题 Bun 打包成单文件 binary,goreleaser 一把梭搞定签名、公证、分发
发布日期 2026-06-02 14:00:00
状态 published
小宇宙 https://www.xiaoyuzhoufm.com/episode/6a1eb84b92551efcff54fc0f
YouTube pVQViO74jLE
Bilibili BV1ugVf6mEAF
分类 cli, typescript, bun, ink, goreleaser, claude-code, tooling, frontend

说明 / Notes

  • Hashtag 按现有约定映射为小写英文 categories,去掉了品牌/通用标签(#程序员#AsyncTalk#异步聊技术)。
  • shownotes 里的命令 bun init / bun build --compile 用反引号包成了行内代码——否则站点默认的 smartypants 会把 -- 吞掉,命令会变成 bun build compile。这与现有单集对 sudoexecCommand 等的处理一致。

验证 / Verification

  • pnpm astro check — 0 errors(frontmatter 通过 content schema 校验)
  • ✅ dev server 渲染 /posts/ep66:标题、shownotes、YouTube + Bilibili 嵌入均正常;单集按 publicationDate 排在 /posts 列表最前
  • ⚠️ pnpm build 在 OG 图片生成阶段失败,原因是当前沙箱网络策略拦截了 ik.imagekit.io 上的 logo(HTTP 403)。该问题影响所有单集(构建在 ep0 即中断),与本次内容改动无关。

https://claude.ai/code/session_01LHYnpDfJS98GD99cvCzXZb


Generated by Claude Code

@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@AnnatarHe AnnatarHe temporarily deployed to claude/cool-noether-6Obyd - asynctalk-website PR #69 June 2, 2026 18:33 — with Render Destroyed
@claude
Copy link
Copy Markdown

claude Bot commented Jun 2, 2026

Code Review — EP66 Content PR

Overview

This is a clean, content-only PR adding src/content/posts/ep66.mdx for the new episode about CLI tooling with TypeScript + Bun. The change follows existing conventions well.


✅ What looks good

  • Frontmatter structure matches the established pattern (ep65, ep64, etc.) exactly — type, status, slug, guid, season, episodeType, explicit, field ordering all consistent.
  • Inline code escaping for bun init / bun build --compile with backticks is the correct fix and the PR description explains the -- → smartypants issue clearly. Consistent with how other episodes handle commands.
  • biliUrl format (//player.bilibili.com/...) is protocol-relative, matching all recent episodes.
  • Shownotes tone and structure match the conversational Chinese style of the podcast.

⚠️ Items to address

size: 0 and duration: 0 on a published episode

These two fields matter for podcast RSS feeds — size is the audio file's byte count and duration the episode length. Podcast clients (小宇宙, Apple Podcasts) may display incorrect or missing playback times when these are 0. ep65 also shipped with zeros, so this is a pattern, but it's worth asking: is there a plan to backfill these, or does the 小宇宙 feed override them independently?

If the values genuinely aren't available at publish time, a comment in a future CLAUDE.md entry or issue would be useful so contributors know these can be left blank.

frontend category

The episode is about CLI tooling (citty, Ink, goreleaser). The frontend tag feels stretched — Ink uses React but the output is a terminal TUI. Minor, but tui would be more precise. Not a blocker.


No concerns on

  • Security (static content, no dynamic inputs)
  • Performance (adds one MDX file, same as every other episode)
  • Test coverage (no test framework in this project per CLAUDE.md; pnpm astro check passing is the appropriate gate)
  • The pnpm build OG-image failure noted in the PR description is a pre-existing sandbox network issue, unrelated to this change.

Overall: LGTM with one question about the size/duration zeros. If that's accepted as the current workflow, this can merge as-is.

@AnnatarHe AnnatarHe merged commit 942a404 into master Jun 2, 2026
1 check passed
@AnnatarHe AnnatarHe deleted the claude/cool-noether-6Obyd branch June 2, 2026 18:45
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