Web core alias stabilization report
Date: 2026-03-06
Scope
Stabilization of apps/web resolution for and .
Resolving locale, route permissions, and workspace projection.
Current scope: Guest
Category: 90_stabilization | Version: v1.0.0
Owner: DOCUMENT_CUSTODIAN | Review cycle: 90 days
Approval authority: Unspecified
Documentation portal is read-only. Editing and mutation endpoints are disabled.
Kvary platform is originally created in Georgian. Where a Georgian version exists, Georgian is authoritative for platform UI, documentation, and legal interpretation.
Translations into other languages are provided for convenience. Some records may originate in other languages and carry their own source or legal locale for a specific flow, but where a Georgian version is available, the Georgian version prevails for platform-level wording and interpretation.
Metadata incomplete: Document ID, Version, Status, Owner Role, Last Review Date, Next Review Date, Change Log
Date: 2026-03-06
Stabilization of apps/web resolution for and .
@kvary/core@kvary/core/*Files analyzed:
apps/web/tsconfig.jsonapps/web/next.config.jstsconfig.jsonapps/web/tsconfig.json had raw workspace source mappings:
@kvary/core/governance -> ../../packages/core/governance/index.ts@kvary/core/* -> ../../packages/core/*This meant web type resolution depended on the source layout of packages/core, not on the package boundary or package exports.
apps/web/next.config.js had explicit source aliases:
@kvary/core -> ../../packages/core@kvary/core -> ../../packages/coreThis meant runtime/bundler resolution also bypassed package exports and depended on raw workspace layout.
Root tsconfig.json still contains:
@kvary/core/governance -> packages/core/governance/index.ts@kvary/core/* -> packages/core/*That file is not consumed by apps/web/tsconfig.json via extends, so it does not control the web app directly in this step.
| Consumer | Import path | Previous resolution | Current resolution | Classification |
| --- | --- | --- | --- | --- |
| apps/web/src/app/[locale]/(portal)/kes/HashVerificationPanel.tsx | @kvary/core/governance | TS path + Next alias to source | package export to packages/core/dist/governance/index.d.ts | PACKAGE_EXPORT_RESOLUTION |
| apps/web/src/app/[locale]/(portal)/kes/SigningSlotPanel.tsx | @kvary/core/governance | TS path + Next alias to source | package export to packages/core/dist/governance/index.d.ts | PACKAGE_EXPORT_RESOLUTION |
| apps/web/src/app/[locale]/(portal)/kes/page.tsx | @kvary/core/governance | TS path + Next alias to source | package export to packages/core/dist/governance/index.d.ts | PACKAGE_EXPORT_RESOLUTION |
| apps/web/src/app/[locale]/[country]/(portal)/kes/HashVerificationPanel.tsx | @kvary/core/governance | TS path + Next alias to source | package export to packages/core/dist/governance/index.d.ts | PACKAGE_EXPORT_RESOLUTION |
| apps/web/src/app/[locale]/[country]/(portal)/kes/SigningSlotPanel.tsx | @kvary/core/governance | TS path + Next alias to source | package export to packages/core/dist/governance/index.d.ts | PACKAGE_EXPORT_RESOLUTION |
| apps/web/src/app/[locale]/[country]/(portal)/kes/page.tsx | @kvary/core/governance | TS path + Next alias to source | package export to packages/core/dist/governance/index.d.ts | PACKAGE_EXPORT_RESOLUTION |
Minimal safe change only:
@kvary/core path mappings from apps/web/tsconfig.json@kvary/core webpack/turbopack aliases from apps/web/next.config.jsWhat remained intentionally unchanged:
transpilePackages: ["@kvary/core", "@kvary/ai-layer", "@kvary/memory-layer"]@kvary/ai-layer source aliasing@kvary/memory-layer source aliasing@ aliasRationale:
@kvary/core now has explicit subpath exports and a dist buildtranspilePackages is enough to keep Next aware of the workspace package@kvary/core alias/path mapping reduces coupling without broadening risk to other packagesExecuted from apps/web:
npm exec -- node -e "import('@kvary/core/governance')..."
npm exec -- node -e "import('@kvary/core/governance/types')..."
Results:
@kvary/core/governance resolved successfully@kvary/core/governance/types resolved successfullyExecuted:
npm exec -- tsc -p apps/web/tsconfig.json --noEmit --traceResolution
Relevant result:
@kvary/core/governance resolves through node_modules/@kvary/core/package.jsonpackages/core/dist/governance/index.d.ts../../packages/core/governance/index.tsThis is the key stabilization result for web.
The full apps/web TypeScript check still fails, but on unrelated tenders-page style typing issues:
apps/web/src/app/[locale]/(portal)/tenders/page.tsxapps/web/src/app/[locale]/[country]/(portal)/tenders/page.tsxNo @kvary/core module-resolution errors were observed in the trace for the web KES consumers.
Root tsconfig.json still contains raw @kvary/core/* source mappings
apps/web now@kvary/ai-layer and @kvary/memory-layer in apps/web
Full Next runtime/dev server was not restarted in this step
tsconfig.json raw @kvary/core/* mapping reviewapps/web resolution review for @kvary/ai-layer and @kvary/memory-layerpackages/core/*.js strict-delete pass after remaining non-web/manual clusters are stabilized