A plain critical-path pass answers “how long if everyone is free”. Resource capacity is now reported on every run and acted on when the project asks for it, activity numbers allocate themselves, and the Gantt stops overlapping the page below it.
The Gantt No Longer Overlaps the Page Below It
A Gantt chart is a split pane, and the stylesheet for the splitter was never loaded, so both halves rendered full width and stacked — the chart landing on top of whatever followed it, and worse the more activities there were. The chart also sizes to its row count now, rather than leaving three bars above 300px of empty timeline.
Capacity Is Reported on Every Run, and Moved Only When Asked
Three unlinked three-day activities with one person on all three all started on day one and asked that person for twelve hours a day against a capacity of eight. Nothing said so.
Capacity is now two separate acts. Conflicts are reported on every run and on page load; levelling moves work, and only when the project is set to. That choice is stored on the project and applied by one switch that schedules and saves — as a preview-then-commit pair a refresh lost it, and as a per-run flag the next plain run silently un-levelled the plan and restored an over-allocation nobody had chosen to accept.
Levelling adds real dependencies rather than just moving dates, so float and the critical chain stay meaningful; it never moves a pinned activity; and zero capacity on file means “nothing to compare”, never “no hours”.
Why nobody had ever seen an over-allocation: adding a person through Project People created their row with zero capacity, a rule meant for external contacts. Only external kinds are zeroed now, and capacity is editable for the first time, from a column on the Project People page. Existing employee rows already stored at zero are not repaired automatically — audit them.
An Activity Number Is Allocated When Left Blank
Leaving the activity code empty now allocates one per project: multiples of ten, four digits, so 0015 can still be inserted by hand between 0010 and 0020. The maximum is read as a number, never as text, and a code that has been used and deleted is never reissued.