pantheon-opencode 1.5.0-beta.2 → 1.5.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.pantheon/code-mode/manifest.json +21 -0
- package/AGENTS.md +14 -63
- package/CHANGELOG.md +1260 -0
- package/README.md +162 -23
- package/README.pt-BR.md +104 -19
- package/bin/pantheon-init.mjs +178 -21
- package/commands/pantheon.md +1 -35
- package/package.json +23 -15
- package/plugin.json +1 -1
- package/pyproject.toml +62 -0
- package/scripts/code_mode_server.py +431 -55
- package/scripts/doctor.mjs +207 -9
- package/scripts/install/cli-ui.mjs +17 -11
- package/scripts/install/config-migration.mjs +4 -6
- package/scripts/install/opencode.mjs +137 -35
- package/scripts/install/plugin.mjs +12 -45
- package/scripts/install/shared.mjs +43 -2
- package/scripts/install/strings.mjs +129 -0
- package/scripts/install-mcp.mjs +1 -0
- package/scripts/manifest-inventory.mjs +410 -0
- package/scripts/mcp_persistence_server.py +536 -164
- package/scripts/package-evidence.mjs +242 -0
- package/scripts/probe-pantheon-cost.mjs +10 -1
- package/scripts/release-beta-version.mjs +56 -60
- package/scripts/sync-artifacts.mjs +169 -0
- package/scripts/sync-tui.mjs +129 -64
- package/scripts/test-opencode-v1-v2-sandbox.sh +79 -161
- package/scripts/validation-policy.mjs +7 -7
- package/scripts/version-check.mjs +113 -108
- package/scripts/versioning.mjs +230 -86
- package/src/agents/apollo.md +1 -0
- package/src/agents/gaia.md +1 -0
- package/src/agents/mnemosyne.md +1 -1
- package/src/agents/zeus.md +11 -54
- package/src/instructions/memory-protocol.instructions.md +6 -3
- package/src/instructions/zeus-anti-stall.instructions.md +2 -4
- package/src/instructions/zeus-council-synthesis.instructions.md +3 -28
- package/src/instructions/zeus-timeout-retry.instructions.md +3 -28
- package/src/mcp/code_mode_server.py +431 -55
- package/src/mcp/mcp_persistence_server.py +536 -164
- package/src/mcp/toon_codec.py +2 -4
- package/src/pantheon/background-job-board.ts +47 -5
- package/src/pantheon/{delegation-compaction.ts → compaction-context.ts} +10 -100
- package/src/pantheon/cost-command.ts +309 -44
- package/src/pantheon/delegation-enforce.ts +59 -14
- package/src/pantheon/file-persistence-salvage.ts +64 -0
- package/src/pantheon/file-persistence.ts +194 -45
- package/src/pantheon/goal-loop.ts +1 -1
- package/src/pantheon/goal-store.ts +1 -1
- package/src/pantheon/idle-continuation.ts +4 -6
- package/src/pantheon/model-command.ts +1 -2
- package/src/pantheon/native-task-status.ts +139 -0
- package/src/pantheon/presets.d.mts +0 -20
- package/src/pantheon/presets.mjs +0 -64
- package/src/pantheon/session-guard.ts +2 -2
- package/src/pantheon/session-id.ts +30 -0
- package/src/pantheon/shared-board.ts +37 -0
- package/src/pantheon/task-result-guard.ts +106 -0
- package/src/pantheon/todo-enforcer.ts +3 -3
- package/src/pantheon/tool-ceiling.ts +159 -0
- package/src/pantheon/tool-context.ts +23 -0
- package/src/pantheon/v2-bridge.ts +1 -4
- package/src/plugin-v2.ts +8 -21
- package/src/plugin.ts +83 -251
- package/src/plugins/pantheon-hooks.ts +51 -0
- package/src/plugins/tui/dist/server.d.ts +1 -1
- package/src/plugins/tui/dist/server.d.ts.map +1 -1
- package/src/plugins/tui/dist/server.js +1 -1
- package/src/plugins/tui/dist/server.js.map +1 -1
- package/src/plugins/tui/dist/tui.d.ts +261 -77
- package/src/plugins/tui/dist/tui.d.ts.map +1 -1
- package/src/plugins/tui/dist/tui.js +640 -234
- package/src/plugins/tui/dist/tui.js.map +1 -1
- package/src/plugins/tui/package-lock.json +2 -2
- package/src/plugins/tui/package.json +2 -2
- package/src/plugins/tui/src/index.tsx +872 -226
- package/src/routing.yml +0 -16
- package/src/skills/context-compression/SKILL.md +1 -1
- package/scripts/generate-preset-docs.mjs +0 -300
- package/scripts/generate-prompts.sh +0 -222
- package/scripts/hash_verify.py +0 -192
- package/scripts/install/component.mjs +0 -24
- package/scripts/install/migrate-config.mjs +0 -302
- package/scripts/test-context-compression.sh +0 -169
- package/src/pantheon/auto-wake.ts +0 -89
- package/src/pantheon/chat-reminders.ts +0 -9
- package/src/pantheon/comment-checker.ts +0 -48
- package/src/pantheon/compaction-assert.ts +0 -160
- package/src/pantheon/cost-tracker.ts +0 -108
- package/src/pantheon/delegate-manager.ts +0 -669
- package/src/pantheon/delegation-classifier.ts +0 -307
- package/src/pantheon/delegation-finalize.ts +0 -374
- package/src/pantheon/delegation-notify.ts +0 -212
- package/src/pantheon/delegation-toast.ts +0 -73
- package/src/pantheon/delegation.ts +0 -1120
- package/src/pantheon/dispatch-guard.ts +0 -109
- package/src/pantheon/permission-eval.ts +0 -284
- package/src/pantheon/preemptive-compact.ts +0 -76
- package/src/pantheon/retry-policy.ts +0 -212
- package/src/pantheon/step-cap.ts +0 -110
- package/src/pantheon/token-opt.ts +0 -781
- package/src/pantheon/toon-codec.ts +0 -481
- package/src/pantheon/v2-events.ts +0 -131
- package/src/pantheon/v2-hooks.ts +0 -287
- package/src/pantheon/v2-tool-definitions.ts +0 -331
- package/src/pantheon/zeus-delegate-with-retry.ts +0 -406
- package/src/plugins/tui/dist/tui.tsx +0 -2605
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,1260 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
11
|
+
move this section to a versioned entry and reset the template below. -->
|
|
12
|
+
|
|
13
|
+
## 🆕 What's New
|
|
14
|
+
|
|
15
|
+
## 🐞 Fixed
|
|
16
|
+
|
|
17
|
+
## ⚠️ Known Issues
|
|
18
|
+
|
|
19
|
+
## ✅ Closed Issues
|
|
20
|
+
|
|
21
|
+
## [v1.5.0-beta.20] - 2026-09-16
|
|
22
|
+
|
|
23
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
24
|
+
move this section to a versioned entry and reset the template below. -->
|
|
25
|
+
|
|
26
|
+
## 🐞 Fixed
|
|
27
|
+
|
|
28
|
+
- **Fixed — painel Delegations**: children com status `busy` stale (>30min sem
|
|
29
|
+
atualização) agora são classificadas como `completed` (não `running`). O
|
|
30
|
+
opencode mantém entradas `busy` no mapa de status para sessões já concluídas;
|
|
31
|
+
o TUI agora detecta e marca como done.
|
|
32
|
+
## [v1.5.0-beta.19] - 2026-09-16
|
|
33
|
+
|
|
34
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
35
|
+
move this section to a versioned entry and reset the template below. -->
|
|
36
|
+
|
|
37
|
+
## 🆕 What's New
|
|
38
|
+
|
|
39
|
+
- **Improved — painel Delegations**: status ausente de children antigas agora é
|
|
40
|
+
`done` (não `running`); grace 60s para sessões recém-criadas; janela de
|
|
41
|
+
recência 24h (filtra histórico); ordenação newest-first; ceiling esconde
|
|
42
|
+
antigos.
|
|
43
|
+
- **Improved — animação**: spinner ⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏ agora tem timer
|
|
44
|
+
independente (80ms/frame), separado do poll de dados — fluido, não mais
|
|
45
|
+
"travado".
|
|
46
|
+
## [v1.5.0-beta.18] - 2026-09-16
|
|
47
|
+
|
|
48
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
49
|
+
move this section to a versioned entry and reset the template below. -->
|
|
50
|
+
|
|
51
|
+
## 🐞 Fixed
|
|
52
|
+
|
|
53
|
+
- **Painel Delegations voltou a funcionar (crítico):** o canal
|
|
54
|
+
`session.children` da TUI chamava a API com a shape v1 (`{ path: { id } }`)
|
|
55
|
+
num cliente **v2** que espera `{ sessionID }`; o placeholder não era
|
|
56
|
+
substituído (`/session/%7BsessionID%7D/children`), o host rejeitava cada
|
|
57
|
+
poll (~181k erros/s) e o painel ficava vazio ("No delegations"). Corrigido
|
|
58
|
+
`safeSessionPath`/`buildChildrenPath` para `{ sessionID }`, removidos os
|
|
59
|
+
`as any` que escondiam o mismatch, + teste de regressão exato. Auditoria
|
|
60
|
+
confirmou que só a TUI (v2) estava errada (o `plugin.ts` usa SDK v1 de
|
|
61
|
+
propósito).
|
|
62
|
+
- **Higiene de testes:** testes que importam o plugin sem isolamento agora
|
|
63
|
+
fazem `chdir` para um projeto temporário antes do import — não criam mais
|
|
64
|
+
entradas no board real (fim dos estados fantasma em desenvolvimento).
|
|
65
|
+
|
|
66
|
+
## [v1.5.0-beta.17] - 2026-09-15
|
|
67
|
+
|
|
68
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
69
|
+
move this section to a versioned entry and reset the template below. -->
|
|
70
|
+
|
|
71
|
+
## 🆕 What's New
|
|
72
|
+
|
|
73
|
+
- **Delegação nativa no host:** o motor `pantheon_delegate` foi removido
|
|
74
|
+
(~3,9k linhas) junto com as tools `pantheon_delegate`,
|
|
75
|
+
`pantheon_delegation_read` e `pantheon_delegation_list`; a delegação agora usa
|
|
76
|
+
o **`task()` nativo** do host (child sessions). 16 arquivos de teste obsoletos
|
|
77
|
+
removidos.
|
|
78
|
+
- **TUI — painel Delegations lê a sessão nativa:** o painel passa a derivar de
|
|
79
|
+
`session.children` + `session.status` + md (o arquivo de board deixou de ser
|
|
80
|
+
fonte). Mantidas as cores de status, retenção, ceiling, filtro de sessão e
|
|
81
|
+
guards.
|
|
82
|
+
- **Camada fina preservada:** `task-result-guard` (verified completion de child
|
|
83
|
+
vazio), `native-task-status` e guards de enforcement.
|
|
84
|
+
|
|
85
|
+
## 🐞 Fixed
|
|
86
|
+
|
|
87
|
+
- **Read-only enforcement re-apontado para sessões nativas:** aplicado no
|
|
88
|
+
público via hook `chat.params` e `hashline_edit` bloqueado para `apollo`/`gaia`,
|
|
89
|
+
fechando o bypass aberto após a remoção do motor de delegação.
|
|
90
|
+
- **Docs/comentários limpos:** referências aos módulos removidos atualizadas,
|
|
91
|
+
incluindo nits de comentário em `tests/pantheon/tui-delegations.test.ts` e
|
|
92
|
+
`src/pantheon/session-id.ts`.
|
|
93
|
+
|
|
94
|
+
## [v1.5.0-beta.16] - 2026-09-15
|
|
95
|
+
|
|
96
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
97
|
+
move this section to a versioned entry and reset the template below. -->
|
|
98
|
+
|
|
99
|
+
## 🆕 What's New
|
|
100
|
+
|
|
101
|
+
- **Modernização CI/supply-chain:** 22 actions SHA-pinadas; `gitleaks-action` v3
|
|
102
|
+
(fix crítico — a v2 morria com Node 20 em 2026-09-16) com CLI 8.30.1; cache
|
|
103
|
+
npm/pip; Dependabot; CodeQL `+python` e `codeql-config`; permissões reduzidas
|
|
104
|
+
no `docs.yml`; job `version-check` fundido no `validate`; `upload-artifact` v7
|
|
105
|
+
e `download-artifact` v8.
|
|
106
|
+
- **Lean:** ~17 módulos mortos removidos de `src/pantheon/`, docs/scripts
|
|
107
|
+
obsoletos, `teste/`/`testes/`, `Dockerfile`/`docker-compose` (de outro projeto)
|
|
108
|
+
e caches; ~38% dos arquivos de teste removidos/consolidados; testes mínimos
|
|
109
|
+
readicionados para os módulos vivos (tool-ceiling, native-probe).
|
|
110
|
+
- **Instructions:** deduplicação das instruções compartilhadas — contexto menor
|
|
111
|
+
sem perder nenhuma regra.
|
|
112
|
+
|
|
113
|
+
## 🐞 Fixed
|
|
114
|
+
|
|
115
|
+
- **2 flakes determinísticos eliminados:** TTL do MCP persistence
|
|
116
|
+
(`test_ttl_expiry_real_time`) e `logger.test.mjs` deixaram de depender de
|
|
117
|
+
timing/carga do host.
|
|
118
|
+
- **Refs stale corrigidas:** referências de versão/ambiente atualizadas para
|
|
119
|
+
Node 22+.
|
|
120
|
+
|
|
121
|
+
## [v1.5.0-beta.15] - 2026-09-15
|
|
122
|
+
|
|
123
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
124
|
+
move this section to a versioned entry and reset the template below. -->
|
|
125
|
+
|
|
126
|
+
## 🆕 What's New
|
|
127
|
+
|
|
128
|
+
- **Delegation `read` devolve o relatório completo:** o retorno de `read` passa a
|
|
129
|
+
ler o relatório integral do disco (com cap configurável e marker explícito de
|
|
130
|
+
truncamento) em vez do recibo resumido — o conteúdo é o mesmo tanto no caminho
|
|
131
|
+
nativo quanto no legado, com paridade garantida entre eles.
|
|
132
|
+
- **`sanitizeReceiptText` UTF-8-safe:** a sanitização de recibos deixou de corromper
|
|
133
|
+
caracteres multibyte; acentuação e demais codepoints UTF-8 são preservados no
|
|
134
|
+
caminho nativo e no legado.
|
|
135
|
+
- **TUI — cor de status na row inteira:** cada linha do painel Delegations passa a
|
|
136
|
+
ser pintada pelo estado — vermelho = falha, verde = concluído, amarelo = em
|
|
137
|
+
andamento — com o glyph mantido como canal redundante para acessibilidade.
|
|
138
|
+
|
|
139
|
+
## 🐞 Fixed
|
|
140
|
+
|
|
141
|
+
- **TUI — painel Delegations só da sessão ativa:** o painel deixa de renderizar
|
|
142
|
+
rows cross-session/órfãs que causavam "Session not found" ao clicar; a lista
|
|
143
|
+
agora cobre apenas a sessão ativa, mantendo a retenção de concluídas (2 min)
|
|
144
|
+
e falhas (10 min).
|
|
145
|
+
- **Guards de estado e navegação órfã:** transições prematuras para `done` são
|
|
146
|
+
bloqueadas e a navegação defensiva ignora alvos órfãos, evitando seleção
|
|
147
|
+
inválida no painel.
|
|
148
|
+
- **Isolamento do board nos testes:** testes que importam o plugin real agora
|
|
149
|
+
isolam o BackgroundJobBoard, eliminando o fantasma "preserve this running
|
|
150
|
+
delegation"; o board real foi limpo.
|
|
151
|
+
- **Lean no core:** 17 módulos mortos de `src/pantheon/` removidos, ~38% dos
|
|
152
|
+
arquivos de teste removidos/consolidados e docs/scripts órfãos limpos, com
|
|
153
|
+
testes mínimos readicionados para os módulos vivos (tool-ceiling, native-probe).
|
|
154
|
+
- **Flake de TTL determinístico:** `test_ttl_expiry_real_time` deixou de competir
|
|
155
|
+
com a truncagem de microssegundos do SQLite — o teste agora espera o início de
|
|
156
|
+
um segundo limpo antes do store e usa margem sobre o TTL, eliminando o flake
|
|
157
|
+
dependente de carga (test-only).
|
|
158
|
+
|
|
159
|
+
## [v1.5.0-beta.14] - 2026-09-14
|
|
160
|
+
|
|
161
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
162
|
+
move this section to a versioned entry and reset the template below. -->
|
|
163
|
+
|
|
164
|
+
## 🆕 What's New
|
|
165
|
+
|
|
166
|
+
- **Ordenação active-first:** delegações ativas aparecem antes das concluídas,
|
|
167
|
+
falhas e canceladas no painel TUI.
|
|
168
|
+
- **Overflow active:** quando há mais delegações ativas que o teto visível, o
|
|
169
|
+
excedente ativo permanece representado na linha de overflow.
|
|
170
|
+
|
|
171
|
+
## 🐞 Fixed
|
|
172
|
+
|
|
173
|
+
- **Retenção visual:** concluídas permanecem visíveis por 2 min e falhas por
|
|
174
|
+
10 min antes de saírem do painel; canceladas seguem a retenção configurada.
|
|
175
|
+
|
|
176
|
+
## ⚠️ Known Issues
|
|
177
|
+
|
|
178
|
+
- **Stale running warning:** jobs em estado `running` além do limite esperado
|
|
179
|
+
recebem um aviso visual de stale no painel.
|
|
180
|
+
## [v1.5.0-beta.13] - 2026-09-14
|
|
181
|
+
|
|
182
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
183
|
+
move this section to a versioned entry and reset the template below. -->
|
|
184
|
+
|
|
185
|
+
## 🆕 What's New
|
|
186
|
+
|
|
187
|
+
- **TUI status-only — rows simplificadas:** cada linha do painel Delegations passa
|
|
188
|
+
a ser `{glyph} {alias} {elapsed}` + `desc` muted — um glyph de status, uma única
|
|
189
|
+
identidade e o tempo decorrido, com a descrição em tom muted. São 4 glyphs
|
|
190
|
+
(running animado, completed, error, cancelled/retry), sem toggle
|
|
191
|
+
`[Sessão]`/`[Tudo]`, sem prefixos `nat:`/`pan:` e sem losango ◇/◆.
|
|
192
|
+
- **Header `active`/`done`/`failed`:** o cabeçalho do painel resume apenas esses
|
|
193
|
+
três contadores sobre a lista completa (todas as sessões), sem `nat:`/`pan:`.
|
|
194
|
+
- **Ceiling 8:** no máximo 8 linhas visíveis (live-first); o excedente colapsa em
|
|
195
|
+
uma única linha `… +N more`.
|
|
196
|
+
- **Board read (jobs de todas as sessões):** o painel lê o BackgroundJobBoard
|
|
197
|
+
(`.pantheon/board/state.json`), então jobs `pantheon_delegate` de qualquer
|
|
198
|
+
sessão aparecem — não só os filhos nativos da sessão focada.
|
|
199
|
+
- **118 testes TUI delegations:** `tests/pantheon/tui-delegations.test.ts` com
|
|
200
|
+
118/118 passando, cobrindo rows status-only, header active/done/failed, ceiling
|
|
201
|
+
e board read cross-session.
|
|
202
|
+
|
|
203
|
+
## 🐞 Fixed
|
|
204
|
+
|
|
205
|
+
- **Sanitização de dead code:** removidos helpers, tipos e estado órfãos do
|
|
206
|
+
painel Delegations (toggle de escopo `[Sessão]`/`[Tudo]`, prefixos curtos
|
|
207
|
+
`nat:`/`pan:`, glyphs por estado e paginação de arquivo morto) que sobraram do
|
|
208
|
+
refactor status-only.
|
|
209
|
+
- **Board merge preserva sessão conhecida:** um record do board com
|
|
210
|
+
`parentSessionID` vazio não sobrescreve mais a sessão já atribuída à linha.
|
|
211
|
+
## [v1.5.0-beta.12] - 2026-09-14
|
|
212
|
+
|
|
213
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
214
|
+
move this section to a versioned entry and reset the template below. -->
|
|
215
|
+
|
|
216
|
+
## 🆕 What's New
|
|
217
|
+
|
|
218
|
+
- **TUI lê o board (4º canal):** o painel Delegations passa a ler o
|
|
219
|
+
BackgroundJobBoard via `readBoardState()` — jobs `pantheon_delegate` de todas
|
|
220
|
+
as sessões aparecem, não só os filhos nativos da sessão focada.
|
|
221
|
+
- **Toggle [Sessão]/[Tudo] + chips:** `[Sessão]` (default) mostra só a sessão
|
|
222
|
+
focada, `[Tudo]` mostra jobs de todas as sessões; chips clicáveis no header.
|
|
223
|
+
- **Raw `dist/tui.tsx` removido (bundle-only):** o dist passa a carregar só o
|
|
224
|
+
bundle compilado (`tui.js`); o fonte raw sai do pacote publicado.
|
|
225
|
+
- **117 testes TUI delegations:** `tests/pantheon/tui-delegations.test.ts` com
|
|
226
|
+
117/117 passando, cobrindo board-read, split ativo/recente e toggle de escopo.
|
|
227
|
+
## [v1.5.0-beta.11] - 2026-09-14
|
|
228
|
+
|
|
229
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
230
|
+
move this section to a versioned entry and reset the template below. -->
|
|
231
|
+
|
|
232
|
+
## 🆕 What's New
|
|
233
|
+
|
|
234
|
+
- **Glyphs da FSM real no painel Delegations:** cada estado do BackgroundJobBoard
|
|
235
|
+
tem agora um glifo Unicode geométrico próprio — `⠋` running (spinner 1s),
|
|
236
|
+
`⟳` retry, `⚠` stale/startup, `✓` completed, `✕` error, `−` cancelled. Forma e
|
|
237
|
+
cor são canais independentes: as linhas seguem legíveis sem cor e sem Nerd Font.
|
|
238
|
+
- **Prefixo `nat:` / `pan:` documentado:** `docs/INSTALLATION.md` passa a
|
|
239
|
+
descrever os prefixos curtos das linhas nativas (`nat:<agent>`) e do board
|
|
240
|
+
(`pan:<alias>`) e o par de glyphs ◇/◆.
|
|
241
|
+
- **`scripts/dev-tui.sh` (dev local sem publish):** instala, builda e registra o
|
|
242
|
+
caminho absoluto do repo em `.opencode/tui.json` (gitignored) com hint de
|
|
243
|
+
restart — sem tocar `opencode.json` e sem publicar.
|
|
244
|
+
- **104 testes TUI delegations:** `tests/pantheon/tui-delegations.test.ts` com
|
|
245
|
+
104/104 passando, cobrindo glifos/marker/tone dos estados reais da FSM.
|
|
246
|
+
|
|
247
|
+
## 🐞 Fixed
|
|
248
|
+
|
|
249
|
+
- **Doctor F.2 (`hasUsableScripts`):** a resolução do diretório code-mode agora
|
|
250
|
+
exige um `.py`/`.sh` regular (paridade com `_has_usable_scripts` do MCP), então
|
|
251
|
+
um overlay de projeto vazio não mascara mais uma instalação que traz scripts.
|
|
252
|
+
- **`publish:next` órfão removido:** nenhum workflow usava o script (o release
|
|
253
|
+
publica via `--tag beta`); removido do `package.json` para eliminar o dist-tag
|
|
254
|
+
`next` obsoleto da linha de publicação.
|
|
255
|
+
## [v1.5.0-beta.10] - 2026-09-14
|
|
256
|
+
|
|
257
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
258
|
+
move this section to a versioned entry and reset the template below. -->
|
|
259
|
+
|
|
260
|
+
## 🆕 What's New
|
|
261
|
+
|
|
262
|
+
- **TUI delegations com prefixos curtos `nat:` / `pan:`:** cada linha do painel passa
|
|
263
|
+
a usar `nat:<agent>` para child nativo do `task()` (sem report no board) ou
|
|
264
|
+
`pan:<alias>` para linha `pantheon_delegate` (ex. `pan:apo-1`) — os prefixos curtos
|
|
265
|
+
liberam largura no sidebar estreito.
|
|
266
|
+
- **Glyph de 2 canais (◇/◆):** ◇ vazado (info/cyan) para child nativo e ◆ preenchido
|
|
267
|
+
(cor de estado) para linha do board — forma e cor são canais independentes, então o
|
|
268
|
+
split segue legível mesmo sem cor.
|
|
269
|
+
- **Header resumido:** `(N active · M done · nat:K pan:M)` calculado sobre a lista
|
|
270
|
+
completa (active + recent + archived), no lugar do antigo `(N native + M pantheon)`.
|
|
271
|
+
- **Elapsed em caixa fixa:** rótulo alinhado à direita em largura 8 e SEMPRE
|
|
272
|
+
renderizado, então um job ativo sem descrição nunca perde o timer.
|
|
273
|
+
- **100 testes TUI delegations:** `tests/pantheon/tui-delegations.test.ts` com 100/100
|
|
274
|
+
passando (tsc + biome OK), acima dos 93 da beta.9.
|
|
275
|
+
|
|
276
|
+
## 🐞 Fixed
|
|
277
|
+
|
|
278
|
+
- **`appendFile` sem import (log do painel volta a escrever):** o log em arquivo do
|
|
279
|
+
painel parou de escrever silenciosamente porque `appendFile` era chamado sem import
|
|
280
|
+
(ReferenceError engolido pelo `catch` vazio); o import foi restaurado e o `catch`
|
|
281
|
+
agora reporta a falha (gated por echo) em vez de sumir.
|
|
282
|
+
- **Truncamento grapheme-safe:** descrições truncam em fronteiras de grapheme
|
|
283
|
+
(`Intl.Segmenter` com fallback `Array.from`) em 44 graphemes, sem cortar emoji ou
|
|
284
|
+
sequências ZWJ ao meio (mojibake).
|
|
285
|
+
- **Linhas stale-running ficam em Active:** um job stale ainda é um job vivo (estado do
|
|
286
|
+
backend inalterado), então não é mais arquivado — o que escondia a linha lançada.
|
|
287
|
+
- **Spinner/animação de 140ms → 1000ms:** o tick rápido piscava sem adicionar informação.
|
|
288
|
+
- **Dead code removido:** conectores de árvore (`isNestedDelegation` /
|
|
289
|
+
`delegationTreePrefix`) e campos `parentTaskID`/`childCount` removidos —
|
|
290
|
+
`session.children` só devolve filhos diretos, então nenhuma linha nested era
|
|
291
|
+
produzida (BACKLOG).
|
|
292
|
+
## [v1.5.0-beta.9] - 2026-09-14
|
|
293
|
+
|
|
294
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
295
|
+
move this section to a versioned entry and reset the template below. -->
|
|
296
|
+
|
|
297
|
+
## 🆕 What's New
|
|
298
|
+
|
|
299
|
+
- **TUI delegations nativas (gated):** painel Delegations renderiza N delegações native + M pantheon com tag [native], live task em tempo real, click navega para sessão. Implementado em `src/plugins/tui/src/index.tsx` com dist rebuildado.
|
|
300
|
+
- **93 testes TUI delegations:** suite `tests/pantheon/tui-delegations.test.ts` com 93/93 passando (tsc + biome OK).
|
|
301
|
+
- **E2E beta.8 PASS (referência):** baseline E2E da beta.8 mantido como referência de estabilidade para beta.9.
|
|
302
|
+
|
|
303
|
+
## 🐞 Fixed
|
|
304
|
+
|
|
305
|
+
- Removido diretório `testyes/` (artefato de teste).
|
|
306
|
+
- Truncado `hooks.log` para baseline limpo de beta.9.
|
|
307
|
+
|
|
308
|
+
## [v1.5.0-beta.8] - 2026-09-13
|
|
309
|
+
|
|
310
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
311
|
+
move this section to a versioned entry and reset the template below. -->
|
|
312
|
+
|
|
313
|
+
## 🐞 Fixed
|
|
314
|
+
|
|
315
|
+
- **Board persistence is corruption- and concurrency-safe:** state writes now go
|
|
316
|
+
through a UNIQUE temp file (per-process, per-write counter + random suffix), are
|
|
317
|
+
`fsync`ed, then renamed over the destination with bounded ENOENT retries, and
|
|
318
|
+
read-modify-write cycles on the same state path are serialized. This closes the
|
|
319
|
+
window where two writers could interleave and corrupt `state.json` or race the
|
|
320
|
+
rename.
|
|
321
|
+
- **Corrupt board state is quarantined and salvaged:** a malformed `state.json` is
|
|
322
|
+
moved aside to `<state>.corrupt-<ts>`, a clear error is logged, and every complete
|
|
323
|
+
record that can be parsed is salvaged and returned instead of throwing — so
|
|
324
|
+
delete/prune/recover callers cannot get stuck in a retry loop.
|
|
325
|
+
- **P1-1 — no orphan `.signal.json` on reconcile:** reconcile now deletes any
|
|
326
|
+
still-pending wake signal instead of re-writing it. Reconcile is an
|
|
327
|
+
acknowledgment, not a new terminal transition, so the finalize→reconcile cycle
|
|
328
|
+
no longer leaves a stale `<alias>.signal.json` with `state:"reconciled"` behind.
|
|
329
|
+
- **Unresolved `{sessionID}` template guard:** the TUI/runtime can hand the plugin
|
|
330
|
+
the unsubstituted literal `{sessionID}` (or `%7BsessionID%7D`) when no session is
|
|
331
|
+
focused; the plugin now refuses placeholder session ids at the delegation,
|
|
332
|
+
bootstrap-probe, and activity-sample boundaries instead of forwarding them to the
|
|
333
|
+
session API (which rejected every call).
|
|
334
|
+
- **Delegation lookup scoped to the calling session:** `pantheon_delegation_read`
|
|
335
|
+
resolves exact task IDs first (must belong to the caller's session), then alias
|
|
336
|
+
matches within that session (exactly one required). Cross-session and ambiguous
|
|
337
|
+
aliases now return explicit errors instead of the generic "Unknown delegation".
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
## [v1.5.0-beta.7] - 2026-09-13
|
|
341
|
+
|
|
342
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
343
|
+
move this section to a versioned entry and reset the template below. -->
|
|
344
|
+
|
|
345
|
+
## 🆕 What's New
|
|
346
|
+
|
|
347
|
+
- **Cost CLI fallback + `PANTHEON_NODE`:** `pantheon_cost` falls back to a
|
|
348
|
+
read-only `node scripts/cost.mjs` subprocess when `node:sqlite` is
|
|
349
|
+
unavailable in the host runtime (for example under Bun). The fallback
|
|
350
|
+
resolves a real Node.js binary — `PANTHEON_NODE` first, then `node` on
|
|
351
|
+
`PATH` — probes it for `node:sqlite` support (Node.js >= 22.5), and runs it
|
|
352
|
+
with an argument array, never a shell. Previously the tool returned
|
|
353
|
+
`status: UNSUPPORTED` with no fallback.
|
|
354
|
+
- **Delegation engine contract (ADR-0011):** legacy `pantheon_delegate` remains
|
|
355
|
+
the default engine through v1.5.x; native delegation is opt-in and
|
|
356
|
+
experimental via `PANTHEON_DELEGATE_MODE=native` until v1.6. See
|
|
357
|
+
[ADR-0011](https://github.com/ils15/pantheon-opencode/pull/126) (Proposed).
|
|
358
|
+
|
|
359
|
+
## 🐞 Fixed
|
|
360
|
+
|
|
361
|
+
- **Legacy read-only bypass on retry (P0):** a retried delegation now
|
|
362
|
+
re-applies read-only enforcement (the same rule as the initial child) and
|
|
363
|
+
registers the retry session, closing the bypass where a retried child could
|
|
364
|
+
write despite `read_only: true` or being a read-only agent.
|
|
365
|
+
- **Kill-switch scope (P0):** `PANTHEON_DELEGATION=off` now also disables the
|
|
366
|
+
legacy engine, not only the native manager — the legacy delegate/read/list
|
|
367
|
+
tools throw as documented.
|
|
368
|
+
- **Delegation signal leak (P1):** the legacy finalize path now deletes the
|
|
369
|
+
auto-wake signal file, so terminal delegations no longer leave stale
|
|
370
|
+
`.signal.json` artifacts behind.
|
|
371
|
+
- **Crash recovery is durable (P1):** `recoverRunningJobs` persists the
|
|
372
|
+
`error` state, marks the job `terminalUnreconciled`, and emits the terminal
|
|
373
|
+
signal plus notification for every reaped job instead of updating memory
|
|
374
|
+
only.
|
|
375
|
+
- **Atomic concurrency (P1):** `registerLaunch` validates
|
|
376
|
+
`maxConcurrentPerAgent` before any mutation, so concurrent dispatches cannot
|
|
377
|
+
both claim the last slot. A refused launch tears down the orphan child
|
|
378
|
+
session (read-only unregister plus `session.delete`) and the retry path
|
|
379
|
+
re-validates the same limit.
|
|
380
|
+
- **Legacy board hygiene (P1):** the legacy finalize path now runs
|
|
381
|
+
`pruneCompleted` and `enforceEntryCap`, matching the native manager and
|
|
382
|
+
preventing unbounded board growth.
|
|
383
|
+
- **Resilient V2 events:** a native child refused by the per-agent limit is
|
|
384
|
+
logged and skipped instead of aborting the rest of the event handler.
|
|
385
|
+
## [v1.5.0-beta.6] - 2026-09-12
|
|
386
|
+
|
|
387
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
388
|
+
move this section to a versioned entry and reset the template below. -->
|
|
389
|
+
|
|
390
|
+
## 🆕 What's New
|
|
391
|
+
|
|
392
|
+
- **Delegation panel v2:** live tool activity per running delegation
|
|
393
|
+
(`↳ bash npm test` — what the child is doing right now), a paginated
|
|
394
|
+
`Archived (n)` section for terminal reports beyond the recent 8, and a
|
|
395
|
+
distinct `retry` state (⟳ marker, RETRYING label) instead of lumping
|
|
396
|
+
retries into running.
|
|
397
|
+
|
|
398
|
+
## 🐞 Fixed
|
|
399
|
+
|
|
400
|
+
- **Stale plugin refs from old installs:** the installer now prunes
|
|
401
|
+
`pantheon-opencode` plugin references pointing at other installed copies of
|
|
402
|
+
the package (older nvm prefixes, npx cache hashes). Previously every init
|
|
403
|
+
accumulated refs from past installs and the oldest — without the newest
|
|
404
|
+
fixes — won the plugin load race, silently disabling native-task
|
|
405
|
+
mirroring. Third-party plugins sharing the same file names remain
|
|
406
|
+
protected.
|
|
407
|
+
- **Docs:** `@beta` dist-tag guidance on all npx commands — plain
|
|
408
|
+
`npx pantheon-opencode` resolves the stable release and silently downgrades
|
|
409
|
+
the installed TUI copy.
|
|
410
|
+
## [v1.5.0-beta.5] - 2026-09-12
|
|
411
|
+
|
|
412
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
413
|
+
move this section to a versioned entry and reset the template below. -->
|
|
414
|
+
|
|
415
|
+
## 🆕 What's New
|
|
416
|
+
|
|
417
|
+
- **Native background tasks in the delegation panel:** tasks dispatched via
|
|
418
|
+
the native `task(background=true)` tool are now mirrored onto the shared
|
|
419
|
+
BackgroundJobBoard, so the TUI delegation panel tracks them while running
|
|
420
|
+
and the existing finalize path writes their terminal report.
|
|
421
|
+
- **`pantheon-opencode update`:** one command updates the global package
|
|
422
|
+
(beta or stable channel) and re-runs init to refresh config, venv and MCP
|
|
423
|
+
entries. The installer stamps the installed version and `doctor` warns when
|
|
424
|
+
the package is newer than the last sync.
|
|
425
|
+
- **Always-fresh artifacts:** the package postinstall now refreshes all
|
|
426
|
+
copy-only artifacts (agents, skills, AGENTS.md, commands, MCP scripts,
|
|
427
|
+
code-mode payload) into existing installations on every `npm install`; a CI
|
|
428
|
+
gate rebuilds the TUI bundle and fails if the committed `dist/` is stale.
|
|
429
|
+
- **More resilient installer:** preflight checks for python3/npm before any
|
|
430
|
+
file is written, atomic `opencode.json` writes with a `.bak` backup,
|
|
431
|
+
non-fatal Python runtime setup (a venv failure now omits MCP entries with a
|
|
432
|
+
warning instead of pointing at a broken interpreter), `--components` /
|
|
433
|
+
`--clean` / `--opencode-version auto` flags, unknown-flag warnings and
|
|
434
|
+
pt-BR/EN message auto-detection via `LANG`.
|
|
435
|
+
- **Roadmap zerado:** o plano ativo não tem mais itens pendentes. Sprints
|
|
436
|
+
nunca implementados dos planos v1.0/v1.0+ foram removidos; o contrato atual
|
|
437
|
+
passou a documentar o code-mode (manifest SHA-256, resolução project-first).
|
|
438
|
+
|
|
439
|
+
## 🐞 Fixed
|
|
440
|
+
|
|
441
|
+
- **Code-mode project resolution (#112):** the MCP now resolves project code-mode
|
|
442
|
+
scripts before global scripts, honors `PANTHEON_PROJECT`, and fails closed on
|
|
443
|
+
project manifest errors; the installer sets `cwd: "."`.
|
|
444
|
+
- **Code-mode manifest doctor check (#113):** `doctor` validates manifest shape,
|
|
445
|
+
script membership, and SHA-256 hashes without regenerating the manifest.
|
|
446
|
+
## [v1.5.0-beta.4] - 2026-09-11
|
|
447
|
+
|
|
448
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
449
|
+
move this section to a versioned entry and reset the template below. -->
|
|
450
|
+
|
|
451
|
+
## 🆕 What's New
|
|
452
|
+
|
|
453
|
+
- **Native delegation contract (B3-05):** adds the nine-code `NativeTaskStatus` contract, a session-lazy cached capability probe, atomic board registration for native children, strict `PANTHEON_DELEGATE_MODE=native` without fallback/failover/retry, and status in delegation receipts.
|
|
454
|
+
|
|
455
|
+
- **Cost backend (B3-06):** `pantheon_cost` now uses a single read-only `node:sqlite` backend; the CLI fallback was removed. The common contract reports `UNSUPPORTED` when `node:sqlite` is unavailable and `CORRUPT_DATA`/`UNAVAILABLE` with diagnostic details on stderr; includes a sandbox probe.
|
|
456
|
+
|
|
457
|
+
- **Tool ceiling (B3-07):** C9/tool ceiling is fed only by real host data from `message.updated` plus `config.providers()`; lexical fallback is removed. Hosts without the capability report `UNSUPPORTED`, malformed data reports `CORRUPT_DATA`, and malformed events are guarded defensively.
|
|
458
|
+
|
|
459
|
+
- **Code-mode explicit installation (B3-08):** `pantheon-code-mode` no longer executes scripts implicitly. A script runs only when listed in `.pantheon/code-mode/manifest.json` with a matching SHA-256; the installer seeds the manifest for bundled scripts and a new `approve_code_script` tool opts in or refreshes a script. Missing manifest reports `INVALID_STATE`, unlisted scripts `CONFLICT`, and hash mismatches `CORRUPT_DATA`.
|
|
460
|
+
|
|
461
|
+
## 🐞 Fixed
|
|
462
|
+
|
|
463
|
+
- **ECIGLOBAL fix (sync-tui):** `npm install -g` no longer fails with ECIGLOBAL — `scripts/sync-tui.mjs` now sanitizes `npm_config_*` global-context vars (case-insensitive) from the nested `npm ci` environment.
|
|
464
|
+
- **npm tarball inclusion:** CHANGELOG.md is now included in the npm tarball
|
|
465
|
+
(added to the `files` allowlist in `package.json`).
|
|
466
|
+
|
|
467
|
+
- **Task Result Guard**: native `task()` empty results are now detected and
|
|
468
|
+
converted to explicit errors in the `tool.execute.after` hook. Previously,
|
|
469
|
+
when a provider rejected a child session (e.g. `BackendAdmissionRejected`
|
|
470
|
+
from free-tier admission control), the error was silently swallowed — the
|
|
471
|
+
child completed with empty output and the parent LLM proceeded as if the
|
|
472
|
+
task succeeded. The guard replaces empty `task()` output with an error
|
|
473
|
+
message so the parent sees a failure. (`task-result-guard.ts`)
|
|
474
|
+
## [v1.5.0-beta.3] - 2026-09-10
|
|
475
|
+
|
|
476
|
+
<!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
|
|
477
|
+
move this section to a versioned entry and reset the template below. -->
|
|
478
|
+
|
|
479
|
+
### Changed
|
|
480
|
+
|
|
481
|
+
- **CI fail-closed:** `ci.yml` no longer falls back from `npm ci` to
|
|
482
|
+
`npm install`, and pytest/audit failures are no longer swallowed. The
|
|
483
|
+
workflow now runs lint, typecheck, `test:ts`, Python tests, Node tests and
|
|
484
|
+
`npm audit`/`pip-audit` as blocking gates.
|
|
485
|
+
- **Release authorization is dispatch-only:** `release.yml` no longer triggers
|
|
486
|
+
on PR labels or any `pull_request` event. Publication is
|
|
487
|
+
authorized only by an explicit `workflow_dispatch`; the `release_channel`
|
|
488
|
+
input (`stable` default, `beta`) selects the channel. Beta versions are
|
|
489
|
+
committed sequential `X.Y.Z-beta.N` (bumped via
|
|
490
|
+
`node scripts/versioning.mjs apply --beta`); no runtime version computation.
|
|
491
|
+
- **Sandbox gate is PASS-only:** `test-opencode-v1-v2-sandbox.sh` no longer
|
|
492
|
+
classifies failures as `AMBIENTAL`/`NOT_TESTED`, has no prompt retry, and
|
|
493
|
+
treats missing binaries/projects/probes, timeouts and auth/network/provider
|
|
494
|
+
failures as blocking. Exit 0 now requires an explicit PASS on every check.
|
|
495
|
+
- **Validation policy is PASS-only:** `doctor` exit != 0 (including legacy
|
|
496
|
+
exit 1 warnings), unknown or non-numeric statuses block validation;
|
|
497
|
+
WARN/SKIP/AMBIENTAL/NOT_TESTED never produce exit 0.
|
|
498
|
+
- **No npm install fallback in TUI/install paths:** `sync-tui.mjs` and the
|
|
499
|
+
plugin installer propagate `npm ci` failures instead of falling back to
|
|
500
|
+
`npm install`; `PANTHEON_ALLOW_NPM_INSTALL_FALLBACK` is not supported.
|
|
501
|
+
- **Lockfile-backed installs:** the root (`package.json` + `package-lock.json`)
|
|
502
|
+
and TUI (`src/plugins/tui/package.json` + `src/plugins/tui/package-lock.json`)
|
|
503
|
+
are validated independently with `npm ci --ignore-scripts`. A failure blocks
|
|
504
|
+
the run; there is no `npm install` fallback.
|
|
505
|
+
- **Release artifact identity:** each release carries one `.tgz` tarball and
|
|
506
|
+
the SHA-256 of that same file from validation through publication. The
|
|
507
|
+
tarball and release metadata are bound to the full `TARGET_SHA`; repacking is
|
|
508
|
+
not an equivalent artifact.
|
|
509
|
+
- **Intentional MCP divergence:** `scripts/memory_mcp_server.py` keeps the
|
|
510
|
+
lightweight `memory_*` contract while `src/mcp/memory_mcp_server.py` also
|
|
511
|
+
exposes the optional codemap tools. The other shared MCP copies remain
|
|
512
|
+
identical; this pair is not to be overwritten by synchronization.
|
|
513
|
+
- **Sandbox scope:** a PASS from the prepared isolated sandbox is not proof of
|
|
514
|
+
support for every real host or untested host configuration.
|
|
515
|
+
|
|
516
|
+
### Breaking Changes
|
|
517
|
+
|
|
518
|
+
- Release automation requires a manual `workflow_dispatch`; labeling a PR no
|
|
519
|
+
longer publishes anything.
|
|
520
|
+
- The sandbox validator exits non-zero when environmental checks cannot run
|
|
521
|
+
(missing binaries, provider auth, timeouts) instead of reporting them as
|
|
522
|
+
non-blocking.
|
|
523
|
+
- `PANTHEON_ALLOW_NPM_INSTALL_FALLBACK` has no effect; `npm ci` failures now
|
|
524
|
+
fail the install/sync step.
|
|
525
|
+
## [1.5.0] - 2026-09-01 (candidate)
|
|
526
|
+
|
|
527
|
+
### Changed
|
|
528
|
+
|
|
529
|
+
- **MCP flat map:** the installer and config migration keep MCP servers as the
|
|
530
|
+
named top-level map — the `mcp.servers` wrapper is rejected by OpenCode
|
|
531
|
+
1.18.18 (`Missing key mcp.servers.enabled`). Legacy wrapped entries are
|
|
532
|
+
unwrapped and `disabled` flags are normalized back to `enabled`.
|
|
533
|
+
- **Deterministic plugin installs:** the TUI plugin ships its lockfile and
|
|
534
|
+
installs with `npm ci --omit=dev`; failures are propagated without an
|
|
535
|
+
`npm install` fallback.
|
|
536
|
+
- **Uninstall CLI:** new `node scripts/uninstall.mjs --project|--global` with
|
|
537
|
+
ownership checks, `--dry-run` and `--force`.
|
|
538
|
+
- **OpenCode-only:** platform guides consolidated into a single OpenCode
|
|
539
|
+
guide; Pantheon 1.5.0 targets OpenCode exclusively.
|
|
540
|
+
- **OpenCode V2 plugin:** the V2 contract registers 9 orchestration tools
|
|
541
|
+
(`pantheon_delegate`, `pantheon_delegation_read`, `pantheon_delegation_list`,
|
|
542
|
+
`hashline_edit`, `pantheon_goal_create`, `pantheon_goal_get`,
|
|
543
|
+
`pantheon_goal_update`, `pantheon_cost`, `pantheon_model`), 4 event
|
|
544
|
+
subscriptions, session hooks (`prompt`, `context`) and tool hooks
|
|
545
|
+
(`execute.before`, `execute.after`).
|
|
546
|
+
|
|
547
|
+
## [v1.4.3] - 2026-09-03
|
|
548
|
+
|
|
549
|
+
### Changed
|
|
550
|
+
|
|
551
|
+
- Synchronized the 1.4.3 release version across `package.json`,
|
|
552
|
+
`package-lock.json`, `plugin.json`, `pyproject.toml`, and the TUI package.
|
|
553
|
+
|
|
554
|
+
## [v1.4.2] - 2026-08-27
|
|
555
|
+
|
|
556
|
+
### Changed
|
|
557
|
+
- Synchronized release metadata across project manifests.
|
|
558
|
+
## [1.4.1] - 2026-08-26 (candidate)
|
|
559
|
+
|
|
560
|
+
### Changed
|
|
561
|
+
|
|
562
|
+
- **Delegation output:** removed the legacy delegate echo path. Terminal visibility now uses the board, list/read tools, file-only audit logs, and TUI toasts; chat transcript delivery remains disabled.
|
|
563
|
+
- **Model inheritance:** child sessions no longer receive a hardcoded `model` or `small_model`. Only an explicitly active routing profile (or an explicit delegate model) supplies an override; otherwise OpenCode inherits the parent model.
|
|
564
|
+
- **Compaction carry-forward:** context is written through `output.context` during `experimental.session.compacting`, before `session.compacted` runs, preserving the correct lifecycle order without chat injection.
|
|
565
|
+
|
|
566
|
+
### Fixed
|
|
567
|
+
|
|
568
|
+
- **Empty child output:** a child marked completed without assistant or tool output now becomes an explicit error: `Child session produced no assistant or tool output`.
|
|
569
|
+
- **Terminal toast delivery:** toast delivery is resilient to missing or failing TUI clients, is gated by `PANTHEON_TOASTS`, and deduplicates repeated terminal events for the same delegation.
|
|
570
|
+
- **Chat noise:** removed the remaining transcript/reminder delivery paths for delegation completion and compaction state.
|
|
571
|
+
|
|
572
|
+
### Tests
|
|
573
|
+
|
|
574
|
+
- Added regression coverage for delegate output validation, terminal-toast gating/deduplication, native model inheritance, and compaction context ordering.
|
|
575
|
+
- Updated the relevant Node/TypeScript tests and installation/model-routing checks; global-install behavior remains validated through the isolated sandbox when run.
|
|
576
|
+
- Release verification caveat: `npm test` reported 240 passing tests and 1 environmental failure (`fork: Resource temporarily unavailable`); rerun on a host with sufficient process resources before treating the candidate as fully verified.
|
|
577
|
+
|
|
578
|
+
## [1.4.0] - 2026-08-25
|
|
579
|
+
|
|
580
|
+
### Added
|
|
581
|
+
|
|
582
|
+
- **Codebase knowledge graph:** added the `pantheon-memory` codemap module with code entities, relations, file hashes, FTS5 search, and `code_index`, `code_query`, and `code_neighbors` tools for Python and TypeScript codebases.
|
|
583
|
+
- **Context-window optimization:** added `tool.execute.after` output sandboxing for `read`, `grep`, `glob`, and `webfetch`, with truncation markers and lower per-session output volume.
|
|
584
|
+
|
|
585
|
+
### Fixed
|
|
586
|
+
|
|
587
|
+
- **Installed TUI version display:** version detection now checks the installed TUI package before the development-tree package, fixing null versions in global installs and the sandbox.
|
|
588
|
+
- **Bash command portability:** normalized `python` commands to `python3` where the host does not provide a `python` executable.
|
|
589
|
+
|
|
590
|
+
### Tests
|
|
591
|
+
|
|
592
|
+
- The release entry records the implementation and coverage reported by the session; no additional release-level test result is asserted here.
|
|
593
|
+
|
|
594
|
+
## [1.3.7] - 2026-08-24
|
|
595
|
+
|
|
596
|
+
### Added
|
|
597
|
+
|
|
598
|
+
- **Stale-running detector:** the job board warns about entries running for more than 30 minutes without activity, and the Markdown parser rejects synthetic `running` states.
|
|
599
|
+
- **TUI auto-update:** postinstall synchronization and a runtime version check keep the installed TUI files current.
|
|
600
|
+
|
|
601
|
+
### Fixed
|
|
602
|
+
|
|
603
|
+
- **Stale delegate display:** corrected stale-running entries in the TUI delegation view.
|
|
604
|
+
- **Orphan cleanup:** connected `finalizeIdleChildrenWithoutMd` to the periodic 30-second scan at plugin initialization.
|
|
605
|
+
|
|
606
|
+
### Tests
|
|
607
|
+
|
|
608
|
+
- Closed issue #68 covering the TUI stale-state and auto-update fixes.
|
|
609
|
+
|
|
610
|
+
[v1.4.3]: https://github.com/ils15/pantheon-opencode/releases/tag/v1.4.3
|
|
611
|
+
[1.4.0]: https://github.com/ils15/pantheon-opencode/releases/tag/v1.4.0
|
|
612
|
+
[1.3.7]: https://github.com/ils15/pantheon-opencode/releases/tag/v1.3.7
|
|
613
|
+
[1.3.6]: https://github.com/ils15/pantheon-opencode/releases/tag/v1.3.6
|
|
614
|
+
|
|
615
|
+
|
|
616
|
+
## [1.3.6] - 2026-08-22
|
|
617
|
+
|
|
618
|
+
### Added
|
|
619
|
+
|
|
620
|
+
- **Recency decay in `memory_search` (src/mcp/memory_mcp_server.py)** — new `decay_days` param (default `None`, backward compatible) applies a freshness half-life `2^(-days_since_created/decay_days)` to RRF-fused scores, so older memories rank lower when enabled. `_rrf_fuse` accepts an optional `created_at_map`; tool description and docs updated (docs/MEMORY.md, docs/MCP.md, docs/mcp-tools.md).
|
|
621
|
+
- **Themis Comment Checker (src/agents/themis.md)** — Layer 1 review now flags generated code that is indistinguishable from human-written: excessive/obvious comments (`// increment i`, `# set x to 5`), commented-out dead code, and boilerplate headers.
|
|
622
|
+
- **Doc drift fixes** — MEMORY.md/MCP.md/mcp-tools.md now describe the real sqlite-vec + fastembed implementation (6 tools) instead of the stale ChromaDB 14-tool design; freshness decay documented as opt-in via `decay_days`.
|
|
623
|
+
- **scripts/ resynced with src/mcp/** — `mcp_resources_server.py` (routing project fallback), `code_mode_server.py` (comment drift), `memory_mcp_server.py`, `mcp_persistence_server.py`, `_pantheon_paths.py` regenerated from canonical source; tests now point at `src.mcp.*` so they exercise canonical code.
|
|
624
|
+
- **mcp-registry.yml synced** — real tool names (`memory_store/search/recall/forget/list/stats`, `kv_*`, `execute_code_script`, `vision_*`) + `pantheon-vision` server added.
|
|
625
|
+
- **Persistence MCP server test suite (tests/test_mcp_persistence_server.py)** — 32 tests covering kv_store/kv_get (incl. TTL expiry), kv_list, kv_search (FTS5), kv_delete, kv_delete_namespace, purge_expired (dry_run + deletelog), context_save/get/list/stats (latest pointer, session isolation) and namespace/scope isolation — the only previously untested MCP server now has full coverage.
|
|
626
|
+
- **CRITICAL TTL expiry fix (src/mcp/mcp_persistence_server.py)** — ISO `expires_at` timestamps (with `T` separator) compared lexicographically against SQLite's space-separated `datetime('now')` were ALWAYS greater on the same date, so TTL entries never expired (kv_get never returned None, purge_expired never purged, the 4h checkpoint TTL never fired). All 9 comparison sites now normalize via `datetime(expires_at)` — restoring the crash-recovery checkpoint path.
|
|
627
|
+
- **`_resolve_db_path` fix (src/mcp/mcp_persistence_server.py)** — with an explicit `--project-db`, deletelog writes and db_size stats pointed at the repo's real project.db instead of the actual DB path; the resolved path is now tracked at init.
|
|
628
|
+
- **Code-mode script metadata (src/mcp/code_mode_server.py)** — optional comment-style YAML frontmatter (`# ---` delimiters) on scripts: `description`, `timeout` (per-script override, seconds), `allowed_args` (arg allowlist). Exposed via `pantheon://code-mode/scripts/{name}` and the new `json_output=true` structured result (stdout/stderr/exit_code/duration_ms/timed_out/metadata). Malformed/missing frontmatter fails open. Documented in `.pantheon/code-mode/README.md`.
|
|
629
|
+
- **Per-script timeout override (src/mcp/code_mode_server.py)** — frontmatter `timeout` overrides the 30s default in the subprocess `wait_for`; kill-on-timeout preserved (tested: `timeout: 2` script killed at ~2s).
|
|
630
|
+
- **`_parse_iso_ts` UTC fix (src/mcp/memory_mcp_server.py)** — legacy naive timestamps from `DEFAULT (datetime('now'))` (`YYYY-MM-DD HH:MM:SS`, no TZ) are now assumed UTC instead of local timezone before `.timestamp()`, keeping freshness decay correct.
|
|
631
|
+
- **StepCapTracker permanent-per-process documented (src/pantheon/step-cap.ts)** — counters accumulate for the process lifetime and are intentionally not reset on success/session end; `reset()` remains a tested utility. Documented in routing.yml + README.
|
|
632
|
+
- **High-level R1 integration tests (tests/pantheon/zeus-delegate-with-retry.test.ts)** — `zeusDelegateWithRetry` with retryPolicy/cooldown: policy-driven retry-then-success (empty → 1 retry → recovered content), 0-retry escalate, and cooldown skip.
|
|
633
|
+
- **R4 per-agent step caps (src/pantheon/step-cap.ts + src/routing.yml)** — every routed agent gets a `max_steps` budget (explore 25, reviewer 25, oracle 15, hermes 40, zeus 60, …); at the cap the delegation is forced to summarize-and-stop via `buildStopInstruction`/`cappedSummary`; counters are permanent-per-process by design.
|
|
634
|
+
- **O5 permission.task globs (src/pantheon/permission-globs.ts)** — allow/deny glob rules controlling which subagents may be delegated; deny rules remove the target from Zeus's task tool entirely (`delegation-enforce`), with matching filtering in finalize and the agent-list description.
|
|
635
|
+
- **plugin-eval certification suite (.pantheon/code-mode/)** — `eval-static.py` (structural checks: frontmatter/secrets/file refs), `eval-llm-judge.py` (LLM quality layer), `eval-monte-carlo.py` (simulated-run reliability, exits 1 below 75%), `eval-run.py` (orchestrator emitting one report JSON; below-threshold layers still score), plus `eval_store` persistence and `pantheon://eval` resources exposing latest certification scores.
|
|
636
|
+
|
|
637
|
+
### Fixed
|
|
638
|
+
|
|
639
|
+
- memory_search doc drift: freshness decay was documented but not implemented — now real via `decay_days`.
|
|
640
|
+
- scripts/ copies stale vs src/mcp/ canonical sources (missing routing project fallback, stale comments).
|
|
641
|
+
- .pantheon/mcp-registry.yml listed non-existent tools (memory_compress, memory_expand, list_agents) and missed pantheon-vision.
|
|
642
|
+
|
|
643
|
+
|
|
644
|
+
### Tests
|
|
645
|
+
|
|
646
|
+
- The entry records the persistence, integration, and certification test coverage explicitly listed above; no aggregate release-level result was available in the source notes.
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
## [1.3.6-beta] - 2026-08-21
|
|
650
|
+
|
|
651
|
+
## 🆕 What's New
|
|
652
|
+
|
|
653
|
+
- **Recency decay in `memory_search` (src/mcp/memory_mcp_server.py)** — new `decay_days` param (default `None`, backward compatible) applies a freshness half-life `2^(-days_since_created/decay_days)` to RRF-fused scores, so older memories rank lower when enabled. `_rrf_fuse` accepts an optional `created_at_map`; tool description and docs updated (docs/MEMORY.md, docs/MCP.md, docs/mcp-tools.md).
|
|
654
|
+
- **Themis Comment Checker (src/agents/themis.md)** — Layer 1 review now flags generated code that is indistinguishable from human-written: excessive/obvious comments (`// increment i`, `# set x to 5`), commented-out dead code, and boilerplate headers.
|
|
655
|
+
- **Doc drift fixes** — MEMORY.md/MCP.md/mcp-tools.md now describe the real sqlite-vec + fastembed implementation (6 tools) instead of the stale ChromaDB 14-tool design; freshness decay documented as opt-in via `decay_days`.
|
|
656
|
+
- **scripts/ resynced with src/mcp/** — `mcp_resources_server.py` (routing project fallback), `code_mode_server.py` (comment drift), `memory_mcp_server.py`, `mcp_persistence_server.py`, `_pantheon_paths.py` regenerated from canonical source; tests now point at `src.mcp.*` so they exercise canonical code.
|
|
657
|
+
- **mcp-registry.yml synced** — real tool names (`memory_store/search/recall/forget/list/stats`, `kv_*`, `execute_code_script`, `vision_*`) + `pantheon-vision` server added.
|
|
658
|
+
- **Persistence MCP server test suite (tests/test_mcp_persistence_server.py)** — 32 tests covering kv_store/kv_get (incl. TTL expiry), kv_list, kv_search (FTS5), kv_delete, kv_delete_namespace, purge_expired (dry_run + deletelog), context_save/get/list/stats (latest pointer, session isolation) and namespace/scope isolation — the only previously untested MCP server now has full coverage.
|
|
659
|
+
- **CRITICAL TTL expiry fix (src/mcp/mcp_persistence_server.py)** — ISO `expires_at` timestamps (with `T` separator) compared lexicographically against SQLite's space-separated `datetime('now')` were ALWAYS greater on the same date, so TTL entries never expired (kv_get never returned None, purge_expired never purged, the 4h checkpoint TTL never fired). All 9 comparison sites now normalize via `datetime(expires_at)` — restoring the crash-recovery checkpoint path.
|
|
660
|
+
- **`_resolve_db_path` fix (src/mcp/mcp_persistence_server.py)** — with an explicit `--project-db`, deletelog writes and db_size stats pointed at the repo's real project.db instead of the actual DB path; the resolved path is now tracked at init.
|
|
661
|
+
- **Code-mode script metadata (src/mcp/code_mode_server.py)** — optional comment-style YAML frontmatter (`# ---` delimiters) on scripts: `description`, `timeout` (per-script override, seconds), `allowed_args` (arg allowlist). Exposed via `pantheon://code-mode/scripts/{name}` and the new `json_output=true` structured result (stdout/stderr/exit_code/duration_ms/timed_out/metadata). Malformed/missing frontmatter fails open. Documented in `.pantheon/code-mode/README.md`.
|
|
662
|
+
- **Per-script timeout override (src/mcp/code_mode_server.py)** — frontmatter `timeout` overrides the 30s default in the subprocess `wait_for`; kill-on-timeout preserved (tested: `timeout: 2` script killed at ~2s).
|
|
663
|
+
- **`_parse_iso_ts` UTC fix (src/mcp/memory_mcp_server.py)** — legacy naive timestamps from `DEFAULT (datetime('now'))` (`YYYY-MM-DD HH:MM:SS`, no TZ) are now assumed UTC instead of local timezone before `.timestamp()`, keeping freshness decay correct.
|
|
664
|
+
- **StepCapTracker permanent-per-process documented (src/pantheon/step-cap.ts)** — counters accumulate for the process lifetime and are intentionally not reset on success/session end; `reset()` remains a tested utility. Documented in routing.yml + README.
|
|
665
|
+
- **High-level R1 integration tests (tests/pantheon/zeus-delegate-with-retry.test.ts)** — `zeusDelegateWithRetry` with retryPolicy/cooldown: policy-driven retry-then-success (empty → 1 retry → recovered content), 0-retry escalate, and cooldown skip.
|
|
666
|
+
- **R4 per-agent step caps (src/pantheon/step-cap.ts + src/routing.yml)** — every routed agent gets a `max_steps` budget (explore 25, reviewer 25, oracle 15, hermes 40, zeus 60, …); at the cap the delegation is forced to summarize-and-stop via `buildStopInstruction`/`cappedSummary`; counters are permanent-per-process by design.
|
|
667
|
+
- **O5 permission.task globs (src/pantheon/permission-globs.ts)** — allow/deny glob rules controlling which subagents may be delegated; deny rules remove the target from Zeus's task tool entirely (`delegation-enforce`), with matching filtering in finalize and the agent-list description.
|
|
668
|
+
- **plugin-eval certification suite (.pantheon/code-mode/)** — `eval-static.py` (structural checks: frontmatter/secrets/file refs), `eval-llm-judge.py` (LLM quality layer), `eval-monte-carlo.py` (simulated-run reliability, exits 1 below 75%), `eval-run.py` (orchestrator emitting one report JSON; below-threshold layers still score), plus `eval_store` persistence and `pantheon://eval` resources exposing latest certification scores.
|
|
669
|
+
|
|
670
|
+
## 🐞 Fixed
|
|
671
|
+
|
|
672
|
+
- memory_search doc drift: freshness decay was documented but not implemented — now real via `decay_days`.
|
|
673
|
+
- scripts/ copies stale vs src/mcp/ canonical sources (missing routing project fallback, stale comments).
|
|
674
|
+
- .pantheon/mcp-registry.yml listed non-existent tools (memory_compress, memory_expand, list_agents) and missed pantheon-vision.
|
|
675
|
+
|
|
676
|
+
## [1.3.5] - 2026-08-21
|
|
677
|
+
|
|
678
|
+
## 🆕 What's New
|
|
679
|
+
|
|
680
|
+
- **PT patterns para delegação (routing.yml)** — adiciona 5 padrões PT (`procure`/`busque`/`encontre`/`localize`/`pesquise`) ao `intent_gate` research → apollo, corrigindo detecção de intenção para prompts em português (PR #61).
|
|
681
|
+
- **Zeus read guard (delegation-enforce.ts + plugin.ts)** — `ZEUS_READ_DENY_PATTERNS` bloqueia `src`/`tests`/`scripts`/`glob`/`grep` por Zeus via `tool.execute.before` (primeiro guard da cadeia); `ALLOWED_PATHS` libera `.md` e `.pantheon/memories`; 10 casos de teste em `tests/pantheon/delegation-enforce.test.ts`; `apollo.md`/`gaia.md` com `visible:false` e `tools.task:false` para depth-1 (PR #61).
|
|
682
|
+
|
|
683
|
+
## 🐞 Fixed
|
|
684
|
+
|
|
685
|
+
- **session-guard + retry helper (session-guard.ts + zeus-delegate-with-retry.ts)** — guard de `session_id` e helper `zeusDelegateWithRetry` com retry/backoff para delegações; `goal-loop.ts`/`todo-enforcer.ts`/`todo-preserve.ts`/`delegation.ts` ajustados (PR #61).
|
|
686
|
+
- **validate doctor filter (scripts/doctor.mjs)** — `isValidAgentFile` verifica frontmatter YAML (`name`/`description`/`mode`) para filtrar `README.md` e docs não-agente de `getCanonicalAgentNames`/`deriveInstalledAgentFiles`; evita contagem espúria no `doctor` (PR #61).
|
|
687
|
+
- **README move (src/agents → docs/agents)** — move `README.md` para fora de `src/agents` para evitar agente espúrio; `docs/agents/README.md` criado (PR #61).
|
|
688
|
+
- **TUI GC aliasless (src/plugins/tui)** — GC de delegações live sem alias para evitar estado `delegating` preso; `src/plugins/tui/src/index.tsx` + `dist/` atualizados (PR #61).
|
|
689
|
+
- **routing fallback opencode-go (src/pantheon/presets.mjs + routing.yml)** — fallback do preset default para `opencode-go` quando API key do provider ausente; `resolveChildModel` com fallback para `opencode/deepseek-v4-flash-free` (PR #61).
|
|
690
|
+
- **install README guard (scripts/install/*)** — `shared.mjs`/`opencode.mjs`/`agents-md.mjs` impedem cópia de `README.md` para diretório de agentes; `package.json` ajustado (PR #61).
|
|
691
|
+
|
|
692
|
+
## [v1.3.4] - 2026-08-11
|
|
693
|
+
|
|
694
|
+
## 🆕 What's New
|
|
695
|
+
|
|
696
|
+
- **Compaction summary V2** (preservation directive + mission/todo/delegation sections): `buildCompactionContext` is now async and accepts goal/todo sources — `PANTHEON_COMPACTION_DIRECTIVE` prefix section (emitted before any other section, skipped on totally-empty state), `<mission_context>` with active goals (id/objective/status), `<todo_context>` with pending (not completed/cancelled) todos; delegation blocks byte-for-byte unchanged; failing/disabled sources are skipped fail-open (logged to hooks.log)
|
|
697
|
+
- **Post-compaction todo preservation**: TodoPreserver captures the session's todo list on `experimental.session.compacting`, activates the snapshot on `session.compacted`, and rewrites the first post-compaction `todowrite` with the exact pre-compaction list — additive + fail-open (every step degrades to a logged warn, never throws in a hook)
|
|
698
|
+
- **Post-compaction state re-assertion**: re-asserts session state after compaction so the rebuilt context reflects the live board
|
|
699
|
+
- **Historical (superseded) agentModels wiring from routing.yml**: the old release wired `options.agentModels` from the first preset. Current behavior requires an explicitly active profile and omits child models otherwise.
|
|
700
|
+
- **Preemptive compaction threshold logic** (dormant/experimental): threshold-based preemptive compaction — not active by default
|
|
701
|
+
- **File-first logging**: `createPantheonLogger` — console echo opt-in via `PANTHEON_HOOKS_LOG=1`, everything routed to `.pantheon/logs/hooks.log` (silences TUI console pollution)
|
|
702
|
+
- **Historical (superseded by 1.5.0):** the 1.3.4 TUI delegation panel described every report-less child as native `task()` work with a `[task]` tag. Current behavior keeps child origin unclassified unless explicit provenance is available.
|
|
703
|
+
- **README docs**: 1.3.4 compaction + delegation features documented
|
|
704
|
+
- **Zero chat-notification policy**: removed the `chat.message` injection channel for delegation signals — completion visibility lives in the board `[unread]` marker, `pantheon_delegation_read`, TUI toasts and compaction carry-forward, never in the chat transcript
|
|
705
|
+
|
|
706
|
+
## 🐞 Fixed
|
|
707
|
+
|
|
708
|
+
- **Delegate dispatch with missing provider API key** (P1): `resolveChildModel` never checked whether the resolved model's provider had a configured API key — a child dispatched to a keyless provider (e.g. gpt-5.6-luna/opencode-go) died instantly with `AI_LoadAPIKeyError`. Auto-resolved models (agentModels/preset) whose provider key is missing now fall back to `opencode/deepseek-v4-flash-free`; explicit caller models are respected (warned); when nothing is usable the tool returns a clear error TEXT and registers NO job on the board
|
|
709
|
+
- **delegations.log typing**: `task_id` was always `""` (now omitted when empty) and `duration_ms` was logged as a STRING (now parsed to a number, null when unset), breaking downstream aggregation
|
|
710
|
+
- **Idle-flush log duplication**: `flushIdleReminders` echoed the reminder body joined with `" | "` while chat.message delivery echoed the same body with `"\n"` — the identical line appeared twice; idle-flush is now an audit summary (count + aggregated line count), content logged exactly once at chat-reminder delivery
|
|
711
|
+
- **TUI console log pollution**: console output in the plugin/hooks rendered directly into the opencode TUI; now env-gated, log-file only by default
|
|
712
|
+
|
|
713
|
+
### Tests
|
|
714
|
+
|
|
715
|
+
- No aggregate test result was recorded in the original 1.3.4 release notes; the factual test counts that were documented remain attached to their individual changes above.
|
|
716
|
+
|
|
717
|
+
|
|
718
|
+
## [v1.3.3] - 2026-08-11
|
|
719
|
+
|
|
720
|
+
## 🆕 What's New
|
|
721
|
+
|
|
722
|
+
- **Todo continuation enforcer**: auto-continues sessions with incomplete todos on `session.idle` (4 guards: board-running, in-flight, exponential cooldown, max-failures cap) + kill-switch `PANTHEON_TODO_ENFORCER=off`
|
|
723
|
+
- **Hashline hash-anchored edits**: `hashline_edit` tool with sha256-truncated line tags, additive read enhancer, validate-before-write with `>>>` mismatch hints + Did-you-mean suggestions; blocked in read-only sessions
|
|
724
|
+
- **Full-auto goal loop** (opt-in `full_auto.enabled: false`): `pantheon_goal_create/update/get` tools, atomic GoalStore, priority idle dispatcher (goal suppresses enforcer), max 25 continuations
|
|
725
|
+
- **Dispatch retry-on-empty**: classifies empty results (mode 1: 0 tokens; mode 2: reasoning without text) with cap-1 automatic retry
|
|
726
|
+
- **Cost tracking**: JSONL ledger + `pantheon_cost` command reading opencode.db (zero-dep, node:sqlite → scripts/cost.mjs fallback)
|
|
727
|
+
- **Themis phase reviews** route to deepseek-v4-flash (pro reserved for final release gate); Athena stays premium (council red-line)
|
|
728
|
+
- **Routing config**: `background_delegation`, `todo_enforcer`, `hashline`, `full_auto` sections
|
|
729
|
+
|
|
730
|
+
## 🐞 Fixed
|
|
731
|
+
|
|
732
|
+
- **Delegation killer**: chat.message hook injected reminders with empty messageID on the subagent promptAsync path — opencode schema rejected it, killing every background delegation in ~20ms (found by live E2E smoke)
|
|
733
|
+
- **Delegation child model routing**: child sessions now inherit the routed model (explicit arg → routing.yml agent entry → active preset) instead of falling back to the key-gated default (E2E: AI_LoadAPIKeyError without an active preset)
|
|
734
|
+
- **Installer `resolveInstalledPlugin`** mapped only `src/plugins/*` — `src/plugin.ts` resolved to the dev path, breaking global installs on non-dev machines and leaking the dev path (release-blocking)
|
|
735
|
+
- **Todo enforcer invasiveness**: skips injection when native background children are active (`session.children`) and within 30s of user activity
|
|
736
|
+
- **Hashline**: atomic write (tmp+rename), path containment guard, documented seed separator
|
|
737
|
+
|
|
738
|
+
## [v1.3.2] - 2026-08-09
|
|
739
|
+
|
|
740
|
+
## 🆕 What's New
|
|
741
|
+
|
|
742
|
+
- **Sandbox validation**: added the `sandbox` doctor profile and regression coverage for npm tarball contents, installed hook resolution, doctor status handling, MCP runtime smoke checks, and related CLI/install contracts.
|
|
743
|
+
- **Package portability**: distributed configuration no longer retains checkout-specific machine paths; managed hooks are resolved from the installed package during install/sync.
|
|
744
|
+
- **Doctor contract**: exit statuses now distinguish success (`0`), advisory warnings (`1`), and blocking errors (`>=2`).
|
|
745
|
+
|
|
746
|
+
## 🐞 Fixed
|
|
747
|
+
|
|
748
|
+
- **Global installation diagnostics**: clarified the distinction between advisory doctor warnings and blocking failures.
|
|
749
|
+
|
|
750
|
+
[v1.3.2]: https://github.com/ils15/pantheon-opencode/releases/tag/v1.3.2
|
|
751
|
+
|
|
752
|
+
## [v1.3.1] - 2026-08-08
|
|
753
|
+
|
|
754
|
+
## 🆕 What's New
|
|
755
|
+
|
|
756
|
+
- **Release validation coverage**: hook-runner spawn/timeout/SIGKILL handling with process-group cleanup; scanner fixtures that avoid accidental false positives; doctor `global`, `lite`, and `sandbox` profiles with explicit PASS/WARN/ERROR/SKIP statuses; `run-test.sh` exit semantics; and sandbox validation coverage.
|
|
757
|
+
- Local validation logs are ignored via `logs/` because they are generated diagnostics, not release artifacts or source files.
|
|
758
|
+
|
|
759
|
+
## [v1.3.0] - 2026-08-06
|
|
760
|
+
|
|
761
|
+
## 🆕 What's New
|
|
762
|
+
|
|
763
|
+
- **Non-invasive TUI notifications**: hook failures no longer write to `console.error` (TUI pollution) — non-zero exits route to three non-TUI channels: deduped TUI toast (`client.tui.showToast`), structured `client.app.log` entry (service `pantheon-hooks`), and `.pantheon/logs/hooks.log` file append; `PANTHEON_HOOKS_LOG=1` opt-in preserved, routed to log channels only
|
|
764
|
+
- **Delegation lifecycle toasts**: 🚀 `<agent> em execução` / ✅ `<agent> concluiu` with anti-spam (2000ms rate limiter + 3-agents-in-6s aggregation into a single summary toast)
|
|
765
|
+
- **PANTHEON_TOASTS gate**: `off|errors|delegations|all` (default `delegations`), read once at plugin load; gates TUI display only, log channels always write; council toasts included in the default set
|
|
766
|
+
- **Olympians groups**: wave→Olympians naming, 10s detection window, group completion
|
|
767
|
+
- **Hybrid secret blocking**: high-confidence tokens blocked (throw), low-confidence advisory-only; `maskSecret()` redaction applied across hook outputs
|
|
768
|
+
- **Honest delegation telemetry**: `delegation_id`/`task_id`/`duration_ms` fields, `dispatched` status for background agents, JSON round-trip stop hook (no TSV corruption)
|
|
769
|
+
- **Bash exit-code monitoring**: `metadata.exit` → individual error notifications
|
|
770
|
+
- **Talos scope enforcement**: session→agent map, native permission denies, content guard
|
|
771
|
+
- `PANTHEON_HOOKS_LOG` opt-in with ISO timestamps per line
|
|
772
|
+
- Routing disambiguation (project vs system docs), refusal taxonomy, delegation cache telemetry
|
|
773
|
+
- Secret-scan hygiene: wildcard notation for credential references (no literal keys in versioned docs/comments)
|
|
774
|
+
- README: hooks testing docs + `PANTHEON_TOASTS` table with council; AGENTS.md adds "PRs always update the README" convention
|
|
775
|
+
|
|
776
|
+
## 🐞 Fixed
|
|
777
|
+
|
|
778
|
+
- Council toast idle-flush race condition
|
|
779
|
+
|
|
780
|
+
## [v1.2.2] - 2026-08-05
|
|
781
|
+
|
|
782
|
+
## 🆕 What's New
|
|
783
|
+
|
|
784
|
+
- **`pantheon prune`** (#22): legacy cleanup command — XDG-aware config resolution, `--dry-run` default (list only), `--apply` removes stale `opencode.json.bak*` backups (age threshold), `--apply --remove-dirs` for legacy dirs with dead configs; old global `pantheon` installs are suggested for manual `npm uninstall -g pantheon`, never removed (npm-managed)
|
|
785
|
+
- **Release pipeline standardization** (PR #28): single source of truth for version in `scripts/versioning.mjs` (sem-tag aware); CHANGELOG repair (normalized broken `[5.0.0]` heading → `[1.0.0]`, stripped `[v` prefixes across 3.x history, added `[Unreleased]`); `release.yml` redesigned with idempotent gates (skips publish when version already exists); new `scripts/changelog-extract.mjs` and `scripts/version-check.mjs` (+ test suites) so release bodies use real changelog sections; commitlint extended to cover pushes; pre-commit gate added; `cliff.toml` (git-cliff) removed; `docs/RELEASING.md` added; ADR-0007
|
|
786
|
+
- **Test wiring + install docs** (PR #31): `test:security` extended with `test_doctor_layers`; Node test suite wired via `npm run test:node` (`node --test tests/*.mjs` — prune, hook-runner, plugin-log-policy, install/vision contracts, changelog/version checks) into CI; global-install sandbox documented in AGENTS.md / INSTALLATION.md
|
|
787
|
+
- Dead `src/mcp/requirements-mcp-core.txt` catalog duplicate (YAGNI — the installer uses `requirements-mcp.txt`)
|
|
788
|
+
|
|
789
|
+
## 🐞 Fixed
|
|
790
|
+
|
|
791
|
+
- **Reliable global install** (PR #26): hooks plugin recreated (`pantheon-hooks.ts` + `hook-runner.ts` with stdin JSON protocol, version-proof); MCP install made hermetic (absolute paths); packaging fix (`files[]` += `src/plugins/**`, `scripts/hooks/**`, self-reference removed, pinned `@opencode-ai/plugin` 1.18.11); `import uuid` hotfix in `scripts/mcp_persistence_server.py`
|
|
792
|
+
- **Installer/plugin packaging paths** (PR #31): hooks plugin registered via `resolveInstalledPlugin` so the config points at the INSTALLED package path, never the developer's absolute path (#30); TUI registered with absolute dist path in `tui.json` (#32 — relative path caused NpmInstallFailedError); TUI reads its installed package version via `import.meta.url` (works from any cwd)
|
|
793
|
+
- **Idempotent init** (#19): `subagent_depth` merged into the always-run config merge — run #1 already produces the final config (previously only the SECOND init added it); honest re-run stats (`routing.yml` no longer counted as created every run)
|
|
794
|
+
- **Layered doctor** (#18): B.6 smoke JSON-RPC `initialize` + F venv/deps check with pinned requirements
|
|
795
|
+
- **Pinned MCP dependencies** (#21): exact pins in `src/mcp/requirements-*.txt` (`mcp==1.29.0`, `fastmcp==3.4.6`, `pyyaml==6.0.3`, `sqlite-vec==0.1.9`, `fastembed==0.8.0`, `httpx==0.28.1`) — reproducible venv installs
|
|
796
|
+
- **Silent hooks by default**: audit hooks no longer echo to the console on success (`PANTHEON_HOOKS_LOG=1` re-enables the debug echo; log FILES `sessions.log`/`delegations.log` continue to be written)
|
|
797
|
+
|
|
798
|
+
## [v1.2.1] - 2026-08-03
|
|
799
|
+
|
|
800
|
+
## 🆕 What's New
|
|
801
|
+
|
|
802
|
+
- **Model routing presets + interactive picker**: 4 presets (go-deepseek, go-premium, go-fast, go-free), zero-mutation default (injects only when `active-preset.json` exists), `set-tier` CLI in `bin/pantheon-init.mjs` with API-key fail-fast, interactive picker in `scripts/install/model-picker.mjs` (atomic write + .bak), `validate-routing.mjs` preset validation, packaging fix so `src/pantheon/**` ships in the tarball
|
|
803
|
+
- 4 new provider families — go-claude (Anthropic), go-openai, go-olympus, go-muses presets + `CAPABILITY_TABLE` (+11 entries: glm-5.1/5.2, kimi-k2.6, qwen3.7-max/plus, minimax-m2.7/m2.5, bare deepseek-v4-pro/flash, big-pickle, nemotron-3-ultra-free, north-mini-code-free)
|
|
804
|
+
- **Vision routing**: per-turn multimodal fallback for image turns (`vision:` key per preset, `chat.message` hook), later evolved to native gateway vision (mimo-v2.5) with MCP-tool fallback, image-history normalization, description cache (sha256, TTL 30min) + intent-calibrated prompts, temp-image dedup/LRU
|
|
805
|
+
- Canonical `pantheon-vision` MCP stdio server (`src/mcp/pantheon_vision_server.py`)
|
|
806
|
+
- TUI: vendored todo-progress + usage-bar (v1.1.0, MIT attribution), active model preset shown in sidebar (30s refresh), OpenCode Go/Zen usage quota tracking (5h/7d/1m dollar windows, `[opencodego]` toml config)
|
|
807
|
+
- **Unified `release.yml`**: single workflow handles beta (PR label) + stable (main push) with version-exists check
|
|
808
|
+
- Secret scanning: fail-closed CI gates (gitleaks + custom scan), pre-commit hooks, secret-scan regression tests
|
|
809
|
+
- docs: model routing presets documented (presets, commands, env vars)
|
|
810
|
+
- Preset lineup refactored 8 → 6: go-deepseek routed via OpenCode Zen, go-fast via OpenCode Go, olympus/muses renamed go-premium/go-free — all presets now via OpenCode/Anthropic/OpenAI providers, `PANTHEON_DEEPSEEK_API_KEY` removed
|
|
811
|
+
- Vision routing consolidated and legacy duplicates removed
|
|
812
|
+
- commitlint: CodeQL auto-fix ignore pattern, body-max-line-length disabled, `security` type allowed, plugin/vision/presets/hooks scopes added; tsconfig dropped path aliases (+ `opencode.d.ts` ambient types)
|
|
813
|
+
- install: pantheon-vision registered, `doctor.mjs` hardened
|
|
814
|
+
- PR template added in English; coverage artifacts gitignored
|
|
815
|
+
- CI workflow triggers synced with base develop; `release.yml` gained `workflow_dispatch` with `pr_number` input
|
|
816
|
+
- Stale release workflows (release-beta.yml / release-stable.yml leftovers) brought back by merge
|
|
817
|
+
- TUI todo-progress bar (redundant with native TODO + sidebar), v1.1.1
|
|
818
|
+
- Duplicate `scripts/scrub_secrets.py` (canonical is `scrub-secrets.py`)
|
|
819
|
+
|
|
820
|
+
## 🐞 Fixed
|
|
821
|
+
|
|
822
|
+
- Plugin export as function for opencode 1.18.11 API (object export failed to load; hooks.config mutates config in place)
|
|
823
|
+
- Vision pipeline: plugin boot failure (legacy loader), MCP tool ID (`pantheon_vision_vision_describe`), gateway 401 (provider prefix stripped from model ID), temp-file race (age-guarded cleanup, dir never removed), image stripping at source (deepseek-v4-flash declared image-capable), gateway-aware qwen interception, MCP availability verified, refcounted shared temp images, file URLs decoded via `fileURLToPath`, temp image permissions restricted
|
|
824
|
+
- Default vision fallbacks: mimo-v2.5 (multimodal, cheaper) then minimax-m3 (qwen3.7-plus 500 on Go gateway); silent hook logs
|
|
825
|
+
- `import uuid` in `mcp_persistence_server.py` (context_save NameError)
|
|
826
|
+
- commitlint failures + typecheck narrowing; active preset applied in config hook
|
|
827
|
+
- CI: `workflow_dispatch` treated as stable release; empty env block removed; `NODE_AUTH_TOKEN` restored (OIDC Trusted Publisher not configured on npm); `github_pat_` self-match in secret scan; fast-uri upgraded to patched version
|
|
828
|
+
- Security: hardcoded provider credentials removed, preset error logging sanitized (CodeQL), dist artifacts untracked
|
|
829
|
+
- install: project MCP commands point at real venv
|
|
830
|
+
|
|
831
|
+
[v1.2.1]: https://github.com/ils15/pantheon-opencode/releases/tag/v1.2.1
|
|
832
|
+
|
|
833
|
+
## [v1.2.0] - 2026-07-30
|
|
834
|
+
|
|
835
|
+
## 🆕 What's New
|
|
836
|
+
|
|
837
|
+
- **Fallback chains + auto CI retry**: per-agent fallback chains (hermes→talos→athena, apollo→athena→hermes, etc.), CI retry 1 → 2 with exponential backoff + fallback agent, token tracking in `subtask_summary`, `fallback_chains` section in routing.yml
|
|
838
|
+
- Zeus Fusion-style delegation enforced — `edit:deny`, `bash:deny`, never touches files
|
|
839
|
+
- Persistence performance: index on (namespace, expires_at) — O(n)→O(log n) TTL queries, `kv_stats` tool, opportunistic auto-purge (>500 entries), FTS soft-delete trigger (fixes phantom results), `re.escape()` query safety, `kv_delete_namespace` bulk cleanup
|
|
840
|
+
- **Context checkpoint tools**: `context_save`, `context_get`, `context_list`, `context_stats` — session-scoped state in `checkpoint:{slug}` namespace, auto-TTL 4h, replaces file-based `checkpoint_session.py`
|
|
841
|
+
- New release system: beta from PR label (release-beta.yml), stable from main push (release-stable.yml)
|
|
842
|
+
- docs: `RELEASE.md` — beta from PR label, stable from main push
|
|
843
|
+
- **Slash commands consolidated 16 → 5** — kept `/pantheon`, `/audit`, `/deepwork`, `/optimize`, `/consolidate`; deleted 11 (cancel, focus, forget, install, reflect, remember, search, sketch, status, update, verify) with Apollo audit verifying alternative coverage (ADR-006)
|
|
844
|
+
- Removed redundant model configs — agents inherit default deepseek-v4-flash
|
|
845
|
+
- Persistence docs updated for new tools and auto-purge behavior
|
|
846
|
+
- commitlint scopes completed; auto-release skipped when version already exists
|
|
847
|
+
|
|
848
|
+
## 🐞 Fixed
|
|
849
|
+
|
|
850
|
+
- Council fixes: UUID session isolation in context checkpoints, pre-compaction state save trigger, flash summary quality floor (<10 chars → fallback to Zeus), agents recall `context_get(slug, 'latest')` on startup
|
|
851
|
+
- CI: push triggers removed — validation workflows (CI, commitlint, CodeQL, hotfix, docs) now run on `pull_request` only, eliminating perma-pending duplicate checks
|
|
852
|
+
|
|
853
|
+
[v1.2.0]: https://github.com/ils15/pantheon-opencode/releases/tag/v1.2.0
|
|
854
|
+
|
|
855
|
+
## [v1.0.0] - 2026-07-24
|
|
856
|
+
|
|
857
|
+
## 🆕 What's New
|
|
858
|
+
|
|
859
|
+
- **OpenCode-only**: Removed all multi-platform support (Claude Code, Cursor, Windsurf, Cline, Continue.dev, VS Code Copilot). Pantheon v1.0 is exclusively for OpenCode.
|
|
860
|
+
- **Global installation**: `npx pantheon-opencode init` installs agents globally to `~/.config/opencode/agents/`. Optional `--project` flag for project-local install.
|
|
861
|
+
- **Background subagents**: Native OpenCode `task(background=true)` + `task_status()` delegation. Max 5 concurrent subagents. Requires `OPENCODE_EXPERIMENTAL_BACKGROUND_SUBAGENTS=true`.
|
|
862
|
+
- **Shared instructions**: Behavioral rules moved to `.instructions.md` files loaded via `instructions/*.instructions.md`. Eliminated duplicate rules between agents and instructions.
|
|
863
|
+
- **TUI sidebar plugin**: Custom sidebar showing Pantheon version, sessions, commands, agents, config, and memory stats.
|
|
864
|
+
- **Agent routing optimized**: Zeus routing decision tree prohibits `general`/`explore` subagent types. Each domain maps to a specialist.
|
|
865
|
+
- Instructions tokens reduced 10.3k → 7.5k (-18%)
|
|
866
|
+
- Zeus.md reduced 431 → 144 lines
|
|
867
|
+
- Skills reduced to 14 (from 40), with merged content
|
|
868
|
+
- `skills-lock.json` regenerated (40 → 14 entries)
|
|
869
|
+
- 6 platform-specific installers (claude, cline, continue, copilot, cursor, windsurf)
|
|
870
|
+
- 6 platform-specific docs files
|
|
871
|
+
- Legacy scripts: `pantheon-install.mjs`, `pantheon-update.mjs`
|
|
872
|
+
- `platform/opencode/agents/` (agents now in `src/agents/`)
|
|
873
|
+
- `auto-continue-template.md`
|
|
874
|
+
- `checkpoint-standards.instructions.md`
|
|
875
|
+
- Updated command list: 14 → 11 commands
|
|
876
|
+
- Added: `/pantheon-bg`, `/pantheon-doc`
|
|
877
|
+
- Removed: install, update, cancel, sketch, consolidate
|
|
878
|
+
|
|
879
|
+
[v1.0.0]: https://github.com/ils15/pantheon-opencode/releases/tag/v1.0.0
|
|
880
|
+
|
|
881
|
+
## [v1.1.1] - 2026-07-30
|
|
882
|
+
|
|
883
|
+
## 🆕 What's New
|
|
884
|
+
|
|
885
|
+
- New release system — beta releases from PR labels, stable from main push (auto-release and beta-release workflows unified)
|
|
886
|
+
- Interactive TUI mode for installer (Fases 1+2) — redesigned sidebar with context progress bar, live session data via events + API
|
|
887
|
+
- Session-scoped context checkpoints in persistence (index, stats, auto-purge, `delete_namespace`); fallback chains, auto CI retry (2x), token tracking
|
|
888
|
+
- Slash commands consolidated from 16 to 5; redundant model configs removed (agents inherit the default model)
|
|
889
|
+
|
|
890
|
+
## 🐞 Fixed
|
|
891
|
+
|
|
892
|
+
- Council: UUID session isolation in context checkpoints, pre-compaction state save, flash summary quality floor, agents recall `context_get(slug, 'latest')` on startup
|
|
893
|
+
- TUI plugin/CI: OpenCode crash from missing plugin deps, version detection with git fallback, commitlint scopes, workflow YAML/MCP path repairs; `datetime.UTC` → `timezone.utc` for Python < 3.11
|
|
894
|
+
|
|
895
|
+
[v1.1.1]: https://github.com/ils15/pantheon-opencode/releases/tag/v1.1.1
|
|
896
|
+
|
|
897
|
+
## [v1.1.0] - 2026-07-26
|
|
898
|
+
|
|
899
|
+
## 🆕 What's New
|
|
900
|
+
|
|
901
|
+
- Council synthesis Fase 1+2 — Modo Desempate com Evidência + BackgroundJobBoard (#2)
|
|
902
|
+
- Beta release workflow added (from develop)
|
|
903
|
+
|
|
904
|
+
[v1.1.0]: https://github.com/ils15/pantheon-opencode/releases/tag/v1.1.0
|
|
905
|
+
|
|
906
|
+
## [v1.0.7] - 2026-07-26
|
|
907
|
+
|
|
908
|
+
## 🐞 Fixed
|
|
909
|
+
|
|
910
|
+
- Installer: fixed `writeFileSync` not defined error
|
|
911
|
+
|
|
912
|
+
[v1.0.7]: https://github.com/ils15/pantheon-opencode/releases/tag/v1.0.7
|
|
913
|
+
|
|
914
|
+
## [v1.0.6] - 2026-07-26
|
|
915
|
+
|
|
916
|
+
## 🆕 What's New
|
|
917
|
+
|
|
918
|
+
- 7 new skills (codemap, simplify, reflect, worktrees, verification-planning, loop-engineering, clonedeps) + 7 matching commands; `background_subagents` enabled by default in canonical config
|
|
919
|
+
- Release pipeline: quality gates, tag creation, pre-release, hotfix support
|
|
920
|
+
- CI simplified from 10 to 6 workflows; agent/skill restructuring — 12 redundant instructions removed, unused commands dropped, gaia archived then restored
|
|
921
|
+
|
|
922
|
+
## 🐞 Fixed
|
|
923
|
+
|
|
924
|
+
- CI/commitlint config (YAML syntax, header-max-length, ignores function, scopes); 45 stale references cleaned across 18 files; invalid `opencode.json` fields removed; installer copies `routing.yml`; YAML frontmatter regenerated for 9 agents
|
|
925
|
+
|
|
926
|
+
[v1.0.6]: https://github.com/ils15/pantheon-opencode/releases/tag/v1.0.6
|
|
927
|
+
|
|
928
|
+
## [v1.0.5] - 2026-07-26
|
|
929
|
+
|
|
930
|
+
## 🐞 Fixed
|
|
931
|
+
|
|
932
|
+
- CI auto-release with OIDC trusted publisher + npm v12 (Node 22 upgrade, clean publish)
|
|
933
|
+
- `doctor.mjs` paths + simplified `prepublishOnly`
|
|
934
|
+
|
|
935
|
+
[v1.0.5]: https://github.com/ils15/pantheon-opencode/releases/tag/v1.0.5
|
|
936
|
+
|
|
937
|
+
## [v1.0.2] - 2026-07-25
|
|
938
|
+
|
|
939
|
+
## 🆕 What's New
|
|
940
|
+
|
|
941
|
+
- TUI plugin: copy logic, stale skill cleanup, `tui.json` dedup; advanced plugin with version detection and 14 commands
|
|
942
|
+
- Agents migrated from deprecated `tools:` to OpenCode `permission:` model; legacy multi-platform tests removed (OpenCode-only conformance); docs modernized (OpenCode-only, unified commands)
|
|
943
|
+
|
|
944
|
+
## 🐞 Fixed
|
|
945
|
+
|
|
946
|
+
- Hardcoded version fallback replaced with package.json version; routing aligned with actual skills (vscode platform removed)
|
|
947
|
+
|
|
948
|
+
[v1.0.2]: https://github.com/ils15/pantheon-opencode/releases/tag/v1.0.2
|
|
949
|
+
|
|
950
|
+
## [v1.0.1] - 2026-07-24
|
|
951
|
+
|
|
952
|
+
## 🆕 What's New
|
|
953
|
+
|
|
954
|
+
- Installer: unified setup flow, removed lifecycle install, fixed entry points
|
|
955
|
+
|
|
956
|
+
[v1.0.1]: https://github.com/ils15/pantheon-opencode/releases/tag/v1.0.1
|
|
957
|
+
|
|
958
|
+
## [v3.19.2] - 2026-07-21
|
|
959
|
+
|
|
960
|
+
## 🆕 What's New
|
|
961
|
+
|
|
962
|
+
- `_pantheon_paths.py` — shared path resolution (`PANTHEON_HOME`, `PANTHEON_PROJECT`)
|
|
963
|
+
- `pantheon-persistence` MCP — KV store with SQLite FTS5, TTL, namespaces, 6 tools
|
|
964
|
+
- `pantheon-memory` rewritten — sqlite-vec + fastembed (ONNX, ~50MB) replaces chromadb + torch (~1.4GB)
|
|
965
|
+
- Hybrid semantic search: vector cosine + FTS5 BM25 via RRF fusion
|
|
966
|
+
- `.pantheon/mcp-registry.yml` — canonical MCP registry + auto-propagation
|
|
967
|
+
- Simplified installer: `install:lite` (agents only), `install:full` (everything), `install:runtime` (MCP infra)
|
|
968
|
+
- `scripts/install/venv.mjs` — auto .venv creation + pip install of lightweight deps
|
|
969
|
+
- `scripts/install/health-check.mjs` — 6 post-install validations
|
|
970
|
+
- `scripts/install/migrate.mjs` — upgrade path v3.10 → v3.18 → v3.19.0 → v3.19.2
|
|
971
|
+
- MCP servers patched for global install (no more `__file__.parent.parent`)
|
|
972
|
+
- **Dependencies reduced from ~1.4GB to ~50MB** — removed chromadb, sentence-transformers, torch
|
|
973
|
+
- `memory_mcp_server.py`: 1,344→584 lines, 14→6 tools (memory_store, memory_search, memory_recall, memory_forget, memory_list, memory_stats)
|
|
974
|
+
- `routing.yml`: 1,102→482 lines (-56%), deleted 22 dead handoffs, routing_matrix
|
|
975
|
+
- `internet-search` skill: 519→130 lines, tool-agnostic (context7/websearch/webfetch)
|
|
976
|
+
- Memory Protocol: shared `instructions/memory-protocol.instructions.md`, 14 agents with 2-4 line overrides
|
|
977
|
+
- Agent YAML frontmatter fixed across all 14 agents (broken `...` separators, skills indent)
|
|
978
|
+
- All platform configs updated with persistence MCP entries
|
|
979
|
+
- `opencode.json` generated with correct deploy paths (cwd = deploy target)
|
|
980
|
+
- chromadb + sentence-transformers + torch (~1.4GB dependency chain)
|
|
981
|
+
- `scripts/requirements-mcp-memory.txt`
|
|
982
|
+
- 9 duplicate instructions (now skills on-demand)
|
|
983
|
+
- `multi-model-routing` from prometheus (deleted skill)
|
|
984
|
+
|
|
985
|
+
## 🐞 Fixed
|
|
986
|
+
|
|
987
|
+
- 157 dangling instruction references across 6 platforms
|
|
988
|
+
- YAML frontmatter in all 14 agents (broken by previous sed edits)
|
|
989
|
+
- OpenCode platform detection (was missing `platform/opencode/opencode.json`)
|
|
990
|
+
|
|
991
|
+
## [v3.19.0] - 2026-07-21
|
|
992
|
+
|
|
993
|
+
## 🆕 What's New
|
|
994
|
+
|
|
995
|
+
- Memory Persistence Protocol (ADR-006) — agents now have mandatory `memory_recall()` pre-work (top_k=3, skip if score<0.3) and `memory_store()` post-work (2 lines max, importance 0.4-0.9)
|
|
996
|
+
- Session-end auto-save script (`.pantheon/code-mode/session-end-save.py`) — exports Vector DB entries with importance ≥0.4 at session close (ChromaDB direct read + client-side filtering)
|
|
997
|
+
- `session_end_save` handoff in routing.yml for Mnemosyne session close trigger
|
|
998
|
+
- `tools.agent: true` for Apollo, Talos, and Gaia canonical agent files
|
|
999
|
+
- Recall Conflict Protocol (ADR-006 v1.1) — 5 rules for when recalled memory conflicts with current action (log, prefer freshness, escalate ADRs, score threshold, audit trail)
|
|
1000
|
+
- New skills synced: `file-prompts`, `plan-architecture`, `streaming-patterns`, `token-audit`, `wisdom-accumulation`
|
|
1001
|
+
- All 14 agent files updated with `## 🧠 Memory Protocol` section (both canonical `/agents/` and OpenCode `.config/opencode/agents/`)
|
|
1002
|
+
- Zeus now auto-stores `memory_store()` directly on agent return — no Mnemosyne middleman
|
|
1003
|
+
- Steps optimization in opencode.json: zeus(25→35), aphrodite(25→30), hermes(20→25), themis(20→25), demeter(20→25), mnemosyne(10→8), iris(15→10), nyx(15→12), athena(15→12)
|
|
1004
|
+
- README.md badges updated to v3.19.0, skills count 43→40
|
|
1005
|
+
- 9 duplicate instructions deleted — now only skills on-demand (tdd-standards, code-quality-checks, code-review-standards, database-standards, artifact-protocol, mcp-security, memory-bank-standards, infra-standards, auto-continue-safety-gates)
|
|
1006
|
+
- Always-loaded instructions: 19→10 files (~5.7K→~3K tokens/session, -47%)
|
|
1007
|
+
- Agent platform copies updated across 6 platforms (Claude, Cursor, Windsurf, Continue, Cline — .clinerules)
|
|
1008
|
+
- `routing.yml` artifact paths: `docs/memory-bank/`→`.pantheon/memory-bank/`
|
|
1009
|
+
- 5 orphan skills linked to agents: wisdom-accumulation→zeus, plan-architecture→athena, file-prompts+streaming-patterns→hermes, token-audit→nyx
|
|
1010
|
+
- `prompts/orchestrate-with-zeus`: fixed 3 instances of ATHENA→APHRODITE for frontend delegation
|
|
1011
|
+
- `prompts/focus.prompt.md`: stale `/memories/session/` path → `.pantheon/memory-bank/.tmp/`
|
|
1012
|
+
- `prompts/mirrords.prompt.md`: tool names updated to current API
|
|
1013
|
+
- `commands/pantheon-install.md`: stale doc ref and platform count fixed
|
|
1014
|
+
- `commands/pantheon-update.md`: example version bumped to 3.19.0
|
|
1015
|
+
- `pyproject.toml`: removed all backend/fastapi/alembic dependencies (no longer maintained)
|
|
1016
|
+
- `platform/forge.json`: version bumped to 3.19.0
|
|
1017
|
+
- `alembic/` — stale DB scaffolding (never completed)
|
|
1018
|
+
- `backend/` — stale FastAPI database engine (half-finished)
|
|
1019
|
+
- `docs/memory-bank/` — stale duplicate (should have been purged in v3.17.0)
|
|
1020
|
+
- `docs/TUTORIAL-PLUGIN-PT.md` — Portuguese tutorial for disabled plugin
|
|
1021
|
+
- `plugins-disabled/` — stale pantheon-tui-plugin
|
|
1022
|
+
- `release_notes.md` — lowercase, redundant with CHANGELOG
|
|
1023
|
+
- 4 obsolete skills: `conversational-ai-design`, `multi-model-routing`, `prompt-improver`, `prompt-injection-security`
|
|
1024
|
+
- `__pycache__` and `.mypy_cache` build artifacts
|
|
1025
|
+
- Full documentation audit: 10+ doc files cleaned, versions reconciled, stale content purged
|
|
1026
|
+
- Memory Persistence Protocol documented as ADR-006
|
|
1027
|
+
- `.config/opencode/` fully synced from canonical Pantheon (14 agents + 10 instructions)
|
|
1028
|
+
|
|
1029
|
+
## 🐞 Fixed
|
|
1030
|
+
|
|
1031
|
+
- 33 dangling `docs/memory-bank/` references fixed across platform configs (`.claude/`, `.cursor/`, `.windsurf/`, `.continue/`, `.clinerules/`, `.github/`, `memories/`, `platform/`, `template/`, `.opencode/skills/`, `.tests/`)
|
|
1032
|
+
- `.pantheon/memory-bank/.tmp/` added to `.gitignore`
|
|
1033
|
+
- `docs/RELEASING.md` version reference — v3.8.4 → v3.19.0
|
|
1034
|
+
- `docs/UPGRADING.md` — removed obsolete Agora migration guide, added v3.19 Memory Protocol section
|
|
1035
|
+
- `docs/mcp-recommendations.md` — removed Exa MCP references (removed in v3.15.0)
|
|
1036
|
+
- `docs/platforms/opencode.md` — removed stale "agora" references
|
|
1037
|
+
- `docs/AGENT-MCP.md` — removed Exa reference
|
|
1038
|
+
- CHANGELOG duplicate v3.9.0 entries removed
|
|
1039
|
+
- `template/CLAUDE.md` — `agora`→`zeus` for council dispatch
|
|
1040
|
+
- `.github/instructions/auto-continue-safety-gates`: "Agora Council"→"Council"
|
|
1041
|
+
- `.tests/test-all.sh`: removed stale chiron.agent.md test
|
|
1042
|
+
- Skills count reconciled across all docs: 40
|
|
1043
|
+
- `docs/INDEX.md` skills count: 45→40
|
|
1044
|
+
|
|
1045
|
+
## [v3.18.0] - 2026-07-15
|
|
1046
|
+
|
|
1047
|
+
(no changes)
|
|
1048
|
+
|
|
1049
|
+
## [v3.17.1] - 2026-07-14
|
|
1050
|
+
|
|
1051
|
+
## 🆕 What's New
|
|
1052
|
+
|
|
1053
|
+
- Inline compression triggers (C8/C9/C11): implementation agents (Hermes, Aphrodite, Demeter, Hephaestus, Prometheus) now declare `context-compression` skill and have a concise `## Inline Compression` section covering CRITICAL/HIGH subtask summaries, pre-delegation large blocks, and phase boundaries/handoffs
|
|
1054
|
+
- `tests/test_code_mode_args.py`: TDD coverage for the new `args` parameter forwarding
|
|
1055
|
+
- `context-compression` SKILL.md: real C8–C11 trigger definitions added; redundant C10 noted as OpenCode-native cross-reference; L1/L3 contradiction resolved (L1 = inline compress via MCP, L2 = batch promotion at gates)
|
|
1056
|
+
- Agent `.md` files: `context-compression` added to `skills:` frontmatter for all 5 implementation agents
|
|
1057
|
+
- `instructions/artifact-protocol.instructions.md`: scrub documented as automatic via MCP layer
|
|
1058
|
+
|
|
1059
|
+
## 🐞 Fixed
|
|
1060
|
+
|
|
1061
|
+
- `execute_code_script` now forwards CLI arguments to subprocess — `compress-inline.py` is reachable via MCP (fixes argparse code 2 error)
|
|
1062
|
+
- Unified scrubber: 3 divergent implementations consolidated into single canonical `scripts/scrub-secrets.py`, imported by both `memory_mcp_server.py` and `compress-inline.py` via `importlib` (hyphenated filename cannot be statically imported)
|
|
1063
|
+
- OpenAI key regex standardized across all consumers to `sk-[A-Za-z0-9\-_]{10,}`
|
|
1064
|
+
|
|
1065
|
+
## [v3.17.0] - 2026-07-11
|
|
1066
|
+
|
|
1067
|
+
## 🆕 What's New
|
|
1068
|
+
|
|
1069
|
+
- Pantheon TUI Plugin overhaul: sidebar modernization, clickable commands, dynamic Python version
|
|
1070
|
+
- MCP Config section in TUI: list active plugins, MCP status, auto-compaction toggle
|
|
1071
|
+
- Memory section in TUI: show memory entries count
|
|
1072
|
+
- MCP templates for 6 platforms (Claude, Cline, Cursor, Windsurf, Continue, Copilot)
|
|
1073
|
+
- `scripts/init-pantheon-mcp.sh` — automated MCP setup
|
|
1074
|
+
- `docs/INSTALLATION.md` — MCP installation guide
|
|
1075
|
+
- `docs/MIGRATION-MEMORY-BANK.md` — migration guide for memory bank to .pantheon/
|
|
1076
|
+
- Memory bank moved from `docs/memory-bank/` → `.pantheon/memory-bank/` (fully local, gitignored)
|
|
1077
|
+
- `.pantheon/` is now the standard for all local/generated artifacts
|
|
1078
|
+
- OpenCode MCP format fixed: command as array + cwd
|
|
1079
|
+
- All platform templates updated with pantheon-code-mode MCP
|
|
1080
|
+
- `.mcp.json` moved from root to `platform/mcp/mcp-template.json`
|
|
1081
|
+
- Version synchronization: `versioning.mjs` now handles all manifests (package.json, plugin.json, pyproject.toml, forge.json)
|
|
1082
|
+
- Updated 65+ source files with new .pantheon/ paths
|
|
1083
|
+
- `docs/memory-bank/` from git history (fully purged via filter-repo)
|
|
1084
|
+
|
|
1085
|
+
## 🐞 Fixed
|
|
1086
|
+
|
|
1087
|
+
- TUI plugin path in tui.json (was pointing to non-existent file)
|
|
1088
|
+
- OpenCode MCP config format (command must be array + cwd)
|
|
1089
|
+
- Release pipeline: version mismatch between package.json and plugin.json
|
|
1090
|
+
- `mcp_resources_server.py` memory-bank path resolution
|
|
1091
|
+
|
|
1092
|
+
## [v3.16.0] - 2026-07-10
|
|
1093
|
+
|
|
1094
|
+
## 🆕 What's New
|
|
1095
|
+
|
|
1096
|
+
- MCP Resources Support: pantheon://agents, skills, routing, deepwork, memory-bank
|
|
1097
|
+
- Code Mode MCP Adapter: confined script execution from .pantheon/code-mode/
|
|
1098
|
+
- YOLO Mode / Auto-Approve: permission tiers for trusted MCP servers
|
|
1099
|
+
- Reasoning Effort per Agent: high / medium / low in routing.yml + 14 agent frontmatter
|
|
1100
|
+
- Unified Memory MCP Server: 14 tools, ChromaDB + sentence-transformers, 79 tests
|
|
1101
|
+
- Knowledge graph: memory_link + memory_traverse (BFS traversal)
|
|
1102
|
+
- RTK-style output filters: dedup, group, truncate on memory_store
|
|
1103
|
+
- Freshness decay (30-day half-life) + importance boost + claim verification
|
|
1104
|
+
- Agent MCP Integration: all 14 agents with MCP Capabilities + routing.yml capabilities
|
|
1105
|
+
- Documentation: MCP.md (238l), MEMORY.md (471l), AGENT-MCP.md (197l)
|
|
1106
|
+
- Skills audit: 5 orphan skills deleted, quality-gate skill created
|
|
1107
|
+
- Platform sync: pantheon-memory added as Tier 1 MCP in install-mcp.mjs
|
|
1108
|
+
- docs/mcp-recommendations.md expanded to 422 lines (browser MCPs, infra MCPs, 3-7 rule)
|
|
1109
|
+
- memory_cleanup: 3-char minimum prefix guard
|
|
1110
|
+
- memory_export: restricted to ~/.pantheon/exports/ with path traversal check
|
|
1111
|
+
- Content size limit: 100KB max, 500 char category
|
|
1112
|
+
|
|
1113
|
+
## 🐞 Fixed
|
|
1114
|
+
|
|
1115
|
+
- memory_sessions dead code (always returned empty results)
|
|
1116
|
+
- install-mcp.mjs filename: dash → underscore
|
|
1117
|
+
- .github/plugin/plugin.json: removed deleted streaming-patterns reference
|
|
1118
|
+
- memory_mcp_server.py: F821 undefined name, missing except block
|
|
1119
|
+
|
|
1120
|
+
## [v3.15.0] - 2026-06-26
|
|
1121
|
+
|
|
1122
|
+
## 🆕 What's New
|
|
1123
|
+
|
|
1124
|
+
- **Level 3 Vector Memory:** 5 scripts (`schema.py`, `index.py`, `query.py`, `rebuild.py`, `cli.py`) with dual indexing (FTS5 + optional sqlite-vec embeddings), 8/8 tests passing, 120 entries indexed from memory bank
|
|
1125
|
+
- **Two-Tier Persistence Model:** Tier 1 auto-index (`quick_index()`) saves background agent results instantly into Vector Memory; Tier 2 full compression (ZZ artifact + memory bank update) only on Themis APPROVED
|
|
1126
|
+
- **Inline quick_index():** New function in `index.py` indexes subtask_summary dicts directly (no file scanning), idempotent via content_hash, auto-tags from keywords
|
|
1127
|
+
- **Context Compression Trigger:** Section in `zeus.agent.md` with test script `scripts/test-context-compression.sh` — validates all 5 checks (prerequisites, mocks, structure, secrets, output)
|
|
1128
|
+
- **Background Agent Dispatch:** Pattern documented in `zeus.agent.md` and `orchestration-workflow/SKILL.md` — OpenCode v1.16.2+ background agents with auto-persist
|
|
1129
|
+
- **Auto-Continue Canonical Name:** "relentless" → "auto-continue" across 43 files (skills, commands, agent files, platform copies)
|
|
1130
|
+
- **Tools Format:** 14 agents converted from YAML array (`- tool`) to object format (`tool: true`)
|
|
1131
|
+
- **quick_index path fix:** Scripts now add `scripts/` (parent of vector_memory package) to sys.path instead of their own directory
|
|
1132
|
+
- **Platform Skill Directories:** 211 stale skill files removed from 6 platform dirs (`.clinerules/skills/`, `.claude/skills/`, `.cursor/skills/`, `.windsurf/skills/`, `.continue/skills/`, `platform/*/`) — OpenCode v1.16.0+ discovers skills natively from `~/.config/opencode/skills/`
|
|
1133
|
+
- **Exa MCP Server:** `exa-mcp-server` removed from `opencode.json` (redundant with OpenCode native websearch)
|
|
1134
|
+
- **`vector_memory` config key:** Removed from both project and global `opencode.json` (not recognized by OpenCode v1.17.x)
|
|
1135
|
+
- **NOTE0010:** Pantheon v3 Roadmap — 5-phase vision from FTS5 to Plugin Architecture
|
|
1136
|
+
- **TASK-016:** Level 3 Implementation Plan — 24 tasks across 5 phases
|
|
1137
|
+
- **01-active-context.md:** Updated with deepwork v3.15 changes and Two-Tier model
|
|
1138
|
+
|
|
1139
|
+
## 🐞 Fixed
|
|
1140
|
+
|
|
1141
|
+
- **Import Path in Vector Memory Scripts:** `sys.path` now correctly points to parent of `vector_memory/` package, enabling both direct execution and `python -m` usage
|
|
1142
|
+
|
|
1143
|
+
## [v3.14.1] - 2026-06-21
|
|
1144
|
+
|
|
1145
|
+
## 🆕 What's New
|
|
1146
|
+
|
|
1147
|
+
- **Pantheon-Context MCP Experiment:** Removed entire `scripts/pantheon-context-mcp/` directory (server.py, scoring.py, summarizer.py, tests — 12 files, ~1,200 lines)
|
|
1148
|
+
- **Stale Agent References:** Stripped `pantheon-context` tool references from all 14 agent files, `.mcp.json`, `opencode.json`, `ROADMAP.md`
|
|
1149
|
+
- **Auto-Release CI:** Removed `.github/workflows/auto-release.yml` (triggered broken v3.14.0 release on every push to main)
|
|
1150
|
+
- **TUI Sidebar Plugin:** Rewrote from flat file to npm-style directory (`plugins/pantheon-tui/` with `index.tsx`, `package.json`, `dist/tui.tsx`). New features: real context usage bar (color thresholds 70%/90%), collapsible command guide (16 `/pantheon` commands), manual compress button, Python version display, collapsible agent registry
|
|
1151
|
+
|
|
1152
|
+
## 🐞 Fixed
|
|
1153
|
+
|
|
1154
|
+
- **Install Script:** `scripts/install/opencode.mjs` now correctly copies npm-style plugin directory and registers in `tui.json` (not `opencode.json` — TUI plugins use separate registration)
|
|
1155
|
+
- **CI Release Pipeline:** Added `dry_run` input to manual release workflow, removed auto-merge from release PRs, fixed duplicate steps
|
|
1156
|
+
|
|
1157
|
+
## [v3.14.0] - 2026-06-20
|
|
1158
|
+
|
|
1159
|
+
## 🆕 What's New
|
|
1160
|
+
|
|
1161
|
+
- **Codebase Audit:** Comprehensive 5-agent scan — 48 issues found, all resolved
|
|
1162
|
+
- **Mermaid Diagrams:** 5 new diagrams — TDD Cycle (stateDiagram-v2), Artifact Lifecycle (flowchart), Council Synthesis (sequenceDiagram), Architecture (flowchart), Delegation Flow (flowchart)
|
|
1163
|
+
- **Python Infrastructure:** Added `[build-system]`, project deps (FastAPI 0.110+, SQLAlchemy 2.0+, Alembic 1.13+, Pydantic 2.7+), ruff expanded to 11 rule groups, coverage (`fail_under=80`), mypy strict
|
|
1164
|
+
- **Alembic Scaffolding:** `alembic.ini` with env var interpolation, async `env.py`, Mako template, models base with `AsyncAttrs` + `TimestampMixin`
|
|
1165
|
+
- **SQLAlchemy 2.0 Mixins:** `UUIDPrimaryKeyMixin`, `IntegerPrimaryKeyMixin`, `SoftDeleteMixin`, `ActivatableMixin`
|
|
1166
|
+
- **Frontend Scaffolding:** `biome.json` (1.9.4), `tsconfig.json` (strict mode, ES2022), npm scripts (test, lint, typecheck, build, dev)
|
|
1167
|
+
- **Docker Infrastructure:** Multi-stage Dockerfile (build + runtime, non-root), docker-compose.yml (PostgreSQL 16 + API), `.env.example`
|
|
1168
|
+
- **Database Standards:** Async SQLAlchemy 2.0 patterns, connection pooling, migration testing, disaster recovery + 2 Mermaid diagrams
|
|
1169
|
+
- **Documentation Quality:** "When NOT to Use" sections on all 7 main agents, English-only throughout, ROADMAP.md updated
|
|
1170
|
+
|
|
1171
|
+
## 🐞 Fixed
|
|
1172
|
+
|
|
1173
|
+
- **Dead Agent Purge:** Removed ~150+ references to Echo, Chiron, Argus, Agora across 67+ files (agents, platforms, instructions, skills)
|
|
1174
|
+
- **Portuguese→English:** `docs/platforms/README.md` fully translated, `agents/prometheus.agent.md` mixed-language fixed
|
|
1175
|
+
- **QUICKSTART.md:** Removed duplicate Nyx entry in agent table
|
|
1176
|
+
- **`00-project.md`:** Fixed Argus in architecture diagram, corrected skill path, fixed Portuguese text
|
|
1177
|
+
- **Prometheus Self-Contradiction:** Fixed "MUST NOT deploy (that's @prometheus)" — copy-paste bug from Chiron merge
|
|
1178
|
+
- **Hephaestus Echo Dead Code:** Removed 25-line Echo section that was copy-pasted verbatim
|
|
1179
|
+
- **`seo-config.ts`:** Renamed to `.md` (was Markdown disguised as TypeScript)
|
|
1180
|
+
- **`agent-return-format.instructions.md`:** Fixed Agora reference in artifact table
|
|
1181
|
+
- **`skills/README.md`:** Count corrected from 37→42, stale Chiron/Echo refs updated
|
|
1182
|
+
|
|
1183
|
+
## [v3.13.0] - 2026-06-20
|
|
1184
|
+
|
|
1185
|
+
## 🆕 What's New
|
|
1186
|
+
|
|
1187
|
+
- **Level 2 Context Compression** — priority scoring engine (5 deterministic dimensions: Impact, Risk, Novelty, Blockers, Downstream relevance), semantic summarization templates per agent-pair, budget allocation (100-line cap, priority-greedy), cross-reference mechanism (D/E/M/C IDs with auto-generated `_xref/index.md`), ZZ artifact format for phase-to-phase context injection, `context-compression` skill (Level 2)
|
|
1188
|
+
- **New prompts**: `prompts/semantic-summarize.md` for agent-pair aware semantic summarization
|
|
1189
|
+
- **New scripts**: `scripts/scrub-secrets.py` for security scrubbing of compressed content
|
|
1190
|
+
- **Missing infra**: `docs/memory-bank/_xref/_next_id.json` with full key names (decisions/entities/milestones/tasks)
|
|
1191
|
+
- **Safety preflight**: `can_compress()` guard prevents compression of in-progress/escalated/blocked/NEEDS_REVISION artifacts
|
|
1192
|
+
- **Atomic write protocol**: .tmp + fsync + rename with validation for corruption prevention
|
|
1193
|
+
- **14 agent `.agent.md` files** — stripped non-OpenCode frontmatter (`tools:`, `handoffs:`, `agents:`, `color:`, `hidden:`, `mcpServers:`). All agents now use only OpenCode-recognized fields
|
|
1194
|
+
- **Agent count unified** — all files consistently say "14 agents" (removed chiron, echo, argus from counts)
|
|
1195
|
+
- **`instructions/artifact-protocol.instructions.md`** — updated with ZZ artifact format, compression lifecycle, atomic write protocol, budget guardrails
|
|
1196
|
+
- **`instructions/memory-bank-standards.instructions.md`** — updated with compression and recovery section, cross-reference docs
|
|
1197
|
+
- **Context compression** — Level 1 replaced entirely by Level 2 (priority-scored summaries with downstream-aware field masks)
|
|
1198
|
+
- **All 7 platforms regenerated** — commands (pantheon-status, ping) and agents synced across OpenCode, Claude Code, Cursor, Windsurf, Cline, Continue, Copilot
|
|
1199
|
+
- **TUI Plugin** — moved to `plugins-disabled/`, removed from OpenCode config (temporary removal)
|
|
1200
|
+
- **`packages/tui-plugin/`** — source files removed from active tree
|
|
1201
|
+
- **`plugins/pantheon-tui-plugin/`** — secondary plugin source removed
|
|
1202
|
+
- **`platform/opencode/.opencode/package.json`** — stale TUI config removed
|
|
1203
|
+
- **Stale agent references** — chiron, echo, argus, agora references cleaned from 40+ files across platforms, docs, tests, commands
|
|
1204
|
+
- **Missing skill references** — `code-discipline`, `architecture-diagrams` removed from agent references (never existed as skills)
|
|
1205
|
+
- **Platform Conformance Matrix** — 6/6 plataformas passando com 0 falhas
|
|
1206
|
+
- **CI validate** — passing
|
|
1207
|
+
- **Sync Check** — passing
|
|
1208
|
+
- **Auto Release** — published at v3.13.0
|
|
1209
|
+
|
|
1210
|
+
## 🐞 Fixed
|
|
1211
|
+
|
|
1212
|
+
- **CHANGELOG.md** — removed 4 duplicate v3.12.1 entries and empty v3.12.2 section
|
|
1213
|
+
- **Frontmatter consistency** — all 14 agents now parse cleanly with OpenCode YAML frontmatter
|
|
1214
|
+
- **Cross-platform agent count** — 14 everywhere (was inconsistent: some files said 18, some said 14)
|
|
1215
|
+
- **`.opencode/plugins/pantheon-hooks.ts`** — local OpenCode plugin que executa os 10 hooks de validação via tool.execute.before/after/event
|
|
1216
|
+
- **`sync-platform.sh`** — step 3.6 não synca mais TUI plugin; step 3.7 synca o pantheon-hooks.ts globalmente
|
|
1217
|
+
- **`.gitignore`** — `.opencode/plugins/` agora versionado; `platform/opencode/.opencode/{commands,skills}` ignorados
|
|
1218
|
+
- **`opencode-hooks-plugin` npm** — removido do config (nunca foi publicado como pacote npm)
|
|
1219
|
+
- **`@agora` redirects** — substituídos por `@zeus` em 5 platform files
|
|
1220
|
+
- **Stale docs references** — Chiron, Echo removidos de README.md, QUICKSTART.md, platforms docs; TUI marcado como desativado; hooks docs atualizados de `.github/hooks/` para `scripts/hooks/`; skill count corrigido para 42
|
|
1221
|
+
- **Canonical skills** — referências a Chiron em agent-coordination e database-optimization atualizadas para "Model Selection" e "model tier"
|
|
1222
|
+
- **`tools:` field restored to all 14 canonical agents** — re-adicionado de v3.12.2 para o sync engine + conformance tests validarem toolMap keys
|
|
1223
|
+
- **Stale skills removed** — `relentless-mode`, `review-work` (sem fonte canônica) removidos de .clinerules/skills, platform/claude, platform/cline, platform/continue, platform/cursor
|
|
1224
|
+
- **Stale commands removed** — `cancel-relentless`, `token-audit` (sem fonte canônica em commands/) removidos de .clinerules/commands, .continue/commands, .cursor/commands e platform sources
|
|
1225
|
+
- **wisdom-accumulation cleaned from platforms** — nenhum agente referenciava o skill; removido de platform dirs via sync --clean
|
|
1226
|
+
- **All platforms sync:check** — 0 stale files across 7 platforms
|
|
1227
|
+
|
|
1228
|
+
## [v3.12.0] - 2026-06
|
|
1229
|
+
|
|
1230
|
+
[compare changes](https://github.com/ils15/pantheon/compare/v3.11.0...v3.12.0)
|
|
1231
|
+
|
|
1232
|
+
## 🆕 What's New
|
|
1233
|
+
|
|
1234
|
+
- **agents:** Add anti-stall resilience and orchestration improvements ([7a61b69](https://github.com/ils15/pantheon/commit/7a61b69))
|
|
1235
|
+
- **agents:** Add /pantheon-status command with version badge + agent registry ([984ec65](https://github.com/ils15/pantheon/commit/984ec65))
|
|
1236
|
+
- **platform:** Add Pantheon TUI sidebar plugin for OpenCode ([09253c1](https://github.com/ils15/pantheon/commit/09253c1))
|
|
1237
|
+
- **release:** Sync version to v3.11.0 ([1a9fb64](https://github.com/ils15/pantheon/commit/1a9fb64))
|
|
1238
|
+
|
|
1239
|
+
## 🐞 Fixed
|
|
1240
|
+
|
|
1241
|
+
- **ci:** Sync platform files and add mcp-security skill to pass CI ([a27a245](https://github.com/ils15/pantheon/commit/a27a245))
|
|
1242
|
+
|
|
1243
|
+
## [v3.9.0] - 2026-05-28
|
|
1244
|
+
|
|
1245
|
+
[compare changes](https://github.com/ils15/pantheon/compare/v3.8.4...v3.9.0)
|
|
1246
|
+
|
|
1247
|
+
## 🆕 What's New
|
|
1248
|
+
|
|
1249
|
+
- Setup changelogen + git-cliff for auto-releases ([ce4ee22](https://github.com/ils15/pantheon/commit/ce4ee22))
|
|
1250
|
+
- Cleanup commands, fix subtask agent, add Context7 tools, improve sync script ([da6ed7c](https://github.com/ils15/pantheon/commit/da6ed7c))
|
|
1251
|
+
|
|
1252
|
+
## 🐞 Fixed
|
|
1253
|
+
|
|
1254
|
+
- Add missing closing brace for github configuration in opencode.json ([a63c522](https://github.com/ils15/pantheon/commit/a63c522))
|
|
1255
|
+
- Address PR review sync and mapping feedback ([c550049](https://github.com/ils15/pantheon/commit/c550049))
|
|
1256
|
+
- Sync version to 3.8.4, fix versioning.mjs apply bug, add version check script ([141a6b1](https://github.com/ils15/pantheon/commit/141a6b1))
|
|
1257
|
+
- Add CHANGELOG entry for v3.8.4 to fix CI validate failure ([58cc0f5](https://github.com/ils15/pantheon/commit/58cc0f5))
|
|
1258
|
+
- **ci:** Auto-release cria PR com auto-merge ao invés de push direto pra main ([e4f78c9](https://github.com/ils15/pantheon/commit/e4f78c9))
|
|
1259
|
+
|
|
1260
|
+
[v3.19.0]: https://github.com/ils15/pantheon/compare/v3.18.0...v3.19.0
|