АРЧ АП11 - Архитектура после регресса: Архитектура: протянуть shared organization authority в transition carryover и удержать phase12 replay зелёным

This commit is contained in:
2026-04-18 20:03:11 +03:00
parent 0ecee2b360
commit 4e1830282b
4 changed files with 94 additions and 19 deletions
@@ -3,7 +3,7 @@ import {
buildInventoryRootFrameFromAddressDebug,
readAddressDebugFilters,
readAddressDebugItem,
resolveAssistantContinuitySnapshot
resolveAssistantOrganizationAuthority
} from "./assistantContinuityPolicy";
export function createAssistantTransitionPolicy(deps) {
@@ -413,19 +413,24 @@ export function createAssistantTransitionPolicy(deps) {
? latestAddressItem
: findRecentUsableAddressAssistantItem(items)) ?? latestAddressItem;
const previousAddressDebug = previousAddressItem?.debug ?? null;
const continuitySnapshot = resolveAssistantContinuitySnapshot({
sessionItems: items,
toNonEmptyString: deps.toNonEmptyString
});
const lastOrganizationClarificationDebug = deps.findLastOrganizationClarificationAddressDebug(items);
const organizationClarificationCandidates = Array.isArray(lastOrganizationClarificationDebug?.organization_candidates)
? deps.mergeKnownOrganizations(lastOrganizationClarificationDebug.organization_candidates)
const organizationAuthority = resolveAssistantOrganizationAuthority({
sessionItems: items,
lastOrganizationClarificationDebug,
toNonEmptyString: deps.toNonEmptyString,
normalizeOrganizationScopeValue: deps.normalizeOrganizationScopeValue,
mergeKnownOrganizations: deps.mergeKnownOrganizations
});
const continuitySnapshot = organizationAuthority.continuitySnapshot;
const organizationClarificationCandidates = Array.isArray(organizationAuthority.organizationClarificationCandidates)
? organizationAuthority.organizationClarificationCandidates
: [];
const organizationClarificationSelection =
deps.resolveOrganizationSelectionFromMessage(userMessage, organizationClarificationCandidates) ??
(deps.toNonEmptyString(alternateMessage)
? deps.resolveOrganizationSelectionFromMessage(String(alternateMessage ?? ""), organizationClarificationCandidates)
: null);
: null) ??
deps.normalizeOrganizationScopeValue(organizationAuthority.organizationClarificationSelectionFromScope);
const hasOrganizationClarificationContinuation = Boolean(
lastOrganizationClarificationDebug && organizationClarificationSelection
);
@@ -793,6 +798,12 @@ export function createAssistantTransitionPolicy(deps) {
previousFilters.organization = historicalOrganization;
}
}
const authorityActiveOrganization =
deps.normalizeOrganizationScopeValue(organizationAuthority.activeOrganization) ??
deps.normalizeOrganizationScopeValue(organizationAuthority.continuityActiveOrganization);
if (!deps.toNonEmptyString(previousFilters.organization) && authorityActiveOrganization) {
previousFilters.organization = authorityActiveOrganization;
}
if (!deps.toNonEmptyString(previousFilters.organization) && continuitySnapshot.activeOrganization) {
previousFilters.organization = continuitySnapshot.activeOrganization;
}