Task pane: a hidden/deleted task's not-found costs

Task 7215 · Done · Coder · created · updated

Found while fixing the develop-red smoke specs (Task 7163). 1. `TaskDetailPage.tsx` cold load: a 404 from `GET /api/tasks/{id}/page` falls back to the three single reads (`/api/tasks/{id}`, `/activity`, `/artifacts`). All three 404 again, so the not-found pane waits an extra round trip. Treat a `/page` 404 that carries the task route's own detail as final (keep the fallback for a route-less API). 2. The same deep link (`/tasks/<id>?orgs=<other>`) fires `/page` and the fallback reads twice, because the scope-keyed pane remount repeats the read. Read once per scope. 3. `apps/api/tests/test_task_page.py` has no org-filter case: add one asserting `GET /api/tasks/{id}/page` returns 404 under another org's `X-Jaah-Org-Scope`. 4. `npx tsc --noEmit -p apps/web/tsconfig.e2e.check.json` is red on develop: `node-detail-health.spec.ts` is missing `draining`, plus unused bindings in `node-detail-mobile`, `task-detail-fit`, `worktrees-desktop` and `worktrees-mobile`. Fix them, and gate the e2e typecheck if it isn't gated already. Out of scope: the org filter's semantics; the smoke specs' timeouts (Task 7163). Done means: - A deep link to a hidden task shows "Hidden by the org filter" after one `/page` request per scope, as seen in the trace. - The new API test passes. - The e2e tsconfig typecheck is clean. - `./dc check full` is green.

Outcome

Hidden/deleted task pane: a /page 404 with the task's own detail is final, one /page per scope (trace-verified), API org-filter test added, e2e typecheck fixed and gated. PR #5882 merged; full gate green except an unrelated host-env stage. Follow-up draft #7233.

Pull request

Artifacts

Activity

  • Created
  • Run
  • Runner started
  • Runner ended (done)