@danieltmn/tamnora 0.20.0 → 0.20.1
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/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,20 @@ Todos los cambios relevantes de este proyecto se documentan en este archivo.
|
|
|
5
5
|
El formato sigue [Keep a Changelog](https://keepachangelog.com/es-ES/1.1.0/)
|
|
6
6
|
y el proyecto usa [Versionado Semantico](https://semver.org/lang/es/).
|
|
7
7
|
|
|
8
|
+
## [0.20.1] - 2026-10-14
|
|
9
|
+
|
|
10
|
+
### Cambiado
|
|
11
|
+
|
|
12
|
+
- **Resumen de compactación con formato**: `/compact` y la auto-compactación ahora
|
|
13
|
+
producen **markdown con secciones fijas** (`Estado`, `Decisiones`, `Archivos y
|
|
14
|
+
cambios`, `Hallazgos`, `Pendientes`) y la tarjeta lo **renderiza** (títulos y
|
|
15
|
+
bullets con estilo, sin `#`/`**` crudos).
|
|
16
|
+
|
|
17
|
+
### Corregido
|
|
18
|
+
|
|
19
|
+
- **Consola**: al ejecutar un comando (`/…`) el input se **limpia de inmediato**,
|
|
20
|
+
sin quedar escrito mientras el comando tarda (p. ej. `compactar`).
|
|
21
|
+
|
|
8
22
|
## [0.20.0] - 2026-10-14
|
|
9
23
|
|
|
10
24
|
### Agregado
|
|
@@ -4,7 +4,12 @@
|
|
|
4
4
|
import { estimateTokens } from './context.js';
|
|
5
5
|
|
|
6
6
|
export const COMPACT_INSTRUCTION =
|
|
7
|
-
'Resumí la conversación
|
|
7
|
+
'Resumí la conversación para poder continuar el trabajo sin el historial completo. ' +
|
|
8
|
+
'Devolvé SOLO markdown, en español, conciso, sin introducción ni cierre, usando estas secciones ' +
|
|
9
|
+
'(omití las que queden vacías): "## Estado" (dónde quedó el trabajo, en 1-3 frases), "## Decisiones", ' +
|
|
10
|
+
'"## Archivos y cambios" (un bullet por archivo, con la forma `path: qué cambió`), "## Hallazgos" ' +
|
|
11
|
+
'(causas, gotchas o descubrimientos relevantes) y "## Pendientes" (lo que falta o el próximo paso). ' +
|
|
12
|
+
'Usá bullets "-" en las listas.';
|
|
8
13
|
|
|
9
14
|
export const SUMMARY_INSTRUCTION =
|
|
10
15
|
'Resumí la conversación para la persona: qué se pidió, qué se hizo, decisiones tomadas, archivos o comandos relevantes y el estado actual. Sé claro y conciso, en español, sin markdown pesado.';
|
|
@@ -1786,7 +1786,11 @@ function addCompactCard(container, { text, label = 'contexto compactado' } = {})
|
|
|
1786
1786
|
const card = el('div', 'compact-card');
|
|
1787
1787
|
card.append(el('div', 'compact-rule', label));
|
|
1788
1788
|
const clean = String(text ?? '').trim();
|
|
1789
|
-
if (clean)
|
|
1789
|
+
if (clean) {
|
|
1790
|
+
const body = el('div', 'compact-text text');
|
|
1791
|
+
body.innerHTML = renderMarkdown(clean);
|
|
1792
|
+
card.append(body);
|
|
1793
|
+
}
|
|
1790
1794
|
container.appendChild(card);
|
|
1791
1795
|
return card;
|
|
1792
1796
|
}
|
|
@@ -2838,11 +2842,12 @@ async function sendMessage() {
|
|
|
2838
2842
|
if (input.startsWith('/') && !images.length) {
|
|
2839
2843
|
const name = input.slice(1).split(/\s+/)[0].toLowerCase();
|
|
2840
2844
|
const arg = input.slice(1 + name.length).trim();
|
|
2845
|
+
// Limpiamos el input de una: hay comandos lentos (compactar, resumir) y no
|
|
2846
|
+
// queremos dejar el comando escrito mientras corren.
|
|
2847
|
+
chatInput.value = '';
|
|
2848
|
+
onChatInputChanged();
|
|
2841
2849
|
const outcome = await runCommand(name, arg);
|
|
2842
|
-
if (!outcome || outcome.handled)
|
|
2843
|
-
chatInput.value = '';
|
|
2844
|
-
return;
|
|
2845
|
-
}
|
|
2850
|
+
if (!outcome || outcome.handled) return;
|
|
2846
2851
|
input = outcome.input ?? input;
|
|
2847
2852
|
}
|
|
2848
2853
|
if (!input && !images.length) return;
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
</head>
|
|
38
38
|
<body>
|
|
39
39
|
<header class="topbar">
|
|
40
|
-
<div class="brand"><span class="logo"><img src="/icons/logo.png" alt="Tamnora" /></span> <span id="topbar-section" class="topbar-section">chat</span> <span class="ver">v0.20.
|
|
40
|
+
<div class="brand"><span class="logo"><img src="/icons/logo.png" alt="Tamnora" /></span> <span id="topbar-section" class="topbar-section">chat</span> <span class="ver">v0.20.1</span></div>
|
|
41
41
|
<nav class="tabs">
|
|
42
42
|
<button class="tab active" data-tab="chat">chat</button>
|
|
43
43
|
<button class="tab" data-tab="providers">proveedores</button>
|
|
@@ -2094,7 +2094,6 @@ dialog.modal::backdrop { background: rgba(24, 22, 16, 0.55); backdrop-filter: bl
|
|
|
2094
2094
|
margin-top: 10px;
|
|
2095
2095
|
padding-left: 12px;
|
|
2096
2096
|
border-left: 2px dashed var(--border);
|
|
2097
|
-
white-space: pre-wrap;
|
|
2098
2097
|
word-break: break-word;
|
|
2099
2098
|
color: var(--text);
|
|
2100
2099
|
line-height: 1.5;
|
package/package.json
CHANGED