chore(deps): regenera os 3 locks que o bump do #825 deixou para trás - #863
Merged
marceloterra1983 merged 6 commits intoAug 27, 2026
Merged
Conversation
…orktree Sem consulta ao grafo nos últimos 30 min (mtime de graphify-out/cache/ last_query_stamp), o 1º Read/Grep/Glob — e Bash leitor — que alcança src/, docs/surfaces/ ou docs/architecture/*.md é negado com a mensagem de triagem: graphify para arquitetura, Serena para símbolo. Serena (mcp__serena__*) e graphify query|path|explain nunca bloqueiam. Grep/Glob sem path contam como raiz. O deny é stat/mtime puro no merge .py e não depende do binário. Motivação medida: aviso no início da conversa não gruda (3/307 sessões); o nudge do hook converteu 12% (30/241, 25-26/08); Serena estava em 1/502. - pin do binário migra do script para ~/.config/profitbridge/graphify.pin (regravado pelo upgrade diário em ~/ops); pin quebrado avisa e o deny continua — nunca degrada em silêncio - com carimbo fresco o nudge oficial é suprimido (anti-saturação) - hooks/post-checkout: worktree nova recebe graph.json+manifest.json do checkout primário (sem cache/ — nasce sem carimbo de propósito) + graphify update em background + config Serena de serena-project-template.yml (csharp+typescript+python, triagem no initial_prompt, modos não-interativos) - docs: AGENTS.md/CLAUDE.md/GRAPHIFY.md trocam a regra do "3º arquivo" pelo deny no 1º; incorpora docs/knowledge/SERENA.md e index.md do #855 (supersede aquele PR) com a triagem e a isenção do Serena Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
O portão cobria só o Claude Code: Codex, Grok e Cursor liam src/ sem passar
por ele. O guard passa a falar os três dialetos de recusa — permissionDecision
(Claude Code), {"decision":"deny"} (Grok/Cursor) e exit 2 + stderr, que todos
honram — e classifica a chamada pelo FORMATO da entrada, não pelo nome da
ferramenta, que diverge entre agentes (Read/read_file, Bash/run_terminal_command).
Codex: mecanismo provado com hook: PreToolUse Blocked. Fica inerte até o dono
aprovar o hook uma vez; sem trusted_hash o Codex o ignora em silêncio, e o
doutor detecta exatamente esse estado. Grok: instalado, protocolo documentado,
NÃO verificado (a CLI não inicia neste host).
Adesão é versionar o guard, não usar graphify: qlmed/app usa graphify e segue
livre. O lançador em ~/ops não contém política — acha o repo e delega.
Serena continua disponível e nunca obrigatório, e agora é isento por nome: o
heurístico de varredura casava com find_symbol e bloqueava justamente a
ferramenta que esta política manda usar. Edit/Write também isentos, para a
política ser a mesma em todo agente.
graphify-serena-doctor.sh verifica pin, hooks, grafo, config do Serena em todos
os checkouts e a triagem nos documentos; --fix repara o reparável (encontrou e
consertou 4 defeitos reais na primeira execução) e reporta o que exige uma
pessoa. Cron diário 06:41.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…closed-profitbridge-f46f0c # Conflicts: # docs/knowledge/GRAPHIFY.md # docs/knowledge/SERENA.md # scripts/dev/graphify-hook-guard-merge.py
O hook foi aprovado no codex interativo e a entrada pre_tool_use ficou gravada no config.toml. Reteste sem --dangerously-bypass-hook-trust: hook: PreToolUse Blocked, comando não executado. Doutor: 39 ok, 0 quebrados. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…closed-profitbridge-f46f0c # Conflicts: # docs/knowledge/GRAPHIFY.md
O #825 subiu Roslynator 4.12.9→4.16.1 e SonarAnalyzer 10.4.0.108396→10.33.0.1635 no Directory.Packages.props e atualizou 19 dos 24 ficheiros de lock. Estes três ficaram com as versões antigas, inconsistentes com o props já commitado — e qualquer restore os regenerava, deixando o checkout compartilhado permanentemente sujo e fazendo o cron de sincronização pular o pull a cada 30 minutos. Conteúdo idêntico ao que o restore produz; nenhuma versão escolhida à mão. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
marceloterra1983
deleted the
claude/graphify-fail-closed-profitbridge-f46f0c
branch
August 27, 2026 01:04
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
O quê
O #825 subiu Roslynator
4.12.9→4.16.1e SonarAnalyzer10.4.0.108396→10.33.0.1635noDirectory.Packages.propse atualizou 19 dos 24 ficheiros de lock. Estes três ficaram com as versões antigas.Por que importa
Os locks ficavam inconsistentes com o
propsjá commitado, e qualquerrestoreos regenerava — deixando o checkout compartilhado~/profitbridgepermanentemente sujo. Efeito colateral concreto: o cron de sincronização do grafo registravapull pulado: worktree sujoa cada 30 minutos e nunca atualizava.Nota
Conteúdo idêntico ao que o
restoreproduz — nenhuma versão escolhida à mão. Não há validação de lock na CI (nenhum--locked-mode), então isto era consistência, não build quebrado.🤖 Generated with Claude Code