@ingeniomaps/cauce 0.40.0 → 0.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -14,6 +14,17 @@ desde este repositorio no va, porque el que lee no puede actuar sobre eso. Cuand
14
14
  unas pocas líneas casi siempre es porque cuenta cómo se descubrió el problema o por qué se eligió el
15
15
  diseño — eso vive en el commit y en el código.
16
16
 
17
+ ## [0.41.0] - 2026-08-19
18
+
19
+ ### Corregido
20
+
21
+ - **`destroy` ya no borra el repositorio en modo embebido.** Ahí la instancia **es** el repositorio, así
22
+ que borrar la carpeta se llevaba el código del producto: pasó de verdad sobre un caso de prueba, y el
23
+ aviso previo enumeraba épicas y acciones humanas sin nombrar lo único irrecuperable. En embebido saca
24
+ lo que Cauce escribió —`planning/`, `organization/`, `teams/`, `integrations/`, `automatization/`,
25
+ `tools/`, la configuración y el manifiesto— y deja el repositorio. En sidecar sigue borrando la
26
+ carpeta, que ahí no contiene nada más.
27
+
17
28
  ## [0.40.0] - 2026-08-19
18
29
 
19
30
  ### Corregido
package/engine/cli/ops.js CHANGED
@@ -831,13 +831,19 @@ function destroy(dir, cli) {
831
831
  perdida.contexto && 'el contexto escrito en organization/',
832
832
  ].filter(Boolean)
833
833
 
834
+ const embebido = O.mode(root) === 'embedded'
834
835
  if (!cli.has('--force')) {
835
- console.log(`Borrar ${root} se lleva:`)
836
+ console.log(embebido
837
+ ? `Sacar Cauce de ${root} se lleva:`
838
+ : `Borrar ${root} se lleva:`)
836
839
  for (const linea of lineas) console.log(` − ${linea}`)
837
840
  if (!lineas.length) console.log(' − nada escrito todavía: la instancia está como salió de init')
838
841
  if (perdida.runners.length) {
839
842
  console.log(` y saca el wiring de: ${perdida.runners.join(', ')} (lo tuyo queda donde está)`)
840
843
  }
844
+ if (embebido) {
845
+ console.log(' el código del repositorio no se toca: en modo embebido la instancia es él mismo.')
846
+ }
841
847
  console.log('\nNada de esto lo repone un init. Si es lo que querés: repetí con --force.')
842
848
  process.exit(1)
843
849
  }
@@ -847,6 +853,17 @@ function destroy(dir, cli) {
847
853
  }
848
854
  // El orden no es negociable: primero el wiring, después la carpeta. Al revés, cada llamada de
849
855
  // herramienta del runner queda ejecutando un guard que ya no está.
856
+ // En modo embebido la instancia **es** el repositorio: borrar la carpeta se lleva el código del
857
+ // producto, que Cauce nunca escribió y no repone nadie. Ahí se saca lo del toolkit y se deja el repo.
858
+ if (O.mode(root) === 'embedded') {
859
+ const suyo = [
860
+ 'planning', 'organization', 'teams', 'integrations', 'automatization', 'tools',
861
+ 'ops.config.json', '.cauce', 'AGENTS.md',
862
+ ]
863
+ for (const relative of suyo) fs.rmSync(path.join(root, relative), { recursive: true, force: true })
864
+ console.log(`✓ ${suyo.length} ruta(s) de Cauce quitadas de ${root}`)
865
+ return console.log(' tu repositorio queda donde está: en modo embebido la instancia era él mismo.')
866
+ }
850
867
  const adentro = process.cwd() === root || process.cwd().startsWith(`${root}${path.sep}`)
851
868
  fs.rmSync(root, { recursive: true, force: true })
852
869
  console.log(`✓ ${root} borrado`)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ingeniomaps/cauce",
3
- "version": "0.40.0",
3
+ "version": "0.41.0",
4
4
  "description": "Sistema portable de planificación y ejecución verificable para cualquier proyecto",
5
5
  "keywords": [
6
6
  "planning",