223 lines
9.5 KiB
Markdown
223 lines
9.5 KiB
Markdown
<!-- event: create author: "yoi ticket" at: 2026-07-02T13:59:17Z -->
|
|
|
|
## 作成
|
|
|
|
LocalTicketBackend によって作成されました。
|
|
|
|
---
|
|
|
|
<!-- event: plan author: hare at: 2026-07-02T14:00:20Z -->
|
|
|
|
## Plan
|
|
|
|
Workspace Browser Settings shell の先行 Ticket として詳細化した。
|
|
|
|
方針:
|
|
- Settings は admin/user/permission 管理ではなく、現在の local Workspace Backend process と workspace-local config を扱う surface とする。
|
|
- Runtime Connections / Backend Config / Workspace Identity の section 受け皿を先に作る。
|
|
- この Ticket では mutation や Runtime connection 永続化は実装しない。
|
|
- 後続 Runtime connection 管理 Ticket `00001KWHHRTM9` はこの Settings shell を前提にする。
|
|
|
|
|
|
---
|
|
|
|
<!-- event: decision author: hare at: 2026-07-02T14:09:54Z -->
|
|
|
|
## Decision
|
|
|
|
Settings shell Ticket の位置づけを修正した。
|
|
|
|
Decision:
|
|
- `Workspace-local Settings` という独自呼称はやめ、普通に Settings/Admin surface として扱う。
|
|
- 管理画面ではない、という意味ではない。
|
|
- 現時点で user / permission / multi-user authorization が無いため、それらがあるかのような fake UI / 文言を作らない、という制約だけを明記する。
|
|
- 後続 Runtime connection management Ticket の依存先表記も Settings/Admin shell に修正した。
|
|
|
|
|
|
---
|
|
|
|
<!-- event: intake_summary author: hare at: 2026-07-02T14:18:50Z -->
|
|
|
|
## Intake summary
|
|
|
|
Marked ready by `yoi ticket state`.
|
|
|
|
---
|
|
|
|
<!-- event: state_changed author: "yoi ticket" at: 2026-07-02T14:18:50Z from: planning to: ready reason: cli_state field: state -->
|
|
|
|
## State changed
|
|
|
|
Marked ready by `yoi ticket state`.
|
|
|
|
|
|
---
|
|
|
|
<!-- event: state_changed author: workspace-panel at: 2026-07-02T14:24:54Z from: ready to: queued reason: queued field: state -->
|
|
|
|
## State changed
|
|
|
|
Ticket を `workspace-panel` が queued にしました。
|
|
|
|
|
|
---
|
|
|
|
<!-- event: decision author: yoi-orchestrator at: 2026-07-02T14:25:39Z -->
|
|
|
|
## Decision
|
|
|
|
Routing decision:
|
|
|
|
Workspace Dashboard Queue authorized Orchestrator routing. Current state was inspected before implementation side effects.
|
|
|
|
Findings:
|
|
- Ticket state: `queued`
|
|
- Blocker relations: none
|
|
- Current `inprogress` Tickets: 0
|
|
- Orchestration worktree: clean
|
|
|
|
Decision:
|
|
- Accept this Ticket for implementation and transition `queued -> inprogress` before child worktree / Pod side effects.
|
|
|
|
Plan:
|
|
- Worktree: `/home/hare/Projects/yoi/.worktree/00001KWHJ0XH6-settings-admin-shell`
|
|
- Branch: `work/00001KWHJ0XH6-settings-admin-shell`
|
|
- Coder Worker will implement Workspace Browser Settings/Admin shell and navigation with focused `web/workspace/**` write scope.
|
|
- Reviewer Worker will verify route rendering, navigation, no fake user/role/permission model, placeholder sections, sanitized diagnostic/restart-required patterns, non-leak of raw path/secret/token/socket/runtime store path, and existing Worker Console/Sidebar continuity.
|
|
|
|
Non-goals preserved:
|
|
- no Runtime connection add/delete/test implementation
|
|
- no settings mutation API
|
|
- no backend config editor or secret store UI
|
|
- no user/permission UI
|
|
- no Runtime live register/unregister
|
|
- no Nix/package changes expected
|
|
|
|
Operational note:
|
|
- User instructed not to use `StopPod` for now after repeated stop/hang symptoms. Cleanup will skip role-Pod shutdown and remove only child worktree/branch unless explicitly reauthorized.
|
|
|
|
---
|
|
|
|
<!-- event: state_changed author: yoi-orchestrator at: 2026-07-02T14:25:48Z from: queued to: inprogress reason: authorized_unblocked_queue_acceptance field: state -->
|
|
|
|
## State changed
|
|
|
|
Dashboard Queue authorized routing. The Ticket has no blocker relations, no other Ticket is inprogress, and the orchestration worktree is clean. Accepting implementation before child worktree / role Pod side effects.
|
|
|
|
---
|
|
|
|
<!-- event: implementation_report author: yoi-orchestrator at: 2026-07-02T14:26:39Z -->
|
|
|
|
## Implementation report
|
|
|
|
Implementation routing diagnostic:
|
|
|
|
Attempted to spawn Coder Worker `yoi-coder-00001KWHJ0XH6-settings`, but `SpawnPod` failed before child startup with:
|
|
|
|
```text
|
|
failed to spawn `/home/hare/.cargo/bin/yoi (deleted) pod`: No such file or directory (os error 2)
|
|
```
|
|
|
|
This appears to be a runtime executable availability issue in the current Orchestrator process, not a Ticket/code implementation result.
|
|
|
|
Operational response:
|
|
- The Ticket is already `inprogress` and the child worktree/branch exists.
|
|
- Because role Pod spawning is temporarily unavailable and this Ticket is web-only / narrow-scope, Orchestrator will implement the small Settings/Admin shell directly in the child worktree, then route review if spawning becomes available; otherwise Orchestrator will perform focused validation and record the limitation.
|
|
- `StopPod` remains unused per user instruction.
|
|
|
|
---
|
|
|
|
<!-- event: implementation_report author: yoi-orchestrator at: 2026-07-02T14:36:11Z -->
|
|
|
|
## Implementation report
|
|
|
|
Implementation report:
|
|
|
|
Due to `SpawnPod` failure caused by the current executable path being deleted, Orchestrator implemented the narrow web-only change directly in the child worktree.
|
|
|
|
Implementation commit:
|
|
- `c0c6880b1a00ec367910267a3d2a0595839b3d5b feat: add settings admin shell`
|
|
|
|
Changed files:
|
|
- `web/workspace/src/routes/settings/+page.svelte`
|
|
- `web/workspace/src/lib/workspace-settings/SettingsPage.svelte`
|
|
- `web/workspace/src/lib/workspace-settings/model.ts`
|
|
- `web/workspace/src/lib/workspace-settings/model.test.ts`
|
|
- `web/workspace/src/lib/workspace-sidebar/WorkspaceSidebar.svelte`
|
|
- `web/workspace/src/app.css`
|
|
- `web/workspace/deno.json`
|
|
|
|
Implementation summary:
|
|
- Added `/settings` route and Settings / Admin page shell.
|
|
- Added sidebar/header Settings navigation entry while preserving Worker Console/sidebar routes.
|
|
- Added section navigation for Runtime Connections, Backend Config, and Workspace Identity.
|
|
- Runtime Connections and Backend Config are explicit placeholders; Workspace Identity is read-only.
|
|
- Added visible authority notice: no browser user/role/permission/multi-user authorization model exists and this shell does not create an admin role.
|
|
- Added sanitized diagnostic / restart-required / read-only-until-typed-APIs patterns.
|
|
- The page reads `/api/workspace` for opaque workspace id/display name/record authority context only; it does not expose raw filesystem path, secret, token, socket, runtime store path, or mutation control.
|
|
- No Runtime connection mutation, settings mutation API, backend config editor, secret UI, or permission UI was added.
|
|
|
|
Validation:
|
|
- `deno run -A npm:@sveltejs/kit@2.49.4 sync`: success
|
|
- `cd web/workspace && deno task test`: success (`10 passed`)
|
|
- `cd web/workspace && deno task check`: success
|
|
- `cd web/workspace && deno task build`: success
|
|
- `git diff --check`: success
|
|
|
|
Note:
|
|
- Running `deno task test` before SvelteKit sync failed due stale/generated tsconfig state; after `svelte-kit sync`, the repository task succeeded. `deno task check` also runs sync.
|
|
|
|
---
|
|
|
|
<!-- event: implementation_report author: yoi-orchestrator at: 2026-07-02T14:36:39Z -->
|
|
|
|
## Implementation report
|
|
|
|
Review routing diagnostic:
|
|
|
|
Attempted to spawn Reviewer Worker `yoi-reviewer-00001KWHJ0XH6-settings`, but `SpawnPod` failed before child startup with the same runtime executable availability issue:
|
|
|
|
```text
|
|
failed to spawn `/home/hare/.cargo/bin/yoi (deleted) pod`: No such file or directory (os error 2)
|
|
```
|
|
|
|
Because role Pod spawning is unavailable in the current process and the change is narrow web-only, Orchestrator will perform a focused manual review plus validation before merge. This is recorded as an operational deviation from the normal sibling Reviewer path.
|
|
|
|
`StopPod` remains unused per user instruction.
|
|
|
|
---
|
|
|
|
<!-- event: review author: yoi-orchestrator at: 2026-07-02T14:37:21Z status: approve -->
|
|
|
|
## Review: approve
|
|
|
|
approve
|
|
|
|
Operational note:
|
|
- Normal read-only Reviewer Worker could not be spawned because `SpawnPod` failed with current executable path `/home/hare/.cargo/bin/yoi (deleted) pod` missing. This review was therefore performed manually by Orchestrator as a narrow web-only fallback.
|
|
|
|
Review target:
|
|
- `c0c6880b1a00ec367910267a3d2a0595839b3d5b feat: add settings admin shell`
|
|
|
|
確認した点:
|
|
- `/settings` route が追加され、Settings / Admin shell が表示される。
|
|
- Sidebar header gear と Sidebar の Settings section から `/settings` へ navigation できる。
|
|
- Runtime Connections / Backend Config / Workspace Identity の sections がある。
|
|
- Runtime Connections / Backend Config は placeholder として明示され、Runtime connection add/delete/test/persist、Backend config editor、secret UI、settings mutation API は実装されていない。
|
|
- Workspace Identity は opaque `workspace_id` / display name / record authority context の read-only 表示であり、raw filesystem path を表示していない。
|
|
- 「browser user / role / permission / multi-user authorization model は存在しない」「admin role を作らない」旨が明記されている。
|
|
- sanitized diagnostics / restart-required / read-only until typed API exists の表示 pattern が追加されている。
|
|
- 既存 Worker Console route と `runtime_id + worker_id` sidebar navigation は維持されている。
|
|
- テストで Settings navigation、no fake admin permission model、placeholder boundaries、raw authority leak avoidance の最低限を確認している。
|
|
|
|
Validation:
|
|
- `git diff --check HEAD~1..HEAD`: success
|
|
- `deno run -A npm:@sveltejs/kit@2.49.4 sync`: success
|
|
- `cd web/workspace && deno task test`: success (`10 passed`)
|
|
- `cd web/workspace && deno task check`: success
|
|
- `cd web/workspace && deno task build`: success
|
|
|
|
ブロッカーはない。
|
|
|
|
---
|