You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -50,7 +50,7 @@ Created by **Nerio Villalobos** (<nervill@gmail.com>).
50
50
```bash
51
51
sf plugins install github:NerioVillalobos/plugin-metadelta.git
52
52
```
53
-
Confirm installation with `sf plugins`, which should list `@nervill/metadelta 0.11.6`.
53
+
Confirm installation with `sf plugins`, which should list `@nervill/metadelta 0.11.7`.
54
54
55
55
3. (Optional, for local development) Clone this repository and install dependencies:
56
56
```bash
@@ -63,7 +63,7 @@ Created by **Nerio Villalobos** (<nervill@gmail.com>).
63
63
npm run build
64
64
sf plugins link .
65
65
```
66
-
Confirm installation with `sf plugins`, which should list `@nervill/metadelta 0.11.6 (link)`.
66
+
Confirm installation with `sf plugins`, which should list `@nervill/metadelta 0.11.7 (link)`.
67
67
68
68
### Usage
69
69
@@ -380,7 +380,11 @@ Starts a temporary terminal monitor for Salesforce Core and Vlocity metadata dri
380
380
sf metadelta monitor run --org DEV
381
381
```
382
382
383
-
The monitor creates `.metadelta-monitor/`, retrieves the current metadata snapshot, initializes a local-only Git repository as the diff engine, and refreshes every five minutes. `NEXT` shows the exact next refresh time instead of repainting a countdown. The first cycle creates the baseline and shows `STATUS: BASELINE CREATED`; later refreshes show added, modified, deleted, or renamed files. Full errors and Vlocity warnings are wrapped in a detail section and automatically pause UI repainting so the text can be selected/copied. Press `p` to pause/resume, `r` to refresh, `s`for Salesforce only, `v`for Vlocity only, `a`for all, `d`/Enter for details, and `q`, `x`, `ESC`, `CTRL+C`, or `exit` to quit.
383
+
The monitor creates `.metadelta-monitor/`, retrieves the current metadata snapshot, initializes a local-only Git repository as the diff engine, and refreshes every five minutes. `NEXT` shows the exact next refresh time instead of repainting a countdown. The first cycle creates the baseline and shows `STATUS: BASELINE CREATED`; later refreshes show added, modified, deleted, or renamed files. Full errors and Vlocity warnings are wrapped in a detail section and automatically pause UI repainting so the text can be selected/copied.
384
+
385
+
The UI has two navigable sections. `SALESFORCE CORE / VLOCITY` groups changes by metadata type and shows the count, latest change date, and latest modifier foreach type. `RECENT CHANGES` lists the session-cumulative component changes with the most recently detected items first. The arrow keys move the `>` selector across both sections; when the selected row moves past the visible terminal area, the list scrolls so the selector remains visible. Press Enter or `d` on an individual change to see its file, metadata query, modifier, detection time, and Git diff summary. Press Enter or `d` on a metadata type to open `TYPE DETAILS`, which lists the changed components for that typein recent-first order.
386
+
387
+
Press `p` to pause/resume, `r` to refresh, `s`for Salesforce only, `v`for Vlocity only, `a`for all, and `q`, `x`, `ESC`, `CTRL+C`, or `exit` to quit.
384
388
385
389
For Vlocity-enabled orgs, the default monitor scope runs `packExportAllDefault` with a temporary job that covers OmniScript, DataRaptor, FlexCard, Integration Procedure, EPC, and standard DataPack exports. You can also provide your own Vlocity job file:
386
390
@@ -390,7 +394,7 @@ sf metadelta monitor run --org DEV --scope vlocity --vlocity-job ./vlocity-expor
390
394
391
395
When the scope is `all`, a Vlocity export failure does not block Salesforce Core monitoring; the UI keeps the Core diff and shows the Vlocity warning. All metadata, manifests, temporary files, and Git history are deleted on exit; only the empty `.metadelta-monitor/` root may remain. For orgs without Vlocity CLI installed, use:
392
396
393
-
`RECENT CHANGES` is cumulative within the active terminal session only. It keeps changes detected across refreshes in memory, but nothing is persisted after exit. Vlocity files named `*_SampleInputJson.json` are ignored by the monitor because they are sample payloads and can produce noisy JSON parsing failures.
397
+
`RECENT CHANGES` is cumulative within the active terminal session only; nothing is persisted after exit. Vlocity files named `*_SampleInputJson.json` are ignored by the monitor because they are sample payloads and can produce noisy JSON parsing failures.
394
398
395
399
```bash
396
400
sf metadelta monitor run --org DEV --scope salesforce
@@ -399,7 +403,7 @@ sf metadelta monitor run --org DEV --scope salesforce
399
403
>**Linked ESM note:** When `sf` prints `@nervill/metadelta is a linked ESM module and cannot be auto-transpiled`, always run `npm run build` before testing commands. If your CLI still does not resolve `sf metadelta task record`, use `sf metadelta:task:record` and relink the plugin. Task diagnostics are saved in`.metadelta/metadelta-task-orchestrator.json`. This is mandatory after local code changes; otherwise `sf` may run stale compiled `lib/` output.
400
404
>**Task play hardening:**`sf metadelta task play` now includes automatic stabilizers forfrontdoor/base URL separation, initial Setup popup recovery, popup rebinds, App Launcher fallbacks, dynamic Permission Set Assignment selectors, and Action Library scroll selection + Finish enablement checksin the temporary `.metadelta.*`test file.
401
405
>**Salesforce CLI secrets workaround (v0.11.4):**`sf metadelta task record` and `sf metadelta task play` build Salesforce frontdoor URLs from the alias passed in`--org`. When they need the real `accessToken`, Metadelta now runs the required `sf org display --target-org <alias> --verbose --json` calls with `SF_TEMP_SHOW_SECRETS=true`in the child process environment. This keeps the automation compatible with Salesforce CLI outputs that redact secrets, without asking users to run `sf org auth ...` interactively or set the workaround globally.
402
-
>**Monitor Vlocity support (v0.11.6):**`sf metadelta monitor run` can monitor Vlocity-only sessions with `--scope vlocity` and accepts `--vlocity-job`for org-specific DataPack export jobs. The default job is temporary and uses `packExportAllDefault`; it is not persisted after exit.
406
+
>**Monitor Vlocity support (v0.11.7):**`sf metadelta monitor run` can monitor Vlocity-only sessions with `--scope vlocity` and accepts `--vlocity-job`for org-specific DataPack export jobs. The default job is temporary and uses `packExportAllDefault`; it is not persisted after exit.
403
407
>**Task orchestrator diagnostics:** The orchestrator now stores the most relevant Playwright failure excerpt (not only the exit code), making solution matching and future triage more accurate in`.metadelta/metadelta-task-orchestrator.json`.
404
408
>**Report a task-play issue:** If playback fails, please open a public GitHub Issue at <https://github.com/NerioVillalobos/plugin-metadelta/issues> and include: (1) command executed, (2) full error text, (3) screenshot captured while running with `--header`, and (4) sanitized `.metadelta.*` snippet around the failing step.
405
409
@@ -1006,7 +1010,11 @@ Inicia un monitor temporal de terminal para detectar drift de metadatos Salesfor
1006
1010
sf metadelta monitor run --org DEV
1007
1011
```
1008
1012
1009
-
El monitor crea `.metadelta-monitor/`, recupera el snapshot actual de metadatos, inicializa un repositorio Git local como motor de diff y refresca cada cinco minutos. `NEXT` muestra la hora exacta del próximo refresh en vez de repintar un countdown. El primer ciclo crea la línea base y muestra `STATUS: BASELINE CREATED`; los siguientes refresh muestran archivos agregados, modificados, eliminados o renombrados. Los errores completos y avisos de Vlocity se muestran envueltos en una sección de detalle y pausan automáticamente el repintado de la UI para poder seleccionar/copiar el texto. Presiona `p` para pausar/reanudar, `r` para refrescar, `s` para solo Salesforce, `v` para solo Vlocity, `a` para todo, `d`/Enter para detalle y `q`, `x`, `ESC`, `CTRL+C` o `exit` para salir.
1013
+
El monitor crea `.metadelta-monitor/`, recupera el snapshot actual de metadatos, inicializa un repositorio Git local como motor de diff y refresca cada cinco minutos. `NEXT` muestra la hora exacta del próximo refresh en vez de repintar un countdown. El primer ciclo crea la línea base y muestra `STATUS: BASELINE CREATED`; los siguientes refresh muestran archivos agregados, modificados, eliminados o renombrados. Los errores completos y avisos de Vlocity se muestran envueltos en una sección de detalle y pausan automáticamente el repintado de la UI para poder seleccionar/copiar el texto.
1014
+
1015
+
La UI tiene dos secciones navegables. `SALESFORCE CORE / VLOCITY` agrupa cambios por tipo de metadata y muestra contador, fecha del último cambio y último usuario modificador para cada tipo. `RECENT CHANGES` lista los cambios acumulados de la sesión con los elementos detectados más recientemente primero. Las flechas mueven el selector `>` por ambas secciones; cuando la fila seleccionada supera el área visible de la terminal, la lista se desplaza para mantener el selector en pantalla. Presiona Enter o `d` sobre un cambio individual para ver archivo, query de metadata, modificador, hora de detección y resumen del diff Git. Presiona Enter o `d` sobre un tipo de metadata para abrir `TYPE DETAILS`, que lista los componentes cambiados de ese tipo en orden reciente primero.
1016
+
1017
+
Presiona `p` para pausar/reanudar, `r` para refrescar, `s` para solo Salesforce, `v` para solo Vlocity, `a` para todo y `q`, `x`, `ESC`, `CTRL+C` o `exit` para salir.
1010
1018
1011
1019
Para orgs con Vlocity habilitado, el scope por defecto del monitor ejecuta `packExportAllDefault` con un job temporal que cubre OmniScript, DataRaptor, FlexCard, Integration Procedure, EPC y exports estándar de DataPacks. También puedes indicar tu propio job Vlocity:
1012
1020
@@ -1016,7 +1024,7 @@ sf metadelta monitor run --org DEV --scope vlocity --vlocity-job ./vlocity-expor
1016
1024
1017
1025
Cuando el scope es `all`, una falla de export Vlocity no bloquea el monitoreo de Salesforce Core; la UI conserva el diff Core y muestra el aviso de Vlocity. Al salir se eliminan metadatos, manifests, temporales e historial Git; solo puede quedar la raíz vacía `.metadelta-monitor/`. Para orgs sin Vlocity CLI instalado, usa:
1018
1026
1019
-
`RECENT CHANGES` es acumulativo solo dentro de la sesión activa de terminal. Conserva en memoria los cambios detectados entre refreshes, pero no persiste nada después de salir. Los archivos Vlocity `*_SampleInputJson.json` se ignoran porque son payloads de ejemplo y pueden generar ruido por errores de parsing JSON.
1027
+
`RECENT CHANGES` es acumulativo solo dentro de la sesión activa de terminal; no persiste nada después de salir. Los archivos Vlocity `*_SampleInputJson.json` se ignoran porque son payloads de ejemplo y pueden generar ruido por errores de parsing JSON.
1020
1028
1021
1029
```bash
1022
1030
sf metadelta monitor run --org DEV --scope salesforce
@@ -1025,7 +1033,7 @@ sf metadelta monitor run --org DEV --scope salesforce
1025
1033
>**Nota para ESM enlazado:** Si `sf` muestra `@nervill/metadelta is a linked ESM module and cannot be auto-transpiled`, ejecuta `npm run build` antes de probar comandos. Si la CLI no resuelve `sf metadelta task record`, usa `sf metadelta:task:record` y vuelve a enlazar el plugin. El diagnóstico de tareas se guarda en `.metadelta/metadelta-task-orchestrator.json`. Esto es obligatorio tras cambios locales de código; de lo contrario `sf` puede ejecutar un `lib/` compilado desactualizado.
1026
1034
>**Robustez en task play:**`sf metadelta task play` incluye estabilizadores automáticos para separar frontdoor/base URL, recuperar la apertura inicial del popup de Setup, reabrir popups, aplicar fallback en App Launcher, normalizar selectores dinámicos de Permission Set Assignment y resolver selección con scroll + validación de botón Finish en Action Library dentro del archivo temporal `.metadelta.*`.
1027
1035
>**Workaround de secretos de Salesforce CLI (v0.11.4):**`sf metadelta task record` y `sf metadelta task play` construyen URLs frontdoor usando el alias recibido en `--org`. Cuando necesitan el `accessToken` real, Metadelta ejecuta las llamadas requeridas a `sf org display --target-org <alias> --verbose --json` con `SF_TEMP_SHOW_SECRETS=true` en el entorno del proceso hijo. Esto mantiene la automatización compatible con salidas de Salesforce CLI que ocultan secretos, sin pedir al usuario ejecutar `sf org auth ...` de forma interactiva ni configurar el workaround globalmente.
1028
-
>**Soporte monitor Vlocity (v0.11.6):**`sf metadelta monitor run` puede monitorear sesiones solo Vlocity con `--scope vlocity` y acepta `--vlocity-job` para jobs de export DataPack específicos de una org. El job por defecto es temporal, usa `packExportAllDefault` y no se conserva al salir.
1036
+
>**Soporte monitor Vlocity (v0.11.7):**`sf metadelta monitor run` puede monitorear sesiones solo Vlocity con `--scope vlocity` y acepta `--vlocity-job` para jobs de export DataPack específicos de una org. El job por defecto es temporal, usa `packExportAllDefault` y no se conserva al salir.
1029
1037
>**Diagnóstico del orquestador:** El orquestador ahora guarda el fragmento más relevante del fallo de Playwright (no solo el código de salida), mejorando el match de soluciones y el triage futuro dentro de `.metadelta/metadelta-task-orchestrator.json`.
1030
1038
>**Reportar incidencias de task play:** Si la reproducción falla, abre un Issue público en GitHub: <https://github.com/NerioVillalobos/plugin-metadelta/issues> e incluye: (1) comando ejecutado, (2) texto completo del error, (3) captura ejecutando con `--header`, y (4) fragmento saneado del archivo `.metadelta.*` en el paso donde falla.
0 commit comments