Repository navigation
feat(cockpit): multi-harness messaging, agents graph, per-agent files + Pi (part A of #243) - #245
Mystic0112 wants to merge 2 commits into
Conversation
|
Fala meo @Mystic0112 a primeira coisa a ser feita é quebrar essa PR em outra menores, um exemplo:
|
|
O Pi é o alvo principal deste projeto. Garanta que ele funcione como nó no grafo e com o |
|
tecrodrigocastro
left a comment
There was a problem hiding this comment.
verificar os comentarios
|
Pelo que entendi os testes dessa PR foi feito no linux, irei realizar os testes no MacOs e retorno. Ja que a plataforma mais utilizada no cockpit |
|
Show, irei particionar o pr e verificar o resto |
… files (jacobaraujo7#243) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
95f9587 to
bf3cc9f
Compare
|
@tecrodrigocastro valeu pela revisão! Respondendo ponto a ponto: 1. Divisão do PR. Feito.
2. Pi como alvo principal.
3. 4. Fallback do socket (no #253). Antes, o socket seguia a umask do processo. Aqui, com umask 0002, a pasta ficava 0775 e o socket 5. Remover/desfazer (no #253). Dá para remover só a entrada
No Codex, remover desliga uma configuração para o instalador não recolocar a entrada no boot, já que o Codex do terminal usa a mesma entrada. Fico no aguardo dos testes no macOS. Tudo aqui foi testado no Linux. |
|
Thanks @Mystic0112 for the effort here, and for splitting it. After looking at both parts, here's the scope decision: Cockpit already has the inter-agent primitive ( What we do want, as small separate PRs:
So I'm closing this PR and #253. If you open the smaller PRs above, we'll review them promptly. |
Part A of #243. As requested in review, the original PR was split. The MCP, desktop-app and Codex-via-MCP work moved to a separate PR (part B), which builds on this one.
What's in it
1. Multi-harness messaging
cockpit msg --to <label|tab-id> <text>types[from: <tab> · <harness>] <text>into the target tab, presses Enter after a short delay, and logs the message per workspace. Labels resolve likeread-tab(ambiguous = error), and the sender signs with its label or tab id.harnessfield inlist-panes/list-tabs.install-skillalso targets Antigravity (~/.gemini/antigravity-cli/skills).AgentHarness.fromWireno longer maps unknown names toclaude.2. Agents graph (topbar → Visualize agents)
cockpit peers [--json]. Layout state is saved with the workspace.3. Files panel: who is touching what
cockpit hookforwards edited file paths fromPostToolUse. Tabs without hooks are inferred from git at the end of each turn and marked "(inferred)".Pi as a first-class agent (review feedback)
PiHookInstallerImplinstalls~/.pi/agent/extensions/cockpit-hook.js; the installer only runs when~/.piexists, is idempotent, and never touches a user file with the same name. Pi loads the extension automatically.cockpit hook --harness pi:session_start→ SessionStartagent_start→ UserPromptSubmitagent_end→ Stopedit/write→ PostToolUse with file paths, which feeds the Files panel--mode textwithout-pnow counts as the TUI.pi install|remove|update|listare treated as admin commands.pi-<mode>. Pi overwritesprocess.title, which hides--mode rpcfrom/proc, so this keeps rpc runs from being detected as agents.install-skill --agent piwas verified.test/session/pi_agent_test.dartcovers harnesspiin list-tabs/peers, the graph node, the intro text, msg delivery (PTY write, delayed Enter, logged) and turn status via both heuristic and hook.test/data/pi_hook_installer_test.dartcovers the installer. There are also classifier cases and a Rust test for the hook envelope.Testing
flutter analyzereports no issues.cargo test: 42 + 39 passed.main(terminal_view_testtextScaler ×2 and thewindow_menu_bar_testmacOS case).@earendil-works/pi-coding-agent): the tab was detected as[pi]and the extension was installed at startup.cockpit msgreached Pi; the turn went working → idle; Pi'swritetool ran.cockpit msg, signed[from: PiTest · Pi].🤖 Generated with Claude Code