fix(events): envolver VEVENT en VCALENDAR al push (Xandikos 500) + INSERT explicito en contacts (columna import_key)
El raw de un evento guardaba solo BEGIN:VEVENT...END:VEVENT; subirlo a CalDAV genera un .ics invalido que rompe Xandikos (assert isinstance(cal, Calendar) -> 500 en todo el calendario). _ensure_vcalendar lo envuelve en el push. Ademas, la columna import_key (migracion 004) rompia los INSERT posicionales de contacts: ahora son explicitos por columna y el ingest puebla import_key con la funcion del registry. Tests actualizados (4 derivadas, INSERT explicito). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -123,6 +123,12 @@ duckdb_upsert = _load_registry_fn("infra", "duckdb_upsert", "duckdb_upsert")
|
||||
# Composición del vCard multi-valor (DB -> Xandikos), puro.
|
||||
build_vcard = _load_registry_fn("core", "build_vcard", "build_vcard")
|
||||
|
||||
# Clave de importación determinística (tel > email > nombre) para imports
|
||||
# idempotentes de contactos. Pura.
|
||||
contact_import_key = _load_registry_fn(
|
||||
"core", "contact_import_key", "contact_import_key"
|
||||
)
|
||||
|
||||
# Render de tablas Markdown + bloques sentinel idempotentes para las notas.
|
||||
render_markdown_table = _load_registry_fn(
|
||||
"core", "render_markdown_table", "render_markdown_table"
|
||||
@@ -153,6 +159,7 @@ __all__ = [
|
||||
"duckdb_execute",
|
||||
"duckdb_upsert",
|
||||
"build_vcard",
|
||||
"contact_import_key",
|
||||
"render_markdown_table",
|
||||
"upsert_sentinel_block",
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user