The network, the calendars, the cost plan and the WBS were complete in the database and over the API with no maintenance screen anywhere. They have one now — and on the way, every list in the module stopped serving the whole tenant.
Every Project System Tab Was Showing Every Project
Thirty-one lists across the Project System declared a filter and none of them applied one. Asking for a single project’s activities was accepted, ignored, and answered with the whole tenant — so the Schedule tab drew every project’s activities, and so did Cost, Procurement, Billing, Issues, Meetings and Revenue. Nothing errored, because an ignored filter looks exactly like an empty one.
The WBS Can Be Edited, and a Delete That Would Strand Cost Is Refused
The WBS tab only ever had a create path — no edit, no delete, no status change — and even Add was disabled once the project left draft. The backend had supported all of it since the module shipped; nothing reached it.
Every writable field is now editable, including the parent: moving an element re-numbers its sub-tree, and how many elements moved is reported back rather than left for the planner to discover. Nothing is gated by a greyed-out button — the rules live on the server and a refusal is shown verbatim, which is the whole reason it names what is in the way.
Delete needed a guard before it could be offered at all. Removing an element would have left posted cost, open commitments and captured time addressing a work package that no tree shows, because a soft delete does not fire the database’s own protections. Every reference into the element is now counted first, walking the relationships themselves so a new one is covered the day it is added.
Administrators: run setup_rbac after upgrading — the scheduling permission now means “may change the plan”, so re-check who holds it.
Activities, Relationships and Calendars Can Be Maintained
Until now the only way an activity could be created was the MS Project importer — which refuses a project that already has activities, so the first import was also the last, and a project created on screen could never have a network at all.
The new Network tab adds, edits and deletes activities and relationships beneath the Gantt. The Gantt itself stays read-only: the scheduling columns are engine-owned. Confirming what actually happened and changing the plan are now gated separately, so a technically complete project refuses new scope while still accepting the news that old scope finished. A tenant is no longer limited to one seeded calendar: a new Calendars page maintains them.
A Cost Plan That Can Actually Be Entered, and Earned Value That Says So
The cost plan had no screen either, so a plan line was uncreatable. Since a baseline copies its planned cost from the approved plan, that is why every project reported a budget at completion of ₹0 — and presented it as an answer.
The new Cost Plan tab carries plan versions, a line editor and approval; baselines now carry planned cost and record which plan it came from; and earned value returns a stated absence with a reason where there is no plan, rather than a zero.