03/29 15:15 2026
03/29 15:39 2026
東京は暑いですね!
2月につづき3月の振り返りをやっていきます!
3月は2本記事を書いた。
1本目は自分のClaude Codeの足回りについて書いた。AI時代は、自分専用のツールを量産できるいい時代だということを伝えたかった。
隙間時間の趣味開発は、先のスライドにあるagentoastとchathist。新たに3月末slacliというのを作った。簡単に言えばAgent likeでマルチワークスペースに対応したSlack CLI。後から気づいたがこれはSlackのClaudeアプリが入っている人にとってはほぼ不要(Claudeのデスクトップでコネクタ連携するとClaude Codeでも適用されるため😳)で、@Claudeから送信クレジットが付与されるのが気持ち悪いとか、Slack Appの権限でReadが強めなのが気になる人以外は不要かもしれない。
CLIとAgent Skillsを同梱して配布する足回りのイメージができた(以下のブログのインスパイアですが...)
デスクトップアプリの検証の難しさを感じている。TauriはWebViewなのでplaywrightなどブラウザのエコシステムでチェックできる項目もあるが、macOSのトレイ座標の位置関係などはOSの設定だし限界がある。
実際に遭遇したクラッシュの例を挙げると、あるアプリが全画面になった状態でグローバルショートカットからagentoastを起動するとクラッシュするというものがあった。デバッグログを仕込んで調べたところ、以下のことがわかった。
monitor[0] pos=(0, 0) size=6016x3384
cursor phys=(4897, 691) → monitor match=true
tray icon phys=(5068, -136) → monitor match=false
agentoastはメニューバーのトレイアイコン直下にパネルを表示するため、tray.rect()でトレイアイコンの座標を取得し、その座標がどのモニターに属するかをavailable_monitors()で探す。ところが全画面モードではmacOSがメニューバーを画面上端から上方向にスライドアウトして隠すため、トレイアイコンのY座標が-136という画面外の値になっていた。モニター範囲は(0, 0)から始まるのでy = -136はどのモニターにもヒットせず、expect()でパニック→クラッシュしていた。つまりメニューバーが隠れると、トレイアイコンが物理的に画面外に追い出されるということだった。
こうしたデスクトップアプリ特有のテストを自動化できないかと思い、ClaudeのCoworkのdispatchで動作検証を回せないか試してみた。ただ現状は1回の検証サイクルが遅すぎて実用には程遠い。体感あと50倍速くなれば寝ている間に回しておける、100倍速くなれば開発中のイテレーションに組み込めるかなという感じ。
将来のマイルストーンとしては以下があるかなーと思っている
2本目はこのshuntaka.devの話。1月に移行してからちょいちょい500エラーが観測されていた。発生頻度が稀だったのですがちょい致命的だったのでいい加減原因を調べたところ、Aurora DSQLの認証トークン起因だった。Lambdaのフリーズ状態に想いを馳せるのがLWAだったせいか抜け落ちていた。
実際の対応は以下で、それ以降同じ問題は発生していない。
3月はネイティブアプリ開発に着手しようと思っていたんですが、時間が取れず。。iPhone 17 Proも買ったので、4月はApple Intelligenceで何か作る!その過程でのブログはMUSTで書きます!
明日から社会人10年生なので世の中にSome(value)を返せるようがんばります。
This site uses Google Analytics.