Task dependencies: types, lag, and the dependency map
Dependencies are what let Current compute a real schedule instead of just a list of dates — one task's timing drives another's. Add a dependency from either the task drawer or the Dependencies map.

The four dependency types
Current supports all four standard project-scheduling dependency types:
| Type | Plain-language meaning |
|---|---|
| Finish → Start | This task starts once the other one finishes — the most common link. |
| Start → Start | Both tasks start at the same time. |
| Finish → Finish | This task can't finish until the other one finishes. |
| Start → Finish | This task finishes when the other one starts — rarely used. |
Adding lag
Every dependency can carry a lag — a number of working days added (or subtracted, for lead time) between the two tasks. A lag of +2 days means the successor waits two extra working days after the dependency is satisfied; a negative lag lets the successor start early.
- 1Open the task and go to DependenciesFrom the task drawer, or click a task on the Dependencies map.
- 2Pick the other taskChoose whether it's a predecessor (this task waits on it) or a successor (it waits on this task).
- 3Choose the typeFinish → Start is the default and covers most cases.
- 4Set lag if neededLeave at 0 for back-to-back, or add days for a required gap (e.g. waiting for hardware to arrive).
The Dependencies map
The Dependencies view lays out every task and its links as a visual graph, auto-arranged left to right. Tasks on the critical path are highlighted in red with a thicker, animated edge; links between tasks in different projects are shown as dashed purple edges. A diagnostics panel flags tasks that are on the critical path, overdue, forecast to slip, an at-risk milestone, missing dependencies entirely, carrying invalid dates, or missing a work estimate.
Working with dependencies in the task drawer
Open a task and its Dependencies section lists what it's waiting on and, under "Waiting on this", the tasks waiting on it. Every row is a real, clickable link that always shows the actual task name — never a generic "task" placeholder, even when the other task was archived or removed.
- +Click any dependency row to jump straight to that task; a Back control returns you to where you started.
- +A task that no longer exists reads "Deleted task", and an archived task carries an (archived) tag — so a broken or hidden link is obvious instead of mysterious.
- +A dependency on a task in another project shows that project's name next to it, so a cross-project link is never ambiguous.
- +Remove buttons are always visible on every row — including the "Waiting on this" rows — and the add-dependency picker shows a clear loading state instead of disappearing while it loads.
How circular dependencies are blocked
Current checks every new dependency before it's added: it traces forward from the task you're about to make dependent, and if that trace ever loops back to the task you started from, the link would create a cycle — an impossible schedule where two tasks each wait on the other. Current blocks the add and tells you it would create a circular dependency.
