Core subpath consumer validation report
Date: 2026-03-06
Scope
Safe validation and normalization pass for consumers.
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
Safe validation and normalization pass for consumers.
@kvary/core/*This step does not delete any packages/core/*.js files.
| Cluster | Consumer file | Import path | Imported symbols | Runtime context | Risk level | Classification |
| --- | --- | --- | --- | --- | --- | --- |
| governance | apps/web/src/app/[locale]/(portal)/kes/HashVerificationPanel.tsx | @kvary/core/governance | IntegrityStatus, KESState | web | medium | NEEDS_EXPORT_ADJUSTMENT |
| governance | apps/web/src/app/[locale]/(portal)/kes/SigningSlotPanel.tsx | @kvary/core/governance | KESState | web | medium | NEEDS_EXPORT_ADJUSTMENT |
| governance | apps/web/src/app/[locale]/(portal)/kes/page.tsx | @kvary/core/governance | governance helpers/types | web | medium | NEEDS_EXPORT_ADJUSTMENT |
| governance | apps/web/src/app/[locale]/[country]/(portal)/kes/HashVerificationPanel.tsx | @kvary/core/governance | IntegrityStatus, KESState | web | medium | NEEDS_EXPORT_ADJUSTMENT |
| governance | apps/web/src/app/[locale]/[country]/(portal)/kes/SigningSlotPanel.tsx | @kvary/core/governance | KESState | web | medium | NEEDS_EXPORT_ADJUSTMENT |
| governance | apps/web/src/app/[locale]/[country]/(portal)/kes/page.tsx | @kvary/core/governance | governance helpers/types | web | medium | NEEDS_EXPORT_ADJUSTMENT |
| governance | services/api/src/tenders/engine.ts | @kvary/core/governance/appendGovernanceRecord, @kvary/core/governance/types | appendGovernanceRecord, GovernanceRecordV1 | service | low | NEEDS_EXPORT_ADJUSTMENT |
| governance | services/api/src/auctions/engine.ts | @kvary/core/governance/appendGovernanceRecord, @kvary/core/governance/types | appendGovernanceRecord, GovernanceRecordV1 | service | low | NEEDS_EXPORT_ADJUSTMENT |
| governance | services/api/src/governance/buildSubjectSnapshot.ts | @kvary/core/governance/types | GovernanceRecordV1 | service | low | NEEDS_EXPORT_ADJUSTMENT |
| governance | services/api/src/state/inMemoryLedger.ts | @kvary/core/governance/types | GovernanceRecordV1 | service | low | NEEDS_EXPORT_ADJUSTMENT |
| governance | services/api/src/auctions/ledger.ts | @kvary/core/governance/types | GovernanceRecordV1 | service | low | NEEDS_EXPORT_ADJUSTMENT |
| governance | services/api/src/auctions/rebuildSnapshot.ts | @kvary/core/governance/types | GovernanceRecordV1 | service | low | NEEDS_EXPORT_ADJUSTMENT |
| governance | services/api/src/auctions/snapshot.ts | @kvary/core/governance/types | GovernanceRecordV1 | service | low | NEEDS_EXPORT_ADJUSTMENT |
| governance | services/api/src/tenders/ledger.ts | @kvary/core/governance/types | GovernanceRecordV1 | service | low | NEEDS_EXPORT_ADJUSTMENT |
| governance | services/api/src/tenders/snapshot.ts | @kvary/core/governance/types | GovernanceRecordV1 | service | low | NEEDS_EXPORT_ADJUSTMENT |
| governance | tests/governance/governance.replay-determinism.test.ts | raw ../../packages/core/... | appendGovernanceRecord, verifyFullGovernanceIntegrity, types | test | low | SAFE_TO_NORMALIZE |
| governance | tests/governance/governance.replay-determinism.test.js | raw ../../packages/core/... | appendGovernanceRecord, verifyFullGovernanceIntegrity | test | medium | SAFE_TO_NORMALIZE |
| ledger | services/api/src/tenders/engine.ts | @kvary/core/ledger/appendLedgerEntry, @kvary/core/ledger/types | appendLedgerEntry, LedgerEntry | service | low | NEEDS_EXPORT_ADJUSTMENT |
| ledger | services/api/src/tenders/snapshot.ts | @kvary/core/ledger/types | LedgerEntry | service | low | NEEDS_EXPORT_ADJUSTMENT |
| ledger | services/api/src/auctions/engine.ts | @kvary/core/ledger/types | LedgerEntry | service | low | NEEDS_EXPORT_ADJUSTMENT |
| ledger | services/api/src/auctions/snapshot.ts | @kvary/core/ledger/types | LedgerEntry | service | low | NEEDS_EXPORT_ADJUSTMENT |
| ledger | services/api/src/auctions/rebuildSnapshot.ts | @kvary/core/ledger/types | LedgerEntry | service | low | NEEDS_EXPORT_ADJUSTMENT |
| ledger | services/api/src/governance/buildSubjectSnapshot.ts | @kvary/core/ledger/types | LedgerEntry | service | low | NEEDS_EXPORT_ADJUSTMENT |
| ledger | services/api/src/state/inMemoryLedger.ts | @kvary/core/ledger/types | LedgerEntry | service | low | NEEDS_EXPORT_ADJUSTMENT |
| ledger | tests/governance/governance.replay-determinism.test.ts | raw ../../packages/core/ledger/types | LedgerEntry | test | low | SAFE_TO_NORMALIZE |
| ledger | scripts/run-ledger-v2-golden.sh | raw packages/core/*.ts paths | direct file compile targets | script | high | MANUAL_VERIFY_FIRST |
| kes | apps/web/src/app/[locale]/(portal)/kes/page.tsx | @kvary/core/governance | KES governance data | web | medium | NEEDS_EXPORT_ADJUSTMENT |
| kes | apps/web/src/app/[locale]/[country]/(portal)/kes/page.tsx | @kvary/core/governance | KES governance data | web | medium | NEEDS_EXPORT_ADJUSTMENT |
| kes | services/api/src/routes/kes.ts | @kvary/core/kes/appendKesProposeVersion, @kvary/core/kes/appendKesRatifyVersion, @kvary/core/kes/types | KES appenders/types | service | low | NEEDS_EXPORT_ADJUSTMENT |
| kes | services/api/src/adapters/kesInput.ts | @kvary/core/kes/types | KesProposeVersionInput | service | low | NEEDS_EXPORT_ADJUSTMENT |
| canonical-hashing | services/api/src/tenders/engine.ts | @kvary/core/canonical/canonicalSerialize, @kvary/core/hashing/stableHash, @kvary/core/immutability/toSafeJson | canonical/hash/immutability helpers | service | low | NEEDS_EXPORT_ADJUSTMENT |
| canonical-hashing | scripts/golden.ts | raw ../packages/core/... | canonicalSerialize, stableHash | script | low | SAFE_TO_NORMALIZE |
| canonical-hashing | scripts/golden.js | raw ../packages/core/... | canonicalSerialize, stableHash | script | low | SAFE_TO_NORMALIZE |
| config-alias | apps/web/tsconfig.json | raw ../../packages/core/* | TS path alias | web build config | high | MANUAL_VERIFY_FIRST |
| config-alias | apps/web/next.config.js | alias/transpile for @kvary/core workspace root | webpack/Next alias | web build config | high | MANUAL_VERIFY_FIRST |
| file-inspection | scripts/verify-governance-consistency.ts | raw packages/core/governance/types.ts | filesystem path to source file | script | high | MANUAL_VERIFY_FIRST |
| file-inspection | scripts/verify-governance-consistency.js | raw packages/core/governance/types.ts | filesystem path to source file | script | high | MANUAL_VERIFY_FIRST |
Added explicit exports entries in packages/core/package.json for the subpaths already used by live code:
../governance./governance/appendGovernanceRecord./governance/types./governance/verifyFullGovernanceIntegrity./ledger/appendLedgerEntry./ledger/types./canonical/canonicalSerialize./hashing/stableHash./immutability/toSafeJson./kes/appendKesProposeVersion./kes/appendKesRatifyVersion./kes/typesReason:
@kvary/core/governance and @kvary/core/governance/types was failing before this stepNormalized these files away from raw packages/core/... imports:
scripts/golden.tsscripts/golden.jstests/governance/governance.replay-determinism.test.tstests/governance/governance.replay-determinism.test.jsNew import style:
@kvary/core/canonical/canonicalSerialize@kvary/core/hashing/stableHash@kvary/core/governance/appendGovernanceRecord@kvary/core/governance/verifyFullGovernanceIntegrity@kvary/core/governance/types@kvary/core/ledger/typesExecuted:
npm --prefix packages/core run build
npm exec -- node -e "import('@kvary/core/governance')..."
npm exec -- node -e "require('@kvary/core/governance/appendGovernanceRecord')..."
Results:
packages/core build succeeded@kvary/core/governance succeededrequire() resolution succeeded for all newly exported subpaths:
@kvary/core/governance/appendGovernanceRecord@kvary/core/governance/verifyFullGovernanceIntegrity@kvary/core/governance/types@kvary/core/ledger/types@kvary/core/canonical/canonicalSerialize@kvary/core/hashing/stableHash@kvary/core/immutability/toSafeJson@kvary/core/kes/appendKesProposeVersion@kvary/core/kes/appendKesRatifyVersion@kvary/core/kes/typesExecuted:
npm exec -- tsx scripts/golden.ts
npm exec -- node scripts/golden.js
npm exec -- tsx --test tests/governance/governance.replay-determinism.test.ts
npm exec -- node --test tests/governance/governance.replay-determinism.test.js
Results:
scripts/golden.ts passedscripts/golden.js passedtests/governance/governance.replay-determinism.test.ts resolved imports correctly, but the test itself failed with an application-level assertion: Ledger chain invalid: payloadHash mismatchtests/governance/governance.replay-determinism.test.js resolved package imports, but the test still fails due existing CommonJS node:test wrapper behavior: TypeError: (0 , node_test_1.default) is not a functionThese two test failures are not package-resolution regressions introduced by this change.
Left unchanged on purpose:
apps/web/tsconfig.json
@kvary/core/* to raw workspace source pathsapps/web/next.config.js
@kvary/core to workspace rootscripts/verify-governance-consistency.ts
scripts/verify-governance-consistency.js
packages/core/governance/types.ts directlyscripts/run-ledger-v2-golden.sh
packages/core/*.ts source files by filesystem pathAfter this step, the next low-risk candidate set is:
service-side @kvary/core/* consumers already on stable package subpaths
tooling cluster migration
scripts/verify-governance-consistency.*scripts/run-ledger-v2-golden.shweb alias/config migration
apps/web/tsconfig.jsonapps/web/next.config.jsOnly after those clusters are validated should another strict-delete pass for packages/core/*.js be considered.