Files
egutierrez b9716a7cd6 chore: snapshot WIP previo + flow 0008 + 7 sub-issues (0112-0119)
Snapshot de WIP acumulado de sesiones previas antes de merge wave 1
del flow 0008 (kanban_cpp + agent_runner_api + DoD schema).

Incluye:
- dev/flows/0008-kanban-cpp-and-agent-workflows.md
- dev/issues/0112-0119*.md (7 sub-issues)
- WIP previo en cmd/fn/doctor.go, registry/*, modules/, cpp/, etc.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 18:17:08 +02:00

3.0 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
regenerate_app_icons pipeline py pipelines 1.2.0 impure def regenerate_app_icons(only: list[str] | None = None, style: str = 'fill_white') -> dict Escanea todas las apps C++ del registry, lee el bloque `icon: {phosphor, accent}` de cada app.md y regenera el appicon.ico via generate_app_icon. Soporta param `style` ('fill_white' default | 'adaptive_duotone' | 'white_duotone' bg accent + glyph duotone Phosphor con fill blanco). CLI flags: `--adaptive`, `--white`, o `--style=<valor>`. Reemplaza el script ad-hoc dev/gen_app_icons.py.
cpp-windows
icon
phosphor
batch
generate_app_icon_py_infra
false error_go_core
os
sys
pathlib
typing
yaml
name desc
only Lista opcional de nombres de app (campo `name` del frontmatter) a procesar. Si None, regenera todas las apps C++ con icon: declarado.
name desc
style 'fill_white' (default, glyph blanco), 'adaptive_duotone' (bg accent + duotone con tono claro/oscuro adaptativo) o 'white_duotone' (bg accent + duotone Phosphor blanco). CLI: `--adaptive`, `--white`, o `--style=<valor>`.
dict {ok: [name], skipped: [{name, reason}], failed: [{name, error}]} false
python/functions/pipelines/regenerate_app_icons.py

Ejemplo

# Regenerar todas las apps C++ con icon: declarado (estilo clasico)
./fn run regenerate_app_icons

# Estilo adaptive_duotone (dark/light glyph segun luminancia del accent)
python/.venv/bin/python3 python/functions/pipelines/regenerate_app_icons.py --adaptive

# Solo una app
./fn run regenerate_app_icons chart_demo
import sys
sys.path.insert(0, "python/functions")
from pipelines.regenerate_app_icons import regenerate_app_icons

result = regenerate_app_icons()
print(f"OK: {len(result['ok'])}, FAIL: {len(result['failed'])}")

Bloque icon: esperado en app.md:

icon:
  phosphor: "chart-bar"
  accent: "#0ea5e9"

Cuando usarla

Cuando anades una app C++ nueva (anades icon: a su app.md y corres el pipeline), cambias el color/glyph de una app existente, o pulleas cambios de iconos desde otra rama. Antes de redeploy_cpp_app_windows para que el .exe lleve el icono actualizado.

Gotchas

  • Sobreescribe appicon.ico sin warning — igual que generate_app_icon. Hacer backup si necesitas preservar version anterior.
  • Requiere sources/phosphor-core/: clonar con git clone --depth=1 https://github.com/phosphor-icons/core.git sources/phosphor-core si no existe.
  • Solo procesa apps con lang: cpp en frontmatter — apps Go/Python se ignoran aunque tengan icon:.
  • Apps sin icon: se reportan en skipped, no son error. Util para detectar apps C++ a las que falta declarar el icono.
  • No invalida el cache de iconos de Windows — si Explorer no muestra el icono nuevo tras redeploy: ie4uinit.exe -show o reiniciar Explorer.