Michael Uray
0e6d0dfc7f
feat(tracker): add Gantt scheduling schema (startDate + IssueRelation)
...
Schema-only foundation for the upcoming Gantt-chart view in tracker.
No UI in this PR.
Changes:
- Issue.startDate: Timestamp | null (interface + IssueDraft + @Prop with @Index)
- Milestone.startDate: Timestamp | null (interface + @Prop, reusing the
existing tracker.string.StartDate IntlString)
- New DependencyKind type ('finish-to-start' | 'start-to-start' |
'finish-to-finish' | 'start-to-finish')
- New IssueRelation AttachedDoc class with kind: DependencyKind, signed
lag: number — registered in models/tracker via TIssueRelation
- 7 new IntlString keys: IssueStartDate, GanttDependency,
GanttDependency{FinishToStart,StartToStart,FinishToFinish,StartToFinish},
GanttLag — all 13 locales updated
- Cross-plugin literal updates in importer + github sync to satisfy the new
required Issue.startDate / Milestone.startDate fields:
- packages/importer/src/importer/importer.ts: AttachedData<Issue> literal
- services/github/pod-github/src/sync/issueBase.ts: 'startDate' added to
GithubIssueData Omit list (github sync does not own scheduling)
- services/github/pod-github/src/sync/issues.ts + pullrequests.ts:
AttachedData<Issue|GithubPullRequest> literals
Out of scope (deferred to follow-up PRs):
- UI for Gantt view, drag/resize, dependency editor, critical path
- blockedBy → IssueRelation migration (ships atomically with the writer
redirect in the dependency-UI PR)
- LinkIssues permission (tracker uses forbid-style permissions; needs
maintainer discussion)
- Activity-feed wiring for IssueRelation (needs a producer to test against)
- IssueTemplate.startDate (template propagation semantics undecided)
Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com >
2026-05-18 19:37:45 +00:00
..
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-04-12 12:32:43 +05:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-04-17 11:35:47 +07:00
2026-05-18 01:31:17 +05:00
2026-05-05 15:38:15 +05:00
2026-05-18 01:31:17 +05:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-04-12 13:25:31 +07:00
2026-03-31 10:23:56 +07:00
2026-04-17 11:36:00 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-04-13 11:50:09 +07:00
2026-04-16 15:02:29 +07:00
2026-05-05 18:06:13 +07:00
2026-05-05 18:06:13 +07:00
2026-05-05 14:55:47 +07:00
2026-05-05 15:38:15 +05:00
2026-04-25 18:29:08 +07:00
2026-03-31 10:23:56 +07:00
2026-05-01 21:43:15 +05:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-04-21 20:31:22 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-04-25 18:29:08 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-04-25 18:29:08 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-04-17 11:36:11 +07:00
2026-05-05 15:38:15 +05:00
2026-04-16 14:23:17 +07:00
2026-04-21 20:31:22 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-05-05 18:06:13 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-04-25 18:29:08 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-04-24 11:56:02 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-05-17 14:53:34 +05:00
2026-05-17 20:18:38 +05:00
2026-05-17 14:53:34 +05:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-04-25 18:29:08 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-04-20 13:07:25 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-04-09 14:14:19 +07:00
2026-05-18 01:31:17 +05:00
2026-05-18 01:31:17 +05:00
2026-03-31 10:23:56 +07:00
2026-04-13 00:15:40 +05:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-04-25 18:29:08 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-04-28 20:25:32 +05:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-05-18 19:37:45 +00:00
2026-05-18 19:37:45 +00:00
2026-05-18 19:37:45 +00:00
2026-04-05 14:36:59 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-03-31 10:23:56 +07:00
2026-04-20 13:07:25 +07:00
2026-05-05 15:38:15 +05:00
2026-05-17 20:18:49 +05:00
2026-03-31 10:23:56 +07:00
2026-05-05 15:38:15 +05:00
2026-04-16 15:02:29 +07:00