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>
This commit is contained in:
@@ -3,10 +3,10 @@ name: regenerate_app_icons
|
||||
kind: pipeline
|
||||
lang: py
|
||||
domain: pipelines
|
||||
version: "1.0.0"
|
||||
version: "1.2.0"
|
||||
purity: impure
|
||||
signature: "def regenerate_app_icons(only: list[str] | None = None) -> dict"
|
||||
description: "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. Reemplaza el script ad-hoc dev/gen_app_icons.py."
|
||||
signature: "def regenerate_app_icons(only: list[str] | None = None, style: str = 'fill_white') -> dict"
|
||||
description: "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."
|
||||
tags: [cpp-windows, icon, phosphor, batch]
|
||||
uses_functions: [generate_app_icon_py_infra]
|
||||
uses_types: []
|
||||
@@ -17,6 +17,8 @@ imports: [os, sys, pathlib, typing, yaml]
|
||||
params:
|
||||
- name: only
|
||||
desc: "Lista opcional de nombres de app (campo `name` del frontmatter) a procesar. Si None, regenera todas las apps C++ con icon: declarado."
|
||||
- name: style
|
||||
desc: "'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>`."
|
||||
output: "dict {ok: [name], skipped: [{name, reason}], failed: [{name, error}]}"
|
||||
tested: false
|
||||
tests: []
|
||||
@@ -27,14 +29,14 @@ file_path: "python/functions/pipelines/regenerate_app_icons.py"
|
||||
## Ejemplo
|
||||
|
||||
```bash
|
||||
# Regenerar todas las apps C++ con icon: declarado
|
||||
# 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
|
||||
|
||||
# Varias apps
|
||||
./fn run regenerate_app_icons chart_demo registry_dashboard
|
||||
```
|
||||
|
||||
```python
|
||||
|
||||
@@ -45,12 +45,18 @@ def _iter_cpp_app_mds(root: Path):
|
||||
yield md, fm
|
||||
|
||||
|
||||
def regenerate_app_icons(only: Optional[list[str]] = None) -> dict:
|
||||
def regenerate_app_icons(
|
||||
only: Optional[list[str]] = None,
|
||||
style: str = "fill_white",
|
||||
) -> dict:
|
||||
"""Recorre apps C++ con bloque icon: en su frontmatter y regenera appicon.ico.
|
||||
|
||||
Args:
|
||||
only: Lista opcional de nombres de app a filtrar (campo `name`). Si None,
|
||||
procesa todas las apps C++ con `icon:` declarado.
|
||||
style: Estilo del icono. "fill_white" (default, glyph blanco) o
|
||||
"adaptive_duotone" (glyph duotone con tono claro/oscuro segun
|
||||
luminancia del accent). Ver generate_app_icon.
|
||||
|
||||
Returns:
|
||||
dict con keys: ok (list[str]), skipped (list[dict]), failed (list[dict]).
|
||||
@@ -77,6 +83,7 @@ def regenerate_app_icons(only: Optional[list[str]] = None) -> dict:
|
||||
phosphor_icon_name=phosphor,
|
||||
accent_hex=accent,
|
||||
out_ico_path=str(out_ico),
|
||||
style=style,
|
||||
)
|
||||
ok.append(name)
|
||||
except Exception as e:
|
||||
@@ -86,8 +93,20 @@ def regenerate_app_icons(only: Optional[list[str]] = None) -> dict:
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
only = sys.argv[1:] or None
|
||||
result = regenerate_app_icons(only=only)
|
||||
args = sys.argv[1:]
|
||||
style = "fill_white"
|
||||
only = []
|
||||
for a in args:
|
||||
if a.startswith("--style="):
|
||||
style = a.split("=", 1)[1]
|
||||
elif a == "--adaptive":
|
||||
style = "adaptive_duotone"
|
||||
elif a == "--white":
|
||||
style = "white_duotone"
|
||||
else:
|
||||
only.append(a)
|
||||
only = only or None
|
||||
result = regenerate_app_icons(only=only, style=style)
|
||||
for name in result["ok"]:
|
||||
print(f"OK {name}")
|
||||
for s in result["skipped"]:
|
||||
|
||||
Reference in New Issue
Block a user