diff --git a/docs/process/CONTINUE-audit-queue.md b/docs/process/CONTINUE-audit-queue.md index e4a54793d..66d64c5ce 100644 --- a/docs/process/CONTINUE-audit-queue.md +++ b/docs/process/CONTINUE-audit-queue.md @@ -221,8 +221,13 @@ por los dos caminos. 3. ~~**S-30/S-38**~~ EJECUTADO · ~~**S-19**~~ EJECUTADO PARCIAL (firma alineada; encender el canal sigue abierto, ver §3). 4. **§3.5 fable** — `M1 emission` (aceptada y nunca implementada; cerraría los waivers de tooltip y gradient-picker) · `M4` (`enumPair` frágil con 3+ - valores) · `M5` (tipar el matcher `state`) · **`M6`** (`IntentExpectedFamily` - deprecado ×2 — **vive en las líneas de S-33, tocarlas una sola vez**) · + valores) · `M5` (tipar el matcher `state`) · ~~`M6`~~ **EJECUTADO + 2026-08-13**: los alias `IntentExpectedFamily`/`SemaEventLabel` BORRADOS + (no-shims; D.3 los nombra como HISTORIA, no como prescripción), 13 usos + migrados a los canónicos, `semaIntentExpectedFamilySchema` renombrado + `…Required…` CON el guard S-34 actualizado en el mismo commit, los 2 + `as never` de `compile.ts` retirados (vestigio pre-`DepSink`), y + `_resetCompileCache` resultó YA borrado — fuera de la cola · `E2` (`globalThis.matchMedia` crudo en eidos) · `E3` (catch mudo en `#renderSchemeCss`). 5. **§3.6 blocks** — `A-47` (anillo de foco 1,43:1 sobre panel sólido) · diff --git a/src/uix/contracts.test.ts b/src/uix/contracts.test.ts index 9d7802638..9b5381480 100644 --- a/src/uix/contracts.test.ts +++ b/src/uix/contracts.test.ts @@ -932,7 +932,7 @@ describe('UIX layer contracts', () => { .sort(); const drift = 'intent policy drift — the schema partition no longer matches SEMA_FAMILY_POLICY'; - expect([...(unions.get('semaIntentExpectedFamilySchema') ?? [])].sort(), drift).toEqual( + expect([...(unions.get('semaIntentRequiredFamilySchema') ?? [])].sort(), drift).toEqual( fromPolicy(true) ); expect([...(unions.get('semaIntentOptionalFamilySchema') ?? [])].sort(), drift).toEqual( diff --git a/src/uix/morfo/compile.ts b/src/uix/morfo/compile.ts index b131becea..73d8a864d 100644 --- a/src/uix/morfo/compile.ts +++ b/src/uix/morfo/compile.ts @@ -449,7 +449,7 @@ function walkParts( add: () => { needsTranslations = true } - } as never) + }) collectConditionDeps(plan.condition, partStates, partProps, partRefs) collectConditionDeps(plan.condition, stateSet, propSet, partRefSet) // Pre-resolve literal sources into staticAttrs when there's no @@ -472,7 +472,7 @@ function walkParts( add: () => { needsTranslations = true } - } as never) + }) collectConditionDeps(plan.condition, partStates, partProps, partRefs) collectConditionDeps(plan.condition, stateSet, propSet, partRefSet) // Naming attrs never hoist to staticAttrs even as unconditional diff --git a/src/uix/morfo/schema.ts b/src/uix/morfo/schema.ts index c6861e384..88fed5856 100644 --- a/src/uix/morfo/schema.ts +++ b/src/uix/morfo/schema.ts @@ -213,7 +213,7 @@ const semaIntentOptionalFamilySchema = union( literal('contact'), literal('handle') ); -const semaIntentExpectedFamilySchema = union(literal('commit'), literal('signal')); +const semaIntentRequiredFamilySchema = union(literal('commit'), literal('signal')); /** * Structural / frame families where the book keeps intent OUT @@ -251,7 +251,7 @@ const persistenceSchema = union( literal('stateBound') ); -const semaFamilySchema = union(semaIntentOptionalFamilySchema, semaIntentExpectedFamilySchema); +const semaFamilySchema = union(semaIntentOptionalFamilySchema, semaIntentRequiredFamilySchema); // Polymorphism (book §5.3) is ADDITIVE on the canonical event shape: // the morfo declares its default `family` + `intent` + `verb` as usual @@ -271,7 +271,7 @@ const eventSemanticSchema = union( targetFallback: optional(array(partRefSchema)) }), object({ - family: semaIntentExpectedFamilySchema, + family: semaIntentRequiredFamilySchema, target: partRefSchema, intent: union(semaIntentSchema, semanticIntentSchema), intentRationale: optional(string()), diff --git a/src/uix/morfo/types.ts b/src/uix/morfo/types.ts index d4e3ee8b8..2390ab7bc 100644 --- a/src/uix/morfo/types.ts +++ b/src/uix/morfo/types.ts @@ -33,7 +33,7 @@ import type { SemaRegime, SemaScope, SemaFamily, - IntentExpectedFamily, + IntentRequiredFamily, IntentOptionalFamily, IntentForbiddenFamily, SignalPersistence @@ -433,7 +433,7 @@ export type MorfoEventSemantic = ( allowedFamilies?: readonly SemaFamily[]; } | { - family: IntentExpectedFamily; + family: IntentRequiredFamily; target: PartRef; intent: Intent | MorfoSemanticIntent; verb?: string; diff --git a/src/uix/sema/event.ts b/src/uix/sema/event.ts index ff4058e49..4e85f1d54 100644 --- a/src/uix/sema/event.ts +++ b/src/uix/sema/event.ts @@ -4,7 +4,6 @@ import { type SemaActionEvent, type SemaEvent, type SemaEventKey, - type SemaEventLabel, type SemaFamily, type IntentBinding, type IntentForbiddenFamily, @@ -85,7 +84,7 @@ export function isIntent(value: unknown): value is Intent { return typeof value === 'string' && INTENT_SET.has(value as Intent); } -export function isSemaEventLabel(value: unknown): value is SemaEventLabel { +export function isSemaEventLabel(value: unknown): value is SemaEventKey { return typeof value === 'string' && LABEL_SET.has(value as SemaEventKey); } @@ -141,7 +140,7 @@ export function isSemaEvent(value: unknown): value is SemaEvent { */ export type ParsedSemaEventLabel = { family: SemaFamily } | { family: SemaFamily; intent: Intent }; -export function parseSemaEventLabel(label: SemaEventLabel): ParsedSemaEventLabel { +export function parseSemaEventLabel(label: SemaEventKey): ParsedSemaEventLabel { const [family, rawIntent] = label.split('-'); if (rawIntent === undefined) { return { family: family as SemaFamily }; @@ -181,7 +180,7 @@ export function normalizeSemaEvent( ): { family: SemaFamily; intent: Intent | null; - label: SemaEventLabel; + label: SemaEventKey; } { if (typeof event === 'string') { const parsed = parseSemaEventLabel(event); @@ -204,7 +203,7 @@ export function normalizeSemaEvent( return { family: event.family, intent: null, - label: event.family as SemaEventLabel + label: event.family as SemaEventKey }; } @@ -212,13 +211,13 @@ export function normalizeSemaEvent( return { family: event.family, intent, - label: `${event.family}-${intent}` as SemaEventLabel + label: `${event.family}-${intent}` as SemaEventKey }; } export function toSemaEventLabel( event: SemaActionEvent, props?: Record -): SemaEventLabel { +): SemaEventKey { return normalizeSemaEvent(event, props).label; } diff --git a/src/uix/sema/exports.ts b/src/uix/sema/exports.ts index b9867a33e..455a186eb 100644 --- a/src/uix/sema/exports.ts +++ b/src/uix/sema/exports.ts @@ -2,7 +2,6 @@ export type { SemaValencedFamily, SemaTransitionalFamily, SemaFamily, - IntentExpectedFamily, IntentOptionalFamily, SemaMode, SemaDirection, @@ -10,7 +9,6 @@ export type { SemaScope, SemaCause, SemaEventKey, - SemaEventLabel, IntentBinding, SemaEvent, SemaEventExtensions, diff --git a/src/uix/sema/types.ts b/src/uix/sema/types.ts index d60b24b6e..a93bb9dcd 100644 --- a/src/uix/sema/types.ts +++ b/src/uix/sema/types.ts @@ -115,12 +115,6 @@ export type IntentRequiredFamily = { : never; }[SemaFamily]; -/** - * @deprecated Use {@link IntentRequiredFamily}. Kept as alias for - * backward compatibility with the `intentPolicy: 'expected'` naming. - */ -export type IntentExpectedFamily = IntentRequiredFamily; - export type IntentOptionalFamily = { [K in SemaFamily]: (typeof SEMA_FAMILY_POLICY)[K]['intentRequirement'] extends 'optional' ? K @@ -268,13 +262,6 @@ export type SemaEventKey = | IntentForbiddenFamily | `${IntentOptionalFamily | IntentRequiredFamily}-${Intent}`; -/** - * @deprecated Use {@link SemaEventKey}. Kept as an alias for backward - * compatibility — the two are structurally identical post-Phase 2 of - * the codex refactor (`refactorizacion_codex.md`). - */ -export type SemaEventLabel = SemaEventKey; - // ── Structured semantics ─────────────────────────────────────────────────── export interface IntentBinding { @@ -341,7 +328,7 @@ export type SemaEvent = ( intent?: Intent | IntentBinding; } | { - family: IntentExpectedFamily; + family: IntentRequiredFamily; intent: Intent | IntentBinding; } | { @@ -351,7 +338,7 @@ export type SemaEvent = ( ) & SemaEventExtensions; -export type SemaActionEvent = SemaEvent | SemaEventLabel; +export type SemaActionEvent = SemaEvent | SemaEventKey; // ── DOM-oriented writes used by Morfo events ──────────────────────────────