[GH-ISSUE #7017] Enforce architectural boundary: sync-server should not import from loot-core #52071

Closed
opened 2026-04-30 20:14:38 -05:00 by GiteaMirror · 1 comment
Owner

Originally created by @coderabbitai[bot] on GitHub (Feb 18, 2026).
Original GitHub issue: https://github.com/actualbudget/actual/issues/7017

Originally assigned to: @MatissJanis on GitHub.

Context

As identified in PR #6954 (https://github.com/actualbudget/actual/pull/6954), the sync-server package is currently able to import from loot-core, which violates the intended architectural boundary.

Problem

The sync-server is designed to be currency agnostic and independent from loot-core. However:

PR #6954 added loot-core as a workspace dependency in packages/sync-server/package.json

The build system does not currently prevent or warn about these cross-package imports

Proposed Solution

Remove the global "paths": https://github.com/actualbudget/actual/blob/master/tsconfig.json#L32:L39

Instead rely on yarn workspaces providing the resolution. Only use "paths" for inter-project aliases. But these are not cross-project aliases (i.e. sync-server should not have an alias for loot-core)

Originally created by @coderabbitai[bot] on GitHub (Feb 18, 2026). Original GitHub issue: https://github.com/actualbudget/actual/issues/7017 Originally assigned to: @MatissJanis on GitHub. ## Context As identified in PR #6954 (https://github.com/actualbudget/actual/pull/6954), the sync-server package is currently able to import from loot-core, which violates the intended architectural boundary. ## Problem The sync-server is designed to be currency agnostic and independent from loot-core. However: PR #6954 added `loot-core` as a workspace dependency in `packages/sync-server/package.json` The build system does not currently prevent or warn about these cross-package imports ## Proposed Solution Remove the global "paths": https://github.com/actualbudget/actual/blob/master/tsconfig.json#L32:L39 Instead rely on yarn workspaces providing the resolution. Only use "paths" for inter-project aliases. But these are not cross-project aliases (i.e. `sync-server` should not have an alias for `loot-core`) ## Related - Reported by: @MatissJanis - Context PR: #6954 - Comment: https://github.com/actualbudget/actual/pull/6954
GiteaMirror added the tech debt label 2026-04-30 20:14:38 -05:00
Author
Owner

@MatissJanis commented on GitHub (Feb 18, 2026):

Depends on: https://github.com/actualbudget/actual/issues/6309

<!-- gh-comment-id:3923228246 --> @MatissJanis commented on GitHub (Feb 18, 2026): Depends on: https://github.com/actualbudget/actual/issues/6309
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#52071