Releases: criptogus/hermesoffice-embed
Release list
v0.1.4 — isolamento de falhas por contribuição
Contexto: o HermesOffice sumiu da barra lateral sem nenhuma falha registrada no log do app.
Causa provável
O register() era uma sequência única e compartilhada. Um throw em qualquer contribuição (por exemplo o dock do pane do editor) pula todas as seguintes — chip, rota, linha da barra lateral e paleta — e o app reporta isso como uma falha opaca só.
Correção
Cada contribuição é registrada dentro do seu próprio try/catch, e a linha que falhou é nomeada. Uma contribuição rejeitada agora custa só ela mesma.
Também passa a logar uma linha no sucesso: o app só loga falhas de plugin, então um plugin saudável era indistinguível de um morto no desktop.log — foi exatamente o que tornou o "nada aconteceu" difícil de diagnosticar.
Teste
O load test agora simula o app rejeitando o pane do editor e afirma que a linha da barra lateral e o chip ainda registram, e que a falha é reportada.
Se o plugin não aparecer
⌘K → Reload desktop plugins
Se não voltar, reinicie o Hermes — o watcher de arquivos do app pode estar travado (nenhuma mudança de arquivo/pasta disparava recarga).
v0.1.3 — editor na área central
Corrige: ao clicar num documento, o editor abria dentro da coluna lateral em vez da área central.
O que mudou
O pane único continha a lista e o editor, então abrir um documento renderizava o editor dentro do painel lateral.
Agora são dois panes com papéis distintos:
| Pane | Posição | Conteúdo |
|---|---|---|
pane |
placement: 'right' |
a lista de documentos (onde um plugin de barra lateral pertence) |
editor |
placement: 'main' + dock: { pane: 'workspace', pos: 'center' } |
o editor — abre como aba do workspace, na área central |
A seleção é compartilhada por um store de módulo lido com useSyncExternalStore, já que cada pane é a sua própria árvore de componentes.
Também
- A linha da lista marca o documento aberto.
- O cabeçalho do editor tem recarregar / abrir no preview / fechar.
- O pane do editor vazio diz onde escolher um documento, em vez de ficar em branco.
Teste
PANE_ID e EDITOR_PANE_ID são exportados e o load test afirma que cada alvo de reveal compõe como <pluginId>:<paneContributionId> — um id que não bate não revela nada, em silêncio.
v0.1.2 — palette + nav fix
Fixes two silent registration-shape bugs that made clicks appear to do nothing.
1. Palette row was registered dead
A PaletteContribution lives inside data — the registry builds the row as { id: data.id, area, data }. The command was registered with label in data but run at the top level and no data.id, so it resolved to a null-id row with no runnable action.
Before / after
- data: { label: 'HermesOffice: abrir documentos', codicon: 'file-code' },
- run: () => host.navigate('/hermesoffice')
+ data: {
+ id: 'hermesoffice-embed.open',
+ label: 'HermesOffice · abrir documentos',
+ keywords: ['office', 'docx', 'xlsx', 'pptx', 'pdf'],
+ run: () => host.navigate('/hermesoffice')
+ }2. Sidebar nav used a codicon the app does not ship
file-code is not in the app's glyph set — an unknown name renders an invisible box rather than failing. Now project, proven by both theme-forge and the bundled plugins.
Test coverage
The load test now asserts each area's contract — palette (data.id, data.label, data.run), route (data.path + render), nav (data.path + data.label + a proven codicon) — and is layout-agnostic, so the same file runs from the repo and from an installed copy. Verified it fails on the old shape and passes on the fix.
Install
hermes plugins install criptogus/hermesoffice-embedv0.1.1 — install fix
Fixes an install blocker in v0.1.0 — do not use v0.1.0.
Plugin 'hermesoffice-embed' requires manifest_version 2, but this installer only supports up to 1.
The catalog admission gate accepts manifest_version: 2, but the plugin installer caps at 1 and refuses anything higher. Manifests now declare manifest_version: 1, matching every current catalog entry.
Verified by installing the published repo into an isolated HERMES_HOME and running the bridge from the installed location.
Install
hermes plugins install criptogus/hermesoffice-embed