Skip to content

feat: add captured PGN positions to active chapter - #23

Merged
levallem merged 1 commit into
mainfrom
feat/cms-024h-add-captured-pgn-position-to-active-chapter
Sep 22, 2026
Merged

levallem merged 1 commit into
mainfrom
feat/cms-024h-add-captured-pgn-position-to-active-chapter

Conversation

@levallem

Copy link
Copy Markdown
Owner

Closes #22

Summary

Implementa CMS-024H y completa el flujo desde una posición PGN capturada hasta su almacenamiento persistente, delimitado por capítulo, dentro del proyecto activo.

Una posición PGN revisada puede capturarse, conservarse como snapshot reproducible y añadirse al capítulo activo sin convertirla en Puzzle ni acoplar PgnTab a la persistencia del proyecto.

Motivation

Permitir usar posiciones PGN revisadas como material editorial reproducible de un capítulo, preservando los límites existentes entre revisión PGN, coordinación de aplicación y persistencia.

Changes

PGN
→ PgnReviewSession
→ PgnPositionCandidate + PgnPositionSnapshot capturados
→ coordinación en main.rs
→ capítulo activo de ProjectTab
→ add_pgn_position_snapshot(...)
→ feedback al usuario
  • Candidate y snapshot reproducible se capturan desde el mismo estado PGN; la navegación posterior no los muta.
  • Add to chapter sólo se habilita cuando existe un snapshot capturado.
  • PgnTab no conoce project path ni chapter ID; ProjectTab conserva ese contexto y main.rs coordina la operación.
  • Inserted y AlreadyExists tienen feedback distinto.
  • Los casos sin proyecto o capítulo activo se informan sin escribir.
  • Conflictos de persistencia/metadatos conservan la fila existente y la captura.
  • La captura sobrevive todo intento de guardado y puede añadirse a otro capítulo.
  • Una carga PGN válida de reemplazo o clear explícito elimina la captura.

No se introdujo ninguna abstracción editorial genérica. Las posiciones PGN siguen separadas de Puzzle, ProjectPuzzleDecision, juegos PGN y futuros tipos editoriales. Se reutiliza sin cambios la API de persistencia CMS-024G.

Validation

  • cargo fmt --check
  • cargo clippy --locked --all-targets -- -D warnings
  • cargo test --locked — 574 tests passed; 0 ignored
  • cargo check --locked --all-targets
  • cargo build --locked
  • git diff --check

Screenshots

No aplica: el cambio se validó mediante tests de interacción y persistencia.

Database / migration impact

Ninguno. CMS-024H reutiliza la persistencia schema v4 introducida por CMS-024G; PROJECT_SCHEMA_VERSION permanece en 4.

Scope

Exactamente 9 archivos:

  • src/main.rs
  • src/pgn_tab.rs
  • src/project_tab.rs
  • seis bundles de traducción

Sin cambios en src/project.rs, src/pgn_review.rs, schema o migrations, persistencia de puzzles, export, engine, search, favorites ni dependencias.

@levallem levallem added the type:feature Feature work label Sep 22, 2026
@levallem
levallem merged commit 3a674ba into main Sep 22, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:feature Feature work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CMS-024H — Add captured PGN position to active chapter

1 participant