Commit Graph
4779 Commits
Author SHA1 Message Date
Denis BykhovandGitHub dae5b8aec3 Fix subProcessMatchCheck (#10731)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-04-06 23:28:35 +07:00
Denis BykhovandGitHub 2bc968295d Add automationOnly flag to associations and restrict manual management in UI (#10730)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-04-06 21:32:07 +07:00
Artyom SavchenkoandGitHub ff2adeb8f2 Remove mobile not supported placeholder (#10718)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-04-06 11:21:31 +05:00
Artyom SavchenkoandGitHub 7213711115 qfix: Fix card warnings (#10725)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-04-05 14:44:38 +07:00
Artyom SavchenkoandGitHub ebbad2b557 Fix Mermaid diagram paste (#10714)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-04-05 14:37:31 +07:00
Artyom SavchenkoandGitHub ea254970c0 feat: Add ability to configure guest permissions (#10708)
* Configure guest permissions

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

* Fix permission domain

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

* Fix permission declaration

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

* Fix lock file

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

* Guest permissions

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

* Allow guests to update their own documents

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

* Add modules order

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

* Fix translations, icons

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

* Fix disabled apps and update translations

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

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-04-05 14:36:59 +07:00
Denis BykhovandGitHub 8b5b57563e Add configurable card layout modes (#10724)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-04-05 14:19:36 +07:00
Artyom SavchenkoandGitHub 2a221cef3a Color control documents (#10717)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-04-04 19:38:29 +05:00
Denis BykhovandGitHub 38df5a3cdb Change icons (#10711)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-04-01 16:43:22 +07:00
Artyom SavchenkoandGitHub f47b42b864 Do not log workspace info (#10712)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-04-01 15:19:57 +07:00
Artyom SavchenkoandGitHub efe3d7200a Update employee role on account role change (#10709)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-31 20:21:27 +07:00
V GovindarajanandGitHub 27414dbaae feat: add spellcheck prop to text editor components (#10694)
* feat: add spellcheck prop to text editor components

Add a configurable `spellcheck` boolean prop (default: true) to all
text editor components: TextEditor, CollaborativeTextEditor,
StyledTextEditor, and CollaboratorEditor.

The prop sets the HTML spellcheck attribute on the TipTap editor
element, allowing parent components to disable browser spell checking.
This is useful for users writing in non-English languages where the
default English spell checker produces false positives.

Closes #10623

* fix: format TextEditor.svelte to pass Prettier check

Break long mergeAttributes() line to comply with the project's
Prettier line-length configuration.

Signed-off-by: V Govindarajan <vijay.govindarajan91@gmail.com>

---------

Signed-off-by: V Govindarajan <vijay.govindarajan91@gmail.com>
2026-03-31 16:14:21 +07: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
Artyom SavchenkoandGitHub 2bb87bf441 Do not select space not accessible to the user (#10707)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-30 22:44:00 +05:00
Denis BykhovandGitHub d09f05acb4 Fix view settings (#10706)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-03-30 22:43:47 +05:00
Artyom SavchenkoGitHubCopilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
c3079951a8 Do not handle markdown table as KaTeX (#10699)
* Do not handle markdown table as LATEX

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

* Tighten the math paste criteria

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

* Potential fix for code scanning alert no. 296: Inefficient regular expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Artyom Savchenko <armisav@gmail.com>

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
Signed-off-by: Artyom Savchenko <armisav@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-03-30 17:13:23 +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 bf03302c78 Fix view setting freeze (#10700)
* Fix view setting freeze

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-28 14:16:26 +05:00
Artyom SavchenkoandGitHub 080682995b Allow guest users edit documents created by them (#10695)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-27 13:39:38 +07:00
Artyom SavchenkoGitHubCopilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2b6d065217 Fix markdown links in table (#10688)
* Fix markdown links in table

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

* Potential fix for code scanning alert no. 294: Inefficient regular expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Artyom Savchenko <armisav@gmail.com>

* Add tests

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

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
Signed-off-by: Artyom Savchenko <armisav@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-03-27 11:05:23 +07:00
Artyom SavchenkoandGitHub cc0bf8d030 Fix hyperlink in contoll doc comment (#10690)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-27 11:04:02 +07:00
Denis BykhovandGitHub b932bfd6bf Process middleware fixes (#10687)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-03-26 10:38:34 +07:00
071b7f5329 feat(setting): display version in Help & Support button (#9796) (#10667)
Show the platform version inline on the "Help & Support" navigation
footer button, right-aligned in a subtle style. This follows the
reviewer suggestion to use the existing Help button rather than
adding a separate version label in the settings sidebar.

Signed-off-by: Don Kendall <kendall@donkendall.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 16:49:56 +07:00
Artyom SavchenkoandGitHub 37dda9ed11 Fix markdown link escaping (#10685)
* Fix markdown link escaping

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

* Fix escape

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

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-25 16:32:30 +07:00
Artyom SavchenkoandGitHub 5a9e02e6db Do not display collaboration errors in case of reconnects (#10678)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-25 09:37:26 +07:00
Artyom SavchenkoandGitHub 355b0e70ac Add 15/30 minutes time spent reports (#10675)
* Add 15/30 minutes time spent reports

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

* Set default employee

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

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-24 12:21:48 +07:00
Denis BykhovandGitHub deeb8bb545 Fix view setting bug (#10674)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-03-24 02:15:33 +05: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
Denis BykhovandGitHub a2e3a89132 Fix process card update check for tags (#10671)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-03-23 17:53:32 +05:00
d26924408c Fix message links (#10660)
* Merge with develop

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

* Fix errors

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

* Fix formatting

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

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
Co-authored-by: Kristina <kristin.fefelova@gmail.com>
2026-03-23 14:56:03 +07:00
db2fb631f8 fix(view): "Not Specified" group shows assigned issues (#10606) (#10666)
When grouping by assignee with a secondary grouping (e.g. by Status),
the "Not Specified" category passed `undefined` as the query value.
Since `undefined` is stripped during JSON serialization, the server
received no filter and returned all documents — causing assigned
issues to appear under "Not Specified".

Use `null` instead so the filter survives serialization and correctly
matches only documents where the field is unset.

Fixes #10606

Signed-off-by: Don Kendall <kendall@donkendall.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 12:04:23 +07:00
Denis BykhovandGitHub c800a95b50 Implement persistent table sorting by integrating with view options. (#10665)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-03-22 10:30:54 +07:00
Denis BykhovandGitHub 4ef554b9d2 Two-Factor Authentication (2FA) (#10658)
* Two-Factor Authentication (2FA)

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

* Fix test

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

* Fix test

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

* Fix tests

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

* More test fixes

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

* Fix tests

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

---------

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-03-21 14:36:32 +07:00
f44d88e134 feat(password): email-confirmed password setup for SSO accounts (#10649)
* feat(password): add email-confirmed password setup for SSO accounts

SSO-only accounts (Google, GitHub, OIDC) now have a secure path to add
a password credential without requiring direct session trust.

**Problem:** Previously, password setup for SSO users either required an
existing password (blocking SSO-only users entirely) or would have needed
to trust the session token alone to create a persistent credential — a
security gap where a compromised session could silently add a password.

**Solution:** Email-confirmed flow that reuses the existing recovery
infrastructure:

1. `checkHasPassword` RPC — authenticates via session token, returns
   whether the account has a password hash set (drives UI branching).
2. `requestPasswordSetup` RPC — authenticates via session token, looks up
   the account's verified email social ID, generates a recovery token
   (`restoreEmail` claim), and sends a "Password recovery" email via the
   existing mail service. No DB schema changes.
3. `PasswordRestore.svelte` (unchanged) handles the link click → calls
   the existing `restorePassword` RPC → password is set.

**UI changes** (`Password.svelte`):
- `hasPassword === false` → "Set a password" panel with description and
  "Send setup link" button
- On success → "Check your email for a link to set your password."
- On `SocialIdNotFound` → "No email address is linked to your account."
  with guidance to add one via Account Settings → Manage Identities
- `hasPassword === true` → existing "Change password" form (unchanged)

**Account client:** Added `checkHasPassword()` and
`requestPasswordSetup()` methods to `AccountClientImpl`; both registered
as platform resource functions (`login.function.CheckHasPassword` /
`login.function.RequestPasswordSetup`).

Signed-off-by: Don Kendall <dkendall@ledoweb.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Don Kendall <kendall@donkendall.com>

* test(password): add unit tests for SSO password setup RPCs

ssoPassword.test.ts — 12 tests covering:
- checkHasPassword: returns true/false for hash+salt presence, false for
  partial state (hash-only or salt-only), error for missing account
- changePassword: rejects empty old/new passwords, rejects wrong
  oldPassword (hash mismatch)
- requestPasswordSetup: sends email when email social ID exists, returns
  SocialIdNotFound when no email is linked, handles mail service failures
  gracefully (logs error, does not rethrow)

signupTokenGuard.test.ts — added edge-case for empty-string token to
document current guard behaviour (token != null passes empty string
through; noted as a future hardening opportunity).

Signed-off-by: Don Kendall <dkendall@ledoweb.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Don Kendall <kendall@donkendall.com>

* chore(dev): add dev-local webpack proxy for local Docker compose stack

Adds a `dev-local` CLIENT_TYPE that proxies webpack dev server requests
to a local Docker compose stack (nginx at localhost:8088), following the
same pattern as the existing `dev-server`, `dev-huly`, etc. modes.

Useful for developing frontend changes against a fully running local
backend without needing `huly.local` DNS configuration.

Signed-off-by: Don Kendall <dkendall@ledoweb.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Don Kendall <kendall@donkendall.com>

* feat(email): redesign transactional emails with proper HTML and dedicated password setup template

All account service email templates were bare <p> tags with no styling,
branding, or call-to-action buttons. Replaced with production-quality
HTML emails using email-safe table layout and inline CSS.

Design: Huly wordmark on dark (#18181B) header, white card body, dark
CTA button, subtle border, system font stack. Plain-text versions
updated to match for clients that prefer text.

Templates improved:
- RecoveryHTML/Text — password reset flow
- ConfirmationHTML/Text — email verification on signup
- InviteHTML/Text — workspace invitation
- ResendInviteHTML/Text — re-invitation
- OtpHTML/Text — sign-in code with large monospace code display

New dedicated template for SSO password setup (PasswordSetupHTML/Text/
Subject) so the setup email has copy distinct from forgot-password
recovery. requestPasswordSetup now uses these instead of RecoveryHTML.
Subject: "Set a password for your Huly account".

Other language files updated with the new PasswordSetup* keys
(English copy as fallback — translations can follow separately).

Signed-off-by: Don Kendall <dkendall@ledoweb.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Don Kendall <kendall@donkendall.com>

* fix(password): guard requestPasswordSetup against accounts with existing password

Add server-side check that rejects requestPasswordSetup calls from accounts
that already have a password hash+salt. The setup flow bypasses the
old-password requirement in changePassword, so it must be restricted to
SSO-only accounts. The UI already guards this branch but defence-in-depth
requires the server to enforce it independently.

Also adds JSDoc to requestPasswordSetup and extends unit test coverage:
- TokenError path for checkHasPassword (invalid/expired token)
- BadRequest guard for requestPasswordSetup on password-bearing accounts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Don Kendall <kendall@donkendall.com>

* fix: add missing locale keys and fix eslint/formatting for CI

- Add 5 missing SSO password translation keys to all non-en locale files
  (SetPassword, SSOPasswordDescription, SendSetupLink, SSOPasswordEmailSent,
  SSONoEmailLinked) to fix locale parity test
- Replace non-null assertions with type casts in ssoPassword.test.ts
  to fix @typescript-eslint/no-non-null-assertion errors
- Revert unrelated tracker/github cosmetic changes that triggered
  pre-existing eslint errors in those packages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Don Kendall <kendall@donkendall.com>

* fix: address review — remove dev/prod changes, translate PasswordSetup strings

- Revert dev/prod/webpack.config.js and package.json (per BykhovDenis)
- Translate PasswordSetupText and PasswordSetupSubject for all 10 locales
  (cs, de, es, fr, it, pt-br, pt, ru, tr, zh)
- PasswordSetupHTML stays in English (reviewer approved)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Don Kendall <kendall@donkendall.com>

---------

Signed-off-by: Don Kendall <dkendall@ledoweb.com>
Signed-off-by: Don Kendall <kendall@donkendall.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 03:53:18 +05:00
Artyom SavchenkoandGitHub 982527a364 Allow to add social links if there are no attached messages (#10657)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-20 17:18:45 +07:00
Artyom SavchenkoandGitHub 9bbbc609fc Fix social link save (#10655)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-20 17:18:32 +07:00
Artyom SavchenkoandGitHub c3f9cd04ac Fix intermittent PDF print failures (#10654)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-19 15:55:46 +07:00
b426a42a4f fix(login): guard logIn() behind token check in password signup (#10518) (#10650)
When MAIL_URL is configured the account service intentionally returns
token: undefined to enforce email confirmation before granting access.
SignupForm.svelte was calling logIn() unconditionally, which triggered
PUT /cookie with no Authorization header. The cookie endpoint returned
a 401 whose response body was not parseable as JSON, crashing the client
with "Unexpected token 'N', 'Not Found' is not valid JSON". The account
was created successfully but the user was stuck on the signup page.

- Guard logIn() with `result.token != null`, matching the pattern
  already used in doLoginNavigate() in utils.ts
- Fix PUT /cookie 401 response to use ctx.res.writeHead + ctx.res.end
  with the JSON body inline, consistent with the rest of the file.
  Previously ctx.body was set (Koa pattern) then ctx.res.end() was
  called with no body (raw Node pattern), so the body was never sent.
- Add unit tests for the token guard logic

Fixes #10518

Signed-off-by: Don Kendall <kendall@donkendall.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 14:48:29 +07:00
Artyom SavchenkoandGitHub 195d7dbff2 Reuse default invite settings in link generation (#10651)
* Reuse default invite settings in link generation

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

* Clean up

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

* Capability check

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

* Fix warning

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

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-19 14:35:06 +07:00
Artyom SavchenkoandGitHub dc9744ba12 Fix social ID owner check (#10653)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-19 14:34:48 +07:00
Niels KaspersandGitHub de5de3d2ce fix(tracker): truncate long milestone titles on issue cards (#10646)
* fix(tracker): truncate long milestone titles on issue cards (#9655)

Signed-off-by: Niels Kaspers <kaspersniels@gmail.com>

* style: fix formatting in MilestoneEditor.svelte

Break long div attributes onto separate lines per prettier config.

---------

Signed-off-by: Niels Kaspers <kaspersniels@gmail.com>
2026-03-19 11:10:36 +07:00
2d26c74874 feat(text-editor): add highlight, subscript, superscript and mathematics toolbar actions (#10627)
* feat(text-editor): add highlight action

Signed-off-by: ComputerCrack <github.compacter838@simplelogin.com>

* feat(text-editor): add subscript and superscript actions

Signed-off-by: ComputerCrack <github.compacter838@simplelogin.com>

* feat(text-editor): add mathematics inline and block actions

Signed-off-by: ComputerCrack <github.compacter838@simplelogin.com>

* chore(text-editor): add mathematics and katex dependencies

Signed-off-by: ComputerCrack <github.compacter838@simplelogin.com>

* fix(text-editor): fix eslint strict-boolean-expressions in mathematics extension

Signed-off-by: ComputerCrack <github.compacter838@simplelogin.com>

* fix(text-editor): change max-width of toolbar to display all icons correctly

Signed-off-by: ComputerCrack <github.compacter838@simplelogin.com>

* chore(text-editor): add subscript and superscript as direct dependencies

Signed-off-by: ComputerCrack <github.compacter838@simplelogin.com>

* chore(text-editor): add missing locale keys for new text editor actions [temp, AI-generated]

Adds placeholder translations (English fallback) for Highlight, Subscript,  Superscript, Mathematics, and MathematicsBlock to all non-English locale files. Translations are not reviewed and should be replaced by a native speaker.

Signed-off-by: ComputerCrack <github.compacter838@simplelogin.com>

* fix(text-editor): fix subscript/superscript serialization and extension placement

Signed-off-by: ComputerCrack <github.compacter838@simplelogin.com>

---------

Signed-off-by: ComputerCrack <github.compacter838@simplelogin.com>
Co-authored-by: ComputerCrack <github.compacter838@simplelogin.com>
2026-03-19 09:51:24 +07:00
Artyom SavchenkoandGitHub 83fdb49d23 Fix export translations (#10652)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-19 09:46:53 +07:00
Denis BykhovandGitHub f08d157125 Fix request section visibility and hide card activity for guests (#10641)
* move RequestsCardSection visibility check into the component.

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

* Hide card activity for guests

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-16 21:31:41 +07:00
Denis BykhovandGitHub 662fe5265a Reset id (#10643)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2026-03-16 21:31:08 +07:00
Artyom SavchenkoandGitHub c0d9f64f8d Load RefTo fields in markdown table (#10642)
* Load RefTo fields in markdown table

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

* Fix Polynomial regexp

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

* Fix formatting

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

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-16 20:00:58 +07:00
Artyom SavchenkoandGitHub f7256a44b4 User should be able to see only own training results (#10629)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-12 21:18:03 +07:00
Artyom SavchenkoandGitHub 8a3269248d Make issues read-only for guests (#10595)
* Make issues read-only for guests

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

* Fix validation

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

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-12 14:01:42 +07:00