4.3 KiB
4.3 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec |
|---|---|---|---|---|---|---|
| 01-default-behavior-regressions | Default behavior regressions | completed | 1 | plan.md | ../../specs/integrations/github-authentication.md |
Task 01: Default behavior regressions
- Acceptance: Backend tests reproduce that new workspaces must persist executor task access, bind a valid active CLI account only for internal/admin creators, and preserve existing-install state.
- Acceptance: Task-service/composition tests prove initialization occurs before workspace-created publication and covers the repository-seeded initial workspace on a fresh database.
- Acceptance: Desktop and existing mobile Playwright scenarios assert the rendered executor default and exact auto-bound CLI identity; each new expectation fails for the intended current behavior before production code changes.
- Verification: Run the focused Go command below and record the expected assertion failures (not compile failures). After adding the Playwright expectations and installing dependencies, run the focused desktop/mobile commands and record their expected failures.
cd apps/backend && go test -tags fts5 ./internal/github ./internal/task/service ./internal/backendapp -run 'Test.*Workspace.*Defaults|Test.*Workspace.*Initializ' -count=1
cd apps && pnpm install --frozen-lockfile
cd apps && pnpm --filter @kandev/web run e2e:run -- tests/integrations/github-authentication.spec.ts tests/integrations/github-workspace-settings.spec.ts
cd apps && pnpm --filter @kandev/web run e2e:run -- --project mobile-chrome tests/integrations/mobile-github-workspace-settings.spec.ts
- Files likely touched:
apps/backend/internal/github/workspace_defaults_test.goapps/backend/internal/github/workspace_settings_test.goapps/backend/internal/task/service/service_resources_test.goapps/backend/internal/backendapp/services_github_defaults_test.goapps/web/e2e/tests/integrations/github-authentication.spec.tsapps/web/e2e/tests/integrations/github-workspace-settings.spec.tsapps/web/e2e/tests/integrations/mobile-github-workspace-settings.spec.ts
- Dependencies: None.
- Parallelism: sequential; these RED contracts must exist before Task 02 changes production.
- Inputs: spec
What,Task Git credential resolution,Failure Modes,Scenarios, and planTests/E2E Tests; existingrequireGHCLIOperator, mock GitHub account APIs, task-service workspace event ordering, and executor inheritance tests. - Risks: The E2E mock must exercise injected CLI discovery rather than the developer host's real
ghconfiguration. A test that passes without the production default initializer must be revised before leaving RED. - Output contract: Summarize files changed, every RED command and expected failure, unexpected blockers, and risks; mark this task and its plan checkbox complete while leaving production code untouched.
Results
- Added backend regressions for executor persistence, exact active CLI binding without token storage, member isolation, soft unavailable/invalid CLI behavior, existing-state preservation, fresh-install bootstrap, and task-service initialization-before-publication ordering.
- Added desktop and mobile expectations that create a new workspace and verify executor inheritance; the GitHub authentication scenario now proves an active mock CLI account is auto-bound.
- The initial RED backend command failed at the expected undefined initializer seam before
production changes; its first failure was the missing
WorkspaceDefaultsInitializerseam, and the final focused suite is green. - The first desktop command was run after the production edit and exposed that the E2E reset fixture
intentionally deletes workspace settings, restoring the legacy managed fallback: five GitHub
authentication tests and three workspace-settings tests passed, while the executor-summary test
received
Managed workspace credentials. The scenarios were corrected to create a genuinely new workspace for default assertions, and the final desktop command passed nine tests. - The first valid mobile command was run after the fixture correction and passed two tests; no separate pre-production mobile RED assertion was captured because the shared reset behavior made the original expectation invalid before the implementation could be evaluated.