Descriptor round-trip drops `starter` on explicit composition commands
メンテナーはふだん 1 日以内に返信
関連するプルリクエストがすでにマージされています。
- #602 @elliotBraem による — マージ済み
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 55/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
- 領域
- tooling
調査の方向性
Start with src/descriptor/resolve.ts, comparing toConfigInput with configInputToDescriptor and tracing how resolveApp uses the conversion. Then read src/utils/save-config.ts and the plugin command flow in src/services/plugins-admin.ts; the acceptance criteria require a round trip that preserves starter during saves while resolved and published configs omit it. Add the integration test for a child with starter surviving bos plugin add.
索引モデルが issue の本文から書いたものです。
説明
Context
The descriptor round-trip (src/descriptor/resolve.ts) is lossless for most authored fields, but toConfigInput's pick list (resolve.ts:82-95) omits starter while its inverse configInputToDescriptor (resolve.ts:248-264) includes it. Any code path that reads the authored config, mutates it, and writes it back through saveBosConfig (src/utils/save-config.ts:13-33) re-serializes the descriptor — and the starter field (authoring-only, per schema.ts:103-106) is silently dropped.
Who is affected
The upgrade train no longer re-serializes on the pin stamp (surgical line edit, #TBD PR), but explicit composition commands still do:
bos plugin add/bos plugin remove(src/services/plugins-admin.ts:97-175)bos config registry use(src/handlers/config.ts:65)
A child whose bos.app.ts carries starter: "advanced" loses it the first time it runs one of those commands.
Why not just add `starter` to the pick list
Naively adding it leaks starter into resolved configs during extends resolution (resolveApp → toConfigInput builds the child's own input) — the schema comment says the field is stripped from resolved configs by design (publish canonicalization never carries it). The fix needs a seam that preserves it on the authoring round-trip without carrying it into resolution.
Acceptance
toConfigInput(toConfigInput-invertible path)preservesstarteron descriptor ← → config-input round-trips used bysaveBosConfig- resolved configs produced by
resolveApp/publish canonicalization still never carrystarter - integration test: a child with
startersurvivesbos plugin add
- 主要言語
- TypeScript
- スター
- 5
- フォーク
- 3
- 平均マージ
- 9時間 35分
- マージ済み PR(30日)
- 151
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
NEARBuilders/everything-dev のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
NEARBuilders/everything-dev#628 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
NEARBuilders/everything-dev#400 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
NEARBuilders/everything-dev#632 ·
メンテナーはふだん 1 日以内に返信
-
Pinnable dev host slot for child CI — versioned host bundle URLs or a first-class local-host runnerオープンenhancement ready-for-agent
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
NEARBuilders/everything-dev#613 ·
メンテナーはふだん 1 日以内に返信
-
documentation ready-for-agent
難易度 3/5 1〜2日 初心者へのやさしさ 66/100
NEARBuilders/everything-dev#608 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
NEARBuilders/everything-dev の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
outline/outline#14348 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
[Bug]: Agent import retains quotes in .env API keys followed by inline comments対応中かも @yxr-2025 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
elie222/rakazo#2322 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
awslabs/visual-asset-management-system#804 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
dsh-market/dsh-market#1027 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信