4.2 KiB
4.2 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec | ||
|---|---|---|---|---|---|---|---|---|
| 07-e2e-docs-verification | Prove and document repository secrets | done | 5 |
|
plan.md | ../../specs/workspaces/requirements/repository-secrets.md |
Task 07: Prove and Document Repository Secrets
Acceptance
- Desktop E2E proves Global/Workspace filtering, repository binding persistence, conflict failure, deleted-ref failure, and local runtime/terminal injection without exposing plaintext in UI.
mobile-repository-secrets.spec.tsproves the complete phone settings flow and no overflow.- Container E2E proves Docker propagation and SSH approved-key forwarding plus the negative unrelated env case.
- Public docs accurately describe scope, inheritance, conflicts, snapshots/reset, terminal exposure, and SSH behavior.
- Broad backend/frontend/i18n checks pass and plan/task results record exact commands.
Files likely touched
apps/web/e2e/tests/settings/repository-secrets.spec.tsapps/web/e2e/tests/settings/mobile-repository-secrets.spec.tsapps/web/e2e/tests/docker/repository-secrets.spec.tsapps/web/e2e/tests/ssh/repository-secrets.spec.ts- E2E API client/page helpers as needed
docs/public/agents-and-profiles.mddocs/public/executors.mddocs/public/authentication.mddocs/public/security.md- This plan and task file result/status sections
Inputs
- Completed backend/runtime Tasks 01–04.
- Completed frontend Tasks 05–06.
- E2E skill conventions and
apps/web/e2e/README.mdproject routing.
Dependencies
Tasks 04 and 06.
TDD/E2E sequence
- Add desktop and mobile browser scenarios against the real per-worker backend.
- Add focused Docker and SSH container scenarios using their dedicated fixtures.
- Fix only feature-owned testability gaps such as stable test IDs; do not duplicate backend policy in Playwright helpers.
- Update public docs from verified behavior, then run broad checks and record results.
Verification
make -C apps/backend test
make -C apps/backend lint
cd apps && pnpm --filter @kandev/web test -- --run
cd apps/web && pnpm run typecheck
cd apps && pnpm --filter @kandev/web lint
cd apps && pnpm run i18n:check && pnpm run i18n:ratchet
cd apps/web && pnpm e2e:run tests/settings/repository-secrets.spec.ts
cd apps/web && pnpm e2e:run --project mobile-chrome tests/settings/mobile-repository-secrets.spec.ts
cd apps/web && KANDEV_E2E_CONTAINERS=1 pnpm e2e --project=containers tests/docker/repository-secrets.spec.ts tests/ssh/repository-secrets.spec.ts
Risks
- E2E diagnostics and assertions must never print secret plaintext.
- Container tests require Docker and belong only to the
containersproject; contributors without Docker still need deterministic unit coverage for the transport matrix. - Public docs must distinguish user-global from instance-global when authentication is enabled.
Output contract
Report each desktop/mobile/runtime scenario, exact command results, any Docker availability limit, documentation updated, files changed, and residual risks. Mark the spec shipped and plan/tasks done only when implementation and required verification genuinely pass.
Result
Added desktop, mobile, Docker, and SSH repository-secret E2E coverage plus public documentation for scope, inheritance, fail-closed conflicts, snapshots, and SSH forwarding. Successful verification:
make -C apps/backend test— passed.make -C apps/backend lint— passed with 0 issues.- Full web Vitest — 1,089 files passed; 8,309 tests passed and 4 skipped.
- Focused web tests — 6 files and 41 tests passed; typecheck and lint passed.
pnpm run i18n:pseudo,i18n:check, andi18n:ratchet— passed.pnpm run build:vite— passed.- Chromium repository-secret E2E — 3 passed; mobile-chrome — 1 passed.
- Containers Docker repository-secret E2E — 1 passed; SSH repository-secret E2E — 1 passed.
- Public-doc validation — 58 tests passed and 41 published pages validated.
Fresh desktop and mobile PR assets were generated from synthetic data, visually inspected, and
compressed. The env-gated PostgreSQL tests remain available but were skipped because this workspace
has no KANDEV_TEST_POSTGRES_DSN.