639 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
Alexander OnnikovandGitHub 4c5d2d578e fix: use -webkit-user-select for text selection on Safari (#10982)
Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2026-07-17 16:44:09 +07:00
Artyom SavchenkoandGitHub cfa72c2dac Limit files upload (#10878)
* Limit files upload

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

* Max size limit

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

* Add storage usage and adjust styles

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

* Use mb for file size limit

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

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-06-16 15:20:48 +07:00
Artyom SavchenkoandGitHub 4beee5c914 Update dark theme (#10728)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-04-06 23:28:57 +07:00
Alexander OnnikovandGitHub 70895d7338 fix: proper mermaid diagram size (#10487)
Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2026-02-05 09:21:52 +07:00
Alexander OnnikovandGitHub a59c5d0cb0 fix: allow to open mermaid diagram in fullscreen (#10477)
* fix: allow to open mermaid diagram in fullscreen

* fix large diagram scroll

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

---------

Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2026-02-03 16:52:36 +07:00
Artyom SavchenkoandGitHub 68db02a634 Improve headers legibility (#10473)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-02-03 10:59:18 +07:00
Alexander OnnikovandGitHub 5d1038a858 fix: adjust table print styles (#10322)
* fix: adjust editor heading indents

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

* fix: print table borders and background

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

---------

Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2025-12-22 09:43:50 +07:00
Alexander OnnikovandGitHub 43098b3fe9 fix table issues (#10207)
Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2025-11-13 16:43:47 +07:00
Artyom SavchenkoandGitHub 6a5a7ea650 Display upgrade plan button if limit is reached (#10175) 2025-10-31 11:01:14 +07:00
Artyom SavchenkoandGitHub 5182f6b310 Support telegram reconnect (#10039)
* Support telegram reconnect

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

* Fix integration enable

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

* Fix refresh

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

* Update lock

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

* Fix version mismatch

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

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2025-10-13 15:24:14 +07:00
Alexey ZinovievandGitHub c6828a48f9 Chore: use modern api sass (#10070)
Signed-off-by: Alexey Zinoviev <alexey.zinoviev@xored.com>
2025-10-12 22:39:43 +07:00
KristinaandGitHub 136ce0fb90 Show emojis in mentions (#10034)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
2025-10-06 19:17:59 +04:00
Alexey ZinovievandGitHub 21d5a80fc9 Qfix: use css var for calendar zone bg color (#10013)
Signed-off-by: Alexey Zinoviev <alexey.zinoviev@xored.com>
2025-10-03 00:33:19 +05:00
Andrey SobolevandGitHub 332930349b qfix: Use natural mermaid diagram width and scroll (#10006)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2025-10-02 23:35:49 +07:00
Artyom SavchenkoandGitHub 3195af9934 Fix modal layout (#9980)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2025-09-30 18:38:19 +07:00
Artyom SavchenkoandGitHub a3ca05dede Fix layout for new card popup (#9964)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2025-09-29 10:16:17 +07:00
Alexander OnnikovandGitHub d67278c5fe fix: use auto image aspect ratio in text editor (#9953)
Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2025-09-26 22:13:01 +05:00
Denis BykhovandGitHub c527955cab Fix process ui (#9898)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2025-09-21 01:45:31 +07:00
Denis BykhovandGitHub a7afa2b1dc Rework todo result (#9893) 2025-09-19 10:41:21 +07:00
Anton AlexeyevandGitHub ab0ee7388d Emoji improvements (#9730)
* Add Noto Color emojis

Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>

* Fix custom emojis in the new chat

Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>

* Rollback unnecessary changes

Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>

* Fix return type

Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>

* Load emoji function in the top level component

Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>

* Fix detection of messages with emojis only

Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>

* Fix formatting

Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>

* Move parseEmojisFunction to the plugin

Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>

---------

Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>
2025-09-09 12:34:38 +07:00
KristinaandGitHub 5d9f62d178 Init home page (#9735)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
2025-08-29 10:33:31 +04:00
Denis 'GeneralGDA' GladkiyandGitHub 84431f7c6b Drawing board undo/redo and bug fixes (#9726)
* Undo-redo for screenshot drawer, several bugfixes.

Signed-off-by: Denis Gladkiy <denis.gladkiy@hardcoreeng.com>

* Undo-redo for collaborative drawer.

Signed-off-by: Denis Gladkiy <denis.gladkiy@hardcoreeng.com>

* Drawing board refinement: bugfixes, component refactoring and unit testing

Signed-off-by: Denis Gladkiy <denis.gladkiy@hardcoreeng.com>

* More tests, canvas resize fix, types for different points

Signed-off-by: Denis Gladkiy <denis.gladkiy@hardcoreeng.com>

* Version lock

Signed-off-by: Denis Gladkiy <denis.gladkiy@hardcoreeng.com>

* Names refactoring

Signed-off-by: Denis Gladkiy <denis.gladkiy@hardcoreeng.com>

* Formatting

Signed-off-by: Denis Gladkiy <denis.gladkiy@hardcoreeng.com>

* Formatting

Signed-off-by: Denis Gladkiy <denis.gladkiy@hardcoreeng.com>

---------

Signed-off-by: Denis Gladkiy <denis.gladkiy@hardcoreeng.com>
2025-08-28 11:54:27 +06:00
KristinaandGitHub b618b3c42f Init directs (#9715)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
2025-08-25 14:36:59 +07:00
Alexander PlatovandGitHub 6933c99f01 Fixes display of custom attributes in ListView (#9639) 2025-08-05 09:19:04 +07:00
Artyom SavchenkoandGitHub 7e92c12073 UBERF-11414: Integrations (#9610)
* UBERF-11414: Use common integration kind

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

* UBERF-11414: Allow multiple gmail

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

* UBERF-11414: Merge with develop

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

* UBERF-11414: Refactor integration kinds

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

* UBERF-11414: Add integrations package

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

* UBERF-11414: Integrations

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

* UBERF-11414: Integration state and config

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

* UBERF-11414: Add integration events

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

* UBERF-11414: Refresh integration states

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

* UBERF-11414: Rename to integration-client

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

* UBERF-11414: Add filter button

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

* UBERF-11414: Add translations for filters

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

* UBERF-11414: Synced channels count

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

* UBERF-11414: Actions

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

* UBERF-11414: Add isLoading for connect

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

* UBERF-11414: Create connection and integration

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

* UBERF-11414: Use social id from hulygram

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

* UBERF-11414: Remove old integrations

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

* UBERF-11414: Gmail state

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

* UBERF-11414: Gmail state and disconnect all handler

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

* UBERF-11414: Add tests

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

* UBERF-11414: Formatting

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

* UBERF-11414: Gmail sync state

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

* UBERF-11414: Fix rush check

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

* UBERF-11414: Fix gmail tests

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

* UBERF-11414: Fix calendar actions and config

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

* UBERF-11414: Calendar state

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

* UBERF-11414: Access config

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

* UBERF-11414: Github integration state

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

* UBERF-11414: Fix svelte errors

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

* UBERF-11414: Fix formatting

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

* UBERF-11414: Fix typos

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

* UBERF-11414: Fix validate

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

* UBERF-11414: Fix translations

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

* UBERF-11414: Retry on network issues

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

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2025-08-04 15:14:06 +07:00
Alexander OnnikovandGitHub 23b1e8b9b4 fix: use the same hr style in editor and preview (#9574)
Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2025-07-21 14:41:10 +07:00
Denis 'GeneralGDA' GladkiyandGitHub cde9d062be Windows app title bar menu. (#9542)
Signed-off-by: Denis Gladkiy <denis.gladkiy@hardcoreeng.com>
2025-07-16 13:02:04 +07:00
Alexander PlatovandGitHub 89d8a6fd03 Auto-maximize attached files on open (#9472)
Signed-off-by: Alexander Platov <alexander.platov@hardcoreeng.com>
2025-07-05 11:33:21 +07:00
Anton AlexeyevandGitHub 5eccbe6464 Readonly fixes (#9407)
Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>
2025-06-30 16:23:34 +07:00
Alexander PlatovandGitHub d98b8e3876 Updated layout of the Card header (#9234)
Signed-off-by: Alexander Platov <alexander.platov@hardcoreeng.com>
2025-06-16 12:31:43 +04:00
Alexander PlatovandGitHub 6e7573d8dd qFix: ListView, Table (#9213)
Signed-off-by: Alexander Platov <alexander.platov@hardcoreeng.com>
2025-06-12 22:51:27 +07:00
Alexander PlatovandGitHub f1c76f6846 Updated CardPresenter layout. Table, ListView fixes. (#9197) 2025-06-10 08:57:59 +07:00
KristinaandGitHub cd1a25bf52 Inbox UI & chat fixes (#9165)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
2025-06-04 12:35:05 +07:00
Alexander OnnikovandGitHub a9cc6fef61 UBERF-9731 Rework loom ui (#9113)
Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2025-05-28 00:32:11 +07:00
Alexander PlatovandGitHub 46f56778cf Updated List layout (#9088)
Signed-off-by: Alexander Platov <alexander.platov@hardcoreeng.com>
2025-05-26 16:19:58 +04:00
KristinaandGitHub ee97398277 Add favorite/starred cards (#9006)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
2025-05-21 12:48:47 +07:00
Victor IlyushchenkoandGitHub 007b11c9df Support for embedding links and references in text editor (#9003)
Signed-off-by: Victor Ilyushchenko <alt13ri@gmail.com>
2025-05-21 11:45:08 +07:00
Alexander PlatovandGitHub 5f63ee7a99 Fixed the mouse pointer over the Avatar (#9000) 2025-05-21 08:23:03 +07:00
42865885c3 Add fixes for new chat/inbox (#8984)
* Add chat fixes

Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>

* Update pnpm

Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>

* Freeze chat if app out of focus, add reaction notification, add inbox clearing

Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>

* Read reactions notifications

Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>

* Fix format

Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>

* Update packages/ui-next/src/components/message/MessageInput.svelte

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Kristina <kristin.fefelova@gmail.com>

* Update packages/ui-next/src/components/message/MessageInput.svelte

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Kristina <kristin.fefelova@gmail.com>

* Fix processes section

Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>

---------

Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
Signed-off-by: Kristina <kristin.fefelova@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-19 17:04:27 +07:00
Alexander OnnikovandGitHub 132e94588f UBERF-10759 Adjust share button styles (#8928)
Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2025-05-14 19:00:07 +07:00
Victor IlyushchenkoandGitHub 5d042c5cd3 QFix: updated color for disabled mentions (#8918)
Signed-off-by: Victor Ilyushchenko <alt13ri@gmail.com>
2025-05-14 12:51:01 +07:00
Anton AlexeyevandGitHub b0c30707d6 Emoji node (#8871)
Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>
2025-05-13 14:19:14 +07:00
KristinaandGitHub 7809b1d524 Card & messages UI changes (#8876)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
2025-05-08 14:12:09 +07:00
Alexander PlatovandGitHub 39b17147ae LOVE: updated ParticipantView (#8811) 2025-05-02 21:24:21 +07:00
Alexander PlatovandGitHub 31e1b31912 UBERF-10417: corrected red and green colors, icons (#8808) 2025-05-02 12:31:39 +07:00
Alexander OnnikovandGitHub 8a9e04b8d4 UBERF-9731 Recorder initial version (#8800)
* UBERF-9731 Recorder initial version

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

* fix: rush validate issues

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

---------

Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2025-05-01 23:46:35 +07:00
Victor IlyushchenkoandGitHub 3c4057ed89 QFix: added appropriate styling for unavailable mentions (#8803)
Signed-off-by: Victor Ilyushchenko <alt13ri@gmail.com>
2025-05-01 22:59:47 +07:00
Alexander PlatovandGitHub 3ffce26d51 Removed hyphenation in links (#8754) 2025-04-29 08:39:47 +07:00
Alexander OnnikovandGitHub 54df8dcf4b fix: adjust media popup styles (#8724) 2025-04-28 19:54:20 +07:00