Preserve canonical content when a custom-layout move fails
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 38/100
Línea de trabajo
Comienza en inc/class-wp-markdown-storage.php, en WP_Markdown_Storage::write_profile_post(), especialmente en la secuencia de movimiento de custom-layout alrededor de las líneas 910-924. Sigue el staging, la publicación en el destino, la limpieza de la ruta antigua, la indexación de rutas y los comprobantes de rutas modificadas; después añade cobertura determinista de fallos para la publicación, la limpieza y el reemplazo de directorios. La tarea estará terminada cuando se cumplan los criterios de aceptación sin pérdida de contenido, duplicados ni un estado final inconsistente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
The custom content-layout move path stages the replacement, deletes the old canonical file, and only then renames the staged file into place. If the final rename fails, the old file has already been removed and the staged file is discarded, leaving no canonical copy.
Relevant implementation: WP_Markdown_Storage::write_profile_post() in inc/class-wp-markdown-storage.php, around lines 910-924.
This violates the canonical durability contract required by the database-independent engine in #232.
Required outcome
- Make custom-layout moves recoverable across the old-path and new-path publication boundary.
- Preserve at least one complete canonical copy when publication or cleanup fails.
- Bind staging and commit to the same verified destination directory identity.
- Keep path indexing and changed-path receipts consistent with the terminal filesystem state.
- Add deterministic failure injection around destination publication and old-path cleanup.
Acceptance criteria
- A failed destination rename leaves the original canonical post intact.
- A successful move leaves exactly one canonical post at the selected route and removes the stale route.
- Retry after an interrupted move converges without content loss or duplicate durable identities.
- Directory replacement between staging and commit fails closed.
AI assistance
GPT-5.6 Sol via OpenCode reviewed the custom-layout publication sequence, identified the delete-before-publish failure mode, and helped structure this issue and its acceptance criteria. Chris Huber directed the review and issue creation.
- Lenguaje dominante
- PHP
- Estrellas
- 7
- Forks
- 1
- Merge medio
- 1 d 4 h
- PR fusionados (30 d)
- 12
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Automattic/markdown-database-integration
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Automattic/markdown-database-integration#424 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 78/100
Automattic/markdown-database-integration#420 ·
Los mantenedores suelen responder en 1 día
-
Native scans use memory proportional to row count, and retired generations are never collectedAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Automattic/markdown-database-integration#415 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 78/100
Automattic/markdown-database-integration#414 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
Automattic/markdown-database-integration#401 ·
Los mantenedores suelen responder en 1 día
Todos los issues de Automattic/markdown-database-integration
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 76/100
majorsilence/Reporting#493 ·
Los mantenedores suelen responder en 1 día
-
Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
Automattic/safe-publish#764 ·
Los mantenedores suelen responder en 1 día
-
sync-en
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
sync-en
Dificultad 1/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
Перевод устарел
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100