Redmine/inc
Gemini 7ac1f8ac44 feat(2.0): Fase 1 — motor de templates de payload (design + engine + fallback 1.x)
- docs/DESIGN-2.0.md: decisões fechadas (tags PT, editor linha-a-linha,
  escopo global, dry-run com preview) e arquitetura Motor x Template
- PluginRedmineTemplateengine: render mustache-like ({{ var | filtro }}),
  regra de tipos (tag inteira = tipo nativo), lookup indexado
  (map.status[chamado.status]), filtros (truncar, sem_html, minusculo,
  identificador, padrao), prune de nulls, seeds 1.x-equivalentes e
  descoberta de custom fields obrigatórios
- tabela glpi_plugin_redmine_templates (operation único, is_active)
- wiring com precedência de template + fallback no render em
  create_issue, log_time e update_status
- validado: 12/12 unit + E2E (template ativo cria issue/tempo; template
  quebrado cai no motor 1.x sem perder lançamento)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 15:25:32 -03:00
..
config.class.php feat: resolução de usuários self-healing + syncUsers upsert + fallback logado (1.6.0) 2026-07-02 12:56:49 -03:00
entity.class.php fix: envia tracker_ids na criação de projeto (sem tracker, Redmine recusa issues) (1.5.7) 2026-07-02 11:18:27 -03:00
event.class.php Redmine Integration 1.3.0 2026-06-29 18:32:19 -03:00
project.class.php fix: envia tracker_ids na criação de projeto (sem tracker, Redmine recusa issues) (1.5.7) 2026-07-02 11:18:27 -03:00
redmineapi.class.php feat(2.0): Fase 1 — motor de templates de payload (design + engine + fallback 1.x) 2026-07-02 15:25:32 -03:00
templateengine.class.php feat(2.0): Fase 1 — motor de templates de payload (design + engine + fallback 1.x) 2026-07-02 15:25:32 -03:00