704 Commits
Author SHA1 Message Date
63e28dc964 feat(tracker): Gantt chart for the issue tracker (#10992)
* feat(tracker): Gantt chart for the issue tracker

Builds on the merged search/filter rework (#10998). Introduces @hcengineering/gantt, a dependency-free scheduling/zoom/drag/viewport engine package (with a neutral GanttDependency contract), and wires the tracker-specific adapter, Svelte UI, model schema, dependency-shift notifications and sanity coverage in tracker-resources.

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>

* fix(tracker): source Gantt holidays from HR and scope confirm-gate per view

Follow-up to review feedback on #10992:

- Confirm-gate: the module-global flag is replaced by a createConfirmGate()
  factory - one instance per mounted GanttView, so two Gantt views mounted at
  once in the same JS context no longer block each other's pointer input. A
  two-instance independence test guards the regression.

- Sidebar sorting: the stale deadline cast is dropped and issue.deadline is
  read directly (the field was added to the Issue model in this PR).

- HR holidays: the per-project WorkingDaysConfig.holidays field duplicated the
  workspace-wide hr.class.PublicHoliday concept and could drift from the real
  HR calendar. It is removed. WorkingDaysConfig now carries only the weekday
  mask and an optional holidayDepartment. The tracker adapter resolves holidays
  for the selected department plus all ancestors up to hr.ids.Head, matching
  HR's existing inheritance semantics (hr-resources ScheduleView). A missing or
  invalid reference falls back to company-wide (root) holidays; unrelated
  departments are never included. The ancestor walk is cycle/missing-parent
  safe.

  A small WorkingDaysEditor in the existing project create/edit dialog lets
  users with the existing project permission enable the mode, choose weekdays,
  and select an HR department (default: Company-wide). It persists through the
  existing project create/update transaction paths (createDoc on create,
  client.update on edit) and uses $unset when the mode is disabled. At least
  one working day must stay active.

  Calendar loading is explicit via a CalendarStateMachine: project-scoped drag,
  resize, cascade, keyboard-shift and auto-schedule mutations stay disabled
  until both the project config and the holiday data have loaded. A monotonic
  generation ticket (bumped synchronously on project switch) is re-checked
  immediately before every calendar-dependent date commit, so work started in
  one project can never persist after a switch to another. The all-projects
  view has no single project calendar, so calendar-dependent edits are
  read-only there; display, selection, the context menu and the manual
  date-picker (which does no calendar arithmetic and takes no mutation ticket)
  stay available.

  This depends on the lightweight @hcengineering/hr model package, but not on
  hr-resources; the tracker adapter uses hr.class.* and hr.ids.Head at runtime,
  and actual HR model presence is checked through the hierarchy - without the
  HR model, holidays resolve to an empty set. The @hcengineering/gantt engine
  package stays domain-neutral (no @hcengineering imports, no runtime deps).

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>

* fix(gantt): measure FS gap-preservation floor in working days

The finish-to-start gap-preservation floor in the cascade scheduler mixed
two time measures: the FS snap anchor is working-calendar aware, but the
floor added a raw calendar-millisecond start-side delta. With an active
working calendar the two diverge, so dragging a predecessor over a weekend
over-shifted the successor across non-working days (a Fri->Mon body drag is
3 calendar days but only 1 working day, and could even land a successor on
a Saturday).

Measure the floor on the DUE side in working days instead: translate the
predecessor's shift via the new workingDayDelta helper and advance the
floor base with addWorkingDays over the calendar. A day-granular resize
gate (utcMidnight comparison, not a raw === 0 test) arms the floor only on
a start-DAY move, so a pure due-resize stays a pure snap even when the
stored issue carries a time-of-day on the cascade-commit path. The floor
base is normalized via utcMidnight(targetAnchor). The legacy path
(cfg === undefined) stays byte-identical to today's raw-ms floor. A
left-resize in working-days mode now correctly no-ops the floor (the due,
and thus the FS gap, did not move) instead of shifting on the raw start
delta.

Engine: add workingDayDelta (signed, half-open from-exclusive/to-inclusive
working-day step count) and export the previously-private utcMidnight from
packages/gantt/src/working-days.ts. The engine stays domain-neutral (no
@hcengineering imports, empty dependencies).

Adds engine and adapter test coverage: workingDayDelta cases and the full
FS floor matrix (right-resize no-push, weekend-spanner body drag, floor
wins over snap, holiday in the floor path, floor-dominant multi-hop chain,
negative delta, legacy no-cfg, SS pure-snap, raw time-of-day right-resize,
direct left-resize).

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>

---------

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>
Co-authored-by: Michael Uray <michaeluray@users.noreply.github.com>
2026-08-27 20:24:38 +07:00
Denis BykhovandGitHub c36dd74fef Add AllMatchValue function and related updates across multiple files (#10990)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-07-21 20:51:02 +05:00
Alexander OnnikovandGitHub 21dfcf0774 fix: allow inactive members in departments (#10983)
Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2026-07-17 16:43:14 +07:00
Alexander OnnikovandGitHub 293bc91888 fix: proper hr members update (#10977)
Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2026-07-14 17:28:54 +07:00
Artyom SavchenkoandGitHub dfe7d3d17c feat: Add ability to schedule notifications (#10789)
* feat: Add ability to schedule notifications

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Clean up

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Clean up

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Add docker file

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Rename pod

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Add debug logging

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Reminder fixes

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix reminders

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Support reminders for all events

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Clean up

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Support for project todo

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix mismatched dependency

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Use base event class

Signed-off-by: Artem Savchenko <armisav@gmail.com>

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-07-06 11:30:21 +05:00
Denis BykhovandGitHub 5c48abda35 feat: add viewlet integration and update attribute handling in various components (#10957)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-07-05 22:04:21 +05:00
Denis BykhovandGitHub bede9c184f fix: handle missing card in CreateToDo function (#10952)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-07-04 00:03:58 +05:00
Denis BykhovandGitHub ae3b7f6216 feat: add OnExecutionDone trigger and related functionality for proce… (#10944)
* feat: add OnExecutionDone trigger and related functionality for process management

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

* Fix

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

---------

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-07-02 04:14:58 +05:00
Denis BykhovandGitHub 1145f17928 WhenRequiredFieldsFilled (#10937)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-06-30 14:46:40 +05:00
Denis BykhovandGitHub 8241db769a fix: use getOwnAttributes for mixins when resolving required fields in process-resources (#10936)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-06-28 18:42:48 +05:00
Denis BykhovandGitHub d81e3a35c0 Todo required fields (#10934)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-06-28 10:30:59 +05:00
Denis BykhovandGitHub b32ff0f46a Required attributes (#10918)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-06-22 12:53:11 +05:00
Denis BykhovandGitHub be5d41cecc Slots (#10897)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-06-03 03:52:47 +05:00
Denis BykhovandGitHub 23faf14cca Card version settings (#10843)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-05-17 14:53:34 +05:00
Denis BykhovandGitHub 81ffbd3678 Fix markup check (#10836)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-05-10 21:51:01 +05:00
Denis BykhovandGitHub 15aa8fb7b0 add readonly support to MarkupEditor and improve hierarchy-based attr… (#10835)
* add readonly support to MarkupEditor and improve hierarchy-based attribute resolution and locking logic

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

* perf: implement caching for card lookups in process-resources functions

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

* refactor: update TagSelector to use tag IDs in selection set and optimize hierarchy access

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

---------

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-05-10 18:40:56 +05:00
Denis BykhovandGitHub b26f093c42 support bulk association creation (#10818)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-05-04 11:42:35 +05:00
Denis BykhovandGitHub c6738a02cb markup check filled (#10817)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-05-03 15:53:23 +05:00
Denis BykhovandGitHub 37f5f77f1a feat: add StringFromEnum and EnumFromString process functions (#10806)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-04-28 19:21:10 +05:00
Denis BykhovandGitHub d2591a1e71 Markup properties (#10804)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-04-27 13:46:08 +05:00
Denis BykhovandGitHub add2a8a228 feat: add trigger to remove associated execution data when a card is deleted (#10795)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-04-22 22:45:55 +05:00
Denis BykhovandGitHub 6370f0c693 run_process_backend (#10791)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-04-21 16:28:29 +05:00
Denis BykhovandGitHub b9657d53d1 Add min and max transformation functions (#10782)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-04-19 02:29:55 +05:00
Denis BykhovandGitHub 844feae395 EmptyValue process function (#10756)
* EmptyValue process function

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

* Fix formatting

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

---------

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-04-13 11:50:09 +07:00
Artyom SavchenkoandGitHub ac1553bd38 feat: Guest auto-join (#10751)
* feat: Guest auto-join

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix tests

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Revert "Fix tests"

This reverts commit e3b7c7425f.

* Update tests

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Clean up

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Clean up

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Minor fixes

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Clean up

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Temp ignore test

Signed-off-by: Artem Savchenko <armisav@gmail.com>

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-04-12 13:25:31 +07:00
Denis BykhovandGitHub c93b9c28ff implement auto-start logic for processes when creating new card versions (#10747)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-04-12 00:20:16 +05:00
cc16352be9 Sync with foundations packages (#10703)
* fix: redesign and compact

Signed-off-by: Leonid Kaganov <lleo@lleo.me>

* fix: comments

Signed-off-by: Leonid Kaganov <lleo@lleo.me>

* fix: correctly dropping connections in timeout

Signed-off-by: Leonid Kaganov <lleo@lleo.me>

* feature: loglevel in config

Signed-off-by: Leonid Kaganov <lleo@lleo.me>

* fix: loglevel in config

Signed-off-by: Leonid Kaganov <lleo@lleo.me>

* features lopt: direct personal messages between websockets by username

Signed-off-by: Leonid Kaganov <lleo@lleo.me>

* fix collaborator security query

Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>

* Fix svelte warnings

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Change log

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Add workspace permissions enum

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Add changelog

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Permission methods

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Update core and account versions

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix  predicate

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Add changelog

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix object clone

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Bump and add changelog

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix exception in getTypeOf

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Disable changelog check

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix failed to fetch errors in account client

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Clean up

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Support in-memory mode for hulypulse

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Update platform-rig

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Comment change log verification

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Update pnpm lock

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Sync with foundation

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Update platform-rig

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Sync with foundation and bump versions

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Sync with foundations

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Update and increment versions

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Skip change log verification

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix hulypulse connections

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix formatting and ci

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix validation warnings

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix formatting

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix validation

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix pnpm lock

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Update versions

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Update hulypulse version

Signed-off-by: Artem Savchenko <armisav@gmail.com>

---------

Signed-off-by: Leonid Kaganov <lleo@lleo.me>
Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
Signed-off-by: Artem Savchenko <armisav@gmail.com>
Co-authored-by: Leonid Kaganov <lleo@lleo.me>
Co-authored-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2026-03-31 10:23:56 +07:00
Denis BykhovandGitHub 9d4e14cb70 Process minor fixes (#10704)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-03-29 15:49:08 +05:00
Denis BykhovandGitHub 0e3cfbd949 Section locking (#10702)
* implement section locking functionality with role-based access control

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

* Fix formatting

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

* Add translations

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

---------

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-03-28 19:35:37 +07:00
Denis BykhovandGitHub 12d77c8194 Fix filter removed attribute from viewlet (#10701)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-03-28 18:38:42 +07:00
Denis BykhovandGitHub 371c4b1465 Fix todo reassign (#10693)
* Correctly user reassignment target by handling mixins.

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

* Fix formatting

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

---------

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-03-27 11:04:52 +07:00
Denis BykhovandGitHub 31246a11a0 Add date difference calculation functionality (#10673)
* Add date difference calculation functionality

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

* Fix

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

* Fix formatting

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

---------

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-03-24 00:49:55 +05:00
Denis BykhovandGitHub 6f14b3d73a feat: Add new process functions for data type conversion, including s… (#10670)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-03-23 17:56:05 +05:00
Artyom SavchenkoandGitHub cad04875f7 Add notifications for reviewed documents (#10601)
* Send notification when document reviewed

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Clean up

Signed-off-by: Artem Savchenko <armisav@gmail.com>

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-10 10:25:46 +07:00
Denis BykhovandGitHub e778a2748b feat: implement field locking and unlocking functionality, including UI, backend logic, and i18n. (#10573)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-03-01 00:42:00 +05:00
Denis BykhovandGitHub 33d8d500f3 feat: Implement FieldChangedRollback to revert document updates in … (#10572)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-03-01 00:41:19 +05:00
Denis BykhovandGitHub c1b8e77e16 Fix process (#10571)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-02-28 20:11:26 +05:00
Denis BykhovandGitHub 7ab3c00fa5 Fix prrocess user input (#10570)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-02-28 11:51:22 +05:00
Denis BykhovandGitHub 5752b827d5 Action types for approval requests, enable field synchronization for … (#10565)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-02-27 05:31:05 +05:00
Denis BykhovandGitHub b116e711f8 Add tag process fixes (#10561)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-02-26 14:46:19 +05:00
Denis BykhovandGitHub 93bce6207b Worker fixes (#10562)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-02-26 14:46:09 +05:00
Denis BykhovandGitHub d32e7b2f87 Time service (#10546)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-02-25 15:20:46 +05:00
Denis BykhovandGitHub c15060afb0 Fix fieldChangesCheck (#10550)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-02-25 01:04:07 +05:00
Denis BykhovandGitHub 8e32b26c17 Fix process (#10543)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-02-23 00:32:13 +05:00
Denis BykhovandGitHub d51b68683a Process fixes (#10541)
* Process fixes

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

* Some fixes

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

---------

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-02-22 19:19:54 +07:00
Denis BykhovandGitHub bb6d4c74e9 feat: Implement CancelSubProcess action, fix process execution flow. (#10530)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-02-20 10:23:03 +07:00
Denis BykhovandGitHub feb76fcafa feat: Implement process import/export functionality, enhance process … (#10528)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-02-19 14:41:51 +05:00
Denis BykhovandGitHub 8484b37395 Card email notifications (#10509)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-02-16 16:08:31 +07:00
Denis BykhovandGitHub b572b0440d Cancel todo action (#10508)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-02-16 16:08:14 +07:00
Artyom SavchenkoandGitHub 55eb570884 Fix email notifications for export (#10506)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-02-13 15:32:10 +05:00