Lyndbaum v4.35アップデート

adiary置き換え計画始動から連なる、Lyndbaum v4.34アップデートの続き。

今回はバージョンが0.1しか増えず、控えめなアップデートとなった。内容としては15ファイルの変更と131行の追加、178行の削除があった。追加行107行はGitHub ActionsのWorkflowファイルなので実質削除が本丸である。

今回の変更

変更内容はページキャッシュ機能の削除のみ。この機能はページが表示されたときのHTMLキャッシュをCMSのメモリに持ち、次回アクセス時にキャッシュヒットさせて返す仕組みだった。

しかし動的要素が返せないなどの問題があり、潜在不具合がありそうなので私は使っていなかった。そもそも使わなくても早いというのもある。

CGIモードでは使えない機能ということもあり、機能削減の一環として削除した。機能が少なければ少ないほど保守が容易だし、必要になれば復活させることもできるため削除した。

今後の機能開発予定

今回の対応は少なかったが、やりたいことはまだまだ多くあり、たぶんこれ以外にも日々湧いてくるのでやることは全く尽きていない。

あとがき

Claudeが出したベンチマークスクリプトでは劣化はないことになっていたが、本家の計測指標で使われていたApache Benchを使うと明確な劣化が認められたので、次はここを潰していきたいところだ。

参考までに計測結果を以下に残す。

計測結果

名前 計測コマンド 並列数 件数 失敗 req/s 平均応答(ms) Connect平均 TTFB平均 50% 95% 99% 最大
adiary v3.52b ab -n 2000 -c 100 -l 100 2000 0 1184.12 84.451 31 13 81 95 127 139
adiary v3.52b ab -n 100 -c 1 -l 1 100 0 294.8 3.392 1 2 3 4 4 4
Lyndbaum v4.35 ab -n 2000 -c 100 -l 100 2000 0 1091.55 91.613 18 9 93 105 143 165
Lyndbaum v4.35 ab -n 100 -c 1 -l 1 100 0 225.67 4.431 1 3 4 5 5 5

計測したマシン

構成 製品 備考
OS Ubuntu 26.04.1 LTS
CPU AMD Ryzen 5 8500G 6C12T 3.5GHz TDP65W
MEM Crucial CP2K16G60C36U5W DDR5-6000 16GB * 2
Storage Crucial P1 CT500P1SSD8JP NVMe SSD 500GB

また、内容はまだ確認できていないがPageSpeed Insightsの結果も作ったので後で見れるよう残しておく。

Lyndbaum v4.34アップデート

adiary置き換え計画始動から連なる、Lyndbaum v4.26アップデートの続き。

わずか二日でバージョンが0.8も増えた。直近で散々書いてきた、やることがなくなってきたとは一体何だったのか…。

今回は機能削除とセキュリティ対応、デグレード対応を主に行い、182ファイルの変更と4,659行の追加、4,585行の削除があった。

セキュリティ対応

ディレクトリトラバーサルができた問題を修正

特定の条件で..が指定されたときにCGIのルートフォルダなど本来アクセス出来てはならない場所を操作できる問題を修正した。

ソケットが777で保存される問題を修正

660にし、ユーザーとグループしか見れないようにした。

HTTPSでアクセスされたとき、CookieにSecure属性を付与するように修正

何も属性がついてなかったため。

セッションIDが予測可能だった問題を修正

rand()からPOSIXの乱数器に変更。

有害なタグを使えないように修正

管理者自身が自ら脆弱性を埋め込む可能性があるのを回避した。

これによってよく知らないスクリプトをコピペで記事などに埋め込んだ時に管理者が自滅するのを防止する。

lyndbaum.httpd.plを削除

nginxやApacheにさえ無限の脆弱性があるのにadiaryのhttpdに脆弱性がないはずがないと思って検査したところ無数の脆弱性が出てきたので削除した。

デバッグ用に残すことも検討したが、デバッグ時に脆弱性や不具合にぶつかったときに、その由来がhttpdか本体か区別できないため残さないことにした。

プライベートモードの削除

プライベートモードを突破できる脆弱性がいくつかあったため機能削除した。

プライベートにする場合、サーバー側で認証をかければ済む。

複数ユーザー機能の削除

管理者アカウントのみに限定し、ユーザー管理機能を丸ごと葬った。

これにより編集権限を持つユーザーが管理者やほかの編集ユーザーに攻撃可能になる脆弱性を作りこめてしまう問題など、アカウント機能があることで起こりえる問題が恒久的に消えた。

HTTPクライアントのHTTPS通信で証明書を検証するようにした

別にやらなくてもいいのだがやるようにした。

半年くらい前にQiitaが証明書違反になっているのを見かけたが、こういう場合は正規の通信先でもこけるようになるためOGP取得処理とかがこける。

ファイル名の変更で既存のファイルを上書きしないようにした

リネーム前に存在チェックをかけているため、これが起きることは現実的にはないのだが、原理上起きないようにした。

HTTPS通信でタイムアウトするようにした

今まではタイムアウトしなかったため相手から切られるか、OOMするまで放置されていた。

アップロードしたファイルをリネームすることで本来上げられないファイル拡張子を上げることができた

アップロード可能な拡張子を制限しているのにアップロード後にリネームすることでこの制約を抜けることができた。

これは次のケースで問題が起きることがある。ただし現実的にこれらが起きることはまずない。何故なら管理者の自爆操作だからだ。

  • 悪意のあるスクリプトが仕込まれたHTMLを.txtとしてアップロードし、その後.htmlに書き換えて開くことで同一オリジン攻撃が可能になり、管理権限を乗っ取れる
  • 悪意のあるスクリプトが仕込まれたPHPを.txtとしてアップロードし、その後.phpに書き換えて開くことで任意コードが実行可能になる

書いていて思ったこととして、アップロードできる拡張子の制限という機能そのものをなくしたほうがいい気がしてきた。こんなことをしても無駄な処理とテストが増えるだけなので。

HTTPクライアントに制限をつけた

内部向けのアクセスができないようにし、巨大なファイルをダウンロードしようとしたら止めるようにした。

間違えて内部にいるPrometheusのような管理ツールのOGPを記事に展開しようとしてもできなくなった。

IPv4向けの対応であり、v6向けには特に何もしていない。

v6にして行うと自宅サーバーで自分がホストする別のサービスに繋げなくなるため、v6に対して行う予定は今のところない。

SomeOrigin攻撃対策をした

レンタルサーバーでは*.sakura.ne.jpや*.x0.toなど、サブドメインが異なる他人が多くいるため、HTTPヘッダーを検証し、同一オリジン以外からのCSRF攻撃が起きないようにした、

検索操作時に任意コード実行の脆弱性があったのを修正

このブログには付けていないが、特定の検索機能で任意コードが実行可能だったので対応した。

check_user_dataの型チェックが常に偽になるのを修正

動作的には特に問題がなかったがバグではあるため直した。

ログインの失敗を同じIPからの回数でも数えるようにした

IDに対して行っていると管理者のIDに対してログイン失敗を繰り返すことで管理者を締め出せるため、IPでも見るようにした。

その他

  • HTTP(S)通信で無限リダイレクトしないようにした
  • メールの送信でタイムアウトするようにした
  • wwwのプロセスのumaskを0から002にする
  • indexを一時ファイルに書いてからrenameで置き換え、ロックの後に置き換わっていないか確かめる
  • 空のindexを作り直し、ファイルの書き込みのエラーを返す
  • pkeyを指定したinsertのシリアル値を、indexと一緒に保存する
  • ソケットのパーミッションを変更
  • その他セキュリティ修正をいくつか追加

不具合対応

ファイル名によってアップロード後の操作ができない問題を修正

ファイル操作によってファイル名の検査処理が異なりエラーになっていたのを直した。

その他

  • JSONパーサーが正しくJSONをパース出来ていなかった問題の修正
  • 途中で切れたテンプレートのキャッシュでページがエラーのままになっていたのを修正
  • テキストDBの検索の値を埋め込んだ関数を際限なく保持していたので、1000個を超えたら捨てるようにした
    • OOMが起きる可能性があった
  • ページキャッシュ機能で同じ秒に同じ大きさで書き直されたファイルの古い内容を出し続けることがあったのを修正
    • 現実問題ほぼほぼ起きないと思うが一応対応した

改善

メインカラムが<div />だったのを<main />に変更

Webアクセシビリティ対応。

自動テストの高速化

11ファイル、1,475件、108秒を分割し、テストを並行で走行するようにした。結果、14ファイル、1,476件、26秒に短縮した。1件増えてるのは分割したせい。

機能削除の繰り返しにより最新版では22ファイル、1,290件、20秒にまで減っている。

env.cgiとconf.cgiを統一し、設定を全体的に見直した

分けている意味が分からないため統一した。

また設定の持ち方がカオスだったのを見直し、大半の設定を画面からできるようにし、致命的なケース以外では設定ファイルをいじくらなくていいようにした。

アイキャッチの自動設定機能を廃止

アイキャッチを編集画面で選んだ画像だけにし、自動設定機能を外した。

これはフロントエンドの表示とサーバーサイド側の処理で判定が異なり、画面上の表示と実際の処理が異なっていたほか、コードフェンスの中に画像のパスがあると、それを取り込んでしまうなど問題が色々あって対応が面倒だったのでやめた。

ユーザーが選べば解決するなら凝った実装を排除したほうがいい。ユーザーの手間が3秒増える程度。どうせ選びたいときは選ぶわけだし。

ページトップのOGPを無条件で出すようにした

v0.5.0でOGPの出力条件を削除し、UserAgentに依存させないようにしたの対応漏れ。

ついでにTwitter向けのOGPのサイズをデフォルト画像とそれ以外で可変にする対応を入れているが、私はTwitterをしていないため動作確認してない。

v4.29/v4.33より古いデータからのアップデートサポートを切り捨て

後方互換性維持のために残していた負債実装をすべて削除した。

adiary v3.52devからアップデートする場合、一度v4.29のタグをチェックアウトし、バージョンアップしたのち、次にv4.33のタグをチェックアウトしアップデートし、その後v4.34のタグをチェックアウトしてアップデートすることでアップデート可能。

v4.34時点のタグをチェックアウトするとアップデート処理が消滅しているので、段階的に作業する必要がある。

マルチサイト削除対応で残った残骸を除去

この対応によりv4.29/v4.33以前との互換性が完全に消滅した。

あとがき

今回のコードの変更量はバージョンのわりに少ないがClaudeを使って何回も多角的に調査させたため、木曜の今時点でMax x5プランで28%も使ってしまった。

Fable 5.1も使ってみたが的外れな指摘が多く役に立たず、役に立った指摘はOpus 5.5からのものだった。また、現時点でChatGPTの契約がまだ生きているのでGPT-6.1 Solにも見させているが、GPT-6.1 Solの指摘はClaudeとは全く違う視点から来ているのにクロスチェックに便利だと感じた。但し指摘が的外れであることも少なくなく、有用性としては補助程度に留まった。

ChatGPTの功績を残したのでGitHubの貢献者にCodexを生やすことができた。Codexはv4.27のHTTP通信のタイムアウトをスレッドごとに制御するを担当した。なお私はCodexをほとんど信頼してないのでこれしかやらせていない。

しかしまぁここ一ヶ月のコミットは本当にすごいことになっているのでコーディングエージェントの凄さを痛感する。

前も書いた気がするが去年まではLLMはハルシネーションの塊だと思っていたし、半年前でもまだ私のほうが上だと思っていたのに、もはや太刀打ちできない。私がやっているのはPRを手書きし、この記事を書くことでコードレビューを多少なりとも行い、気になった部分を見たり、わからなければLLMに確認する程度だ。

GitHubの草も珍しく列が繋がりそうになった。

縦に繋がったことは過去に一度しかなく、2021年初頭の話なので、もし繋がったら五年半ぶりの快挙になる。

Windows 11を26H2にアップデートしたらスリープやシャットダウンから復帰できない問題が出た

Windows UpdateでWindows 11を25H2から26H2にアップデートしたらスリープから復帰しなくなる問題が出たので対処した話。シャットダウンからも復帰できないケースがあった。

ある程度対処して幾らかマシにはなったものの完全には直せなかった。

起きていたことと、一時的な解決方法

先に一時的な解決だけ書いておくと主電源を切り、入れ直せば復帰可能だった。

PCの電源ボタンを押下しスリープすると、高確率で復帰できなくなっていた

高確率でとあるが、6回中4回復帰できなかった。復帰できた2回はスリープ後、即座に電源ボタンを押したときであり、それ以外は復帰できなかった。

電源ボタン以外にもキーボードやマウス、NIC(WoL)を通じたスリープ復帰が出来るようにデバイスマネージャーで設定しているが、いずれの手段でも復帰できなかった。

この時の特徴として、普段スリープ時であれば電源ボタンのLEDが点滅しているが、点滅していなかった。また、電源ボタン押下時には一切なにも起こらず、一瞬だけファンが回るような挙動もなかった。

主電源を一度切って、入れ直すと起動自体は出来たが、OS起動中にコンセントを抜いたのと同じ扱いになるため、再起動後はクラッシュから復帰した状態になった。

スタートメニューからスリープに入る操作方法では試していない。

スタートメニューからシャットダウンすると、ブートできなくなっていた

これは一回しか試していないので、一回しか起きていないが、スタートメニューからシャットダウンを選びPCをシャットダウンすると、電源ボタンを押しても起動させることが出来なかった。

この時は一瞬だけファンが回り、その後停止した。何度電源ボタンを押してもブートしなかったが、スリープ時同様に一度主電源を落として入れ直すことでブートさせることができた。

発生時の条件

Windowsのバージョン

Windows 11 Pro 26H2 (OSビルド 26300.9711)

hypervisorlaunchtype

AUTO

電源オプションの電源ボタンの動作設定

電源とスリープボタンの設定

設定項目 設定値
電源ボタンを押したときの動作 スリープ
スリープボタンを押したときの動作 何もしない

シャットダウン設定

設定項目 設定値
高速スタートアップを有効にする OFF
スリープ ON
休止状態 OFF
ロック ON

ある程度解消した方法

コマンドプロンプトを管理者権限で起動し、以下のコマンドを流す。

bcdedit /set hypervisorlaunchtype off

戻したいときは同様に以下を流せば戻る。

bcdedit /set hypervisorlaunchtype auto

特に効果がなかったこと

使用しているマザーボード(ASRock Z890 Pro RS)のBIOSバージョンを1.39から3.40まで上げてみたが、特に効果はなかった。

あとがき

10/23にWindows Updateし、10/24に対策したが、たまに再発している。

hypervisorlaunchtypeをautoにするだけで容易に再現するため、これが原因の一つであることは間違いなさそうだが、他にも要因がありそうだ。

hypervisorlaunchtypeをoffにしたことによる影響は不明だが、BCDEditのヘルプによると設定値自体はHyper-Vのデバッグ用にあるらしい。

25H2に戻してもhypervisorlaunchtype: autoであれば起きていたため、もしかすると26H2になったときに、この設定が切り替わったのかもしれない。ただ25H2に戻して、hypervisorlaunchtypeをoffにしても偶に再現したため、26H2で何かの設定か何かが変わったままになっているのかも知れない。

或いは偶々このタイミングでハードウェアが故障したのか…。

さくらのレンタルサーバーでAVIFを作れるようにする

さくらのレンタルサーバーでもAVIFが作れたらいいよねというのでやってみた。

前提

  • シェルにzshを使っている。さくらのレンタルサーバーのデフォルトシェルはcshなので注意されたし。
  • ~/binにパスが通っている

やり方

  1. アセンブラのビルド

    cd ~
    wget https://www.nasm.us/pub/nasm/releasebuilds/2.16.03/nasm-2.16.03.tar.xz
    tar xf nasm-2.16.03.tar.xz
    cd nasm-2.16.03
    ./configure --prefix=$HOME
    gmake -j4 && gmake install
    
    nasm -v
    
  2. libavifのビルドとゴミ掃除

    cd ~
    git clone -b v1.2.1 https://github.com/AOMediaCodec/libavif.git
    sed -i '' 's|^static_assert(sizeof(off_t) == sizeof(int64_t), "");|/* & */|' libavif/src/io.c
    cmake -S libavif -B libavif/build -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF \
    -DAVIF_CODEC_AOM=LOCAL -DAVIF_LIBYUV=LOCAL -DAVIF_LIBSHARPYUV=LOCAL \
    -DAVIF_JPEG=LOCAL -DAVIF_ZLIBPNG=LOCAL -DAVIF_BUILD_APPS=ON
    cmake --build libavif/build --parallel 1
    cp ~/libavif/build/avifenc bin/
    rm -Rf libavif nasm-2.16.03 nasm-2.16.03.tar.xz
    
  3. avifを作る
    avifenc -q 65 -y 420 -s 6 --ignore-xmp src.jpeg out.avif
    

あとがき

これを活用すればさくらのレンタルサーバーでもavifを作れるようになるので、任意のCMSから蹴ればサムネイルの軽量化とかができるかもしれない。注意点としてコマンドライン呼び出しになるため任意コマンドが実行されないように注意する必要はある。

ビルドはnice不要で、avifの生成についても4000x3000のJPEGをAVIFにするのはniceなしで行けた。

レンタルサーバーにないバイナリをソースコードからビルドして使うという意味で、本記事はさくらのレンタルサーバーにNode.jsをインストールするの親戚記事である。

Lyndbaum v4.26アップデート

adiary置き換え計画始動から連なる、Lyndbaum v4.22アップデートの続き。これまで毎日のように更新していた気がするが二日も開いてしまった。それだけやることがなくなってきたということかもしれない。

今回は前回から0.4バージョン増え、52ファイルの変更と3,004行の追加、1,219行の削除があり、機能追加中心のアップデートだった。

バグ修正

基本設定→詳細設定のコメント設定で画面幅を狭めたときに中身がはみ出る不具合の修正

恒例のレスポンシブ画面崩れ。こういうのは見つけ次第直している。

GIFのサムネイル処理が1コマ目からサムネイルを作るのに全コマ読んでいた不具合を修正

1コマ目だけ読めばいいのに全コマ読み込むため、巨大なGIFを読み込んだ時にImageMagickのメモリ制限に引っかかってサムネイルが作られない問題があった。

なんであろうと1コマ目だけ読むことで回避するようにした。たぶん本家にもある不具合。

機能追加・変更

パスワード仕様の変更

パスワードに設定できる文字列の最低長を標準で8文字以上にし、ハッシュ化方式をbcryptに変更した。元々は4文字以上とSHA512だった。

マイグレーション処理の厄介さを減らす関係で、この変更だけでv4.23を構成しており、バージョン稼ぎになっている。

セキュリティ向上が目的だが、桁数を増やした以外はハッシュが漏洩しない限り影響ないし、漏洩した時点で割と終わってるので、ハッシュアルゴリズムを変えたことに深い意味はない。

この方式はLyndbaum0にあった実装であるため、Lyndbaum0機能バックポートの一環である。

サイト内の添付画像のテキストリンクをビューワーで開けるようにした

LightboxからFancyboxに変更して以来、長らくテキストリンクをポップアップするモーダル的なビューワで見ることができていなかったが、これをできるようにした。

理由としてサイト内のテキストリンクをLythumbで開けるようにしたで必要な機能だったため追加した。

テキスト画像リンク記法の追加

[image:T:...]記法を追加し、[image:T:posts/2026/11/:src.jpeg:JPEG元画像]のように書くことでテキストから添付画像へのリンクが作れるようにした。

この対応は前述の添付画像のテキストリンクをビューワーで開けるようにした対応に紐づく内容で、この構文で書くとJSのハンドラに登録されるようにしている。

またこの構文があることで添付ファイルに関連する変更があったときに出力するHTMLを一元的に変更できるのもある。

かつては[JPEG元画像](pub/attachments/posts/2026/11/src.jpeg)のように書いていたのだが、こういう書き方にしてしまうと添付ファイルかどうかを区別する処理が必要になったりして面倒で、今回のビューワー対応も載せづらいため、過去の記法はすべてテキスト画像リンク記法に置き換えた[1]。

RSSにサイト画像を載せるようにした

SSPにRSSを食わせていてMastodonのRSSを突っ込むとアイコンが出ることに気が付いたので、RSSにサイトの画像を載せた。

SSP上でLycologのRSS画像を表示しているところ

なんと、これによってSSPにうちのブログのRSSを食わせると画像が出るようになった。素晴らしい!

これは元々ヘッドラインセンサにLyndbaumを読ませようと試行錯誤していた時に気づいたのでやった対応だ。SSPはRSSを標準で読めるためヘッドラインセンサを作る必要はなかった。

またこの対応をしている中で、SSPが特定の<channel><link>を持つRSSのインストールに失敗する問題を発見したため報告したところ僅か半日で対応していただけた。この問題はインストールに失敗するだけで手組で設定ファイルを書けば読ませることはできた。

JPEG画像アップロード時に拡張XMP領域の一部を落とすようにした

画像フォーマット別のベンチマークをしてみたで言及している話だが、Androidスマホのカメラが吐いたJPEGの過半数は再編集用のデータでブログに表示するだけなら一切不要なのでアップロード時に落とすようにした。

この対応によってストレージの増加速度を抑えられ、閲覧者にも無駄な通信を発生させずに済むようになった。既にアップロード済みのJPEGからゴミを除去するツールも作ったのでストレージを開けることもできる。試したら700MBくらい空いた。

AVIFでサムネイルを作成する機能を追加

サムネイルのAVIF対応はv4.20で断念していたが、再検討し乗せることにした。

このために画像フォーマット別のベンチマークを行っている。またAVIFをより低負荷・低用量かつ画質維持させるための追加のベンチマークを行い、そのうえで設定値を決めて実装した。

過去のサムネイルをすべて再生成するツールも同時に作っている。AVIFとJPEGのサムネイルが混在している場合、AVIF>JPEGの順で採用するようにしてあるため、画像のサムネイルがAVIFのみ、AVIFとJPEG、JPEGのみでもサムネイルを出せるようにしている。これによりサムネイルの状態が中途半端になっていても表示できるように対応できている。

この対応でサムネイルの容量が従来比で35%ほど減っており、画面ロード時の通信容量削減に貢献するようになったと考えている。また、PNGファイルのサムネイルについては従前より画質が大幅に向上している。これはJPEGノイズがなくなったためである。その代わり若干のっぺりしている。私はJPEGノイズがサムネイルに出るのがちょっとした不満だったので、これは改善だといえる。

今回の対応でサムネイルファイルの総容量がどれだけ減ったか見たかったのだが、サムネイルサイズが混在しており、今回のバッチ変換によって全部同一サイズに揃ったため、増減については比較できなかった。それでも一応結果だけ書いておくと74.5MBが71.8MBに減っている。240pxが6割ほどあり、これが320pxに増えている。しかしそれでも総容量が減っているというのはすごいと思う。AVIFさまさまである。

アイキャッチ画像を未設定にできるようにした

現在の実装では記事の中に画像があれば、その中で最初の画像が自動的にアイキャッチにされるのだが、コードフェンスやコードスパンの中に紛れていても設定される状態だった。

これは不具合に近い挙動だが、そうでなくとも不本意にアイキャッチが設定されることもあると思うので、編集画面にアイキャッチを未設定にする機能を足した。

取り敢えずアイキャッチ自動設定の振る舞いについてはバグとして起票しておいたが、今のところ手抜き実装が起因で、実装時から分かっていたので既知の不具合ではある。

機能削除

Windowsサポートの廃止

パスワード仕様を変更した関係で、Windowsのサポートが出来なくなったため切り捨てた。

WindowsとLinuxには差がありすぎてサポートしたくないのもあった。Node.jsやPHPみたいに言語側に便利なラッパーがあればまだいいが、Perlにそんなものはないので…。

それに今はWindowsでもWSLを使えばLinuxが動かせるため、LyndbaumがネイティブでWindows対応をする必要はないと考えている。

Markdownの参照形式のリンク記法を削除

[文字][id]形式の記法を削除した。理由は私が使っていないこと、使っている文章をほとんど見たことがないこと、脚注や同じリンクを何度も書けばいいこと、ブログの記事に同じリンクが何度も出てくることが考えづらいことなど、要するに必要性が不明なため。

Markdownの文法をすべてサポートしてたら大変なので余計なものは気づいたら消していく方針。

2つ目のRSS配信を削除

adiaryには「2つ目のRSS配信」という機能があり、メインのRSSと別に任意のタグのRSSを出す機能があったが、これを削除した。

特定カテゴリのRSSを出したいケースが分からないし、使っているサイトを見たことがないし、私も使っていないため。

あとがき

v4.25になり、優先度高めのやりたいことリストはすべて消化しきれたのでしばらくは落ち着いていられそうだ(ホンマか?)

少なくともadiaryに持っていた不満の多くを解消することができ、非常に使い勝手のいいCMSにできたと思う。これからも何かあればちょいちょい直していきたいし、今後のやりたいことリストはGitHubリポジトリのIssueに挙げておいたので、またそのうち、いつかやりたい。いつやるかは不明だが…w

そういえばマイナーバージョンが2桁しかないため、99まで行くと次はメジャーを上げないといけないことに気が付いたが、まぁその時までには何とかなるだろう。v5.00までに配布できるレベルまで引き上げるのが目標だ。まぁ4.8001みたいにすることはできるはずなので、最悪桁を増やせば問題ないだろう。

Claudeの使用量も火曜の終わり時点でMax x5が12%なので、Pro換算60%ということで落ち着いてきたように思う。次回の更新ではProに戻しても大丈夫だろう、きっと。


  1. マイグレーションとかは作ってないのでgrepで引いて手動で書き換えている ↩