sogeisetsu · Daily GitHub activitysogeisetsu 的 GitHub 每日动态
@sogeisetsu·2026-11-03 00:00 – 24:00 · UTC+8
80 own commits landed across five repositories, plus 33 automated commits by github-actions[bot].
In sogeisetsu/pixel-logo-toolkit, 27 own commits added automatic text wrapping, overflow protection, a bilingual CLI, English-first and Chinese READMEs, a 40-image gallery, and fixes for Korean fonts, right-side decoration spacing, and missing Pillow.
In sogeisetsu/opencode-agent-sandbox, 21 own commits tightened the plain-language skill, reorganized knowledge notes, and documented the branch-and-commit workflow in AGENTS.md.
In sogeisetsu/opencode-skill-management, 16 own commits added the starlight-docs skill scaffold and templates, restored mobile splash controls, and stopped proxy or offline failures from being reported as broken links.
In sogeisetsu/sogeisetsu, 10 own commits fed full release notes into the AI summary, made the page collapsible by default, and enforced action-based wording for issue and PR counts.
In sogeisetsu/opencode-go-model-picker, 6 own commits enforced the candidate menu, per-source chains, and a fail-closed comparing gate.
No pull requests, issues, reviews, or discussions were recorded.
当天共完成 80 次本人提交,另有 33 次由 github-actions[bot] 自动提交。
sogeisetsu/pixel-logo-toolkit 的 27 次本人提交加入文本自动折行、溢出保护、中英双语命令行、英文默认与中文版 README、40 张示例画廊,并修复韩语字体、右侧装饰留白及缺少 Pillow 时查询命令不可用的问题。
sogeisetsu/opencode-agent-sandbox 的 21 次本人提交收紧 plain-language 技能、整理知识文档,并在 AGENTS.md 中补充分支与分段提交流程。
sogeisetsu/opencode-skill-management 的 16 次本人提交新增 starlight-docs 技能骨架与模板,恢复手机端启动页控件,并避免代理或离线失败被误报为坏链。
sogeisetsu/sogeisetsu 的 10 次本人提交将完整 release notes 喂入 AI,页面默认收起,并统一 issue 与 PR 计数的动作数表述。
sogeisetsu/opencode-go-model-picker 的 6 次本人提交落实候选菜单、按来源链和失败即拦截的比较检查。
当天没有 pull request、issue、review 或讨论记录。
33 automated commits by @github-actions[bot] · not counted in the total33 次自动提交,由 @github-actions[bot] 发起 · 不计入总提交数
Text now adapts itself instead of being silently clipped, mixed CJK/Latin lines no longer collapse into a row of boxes, and the project finally has a reference manual.
Subtitle, footnote (-d) and eyebrow (-e) lines wrap to the text area when they are too wide, so long copy no longer runs off the canvas and gets cut.
-s repeated still means separate paragraphs.--no-wrap (CLI) or "layout": {"wrap": false} (JSONC) restores the old single-line behaviour.When the wrapped block is still taller than the available height, the subtitle and footnote font sizes step down proportionally, re-wrapping as they go, with a floor of 9px. Only if it still does not fit does pixellogo print a warning and continue:
pixellogo: warning: content is 810px tall but only 656px is available; font size is already at 9px, the rest will be clippedThe exit code stays 0, so batch runs are not interrupted. Measured ceilings on a clean canvas (title 3–4 characters, subtitle only):
| Canvas | Lines that still fit |
|---|---|
poster | ~30 |
square | ~20 |
card | ~16 |
slide | ~13 |
banner | ~8 |
--badge is a solid box, so it is not wrapped; it shrinks its font size instead when it would exceed the content width.
The bundled ArkPixel-zh-hans.ttf covers 18,648 of the 20,902 basic CJK ideographs (89.2%), and a few common characters are genuinely absent (「即」U+5373, 「然」U+7136, 「餐」U+9910). The old font picker gave up on the entire line when no single font covered it and fell back to the Latin font, which turned every CJK character on that line into a tofu box.
Now the line keeps the font that covers the most characters, and the characters that no font can draw are named on stderr:
pixellogo: warning: font ArkPixel-zh-hans.ttf has no glyph for 即; those characters will render as boxesBoth the warning and the font choice are also reported by --dry-run, so you can check before rendering. Pass --font-title / --font-sub / --font-body with any pixel TTF to cover a missing glyph.
docs/architecture.md](docs/architecture.md) — annotated three-level file tree, layer-by-layer module responsibilities, render data flow, and the constraints the architecture imposes (in Chinese).docs/cli-guide.md](docs/cli-guide.md) — a full command-line manual: guided quick start, every flag, JSONC configs and batch mode, scripting and exit codes, plus a dedicated chapter on limits (characters per line, line ceilings, glyph coverage) and a troubleshooting table (in Chinese).Both are linked from the table of contents and the new "Documentation" section of the English and Chinese READMEs.
v0.2.0 wheels accidentally shipped a retired font (ArkPixel12pxProportional.ttf), because setuptools packaged from a stale build/lib snapshot. Release builds now start from a clean build/, so the wheel contains exactly the four fonts listed in the docs.
--no-wrap.layout.wrap is a new config key; the JSON Schema has been updated to match."uppercase": "false" (a string) is now correctly treated as off instead of on.pipx install git+https://github.com/sogeisetsu/pixel-logo-toolkit.git
# or
pip install git+https://github.com/sogeisetsu/pixel-logo-toolkit.gitOr grab an asset below: pip install pixellogo-0.3.0-py3-none-any.whl, or unpack the portable zip and run pixellogo.cmd / ./pixellogo.sh with no install at all. Python 3.9+, Pillow for rendering.
160 unit tests pass on Python 3.12 locally, and CI covers 3.9 / 3.10 / 3.11 / 3.12.
Full changelog: https://github.com/sogeisetsu/pixel-logo-toolkit/compare/v0.2.0...v0.3.0
AI Text in subtitles, footnotes, and eyebrow lines now wraps automatically, with CJK broken per character and long Latin words hard-split; --no-wrap or "layout": {"wrap": false} restores single-line output. Overflowing blocks shrink proportionally down to a 9px floor, and missing glyphs now keep the best-covering font while naming unsupported characters on stderr and in --dry-run. The release adds docs/architecture.md and docs/cli-guide.md, fixes stale wheel packaging, and adds the layout.wrap configuration key.副标题、脚注和眉题文本现在会自动折行,CJK 按字符断行,超长拉丁词在必要时按字符硬切;可用 --no-wrap 或 "layout": {"wrap": false} 恢复单行行为。内容仍超高时会按比例缩小字号至 9px 下限,缺字时保留覆盖率最高的字体,并在 stderr 与 --dry-run 中指出无法渲染的字符。此次发布新增 docs/architecture.md 和 docs/cli-guide.md,修复 wheel 打包陈旧字体的问题,并加入 layout.wrap 配置键。
pixellogo 0.2.0 is the first tagged release: a command line tool that turns a title, a few subtitle lines and a footnote into real 8-bit / retro-terminal pixel art — PNG and SVG from the same geometry, five canvases, ten palettes, and mixed Latin / Chinese / Japanese / Korean text without missing glyphs.
Scene, so they match pixel for pixel. The SVG is self-contained and needs no font files.poster 1080×1440, card 1440×1080, banner 1280×640, slide 1920×1080, square 1080×1080, each with its own layout strategy.--list presets prints the ratio).--ui-lang.--dry-run snapshot of the merged result.All terminal output now exists in English and Simplified Chinese: the help page, --list modes|presets|fonts, fonts status, warnings, and every error message (including argparse's own argument errors).
LC_ALL → LC_MESSAGES → LANG → LANGUAGE → Windows UI language → English. C / POSIX count as English.--ui-lang auto|en|zh for a single run, or PIXELLOGO_UI_LANG as a persistent default. Precedence is flag > environment > locale.--ui-lang (CLI wording) is independent of --lang (glyph variant used for the image): --ui-lang en --lang ja gives an English interface with Japanese glyphs.README.md is now English and is the default entry point.README.zh-CN.md holds the Chinese version; the two are cross-linked.pyproject.toml metadata and the GitHub repository description are in English.--version, --help, --list and fonts still work, and rendering exits with code 2 plus an instruction to install it.From this release:
pipx install pixellogo-0.2.0-py3-none-any.whl
# or
pip install pixellogo-0.2.0-py3-none-any.whlFrom source at this tag:
pipx install git+https://github.com/sogeisetsu/pixel-logo-toolkit.git@v0.2.0| File | What it is |
|---|---|
pixellogo-0.2.0-py3-none-any.whl | Wheel. pip install this for a normal install; it adds the pixellogo command and bundles the five fonts, license texts and JSON schema. |
pixellogo-0.2.0.tar.gz | Source distribution (sdist), for packagers or pip install from source. |
pixellogo-0.2.0-portable.zip | No installation needed. Unpack and run pixellogo.cmd (Windows) or ./pixellogo.sh (macOS / Linux). Contains the package, fonts, licenses, both READMEs and RUNNING.txt. |
GitHub also generates "Source code (zip)" and "Source code (tar.gz)" archives for every release. Those are raw repository snapshots and contain no built package — use the assets above if you just want to install and run the tool.
# One cover image, both formats, into out/
pixellogo -t "REA" -s "REVERSE ENGINEER" -d "One CLI for agents"
# A 16:9 slide cover in the cyber palette with a grid texture
pixellogo -t "PIXEL" -m slide -p cyber --bg-pattern grid
# Inspect what is available
pixellogo --list modes
pixellogo --list presets
pixellogo fontsRunning pixellogo with no arguments prints the help page; --help, -h and pixellogo help are equivalent.
| Flag | Effect |
|---|---|
-t, --title | Main title (required) |
-s, --subtitle / -d, --desc | Subtitle and footnote lines, one flag per line |
-m, --mode | poster / card / banner / slide / square |
-p, --preset | One of the ten palettes |
--bg --fg --primary --accent --shadow-color | Single-color overrides |
-f, --format | png / svg / both (default both) |
-o, --out | Output file or directory |
-c, --config / --set | JSONC config and dot-path overrides |
--ui-lang | CLI output language: auto / en / zh |
--lang | Glyph variant: zh-hans / zh-hant / ja / ko |
--json / --dry-run / --open | Machine-readable output / merged config / open the result |
Exit codes: 0 success, 2 invalid arguments or configuration.
from pixellogo import render, make_image, make_scene, to_svg_text
paths = render(title="REA", mode="banner", preset="cyber", format="png", out="out/")
image = make_image(title="REA", mode="square", scale=1)
scene = make_scene(title="REA", mode="poster")
svg = to_svg_text(title="REA", mode="slide")Keyword names match the JSONC config keys exactly, so anything valid in a config file is valid here.
PYTHONPATH=src python -m unittest discover -s tests).AI This first tagged release introduces the pixellogo command for rendering pixel-art titles, subtitles, and footnotes to PNG and SVG across five canvases and ten palettes. It adds an English or Simplified Chinese interface selected through --ui-lang, English-first README.md with README.zh-CN.md, JSONC configuration, batch mode, and --dry-run. Query commands such as --version, --help, --list, and fonts still work without Pillow, while rendering exits with code 2 and installation guidance.首个带标签版本发布 pixellogo 命令,可将标题、副标题和脚注渲染为 PNG 与 SVG 像素图,支持五种画布和十套调色板。命令行界面提供英文与简体中文,通过 --ui-lang 选择,并新增英文默认的 README.md、README.zh-CN.md、JSONC 配置、批处理模式和 --dry-run。缺少 Pillow 时 --version、--help、--list 和 fonts 仍可使用,渲染则以退出码 2 提示安装。
3.0.1 closes the gap between what the README promised and what the code enforced. The short version: a Go model id can no longer be invented, chain length follows the source, Markdown agents can actually be written, the mode question is asked once, and check re-derives the numbers instead of trusting the file.
See CHANGELOG.md for the full list. The Chinese changelog is at zh/CHANGELOG-ZH.md.
Download opencode-go-model-picker-3.0.1-min.zip below. It is the minimal package, not the GitHub "source code" archive:
opencode-go-model-picker/SKILL.md, references/, scripts/ and LICENSE — no tests, no docs site, no assets/, no .git, no node_modulesExtract it into your OpenCode skills directory so the folder name matches the skill name:
unzip opencode-go-model-picker-3.0.1-min.zip -d ~/.config/opencode/skills/Expand-Archive opencode-go-model-picker-3.0.1-min.zip -DestinationPath "$env:USERPROFILE\.config\opencode\skills"Then ask OpenCode to check your agent models. The skill is read-only until you confirm a diff.
Requirements: Node.js 22+ (Node 18+ for everything except the local usage DB read), and OpenCode with Agent Skills support.
node --test tests/*.test.mjs — 29 pass, 0 failnode tools/check-docs.mjs — 0 errors, 0 warningsnode --check on every script, and node scripts/go.mjs run --offline --json against a real config (8 agents, 38 candidates, quality=seed)AI The release prevents invented Go model IDs, makes chain length follow each source, and asks the mode question once. The check command re-derives values instead of trusting the file, and the comparing gate now fails closed while enforcing the candidate menu and per-source chains. The minimal package opencode-go-model-picker-3.0.1-min.zip contains 18 files and requires Node.js 22+ for full local usage database reads.该版本禁止虚构 Go 模型 ID,链长度改为跟随各来源,模式问题只询问一次。check 命令改为重新推导数值而非信任文件,比较检查在失败时直接拦截,并落实候选菜单与按来源链要求。最小包 opencode-go-model-picker-3.0.1-min.zip 含 18 个文件,完整读取本地使用数据库需要 Node.js 22+。