From c5947a39d8338fac21476fd4e3471c5aed1ae28b Mon Sep 17 00:00:00 2001 From: Rodolpho Lopes Date: Mon, 22 Jun 2026 22:02:31 +0000 Subject: [PATCH] docs(KB-026): reconcilia snapshot mcprotocol com estado real (v1.1.1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O snapshot original (26/05) era aspiracional e dava como prontos arquivos que git log --all confirmou nunca terem existido: src/InputValidation.php, src/ProjectTaskTools.php e as tools glpi_projecttask_*. Tabelas de estado, métricas e seção de versão corrigidas para refletir o disco. Itens não implementados rebaixados de 'feito' para 'planejado'. Documentados os commits que realmente entraram (bi_stats, fix range, schema plan_*_date). Co-Authored-By: Claude Opus 4.8 --- index.json | 2 +- ...IN-026-mcprotocol-roadmap-snapshot-v1.2.md | 75 +++++++++++-------- 2 files changed, 46 insertions(+), 31 deletions(-) diff --git a/index.json b/index.json index 8900f66..b258f2e 100755 --- a/index.json +++ b/index.json @@ -1,6 +1,6 @@ { "version": "1.0.0", - "last_updated": "2026-06-16", + "last_updated": "2026-06-22", "records": [ { "id": "KB-INFRA-001", diff --git a/records/plugin-dev/KB-PLUGIN-026-mcprotocol-roadmap-snapshot-v1.2.md b/records/plugin-dev/KB-PLUGIN-026-mcprotocol-roadmap-snapshot-v1.2.md index 24246cb..c8c32a8 100644 --- a/records/plugin-dev/KB-PLUGIN-026-mcprotocol-roadmap-snapshot-v1.2.md +++ b/records/plugin-dev/KB-PLUGIN-026-mcprotocol-roadmap-snapshot-v1.2.md @@ -10,7 +10,7 @@ tags: status: active severity: medium created_at: 2026-05-26 -updated_at: 2026-05-26 +updated_at: 2026-06-22 applies_to: - glpi-11 - mcprotocol-plugin @@ -28,7 +28,15 @@ related_records: ## Contexto -Esta KB é um **ponto de salvamento** do estado do plugin mcprotocol após a rodada de evolução de tools de Project + ProjectTask + extração da camada de validação. Serve de referência canônica para o estado atual e backlog priorizado. +Esta KB é um **ponto de salvamento** do estado do plugin mcprotocol. Serve de referência canônica para o estado atual e backlog priorizado. + +> ⚠️ **Reconciliação 2026-06-22.** A versão original deste snapshot (26/05) era +> **aspiracional**: descrevia `src/InputValidation.php`, `src/ProjectTaskTools.php` +> e as tools `glpi_projecttask_get/create` como "✅ NOVO / já no branch main do dev". +> A auditoria de `git log --all` confirmou que **esses arquivos nunca existiram no +> repositório** — foram planejados mas não implementados. As tabelas abaixo foram +> corrigidas para refletir o estado real em disco (**v1.1.1**). Os itens não +> implementados permanecem como roadmap, agora marcados como `📋 planejado`. ## Estado atual das tools @@ -36,16 +44,17 @@ Esta KB é um **ponto de salvamento** do estado do plugin mcprotocol após a rod | Tool | Status | Notas | |---|---|---| -| `glpi_ticket_get` | ✅ | | +| `glpi_ticket_get` | ✅ | Consolida followups | +| `glpi_ticket_bi_stats` | ✅ | Agregador de BI por data/status/entidade + SLA estourado (commit `e49d20d`) | | `glpi_ticket_create` | ✅ | | | `glpi_ticket_update` | ✅ | | | `glpi_ticket_add_followup` | ✅ | | | `glpi_ticket_add_solution` | ✅ | | -| `glpi_project_get` | ✅ | Retorna tarefas com `projecttasks_id` (hierarquia) | -| `glpi_project_create` | ✅ | Aceita estado/tipo por nome, datas, validação prévia | -| `glpi_project_update` | ✅ | **Estendido** com os mesmos campos do create + `percent_done` | -| `glpi_projecttask_get` | ✅ NOVO | | -| `glpi_projecttask_create` | ✅ NOVO | Suporta hierarquia (parent task), responsável, duração, estado | +| `glpi_project_get` | ✅ | Retorna tarefas (via `$DB` direto, não hierárquico) | +| `glpi_project_create` | ✅ | Tasks/subtasks aninhadas, estado por nome, `plan_*_date` (schema corrigido em `4ddd00b`) | +| `glpi_project_update` | ✅ | Apenas `name`/`content`/`percent_done` — **NÃO** estendido com datas/estado | +| `glpi_projecttask_get` | 📋 planejado | Nunca implementado | +| `glpi_projecttask_create` | 📋 planejado | Nunca implementado | | `glpi_ticket_search_by_status` | ✅ | | ### Tools genéricas (REST API v2) @@ -63,12 +72,13 @@ Esta KB é um **ponto de salvamento** do estado do plugin mcprotocol após a rod | Componente | Status | |---|---| | `src/Server.php` | ✅ Funcional. **Pendente:** validar HTTP status em `makeRequest` (KB-024 Correção #1) | -| `src/ToolRegistry.php` | ✅ Registra Ticket + Project + ProjectTask | -| `src/InputValidation.php` | ✅ NOVO — helpers compartilhados (KB-PLUGIN-023) | -| `src/TicketTools.php` | ✅ Ainda usa padrão antigo — candidato a migrar pro `InputValidation` | -| `src/ProjectTools.php` | ✅ Refatorado pra usar `InputValidation` | -| `src/ProjectTaskTools.php` | ✅ NOVO | -| `ajax/mcp.php` | ✅ Endpoint stateless com JWT | +| `src/ToolRegistry.php` | ✅ Registra **Ticket + Project** apenas (não ProjectTask) | +| `src/InputValidation.php` | ❌ Não existe — planejado em KB-PLUGIN-023, nunca implementado | +| `src/TicketTools.php` | ✅ Padrão antigo de validação inline (sem camada compartilhada) | +| `src/ProjectTools.php` | ✅ Validação inline; suporta `plan_*_date` e estado por nome | +| `src/ProjectTaskTools.php` | ❌ Não existe — planejado, nunca implementado | +| `src/Boot.php` | ✅ Registra path stateless via `SessionManager` | +| `ajax/mcp.php` | ✅ Endpoint stateless com JWT (RS256 / oauth.pub) | ## Casos reais executados @@ -122,26 +132,31 @@ Ambos comprovam o padrão de tools nativo funcionando em fluxo real de comercial 9. **SSE / Streamable HTTP completo** — notificações push (novo ticket, SLA estourando) 10. **OAuth2 com escopos finos** — separar permissões por escopo de tool -## Métricas atuais +## Métricas atuais (reconciliadas em 2026-06-22) -- **Tools registradas:** 16 (11 domínio + 5 genéricas) -- **Casos reais validados:** 2 projetos, 34 tarefas -- **KBs do plugin:** 14 (incluindo este snapshot) +- **Tools registradas:** 15 (9 domínio + 6 genéricas) + - Domínio: 6 de Ticket (`get`, `bi_stats`, `create`, `update`, `add_followup`, `add_solution`) + 3 de Project (`get`, `create`, `update`) + - Genéricas: `get_items`, `get_item`, `add_item`, `update_item`, `delete_item`, `ticket_search_by_status` +- **Arquivos em `src/`:** `Boot`, `Server`, `ToolRegistry`, `TicketTools`, `ProjectTools` (5) +- **Casos reais validados:** 2 projetos, 34 tarefas (VALGROUP, TCERJ) - **Bugs ativos:** 3 (1 alta, 1 média, 1 baixa) -- **Versão atual do plugin:** 1.1.0 (próxima release: 1.2.0) +- **Versão atual do plugin:** 1.1.1 -## Próxima versão proposta — v1.2.0 +## O que realmente entrou desde o snapshot original -Conteúdo já no branch `main` do dev (a fazer push): +Reconciliação 2026-06-22 (commits no repo dev `forgejo`): -- Adicionada `src/InputValidation.php` com helpers compartilhados -- Adicionada `src/ProjectTaskTools.php` com `glpi_projecttask_get` e `glpi_projecttask_create` -- Estendida `src/ProjectTools.php` — `update` agora aceita datas, estado, tipo -- Atualizado `src/ToolRegistry.php` registrando `ProjectTaskTools` -- KBs documentando padrões (022, 023), bugs (024, 025) e snapshot (026) +- `dfe2f77` — `.gitignore` ignora AppleDouble (`._*`) do macOS +- `12d209c` — fix: `glpi_get_items` usa `range` em vez de `limit` + `order` em maiúsculas +- `e49d20d` — feat: tool de domínio `glpi_ticket_bi_stats` +- `4ddd00b` — fix: `plan_start_date`/`plan_end_date` declarados no `inputSchema` do ProjectTools -Conteúdo para v1.2.1+ (correções dos bugs documentados): +## Roadmap NÃO implementado (rebaixado de "feito" para "planejado") -- `Server.php::makeRequest` validando HTTP status -- `ProjectTaskTools::handleDelete` (`glpi_projecttask_delete`) -- `glpi_projecttask_update` +Itens que o snapshot original dava como prontos, mas que nunca existiram: + +- `src/InputValidation.php` — camada de validação compartilhada (KB-PLUGIN-023) +- `src/ProjectTaskTools.php` — `glpi_projecttask_get` / `glpi_projecttask_create` +- `glpi_project_update` estendido com datas/estado +- `Server.php::makeRequest` validando HTTP status (Correção #1 do KB-024 — ainda aberto) +- `glpi_projecttask_delete` / `glpi_projecttask_update`