Skip to content

Nested Project Work 2026 10 17

Anushka Wijesundara edited this page Oct 18, 2026 · 1 revision

Nested project work delivery — 2026-10-17

Delivered behavior

The colleague's request is recursive task decomposition: Task → subtask → subtask → further subtasks. ServiceOps now supports nested subtasks, full ancestor breadcrumbs, child drill-down and Add at every subtask level. Project edit permissions still control board drag-and-drop. Readers see a notice explaining the restriction and how to request member access.

Creation and reparenting enforce tenant/project boundaries and reject cycles. PostgreSQL project-row locks serialize reciprocal reparenting. Clone and move retain the complete nested branch; conversion preserves valid descendants. Deletion reparents intermediate children and promotes orphaned direct subtasks to tasks, retaining deeper descendants and history. Older selected parents remain available beyond the bounded parent options.

Projects → Cross-project planning adds permission-scoped project progress, date ranges, overdue/unscheduled work, recorded remaining effort and blocking-dependency date conflicts. A date-shift preview does not change stored dates. It is not available team capacity, a named persistent scenario or automatic scheduling.

See the user guide and dated Premium capability inventory. Full Jira Premium parity remains open; B-468 and the baseline B-469 are complete for this slice, while B-450–B-459 and B-470/B-471 retain the documented remaining work.

Verification

Gate Result
Default suite 2,004 distinct passed; 163 opt-in skipped, verified in two overlapping batches. First run passed 1,288 then caught stale source messages; extraction corrected the catalog. The remainder passed 716, overlapping one already-passed localization check. The final read-only notice adds one further passing regression; final hierarchy/localization checks passed 51.
Focused project regressions 74 passed before the final older-parent-selector case; the final ten new hierarchy/planning/permission tests passed.
PostgreSQL Nine transaction regressions passed, including reciprocal stale-read reparent rejection; the final hierarchy test also verifies portfolio SQL aggregation on PostgreSQL.
Browser Five existing project browser/axe tests passed; the new nested drill-down/planning journey passed at 1440/390 px with no WCAG 2.1 AA violations, page errors or horizontal page overflow.
Localization Source catalog regenerated; all 41 localization tests passed. New untranslated messages use the existing English fallback.
Static checks Ruff, diff whitespace, Helm lint and wiki links passed.
Migration No schema change. Alembic head remains 20261016_0128.

The browser initially scanned during the entrance animation; waiting for network idle resolved transient contrast readings. Phone screenshots use a fresh mobile-page load so the existing navigation initializes collapsed. This is not evidence that every desktop-to-phone resize interaction has been audited.

MicroK8s acceptance

  • Namespace: operations; Helm 212, chart/base version 1.113.50.
  • Candidate: cand-nested-20261017, local registry image localhost:32000/serviceops-server@sha256:147280b2124128e7005dc7de1bde2402a2433ea70d960b6b8bd21e3e0753c514.
  • Restore-tested backup: serviceops-nested-final-backup-20261017:/backups/serviceops-20261017T052809Z.dump. Scratch restore verified 160 tables, 487 tickets and the expected schema; the scratch database was removed.
  • Web, outbox, events and AI deployments are ready. Deployed runtime file hashes match the tested working tree.
  • Health/readiness, retained Helm test, PostgreSQL schema, preserved database/uploads/backups PVC identities, public API (200), website Cloudflare Access (302) and recent new-pod logs passed.
  • Functional/browser testing used isolated fixture data. Live acceptance verifies the deployed code and runtime; no production tasks or tickets were created for the test.
  • No GitHub commit, push, tag or release was made. Existing review changes were retained in this local candidate; no version was edited.

Machine-readable acceptance

Interface examples

Fixtures contain sample data. These are not live workload statistics.

Nested task with ancestor path and child drill-down

Cross-project planning and non-persistent date preview

Phone: nested work · Phone: planning

Clone this wiki locally