308aada5f9
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com>
7.3 KiB
7.3 KiB
id, title, status, wave, depends_on, plan, requirements, acceptance_criteria, system_design
| id | title | status | wave | depends_on | plan | requirements | acceptance_criteria | system_design | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 05-docs-e2e-and-verification | Document and prove the complete workflow | done | 5 |
|
plan.md |
|
|
|
Task 05: Document and Prove the Complete Workflow
Summary
Exercise the completed workflow through real browser and container-backed paths, publish concise user guidance, update artifact statuses and results, and run the requested repository checks before commit.
In scope
- A desktop Chromium E2E that reviews multiple routes on a local development page, selects script-generated text and verifies its rendered DOM position, verifies the element candidate hint before selection, saves all three capture kinds, closes/reopens the preview, sends direct and queued feedback, and verifies the transcript and real image attachment.
- A mobile Chrome E2E for inline HTML preview, Drawer interaction, text or element capture, touch screenshot region, source return, 44-pixel controls, safe containment, and no horizontal overflow.
- A
containersproject E2E that launches a Docker task session, opens its published HTTP port in Browser, saves feedback, and delivers it. - Replacement or removal of the skipped Browser-local annotation suite so no obsolete local-only contract remains as dormant coverage.
docs/public/developer-tools.mdguidance for capture, pending ownership, navigation, Send, screenshot limits, recovery, and raster limitations.- Public-doc validation, specification lifecycle/status updates, work-order results, final repository checks, and a Conventional Commit.
Out of scope
- Exhaustive executor duplication after one real Docker proof and existing shared port-proxy contract coverage.
- New screenshots or diagrams for public docs unless rendered review shows that prose and the existing UI are insufficient.
- Unrelated broad refactoring discovered during final checks.
Acceptance
- Desktop, phone, and Docker-backed flows demonstrate the same durable pending set and ordinary Send outcome through their native compositions.
- Public guidance accurately distinguishes durable feedback from ephemeral preview execution and explains confirmed screenshot limitations and recovery.
- Focused checks,
make fmt, andmake typecheck test lintpass before the implementation is committed.
TDD sequence
- Write the desktop, mobile, and container E2E assertions against the completed product flow; confirm each new scenario fails for the expected missing or incorrect behavior before making its final fixture/wiring adjustment.
- Make the minimum product or fixture fixes needed for first-attempt GREEN; avoid retry-based assertions and fixed sleeps.
- Update public guidance and durable artifact statuses/results, run their validators, then run the E2E files again after the production rebuild.
- Run the requested repository-wide checks once after focused checks settle. Fix only causal failures, rerun affected focused checks, then rerun the failed broad command before committing.
Verification
make -C apps/backend build
cd apps/web
pnpm run build:e2e
pnpm e2e:run --project chromium tests/preview/preview-feedback.spec.ts
pnpm e2e:run --project mobile-chrome tests/preview/mobile-preview-feedback.spec.ts
KANDEV_E2E_CONTAINERS=1 pnpm e2e:run --host --project containers tests/docker/preview-feedback.spec.ts
cd ../../
node --test scripts/validate-public-docs.test.mjs
node scripts/validate-public-docs.mjs
python3 scripts/list-docs.py validate
python3 scripts/lint-spec-files.test.py
python3 scripts/lint-spec-files.py --all
make fmt
make typecheck test lint
Files likely touched
apps/web/e2e/tests/preview/preview-feedback.spec.tsapps/web/e2e/tests/preview/mobile-preview-feedback.spec.tsapps/web/e2e/tests/docker/preview-feedback.spec.tsapps/web/e2e/tests/preview/preview-annotations.spec.tsapps/web/e2e/pages/and focused preview helpers/fixtures.docs/public/developer-tools.mddocs/specs/tasks/requirements/web-preview-feedback.mddocs/specs/tasks/system-design/web-preview-feedback.mddocs/specs/ui/requirements/native-html-preview.mddocs/specs/ui/system-design/native-html-preview.mddocs/decisions/2026-09-15-task-owned-web-preview-feedback.mddocs/plans/web-preview-feedback/
Dependencies
- Tasks 01 through 04 supply the complete persistence, delivery, responsive capture, and screenshot behavior.
Risks
- Container setup can dominate test time; the test must reuse the standard Docker fixture and avoid adding a new image.
- An E2E can accidentally inspect a fixture-local panel state instead of proving backend durability; reload and a second view must read the server snapshot.
- The managed E2E runner requires fresh backend, mock-agent, agentctl, and web artifacts before it starts.
- Broad checks can expose unrelated pre-existing failures. Record the command, causal evidence, and narrow follow-up instead of weakening the test.
Parallelism
sequential
Inputs
- All acceptance criteria and the complete ASCII preview in
plan.md. - Current public HTML-preview guidance and E2E runner requirements.
Results
- Added a desktop Chromium scenario for multi-route text, element, and region capture; generated-text position evidence; candidate hinting; durable reopen; direct and queued Send; transcript rendering; and screenshot attachment delivery.
- Added mobile Chrome coverage for the inline HTML preview Drawer, touch capture, source return, touch target sizing, containment, and overflow, plus a Docker-backed Browser scenario for a published local HTTP page.
- Removed the obsolete Browser-local annotation E2E and documented task-owned
pending feedback, navigation, delivery, limits, raster behavior, and recovery
in
docs/public/developer-tools.md. - Verified rebuilt host and Linux backend artifacts, the E2E web bundle, all three focused Playwright scenarios, public docs, specs, CLI, 88 focused web tests, the affected backend packages, and the full 2,095-file web suite with 18,041 passing tests and 4 intentional skips.
- The full backend suite passes every package except the unchanged real-process
probe integration in the elevated runner, whose host PID namespace conflicts
with container
/proc/uptime; that package passes 20 consecutive runs in the normal namespace. Synthetic Git fixtures now set repository-local empty hook paths and remain independent of machine-wide Git policy.