yoi/.yoi/tickets/00001KWHJ0XH6/item.md

7.6 KiB

title state created_at updated_at assignee queued_by queued_at
Workspace BrowserにSettings/Admin画面のshellとnavigationを追加する closed 2026-07-02T13:59:17Z 2026-07-02T14:39:02Z null workspace-panel 2026-07-02T14:24:54Z

背景

Workspace Browser には Worker / Runtime / Repository / Ticket などの作業 surface はあるが、Backend 設定や接続状態を扱う Settings/Admin surface はまだ無い。

今後 Runtime connections、Backend config、data store status、workspace identity などを UI から確認・編集する必要がある。これは普通に管理画面として設計する。ただし現状の Workspace Backend には user / permission / multi-user authorization が無いため、存在しない権限モデルを UI 上で fake しない。

Runtime connection 管理 UI を直接作り始めると、Settings/Admin の entry point / route / navigation / diagnostic / restart-required 表示などの共通設計と、Runtime connection config の永続化が混ざる。この Ticket では先に Settings/Admin shell と navigation だけを作り、Runtime Connections は後続 Ticket で実装する。

目的

  • Workspace Browser に Settings/Admin surface を追加する。
  • 将来の admin UI の受け皿になる route / layout / navigation を用意する。
  • 現時点で存在しない user / permission / multi-user authorization を UI に出さない。
  • Runtime Connections などの後続 Settings section を追加できるようにする。
  • 既存の Worker Console / Sidebar UX を壊さない。
  • mutation や Runtime connection 永続化は後続 Ticket に委譲する。

位置づけ

Settings/Admin は Workspace Backend の管理画面である。ただし v0 では権限管理を持たない。

明記する制約:

  • user account は無い。
  • role / permission model は無い。
  • multi-user authorization は無い。
  • したがって「管理者だけが操作できる」などの UI 文言や fake role を作らない。
  • 現時点の操作境界は「この Backend にアクセスできること」だけである。

将来の受け皿:

  • Runtime connections。
  • Backend config / effective config view。
  • data root / store status。
  • workspace identity view。
  • restart required / sanitized diagnostics。
  • 将来の user / permission 管理。ただしこの Ticket では実装しない。

UI entry point

Workspace Browser の sidebar に Settings/Admin entry point を追加する。

候補:

...
SETTINGS

または bottom utility として:

⚙ Settings

v0 では既存の Worker / Repository / Ticket navigation を邪魔しない位置に置く。Worker Console が主導線であることを崩さない。

Route 設計

SvelteKit route として Settings/Admin shell を追加する。

候補:

/settings
/settings/runtime-connections
/settings/backend-config

v0 では /settings が overview / placeholder を表示し、section navigation から placeholder section に遷移できるところまででよい。

Settings section の初期候補:

  • Runtime Connections
    • 後続 Ticket 00001KWHHRTM9 で実装する。
    • v0 shell では placeholder / empty state を表示する。
  • Backend Config
    • .yoi/workspace-backend.local.toml / packaged default / effective config の表示・diff の受け皿。
    • v0 shell では read-only placeholder でよい。
  • Workspace Identity
    • workspace id / display name / initialized state などの read-only 表示の受け皿。

権限モデルについての表示

Settings/Admin overview には、現在 user / permission model が無いことを簡潔に示す。

例:

This Workspace Backend currently has no user or permission model. Anyone with access to this backend can change these settings.

日本語 UI なら:

現在、この Workspace Backend にはユーザー権限モデルがありません。この Backend にアクセスできる人は設定を変更できます。

これは「管理画面ではない」という意味ではない。無い権限モデルをあるように見せないための注意書きである。

Common UI patterns

Settings/Admin shell では後続 section が使う共通 pattern を用意する。

Sanitized diagnostic

  • raw path / secret / token / socket path / runtime store path を出さない方針を示す。
  • v0 は reusable component でなくても、Settings shell 内の表示 pattern として定義する。

Restart required badge

Runtime connection や backend config の変更は Backend restart が必要になる場合がある。

v0 shell では badge / callout の見た目だけ用意してよい。

Restart required

Save / dirty state

この Ticket では mutation を実装しないため、dirty tracking の本実装は不要。ただし後続 section が使う前提として、save/cancel area を置ける layout にする。

Backend API との関係

この Ticket では Settings mutation API は実装しない。

後続 Ticket では API path を次のどちらかに寄せることを検討する。

GET /api/settings
GET /api/settings/runtime-connections

または Workspace 配下であることを強調するなら:

GET /api/workspace/settings
GET /api/workspace/settings/runtime-connections

v0 shell は既存 /api/workspace projection などで表示可能な範囲に留めてよい。新 API を追加する場合も read-only summary に限定する。

依存関係

この Ticket は Runtime connection 管理 Ticket 00001KWHHRTM9 の前提とする。Runtime connection の add/delete/test/config persistence はこの Ticket では実装しない。

実装要件

  • Workspace Browser に Settings/Admin entry point を追加する。
  • /settings route を追加する。
  • Settings/Admin shell layout を追加する。
  • Section navigation を追加する。
  • Runtime Connections placeholder section を追加する。
  • Backend Config placeholder section を追加する。
  • Workspace Identity placeholder / read-only section を追加する。
  • 現時点で user / permission model が無いことを UI に明記する。
  • user / role / permission の fake UI を作らない。
  • Restart required / sanitized diagnostic の表示 pattern を用意する。
  • 既存 Worker Console / Sidebar navigation と衝突しない。

受け入れ条件

  • Sidebar または bottom utility から Settings/Admin に移動できる。
  • /settings が表示できる。
  • Settings/Admin shell に「現時点で user / permission model が無い」旨の注意書きがある。
  • Settings section navigation がある。
  • Runtime Connections placeholder がある。
  • Backend Config placeholder がある。
  • Workspace Identity placeholder または read-only summary がある。
  • UI 文言が fake user / role / permission model を示唆しない。
  • raw path / secret / token / socket path / runtime store path を placeholder や diagnostic に表示しない。
  • 既存 Worker Console / Runtime Console / Sidebar の主導線が壊れていない。
  • Focused tests が Settings route rendering、navigation、permission-model disclaimer、placeholder sections を確認する。
  • cd web/workspace && deno task test が通る。
  • cd web/workspace && deno task check が通る。
  • git diff --check が通る。

対象外

  • Runtime connection add/delete/test 実装。
  • .yoi/workspace-backend.local.toml の read-modify-write API。
  • Backend config editor。
  • secret store UI。
  • user / permission UI。
  • Runtime live register / unregister。
  • Manual Coding Worker 作成 form。
  • Nix packaging に関わる変更。