Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[TUI] One unreadable profile file blinds kept_key(): strata launch silently mints a NEW API key

オープン 初心者向け
#4,396 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 3 日以内に返信

@Nyarlathoteppppp がすでに取り組んでいます。

2026年10月29日 から。

  • #4563 @Nyarlathoteppppp による — オープン

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
72/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
python

調査の方向性

strata_cli/launch/access.py (342行付近) の kept_key() から始めてください。ここではループが row["source_config"] を読み取り、352行付近の catch-all が None を返しています。strata_cli/profiles.py (178-179行付近) の profiles.list_profiles() が、そのキーを持たないエラー行をどのように作成しているかを確認し、updater.py:718 の防御的な .get("source_config") と比較してください。破損したプロファイルファイルが影響するのは自身の行だけで、別のプロファイルが api_key を持っている場合には既存のキーが引き続き返されることが完了の条件です。

索引モデルが issue の本文から書いたものです。

説明

Problem: kept_key() (strata_cli/launch/access.py:342) indexes row["source_config"] for every launch profile, but profiles.list_profiles() returns {"id", "error"} rows — without that key — for every profile file that fails to load (strata_cli/profiles.py:178-179). The KeyError is swallowed by the catch-all at access.py:352 (except Exception: return None), so the WHOLE key lookup dies, not just the bad row. apply_defaults then does s.api_key = kept or access.new_key() — exactly what the function's own docstring exists to prevent ("the key an earlier launch already made, so a restart does not invalidate the apps set up with it"). Note updater.py:718 reads the same rows defensively with .get("source_config") — this loop does not.

Environment:
Strata Version: 0.2.7 (source checkout at tag v0.2.7, commit 5e8a4cca; the file discussed is byte-identical to the tag)
OS: Linux x86-64
Runtime: Python 3.14
Reported from the Strata-Mnemosyne fork's merged tree; the offending code is upstream's own.

Reproduce (measured at function level): three launch profiles, one damaged (echo 'NOT JSON' > ~/.config/strata/profiles/launch-bad.json), another carrying api_key in its run config: kept_key() returned None; after deleting only the damaged file it returned the stored key. End-to-end: strata launch --preset <existing> --access lan --no-tui would mint a fresh key (not run here: it would download; the branch is measured).

Expected: a damaged or foreign profile costs at most its own row; the existing key is kept.
Actual: the lookup dies, a new key is minted, and every app configured with the old key gets 401 until someone re-runs strata launch --show-key.

Reproduction status: measured at function level; end-to-end untested.

主要言語
C++
スター
11.6k
フォーク
1k
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Niko1221/Strata のほかの issue

Niko1221/Strata の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。