> Font: https://www.esfis.com/bloc/una-linia-per-canvi · esfis, memòria local per a qualsevol assistent. Actualitzat el 12 de setembre del 2026.

# Una línia per canvi

> Al costat de la base de dades hi ha un fitxer de text on cada canvi és una línia. Per què val la pena, i per què no és git.

Jordi Serra, App de macOS i MCP · 12 d’agost del 2026 · 2 min de lectura

A `~/.esfis` hi ha dues coses que importen. Una és `memory.db`, el magatzem. L'altra és `log.jsonl`, un fitxer de text on cada canvi és una línia:

```json
{"at":"2026-09-12","id":184,"op":"add","source":"mcp","text":"..."}
{"at":"2026-09-12","by":184,"id":97,"op":"supersede"}
{"at":"2026-09-12","id":51,"op":"forget"}
```

Quatre operacions: `add`, `supersede`, `forget`, `delete`. S'hi va afegint pel final i no es reescriu mai.

## Per què hi és

**Perquè es pot fer `grep`.** Vols saber què va aprendre de tu el dimarts? `grep 2026-09-09 ~/.esfis/log.jsonl`. No cal cap ordre nova, ni cap pantalla a l'app, ni que ningú hagi previst la teva pregunta.

**Perquè es pot comparar.** És una línia per canvi i en ordre: `diff` de dues còpies et diu exactament què ha passat entremig.

**Perquè és teu si la base de dades se'n va.** Si algun dia `memory.db` es corromp, el registre encara té el text de tot el que s'hi va desar. Un SQLite trencat i un fitxer de text al costat no són la mateixa mena de pèrdua.

## Per què no és git

Perquè no cal. No hi ha branques, ni fusions, ni ordres per desfer. No es pot fer `revert` d'una importació sencera amb una ordre, i mai no hem trobat a faltar poder-ho fer.

El que sí que hi ha és que **res no s'esborra de debò**. `forget` posa `active = 0`; `supersede` fa el mateix i, a més, apunta cap al record nou. El magatzem sempre sap el que ha deixat de creure i per què. Per això pots tenir memòria temporal sense haver construït cap sistema temporal: la data del canvi ja hi és, i el fet vell també.

## Què costa

Gairebé res. Una línia de text per canvi, i els canvis són pocs: la majoria de converses no en generen cap. Recuperar no toca el registre per a res, o sigui que no afegeix ni un mil·lisegon.

## Per què molestar-s'hi

Perquè una memòria que no pots mirar és una memòria que has de creure, i creure és la relació equivocada amb un sistema que parla en nom teu. Si un assistent sap alguna cosa de tu, has de poder saber d'on ha sortit i canviar-la.
