4.3 KiB
4.3 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec |
|---|---|---|---|---|---|---|
| 01-task-disclosure | Task disclosure | complete | 1 | plan.md | ../../specs/kubernetes-executor/spec.md |
Task 01: Task disclosure
Acceptance
- An explicit Kubernetes Refresh shows a distinct busy state, awaits the exact scoped environment/session read, and joins an existing poll request without a duplicate request or stale cross-session publish.
- Desktop hover/focus and the touch Drawer render the same structured Pod identity, live status, grouped facts, and safe actions. Only technical identity/raw values use monospace typography.
- Executor settings is the clear primary destination, Refresh remains secondary, and no Kubernetes Reset/restart/delete action is introduced.
Files likely touched
apps/web/hooks/domains/session/use-task-environment.tsapps/web/hooks/domains/session/use-task-environment.test.tsxapps/web/components/task/executor-settings-button.tsxapps/web/components/task/executor-settings-button.test.tsxapps/web/components/task/executor-environment-disclosure.tsxapps/web/components/task/executor-environment-info.tsxapps/web/components/task/executor-environment-info.test.tsx
Dependencies
None.
Parallelism
sequential. The hook state contract and both disclosure presentations must
land together so the button never consumes an intermediate loading shape.
Inputs
- Spec
What: structured Pod summary and visible/awaitable refresh. - Spec scenarios: loaded refresh, refresh during polling, desktop disclosure, and coarse-pointer Drawer parity.
- Existing request-generation guards in
hooks/domains/session/use-task-environment.ts. - Existing touch surface in
components/task/executor-settings-button.tsx.
TDD sequence
- Add deferred hook tests that prove the current Refresh neither reports busy nor awaits an in-flight poll, and record the expected RED failures.
- Make scoped in-flight work awaitable and add a manual-only
refreshingcontract without changing background polling cadence. - Add semantic component assertions for the proposed Pod header, grouped facts, action priority, and touch parity; then implement the minimal visual composition.
- Run the focused checks below and update this task plus
plan.mdwith the exact results.
Verification
cd apps && pnpm install --frozen-lockfile && pnpm --filter @kandev/web test -- hooks/domains/session/use-task-environment.test.tsx components/task/executor-environment-info.test.tsx components/task/executor-settings-button.test.tsx && pnpm --filter @kandev/web lint -- hooks/domains/session/use-task-environment.ts hooks/domains/session/use-task-environment.test.tsx components/task/executor-settings-button.tsx components/task/executor-settings-button.test.tsx components/task/executor-environment-disclosure.tsx components/task/executor-environment-info.tsx components/task/executor-environment-info.test.tsx && cd web && pnpm run typecheck && git diff --check
Output contract
Report the root RED assertions, final request-count/busy-state behavior, files changed, exact commands and counts, blockers, risks, and synchronized task/plan status. External side effects: none.
Results
- RED: the explicit-refresh test observed
refreshingasundefined, and the duplicate-refresh test proved the second call settled before the in-flight request. The Pod glyph test also showed Kubernetes still mapped toIconCube; semantic disclosure tests found neither the structured summary nor 44 px actions. - GREEN: per-scope requests are now awaitable and deduplicated. Explicit Refresh owns a distinct busy state, preserves last-known Pod details, and joins the exact environment/session request already in flight. The desktop HoverCard and touch Drawer share a structured Pod summary, package-style Pod glyph, grouped facts, safe copy target, secondary Refresh, and primary Executor settings action.
pnpm --filter @kandev/web test -- hooks/domains/session/use-task-environment.test.tsx components/task/executor-environment-info.test.tsx components/task/executor-settings-button.test.tsx lib/executor-icons.test.ts: 4 files, 23 tests passed.- Focused ESLint passed with zero warnings;
pnpm --filter @kandev/web typecheckandgit diff --checkpassed. - Blockers: none. External side effects: none.