docs(KB-026): reconcilia snapshot mcprotocol com estado real (v1.1.1)
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 <noreply@anthropic.com>
This commit is contained in:
parent
069cd141a8
commit
c5947a39d8
2 changed files with 46 additions and 31 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"last_updated": "2026-06-16",
|
"last_updated": "2026-06-22",
|
||||||
"records": [
|
"records": [
|
||||||
{
|
{
|
||||||
"id": "KB-INFRA-001",
|
"id": "KB-INFRA-001",
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ tags:
|
||||||
status: active
|
status: active
|
||||||
severity: medium
|
severity: medium
|
||||||
created_at: 2026-05-26
|
created_at: 2026-05-26
|
||||||
updated_at: 2026-05-26
|
updated_at: 2026-06-22
|
||||||
applies_to:
|
applies_to:
|
||||||
- glpi-11
|
- glpi-11
|
||||||
- mcprotocol-plugin
|
- mcprotocol-plugin
|
||||||
|
|
@ -28,7 +28,15 @@ related_records:
|
||||||
|
|
||||||
## Contexto
|
## 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
|
## 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 |
|
| 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_create` | ✅ | |
|
||||||
| `glpi_ticket_update` | ✅ | |
|
| `glpi_ticket_update` | ✅ | |
|
||||||
| `glpi_ticket_add_followup` | ✅ | |
|
| `glpi_ticket_add_followup` | ✅ | |
|
||||||
| `glpi_ticket_add_solution` | ✅ | |
|
| `glpi_ticket_add_solution` | ✅ | |
|
||||||
| `glpi_project_get` | ✅ | Retorna tarefas com `projecttasks_id` (hierarquia) |
|
| `glpi_project_get` | ✅ | Retorna tarefas (via `$DB` direto, não hierárquico) |
|
||||||
| `glpi_project_create` | ✅ | Aceita estado/tipo por nome, datas, validação prévia |
|
| `glpi_project_create` | ✅ | Tasks/subtasks aninhadas, estado por nome, `plan_*_date` (schema corrigido em `4ddd00b`) |
|
||||||
| `glpi_project_update` | ✅ | **Estendido** com os mesmos campos do create + `percent_done` |
|
| `glpi_project_update` | ✅ | Apenas `name`/`content`/`percent_done` — **NÃO** estendido com datas/estado |
|
||||||
| `glpi_projecttask_get` | ✅ NOVO | |
|
| `glpi_projecttask_get` | 📋 planejado | Nunca implementado |
|
||||||
| `glpi_projecttask_create` | ✅ NOVO | Suporta hierarquia (parent task), responsável, duração, estado |
|
| `glpi_projecttask_create` | 📋 planejado | Nunca implementado |
|
||||||
| `glpi_ticket_search_by_status` | ✅ | |
|
| `glpi_ticket_search_by_status` | ✅ | |
|
||||||
|
|
||||||
### Tools genéricas (REST API v2)
|
### 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 |
|
| Componente | Status |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `src/Server.php` | ✅ Funcional. **Pendente:** validar HTTP status em `makeRequest` (KB-024 Correção #1) |
|
| `src/Server.php` | ✅ Funcional. **Pendente:** validar HTTP status em `makeRequest` (KB-024 Correção #1) |
|
||||||
| `src/ToolRegistry.php` | ✅ Registra Ticket + Project + ProjectTask |
|
| `src/ToolRegistry.php` | ✅ Registra **Ticket + Project** apenas (não ProjectTask) |
|
||||||
| `src/InputValidation.php` | ✅ NOVO — helpers compartilhados (KB-PLUGIN-023) |
|
| `src/InputValidation.php` | ❌ Não existe — planejado em KB-PLUGIN-023, nunca implementado |
|
||||||
| `src/TicketTools.php` | ✅ Ainda usa padrão antigo — candidato a migrar pro `InputValidation` |
|
| `src/TicketTools.php` | ✅ Padrão antigo de validação inline (sem camada compartilhada) |
|
||||||
| `src/ProjectTools.php` | ✅ Refatorado pra usar `InputValidation` |
|
| `src/ProjectTools.php` | ✅ Validação inline; suporta `plan_*_date` e estado por nome |
|
||||||
| `src/ProjectTaskTools.php` | ✅ NOVO |
|
| `src/ProjectTaskTools.php` | ❌ Não existe — planejado, nunca implementado |
|
||||||
| `ajax/mcp.php` | ✅ Endpoint stateless com JWT |
|
| `src/Boot.php` | ✅ Registra path stateless via `SessionManager` |
|
||||||
|
| `ajax/mcp.php` | ✅ Endpoint stateless com JWT (RS256 / oauth.pub) |
|
||||||
|
|
||||||
## Casos reais executados
|
## 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)
|
9. **SSE / Streamable HTTP completo** — notificações push (novo ticket, SLA estourando)
|
||||||
10. **OAuth2 com escopos finos** — separar permissões por escopo de tool
|
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)
|
- **Tools registradas:** 15 (9 domínio + 6 genéricas)
|
||||||
- **Casos reais validados:** 2 projetos, 34 tarefas
|
- Domínio: 6 de Ticket (`get`, `bi_stats`, `create`, `update`, `add_followup`, `add_solution`) + 3 de Project (`get`, `create`, `update`)
|
||||||
- **KBs do plugin:** 14 (incluindo este snapshot)
|
- 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)
|
- **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
|
- `dfe2f77` — `.gitignore` ignora AppleDouble (`._*`) do macOS
|
||||||
- Adicionada `src/ProjectTaskTools.php` com `glpi_projecttask_get` e `glpi_projecttask_create`
|
- `12d209c` — fix: `glpi_get_items` usa `range` em vez de `limit` + `order` em maiúsculas
|
||||||
- Estendida `src/ProjectTools.php` — `update` agora aceita datas, estado, tipo
|
- `e49d20d` — feat: tool de domínio `glpi_ticket_bi_stats`
|
||||||
- Atualizado `src/ToolRegistry.php` registrando `ProjectTaskTools`
|
- `4ddd00b` — fix: `plan_start_date`/`plan_end_date` declarados no `inputSchema` do ProjectTools
|
||||||
- KBs documentando padrões (022, 023), bugs (024, 025) e snapshot (026)
|
|
||||||
|
|
||||||
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
|
Itens que o snapshot original dava como prontos, mas que nunca existiram:
|
||||||
- `ProjectTaskTools::handleDelete` (`glpi_projecttask_delete`)
|
|
||||||
- `glpi_projecttask_update`
|
- `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`
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue