docs(process): handoff — P6 closed (C6 weekInfo, C7 D13 census, B.11 splitter pair); next P7

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
menubar-v4-safe
dev 3 months ago
parent 0f0feb4f2a
commit 05a62a3861

@ -2,10 +2,10 @@
**Handoff. Fecha: 2026-07-08 · actualizado 2026-07-09.** Rama `alpha-0.1-sec-dom`.
> **Arranca mañana aquí →** [§ P5 — lo que queda](#p5--lo-que-queda-arrancar-aquí-mañana).
> **S6 Field-family está COMPLETO y pusheado** (`53b6f629..d1670caa`). Lo siguiente
> es **S8 calendar-surface**, luego **P6** y **P7**. Dos follow-ups no bloqueantes
> registrados abajo.
> **Arranca aquí → P7** (S9 iniciativas · S4 28 READMEs · S7 papeleo · errores baseline).
> **P5 y P6 están CERRADOS**: P5 = S1·S5·depth·touch·S6·S8 ✅ (S6 `53b6f629..d1670caa`;
> S8 `83e13be6`). P6 = C6 `3b02fd11` · C7 `444e05eb` · B.11 `0f0feb4f` ✅.
> Pende tu decisión touch-rows↔§37. Follow-ups no bloqueantes abajo.
Documento de continuación para retomar la fase de fixes de la re-auditoría de
componentes. La **fuente de verdad de los veredictos** es
@ -24,9 +24,9 @@ componentes. La **fuente de verdad de los veredictos** es
| **P2** contratos morfo (role=application×4, aria-selected fuera del Day, drp translationRef, field data-state, pin-input commit-set, media-player renames) | ✅ |
| **P3** packs sema (13 packs nuevos + 12 morfos `family-default`→`'pack'`) | ✅ |
| **P4** naming/API N1–N10 | ✅ **COMPLETO** |
| **P5** sistema/eidos | 🟡 **EN CURSO** — S1 ✅ · S5 ✅ · depth ✅ · touch-rows ✅ · **S6 ✅** (composición + poda + de-alias, pusheado) · **S8 pendiente** |
| **P6** C7 textarea-measure + D13 · C6 weekInfo · B.11 splitter | ⬜ pendiente |
| **P7** S9 iniciativas · S4 28 READMEs · S7 papeleo · errores de tipo baseline | ⬜ pendiente |
| **P5** sistema/eidos | ✅ **CERRADO** — S1 ✅ · S5 ✅ · depth ✅ · touch-rows ✅ · **S6 ✅** (composición + poda + de-alias) · **S8 ✅** (`--calendar-range-*` API pública `83e13be6`) · (touch↔§37 pende decisión) |
| **P6** C7 textarea-measure + D13 · C6 weekInfo · B.11 splitter | ✅ **CERRADO** — C6 `3b02fd11` · C7 `444e05eb` · B.11 `0f0feb4f` |
| **P7** S9 iniciativas · S4 28 READMEs · S7 papeleo · errores de tipo baseline | ⬜ pendiente — **empezar aquí** |
## ⚠️ Reconciliar PRIMERO — conflicto touch-rows ↔ §37
@ -134,10 +134,46 @@ Doctrina del usuario: **todos los fields deben SER fields** (componen `field.css
en el DOM (xs/sm/lg) que el elemento consumidor lleva `[data-size]`. La revisión
adversarial cazó exactamente esto en time-range-picker.
## P5 — lo que queda (arrancar aquí mañana)
- **S8 calendar-surface** CONFIRMADO + tokens de rango como **API pública** de la
capa (drp deja de tunear `--_calendar-range-*` ajenos). **← EMPEZAR AQUÍ.**
## P5 — CERRADO ✅ (S8 hecho 2026-07-09, `83e13be6`)
- **S8 calendar-surface**: 8 tokens públicos `--calendar-range-{start,end}-*` en el
recipe `calendar` (API de la capa); range-calendar los consume por el nombre
público; drp deja de tunear los `--_calendar-range-*` privados. Value-preserving
(25/25, baseline 59, eidos-lint 0, navegador idéntico en 4 colores + drp popover).
Asimetría deliberada documentada: start desde `:root` (tema-overrideable), end atado
al accent en el host. Detalle en memoria [[recipe-orphan-test-prune]] /
[[compose-base-field-not-replicate]] (mismo patrón anti-alias que el de-alias de pickers).
## P6 — CERRADO ✅ (2026-07-09→10)
- **C6** (`3b02fd11`): `getWeekInfo(locale)` público en `$libs/days` (convención Intl
1=lun..7=dom; `firstDay` espeja el `getWeekStart` interno; weekend de Intl con
fallback sáb/dom documentado, caché por locale). Calendar + range-calendar derivan
`weekend` del locale (antes: hardcoded sáb/dom con 'en-US' — mal para ar-SA).
Verificado en vivo (ar-SA → vie/sáb). **Hallazgo extra arreglado**: `getSimpleWeekNumber`
mezclaba marcos (weekStartsOn absoluto + locale-relativo) → semanas 'simple'
desplazadas −1 en es-ES; ancla en marco en-US fijo + test de regresión.
- **C7** (`444e05eb`): textarea `measureAutosize` difiere la lectura vía
`dom.measure` del contexto (antes: reflow forzado POR TECLA). Censo D13:
violaciones arregladas en scroll-area (getters del thumb leían clientHeight en
`$derived` → reflow por tick; ahora track medido por RO en $state), virtual-list
(×2 viewports), virtual-grid, carousel (seed diferido + fallback vivo en render
eliminado). Conformes sin cambio: float-panel, cropper, splitter (lecturas
event-time antes de write — D13 es regla de timing). Suites actualizadas al
contrato diferido.
- **B.11** (`0f0feb4f`): par bindable del splitter — `sizes` (bindable, % por orden
de registro: seed + sync + escritura externa clampada) + `onResize`→`onSizesChange`
(norma X+onXChange; dos nombres = alias). `onResizeEnd` se queda (momento commit).
Verificado en vivo en ambas direcciones.
- **Gotcha de entorno registrado** (memoria `hidden-pane-suspends-raf`): el Browser
pane oculto (`visibilityState: hidden`) suspende rAF + entrega de RO → sondas de
medición "muertas", screenshots en timeout. Chequear la vitalidad de rAF ANTES de
diagnosticar; verificar vía suite de navegador de vitest en su lugar. La sonda
reflowDetector quedó pendiente por esto (opcional, no bloqueante).
## Lo que queda — **arrancar aquí: P7**
- **P7** — S9 iniciativas · S4 28 READMEs · S7 papeleo · errores de tipo baseline.
### Follow-ups no bloqueantes (registrados)

Loading…
Cancel
Save

Powered by TurnKey Linux.