Skip to content

fix(config): drop the codex tab from the default configuration - #16

Merged
smileygames merged 1 commit into
mainfrom
issue-13-default-config
Aug 21, 2026
Merged

fix(config): drop the codex tab from the default configuration#16
smileygames merged 1 commit into
mainfrom
issue-13-default-config

Conversation

@smileygames

@smileygames smileygames commented Aug 21, 2026

Copy link
Copy Markdown
Member

Closes #13

変更内容

  • 既定設定を Claude Code 1 タブに変更(Codex タブを削除)
  • left/right ペイン形式からの legacy migration を削除
  • migration からのみ呼ばれていた cli_kind_from_command を削除

既定タブ

部屋は Claude 側にしか存在が確認されていない channel capability の上に成り立っており、docs/0-requirements.md はその未検証前提を消すために単一ベンダー構成を選んでいる。既定で Codex タブを出すと、部屋へ参加できないセッションを既定で提示することになる。

legacy migration の扱い(#13 完了条件)

削除を選んだ。到達不能なため。

  • liplus-chat は一度もリリースされていない(release 0 件、tag 0 件)。
  • app data ディレクトリは identifier で決まる。liplus-chat は org.liplus-project.liplus-chat、liplus-desktop は org.liplus-project.liplus-desktop
  • したがって liplus-desktop の旧 left/right 形式 config がこのアプリの load_config に届く経路が存在しない。

残しても migration が効いているかを確かめる手段がない分岐であり、load_config は新形式のパース失敗をそのままエラーとして返す形にした。判断の理由はコード側のコメントにも残している。

影響範囲

初回起動時の既定タブが 2 件から 1 件になる。保存済み config.json は読み込み経路が変わらないため影響を受けない(そもそも保存済み config を持つユーザーは存在しない)。

別途観測したもの

TabConfig.cli_kind は、legacy migration の削除により "claude" の代入以外に書き手も読み手も無くなった。フロントエンドの型定義には残っているが参照されていない。本 PR の目的から外れるため #17 として分離した。

release type

patch — 既定値の変更と到達不能コードの削除。仕様との矛盾の解消であり、構造変更としては小さい。

既定設定が Claude Code と Codex の 2 タブを持っており、docs/0-requirements.md
の単一ベンダー構成という制約と矛盾していた。既定を Claude Code 1 タブにした。

部屋は Claude 側にしか存在が確認されていない channel capability の上に成り
立っており、仕様はその未検証前提を消すために単一ベンダーを選んでいる。既定で
Codex タブを出すと、部屋へ参加できないセッションを既定で提示することになる。

あわせて left/right ペイン形式からの legacy migration を削除した。liplus-chat
は一度もリリースされておらず、app data ディレクトリは自身の identifier
(org.liplus-project.liplus-chat) で決まるため、liplus-desktop の旧形式 config
がこのアプリに届く経路が存在しない。到達不能な分岐であり、残しても migration
が効いているかを確かめる手段がない。

これに伴い cli_kind_from_command も削除した。legacy migration からのみ呼ばれて
いたため。

#13
@smileygames smileygames linked an issue Aug 21, 2026 that may be closed by this pull request

@smileygames smileygames left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

AI self-review (execution_mode = auto)

受け入れ条件の照合(issue #13 完了条件)

条件 結果 根拠
既定設定が単一ベンダー構成と矛盾しない pass AppConfig::default() は Claude Code 1 タブ。リポジトリ全体に codex の文字列参照なし(grep 確認)
legacy migration の扱いが決まっている pass 削除。理由(未リリース + identifier 差による到達不能)を PR 本文とコードコメントに記載

制約の照合

  • 既存ユーザーの設定を壊さない: pass。保存済み config.json の読み込み経路(新形式のパース)は変更していない。既定値の変更であり保存済み設定の書き換えではない。加えて release 0 件 / tag 0 件のため、保存済み config を持つユーザーは存在しない。

削除判断の根拠

rules/model/subtractive-structural-beauty.md の Artifact deletion calibration に照らすと、source / docs(git 管理下)は break scope = wide / recovery cost = low(instant revert)で caution = medium。到達不能であることを identifier の実値で確認した上での削除であり、「よく分からないので残す」の preserve-by-default ではない。

到達不能の根拠は推測ではなく実測。

  • gh release list / git tag ともに 0 件
  • src-tauri/tauri.conf.json = org.liplus-project.liplus-chat
  • ../liplus-desktop/src-tauri/tauri.conf.json = org.liplus-project.liplus-desktop

検証

  • cargo check --target x86_64-pc-windows-gnu(ローカル / CI とも pass)
  • CI の全ステップ pass(npm run build / sidecar:check / sidecar:test / cargo test 8 pass)

scope deviation

なし。TabConfig.cli_kind が本 PR の結果として読み手も書き手も無い状態になったことを実装中に検出したが、削除は保存済みスキーマの変更を伴い #13 の目的から外れるため #17 として分離した(merge 前に filing 済み)。

次の期待

execution_mode = auto のため人間レビューゲートなし。CI green(CI pass / check pass 3m58s)。self-review pass により squash merge へ進む。

@smileygames
smileygames merged commit 1b0f871 into main Aug 21, 2026
2 checks passed
@smileygames
smileygames deleted the issue-13-default-config branch August 21, 2026 00:37
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.

fix(config): drop the codex tab from the default configuration

1 participant