Skip to content

Releases: franciscorizzo/GxObjGen-install

GxObjGen v1.11.5 - gateway 8780 sem falha silenciosa

Choose a tag to compare

@franciscorizzo franciscorizzo released this 09 Jul 20:26

GxObjGen v1.11.5 — gateway 8780 sem falha silenciosa

Correção da issue #15 — obrigado, @bpessoni, pelo relato com evidências na medida!

O problema

O gateway multi-KB (porta 8780) é um script Python que a extensão lança ao abrir o IDE — e Python no PATH era um pré-requisito não documentado. Sem Python, o gateway não subia e nada aparecia no IDE (o motivo ia só para o log interno); como a doc inteira cravava 8780, o "connection refused" parecia MCP quebrado. O servidor por-KB (porta determinística, faixa 8787–8986, estável entre reaberturas) sempre esteve vivo — era a porta que o Output do IDE mostrava.

O que mudou

  • Status do gateway SEMPRE no Output do IDE (seção "GxObjGen MCP"): ATIVO / iniciado / NAO INICIADO: <motivo> (ex.: "Python nao encontrado no PATH") — com o workaround por-KB na própria mensagem.
  • A mensagem por-KB (a que aparece ao abrir a KB) ganhou uma linha com o estado real do gateway.
  • install.ps1 checa Python ao final: verde (gateway ok, registre a 8780) ou amarelo (conecte pela porta por-KB; para habilitar o gateway: winget install Python.Python.3.12).
  • Doc alinhada: README com as duas formas de conectar (gateway 8780 requer Python × porta por-KB sem dependência), GETTING-STARTED com o troubleshooting exato do sintoma ("connection refused na 8780 mas o IDE mostrou outra porta" → não reinstale), CLAUDE.md idem.

Validação

Deploy real: gateway ATIVO detectado e reportado no boot; regressão completa 24/24 PASS; as duas branches da detecção de Python do install.ps1 exercitadas.

Ação

  1. Atualize: git pull (repo de instalação) ou baixe o asset abaixo e rode install.ps1 (GeneXus fechado).
  2. /mcp no Claude Code p/ reconectar.

— Equipe CQ1

GxObjGen v1.11.4 - variables[] no Web Panel + run headless de verdade

Choose a tag to compare

@franciscorizzo franciscorizzo released this 09 Jul 16:45

GxObjGen v1.11.4 — variables[] no Web Panel + run headless de verdade

Onda 3 do feedback da comunidade (issues #13 e #14 — obrigado de novo, @yurecamilo! — e a sugestão do gx_gxserver na #12).

Variáveis tipadas em Web Panel / qualquer objeto — issue #13

  • variables[] no gx_create_or_update_webpanel — mesmo payload do procedure/API (type | domain | basedOnAttribute | basedOnObject, isCollection, Data Types do GX por nome). Tipando as vars dos eventos, o gx_specify fecha limpo — sem spc0047 not defined / spc0023 wrong type ao chamar Procedure tipado.
  • gx_set_variables (nova tool) — tipa/atualiza variáveis de qualquer objeto com VariablesPart (WebPanel, WebComponent, Transaction, API, Procedure...). É a paridade de ESCRITA com o gx_var_inspect. Cria novas e ATUALIZA existentes (só os campos declarados, com relatório antes→depois). type é opcional (desambigua homônimos).
  • Nota: nomes de variáveis standard do GX (Msg, Today, Pgmname...) são reservados — criação recusada na hora com o motivo.

gx_run: E2E de Procedure com efeitos reais — issue #14

  • capture=true é o run HEADLESS real (agora documentado como tal): compila o objeto se preciso (BuildOne, sem BuildAll) e roda o exe gerado como processo filho — &HttpClient faz a requisição DE VERDADE, New/update GRAVAM no banco, e o stdout/stderr vem na resposta com exit code.
  • args no capture — os parâmetros do parm() do proc main viram linha de comando do exe.
  • msg() só captura na forma msg(&x, status) — sem status, vira diálogo modal no exe gerado e pendura até o timeout (agora avisado na descrição da tool).
  • Os modos SEM capture (in-process, o F5 do IDE) agora avisam no retorno: não comprovam a execução/efeitos do programa — resposta vazia não significa "não executou".

gx_gxserver — parcial da issue #12

  • O stub não afirma mais "esta KB é LOCAL": reporta que a conexão Team Dev não é inspecionável por este build, que a KB pode estar sob GeneXus Server, e descreve o sintoma do lock (diálogo do Team Dev atrás do IDE pendurando o Save) + workaround (check-out manual antes da tool de escrita).

Validação

E2E na KB de teste (net-zero): webpanel com evento chamando procedure tipado → specify limpo; update/criação/recusa de variáveis; efeitos reais observados — listener HTTP local recebeu o POST com o body exato + row gravado pelo capture e lido por um SEGUNDO exe; args chegando no exe. Regressão completa: 24/24 PASS.

Ação

  1. Atualize: git pull (repo de instalação) ou baixe o asset abaixo e rode install.ps1 (GeneXus fechado).
  2. /mcp no Claude Code p/ reconectar.

— Equipe CQ1

GxObjGen v1.11.3 - variables[] v2 + build sem modal

Choose a tag to compare

@franciscorizzo franciscorizzo released this 07 Jul 16:05

GxObjGen v1.11.3 — variables[] v2 + build sem modal

Onda 2 do feedback da comunidade (issues #9, #10 e #11 — obrigado de novo, @yurecamilo!).

variables[] v2 (procedure/API) — issues #9 e #10

  • Atualiza variável existente — re-rodar com type/length/decimals/isCollection
    diferentes agora APLICA e reporta N nova(s), M atualizada(s) [&Var: antes -> depois]. Só os
    campos declarados são tocados (payload só com name não clobba nada). O caso "type GUID virou
    Character(40) em silêncio" era exatamente isso: a var placeholder já existia e o re-run pulava.
  • domain e basedOnAttribute — tipar por Domain (inclusive enumerado) ou "based on" um
    atributo (herda tipo/tamanho), paridade com o Data Selector.
  • Data Types do GX por nometype:"HttpRequest" (e os demais do combo do IDE) funciona de
    verdade (usa o mesmo parser do IDE). &HttpRequest.GetHeader(...) compila.
  • Type desconhecido = erro na hora com a lista dos tipos aceitos.
  • gx_var_inspect aceita qualquer objeto com variáveis (WebPanel, WebComponent...).

gx_build / gx_run — issue #11

  • Pré-check de reorganização pendente — se o build/run fosse abrir o modal de reorg no IDE
    (chamada pendurada até timeout ambíguo), agora ele NEM INICIA e devolve o status distinto
    "REORGANIZACAO PENDENTE" com as opções.
  • autoReorg=true — roda o reorganize incremental headless antes do build (opt-in,
    porque altera o schema do banco).
  • Guard de concorrência — um build/run por vez; chamada concorrente recebe
    "BUILD EM ANDAMENTO" em vez de empilhar MSBuild zumbi.

Validação

E2E na KB de teste (net-zero): criação/update/idempotência/erros de variáveis (GUID, domain,
based on, HttpRequest) + pré-check/autoReorg/guard com pendência real de schema — 15/15;
regressão geral 19/19.

Ação

  1. Atualize: git pull (repo de instalação) ou baixe o asset abaixo e rode install.ps1 (GeneXus fechado).
  2. /mcp no Claude Code p/ reconectar.

— Equipe CQ1

GxObjGen v1.11.2 - WWP: grid tab de tabela neta

Choose a tag to compare

@franciscorizzo franciscorizzo released this 07 Jul 13:52

GxObjGen v1.11.2 — WWP: grid tab de tabela "neta"

Fecha o ciclo do feedback da issue #7 (obrigado de novo, @yurecamilo!): grid tab de transação que
não é filha direta da root, mas tem FK direta (ex.: chave EmpresaCNPJ+Ano+Mes+Plano numa
WorkWithPlusEmpresa).

Os 2 problemas reportados

  1. level sumia do <transaction> — o valor era aceito em memória e descartado em silêncio
    na serialização (props de tipo custom não passavam pelo TypeConverter do pattern). Corrigido:
    todas as props agora são gravadas pelo mesmo caminho da desserialização do pattern — level,
    defaultLevel e qualquer custom/enum/bool persistem de verdade.
  2. Scaffold via source gerava aba vazia p/ transação não-filha-direta — os defaults do WWP só
    resolvem filha direta (o GridTab não tem bloco <Initialization>; attFrom não resolve FK
    nesse caminho). Corrigido: o source agora materializa o <transaction> explícito
    (transaction + level='root:<Trn>' + defaults) — o mesmo shape que o wizard "Add › Grid Tab"
    do IDE grava.

Bônus

  • Prop inexistente é recusada na hora com a lista nome(tipo) dos atributos válidos do nó
    (antes o typo era engolido e a validação recusava sem bullet no fim).
  • Referências por nome simples com resolução tipada: transaction:"Conta" resolve pela
    Transaction (não pela Table homônima) — vale p/ todos os reference(...).
  • Doc corrigida: o source não gera grid/colunas — o grid + colunas vêm no children.

Validação

E2E net-zero em KB real com o shape exato do relato (neta com FK direta): árvore manual com level
explícito ✅ · source+attFrom ✅ · regressão filha direta ✅ · prop inexistente → erro claro ✅ ·
regressão geral 19/19 ✅.

Ação

  1. Atualize: git pull (repo de instalação) ou baixe o asset abaixo e rode install.ps1 (GeneXus fechado).
  2. /mcp no Claude Code p/ reconectar.

— Equipe CQ1

GxObjGen v1.11.1 — HOTFIX CRITICO (data-loss)

Choose a tag to compare

@franciscorizzo franciscorizzo released this 06 Jul 19:27

⚠️ HOTFIX CRÍTICO (perda de dados) — atualize já

GxObjGen v1.11.1

O bug

Nas versões anteriores, gx_reorganize com execute=true executava internamente um Create Tables
(recria as tabelas → APAGA todos os dados) em vez de um Reorganize incremental. Ao adicionar um
atributo numa Transaction e reorganizar, os registros do banco eram perdidos.

A correção

  • gx_reorganize execute=true agora faz reorganização incremental (ALTER/CREATE conforme o diff,
    preserva os dados). Validado com teste de perda de dados (o dado sobrevive ao add-attribute+reorg).
  • O create-tables destrutivo foi isolado num alvo separado e explícito.
  • gx_build action=all foi auditado: já era incremental (seguro).

Ação

  1. Atualize: git pull (repo de instalação) ou baixe o asset abaixo e rode install.ps1 (GeneXus fechado).
  2. /mcp no Claude Code p/ reconectar.
  3. Boa prática: sempre gx_reorganize execute=false (análise) antes de um reorg real.

Obrigado a quem reportou. — Equipe CQ1

v1.11.0 — gx_wwp_add_tree: grid tab relacionada em WWP via MCP

Choose a tag to compare

@franciscorizzo franciscorizzo released this 03 Jul 16:29

Grid tab relacionada em WorkWithPlus via MCP (obrigado, @yurecamilo! — issue #7).

  • gx_wwp_add_tree — adiciona uma subárvore completa a uma instância WorkWithPlus de forma atômica: monta todos os nós em memória e valida/salva uma única vez no fim. Estruturas que só são válidas completas (ex.: grid tab de tabela relacionada) agora nascem via MCP.
  • Scaffold do wizard via source{type:"gridTab", source:"Conta"} (ou gx_wwp_add childType=gridTab source=Conta) ≈ "Add › Grid Tab" do IDE; attFrom desambigua a FK. Complete com o grid e as colunas na mesma chamada (a validação exige um main Grid e o wcname).
  • Referências em propstransaction/attribute/gxobject aceitam guidTipo-Nome (como no gx_wwp_read) ou o nome do objeto (também em gx_wwp_set/gx_wwp_add).
  • Motivo REAL nas recusas de validação do pattern + XML do que foi montado; em recusa nada persiste (rollback automático).

Instalação: extrair o zip e rodar install.ps1 (ou copiar Packages\GxObjGen.dll). Changelog completo no repositório.

GxObjGen v1.10.0 (beta)

Choose a tag to compare

@franciscorizzo franciscorizzo released this 02 Jul 16:59

GxObjGen v1.10.0 — onda a partir do feedback da comunidade.

Novidades

  • gx_diff — compara o texto de dois objetos (diff alinhado -/+). Otimo p/ ver o que muda entre implementacoes similares.
  • gx_lint — roda o specify em LOTE e lista so os erros/avisos reais (ex.: spc0038), escopado por type/like, com teto. Antes de um build.
  • Call tree mais facil de achar — gx_analyze mode=impact (quem chama, transitivo = raio de impacto) / mode=hierarchy (o que chama) agora aceitam sinonimos reverse_call_tree/call_tree/callers.
  • Fix instalador — install.ps1 reescrito em ASCII + BOM (nao quebra mais no PowerShell 5.1).
  • (1.9.0) build/run por objeto sem BuildAll. (1.8.0) enum/Domain, Data Selector var-param, gx_recover. (1.7.0) erro de validacao real, busca indexada, leitura granular.

Instalacao

  1. Baixe/extraia o asset, ou git clone. 2. GeneXus fechado: powershell -ExecutionPolicy Bypass -File install.ps1 (auto-eleva). 3. claude mcp add --transport http genexus http://127.0.0.1:8780/mcp. Read-only por padrao; escrita via GXOBJGEN_WRITE=1.

GxObjGen v1.9.0 (beta)

Choose a tag to compare

@franciscorizzo franciscorizzo released this 02 Jul 15:30

GxObjGen v1.9.0 — extensao GeneXus (17/18) + servidor MCP para operar a KB aberta pelo Claude Code.

Novidades

  • Build por objeto, SEM BuildAll: gx_build action=object compila so o objeto (in-process, como o F5 — muito mais rapido). Tambem rebuild, buildWithThisOnly, rebuildAll. action=all = build completo via MSBuild.
  • Modos de run: gx_run mode=runWithoutBuilding (roda sem compilar) | runWithThisOnly.
  • gx_run capture=true compila o objeto automaticamente (sem BuildAll) quando o exe nao existe.
  • (Atende a issue #2 da comunidade.) Obs: capturar o msg() de Procedure em apps .NET 8 ainda em investigacao.
  • (1.8.0) Dominio enumerado, atributo por Domain, Data Selector com parametro-variavel, gx_recover. (1.7.0) Erro de validacao real, busca indexada, leitura granular.

Instalacao

  1. Baixe/extraia o asset, ou git clone.
  2. GeneXus fechado, PowerShell: powershell -ExecutionPolicy Bypass -File install.ps1 (auto-eleva via UAC).
  3. claude mcp add --transport http genexus http://127.0.0.1:8780/mcp

Read-only por padrao; escrita via GXOBJGEN_WRITE=1.

GxObjGen v1.8.0 (beta)

Choose a tag to compare

@franciscorizzo franciscorizzo released this 02 Jul 11:18

GxObjGen v1.8.0 — extensao GeneXus (17/18) + servidor MCP para operar a KB aberta pelo Claude Code.

Novidades

  • Dominio ENUMERADO: gx_create_or_update_domain aceita enumValues (valores fixos {name,value,description}).
  • Atributo tipado por Domain: gx_create_or_update_transaction aceita domain por atributo (herda tipo/tamanho e, se enumerado, os valores).
  • Data Selector com PARAMETRO-VARIAVEL: gx_create_or_update_dataselector aceita parameters[].variable (por domain/basedOnAttribute/type).
  • gx_recover: action=list lista objetos DELETADOS recuperaveis; action=recover orienta a recuperacao (feita no IDE via Ctrl+Shift+R — a operacao exige o contexto interativo do IDE).
  • (1.7.0) Erro de validacao real, busca indexada (gx_search_indexed) e leitura granular seguem disponiveis.

Instalacao

  1. Baixe e extraia o asset, ou git clone.
  2. GeneXus fechado, PowerShell admin: powershell -ExecutionPolicy Bypass -File install.ps1
  3. claude mcp add --transport http genexus http://127.0.0.1:8780/mcp

Guia no README.md / GETTING-STARTED.md. Historico no CHANGELOG.md. Read-only por padrao; escrita via GXOBJGEN_WRITE=1.

GxObjGen v1.7.0 (beta)

Choose a tag to compare

@franciscorizzo franciscorizzo released this 01 Jul 21:26

GxObjGen v1.7.0 — extensao GeneXus (17/18) + servidor MCP para operar a KB aberta pelo Claude Code.

Destaques

  • Erro de validacao real: create/edit que falha traz o motivo exato do engine (nao mais "Validation failed").
  • gx_search_indexed: busca full-text pelo indice do IDE — localiza codigo/objetos em ~0,1-0,4s mesmo em KB grande (dezenas a centenas de vezes mais rapido que a varredura). Ordena por relevancia; minScore corta ruido.
  • gx_search_in_source robusto em KB grande (pula tipos sem codigo + teto de tempo; parcial com aviso em vez de travar).
  • Leitura granular no gx_get_object_text (part / faixa de linhas / find+context).

Instalacao

  1. Baixe e extraia o asset, ou git clone.
  2. GeneXus fechado, PowerShell admin: powershell -ExecutionPolicy Bypass -File install.ps1
  3. claude mcp add --transport http genexus http://127.0.0.1:8780/mcp

Guia completo no README.md e GETTING-STARTED.md. Historico de todas as versoes no CHANGELOG.md.
Read-only por padrao; escrita via GXOBJGEN_WRITE=1.