Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 6 additions & 15 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- Settings › General has a Copy on select switch for the terminal. On by default, it copies a selection as soon as you make it; off, copy it with Ctrl+Shift+C (Cmd+C on macOS).
- A session's browser zooms its page on its own, apart from the interface zoom: Ctrl+- and Ctrl+= (Cmd on macOS) zoom out and in by 10%, from 50% to 200%, and Ctrl+0 goes back to 100%. A zoomed-out page lays out wider, as in a desktop browser, which makes a small screen usable without shrinking the rest of the window. The zoom applies to every session's browser, shows on the toolbar while it is not 100%, and is kept for the next start.
- Settings › General › Window › Buttons chooses whether the window's minimize, maximize and close buttons show: Follow system, Always show or Hide. Follow system is how lich behaved before, and on Linux it now also follows a change to the desktop's button layout while lich is open instead of only reading it at start. Always show draws the buttons even where the window manager decorates the window or tiles it without a title bar, as Hyprland does. Hide leaves the window without them, the traffic lights included on macOS.

### Changed

- A session's browser that no tab shows lays its page out at the size of the lich window, at the browser zoom, instead of Chrome's 800×600, so the agent reads and screenshots the page as a desktop browser shows it. Closing the browser tab puts the page back at that size rather than leaving it at the tab's.
- Resolve conflicts on the Pulls screen names the conflicting files in the prompt it sends the session, as Fix CI errors names the failing checks. Clicked before the files are known, it sends the prompt without them, as before.

### Fixed

- On Windows, sessions starting at the same time on one profile no longer fail now and then with `Access is denied` while lich writes that profile's files.

## [0.81.0] - 2026-10-28

> [!IMPORTANT]
Expand All @@ -36,19 +21,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- The agent hears when the page in its session's browser breaks. Each page it reads, clicks or presses a key on answers with the console errors since its last look, once each: `console.error` calls, uncaught exceptions and resources that failed to load, cut to one short line, the first five and how many more. Warnings and other messages stay out.
- An agent can close a project, with `close_project` or `lich close-project`: the tab leaves the window and its sessions stop, kept for a reopen as when you close the tab. The project the agent runs in and the home project are refused.
- The agent and you answer the page's JavaScript dialogs in a session's browser. An alert, a confirm, a prompt or a "Leave this page?" the page opens shows as a card over the top of the page in the session's browser tab, naming the site that opened it, with its buttons and, for a prompt, a field. You answer it there, or the agent does with `browser_dialog`, and its cursor presses the card's button. The agent's click that opened a dialog answers at once with the dialog in it, and the agent hears of one you answered. Before, a button that showed an alert froze the page: the agent's click and every read after it waited thirty seconds and failed.
- Settings › General has a Copy on select switch for the terminal. On by default, it copies a selection as soon as you make it; off, copy it with Ctrl+Shift+C (Cmd+C on macOS).
- A session's browser zooms its page on its own, apart from the interface zoom: Ctrl+- and Ctrl+= (Cmd on macOS) zoom out and in by 10%, from 50% to 200%, and Ctrl+0 goes back to 100%. A zoomed-out page lays out wider, as in a desktop browser, which makes a small screen usable without shrinking the rest of the window. The zoom applies to every session's browser, shows on the toolbar while it is not 100%, and is kept for the next start.
- Settings › General › Window › Buttons chooses whether the window's minimize, maximize and close buttons show: Follow system, Always show or Hide. Follow system is how lich behaved before, and on Linux it now also follows a change to the desktop's button layout while lich is open instead of only reading it at start. Always show draws the buttons even where the window manager decorates the window or tiles it without a title bar, as Hyprland does. Hide leaves the window without them, the traffic lights included on macOS.

### Changed

- A project's GitHub account (Settings › Version Control) now reaches its sessions too: `gh` run by the agent or in a shell card answers as that account instead of whichever one gh has active, from the session's next start. Inside those sessions `gh auth switch` no longer changes the account.
- The window holds less memory with many sessions open. A terminal off screen lets go of the pixels it drew, a few megabytes each, and redraws them in one frame when it comes back.
- The window's garbage collector now runs at 50 instead of Go's default 100, which in a test with 15 sessions cut about a tenth of its resident memory, the slack the system would otherwise swap out. `GOGC` still overrides it.
- The browser tools answer an agent in the session's prompt language: the legend of the element list, the note that more elements wait below, the filled and checked marks, a download still running, a wait that timed out, the count of further console errors, and what an open dialog asks of it. The line tags (`url:`, `text:`, `downloaded:`, `console error:`, `dialog open:` and the rest) stay as they are in every language.
- A session's browser that no tab shows lays its page out at the size of the lich window, at the browser zoom, instead of Chrome's 800×600, so the agent reads and screenshots the page as a desktop browser shows it. Closing the browser tab puts the page back at that size rather than leaving it at the tab's.
- Resolve conflicts on the Pulls screen names the conflicting files in the prompt it sends the session, as Fix CI errors names the failing checks. Clicked before the files are known, it sends the prompt without them, as before.

### Fixed

- On Windows the window is titled `lich` in the taskbar and Alt-Tab, instead of `lich (native slice)`.
- A project whose GitHub account lives on a GitHub Enterprise server gets that account in the Pulls screen, the pull request badges and a sandboxed session granted its token. The token went out under a variable gh ignores for an enterprise host, so gh answered as its active account there.
- A session browser's click, type or key press by index reaches the element the agent's last page read gave that index. After a scroll and a second read, an element the first read had listed under the same index, now out of view, could take the click instead, with no error.
- On Windows, sessions starting at the same time on one profile no longer fail now and then with `Access is denied` while lich writes that profile's files.

## [0.80.0] - 2026-10-27

Expand Down
6 changes: 6 additions & 0 deletions changelog/es.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,25 @@
- El agente se entera cuando falla la página del navegador de su sesión. Cada página que lee, en la que hace clic o pulsa una tecla responde con los errores de consola desde su última lectura, una vez cada uno: llamadas a `console.error`, excepciones no capturadas y recursos que no se cargaron, recortados a una línea corta, los primeros cinco y cuántos más hay. Las advertencias y otros mensajes quedan fuera.
- Un agente puede cerrar un proyecto, con `close_project` o `lich close-project`: la pestaña sale de la ventana y sus sesiones se detienen, conservadas para reabrirlas como cuando cierras la pestaña. El proyecto en el que se ejecuta el agente y el proyecto de inicio se rechazan.
- Tú y el agente respondéis a los diálogos de JavaScript de la página en el navegador de una sesión. Un alert, un confirm, un prompt o un "¿Salir de esta página?" que abre la página aparece como una tarjeta sobre la parte superior de la página en la pestaña del navegador de la sesión, con el nombre del sitio que lo abrió, sus botones y, para un prompt, un campo. Lo respondes ahí, o lo hace el agente con `browser_dialog`, y su cursor pulsa el botón de la tarjeta. El clic del agente que abrió un diálogo responde de inmediato con el diálogo incluido, y el agente se entera de uno que respondiste tú. Antes, un botón que mostraba un alert congelaba la página: el clic del agente y cada lectura posterior esperaban treinta segundos y fallaban.
- Ajustes › General tiene un interruptor Copiar al seleccionar para la terminal. Activado por defecto, copia una selección en cuanto la haces; desactivado, cópiala con Ctrl+Shift+C (Cmd+C en macOS).
- El navegador de una sesión hace zoom de su página por su cuenta, aparte del zoom de la interfaz: Ctrl+- y Ctrl+= (Cmd en macOS) alejan y acercan un 10%, del 50% al 200%, y Ctrl+0 vuelve al 100%. Una página alejada se distribuye más ancha, como en un navegador de escritorio, lo que hace utilizable una pantalla pequeña sin encoger el resto de la ventana. El zoom se aplica al navegador de todas las sesiones, aparece en la barra de herramientas mientras no sea 100% y se conserva para el próximo inicio.
- Ajustes › General › Ventana › Botones elige si se muestran los botones de minimizar, maximizar y cerrar de la ventana: Seguir el sistema, Mostrar siempre u Ocultar. Seguir el sistema es como se comportaba lich antes, y en Linux ahora también sigue un cambio en la disposición de botones del escritorio mientras lich está abierto, en lugar de leerla solo al iniciar. Mostrar siempre dibuja los botones incluso donde el gestor de ventanas decora la ventana o la coloca en mosaico sin barra de título, como hace Hyprland. Ocultar deja la ventana sin ellos, incluidos los semáforos en macOS.

### Changed

- La cuenta de GitHub de un proyecto (Ajustes › Control de versiones) ahora llega también a sus sesiones: `gh` ejecutado por el agente o en una tarjeta de shell responde como esa cuenta en lugar de la que gh tenga activa, desde el próximo inicio de la sesión. Dentro de esas sesiones `gh auth switch` ya no cambia la cuenta.
- La ventana usa menos memoria con muchas sesiones abiertas. Una terminal fuera de pantalla libera los píxeles que dibujó, unos pocos megabytes cada una, y los vuelve a dibujar en un fotograma cuando regresa.
- El recolector de basura de la ventana ahora corre a 50 en lugar del 100 por defecto de Go, lo que en una prueba con 15 sesiones recortó cerca de una décima parte de su memoria residente, el margen que el sistema enviaría a swap. `GOGC` sigue teniendo prioridad.
- Las herramientas del navegador responden al agente en el idioma del prompt de la sesión: la leyenda de la lista de elementos, la nota de que hay más elementos más abajo, las marcas de relleno y de activado, una descarga que sigue en curso, una espera que agotó el tiempo, el recuento de errores de consola adicionales y lo que un diálogo abierto le pide. Las etiquetas de línea (`url:`, `text:`, `downloaded:`, `console error:`, `dialog open:` y el resto) se mantienen como están en todos los idiomas.
- El navegador de una sesión que ninguna pestaña muestra distribuye su página con el tamaño de la ventana de lich, al zoom del navegador, en lugar de los 800×600 de Chrome, así que el agente lee y captura la página como la muestra un navegador de escritorio. Cerrar la pestaña del navegador devuelve la página a ese tamaño en lugar de dejarla con el de la pestaña.
- Resolver conflictos en la pantalla Pull requests nombra los archivos en conflicto en el prompt que envía a la sesión, como Corregir errores de CI nombra las comprobaciones que fallan. Si se pulsa antes de conocer los archivos, envía el prompt sin ellos, como antes.

### Fixed

- En Windows, la ventana se llama `lich` en la barra de tareas y en Alt-Tab, en lugar de `lich (native slice)`.
- Un proyecto cuya cuenta de GitHub vive en un servidor de GitHub Enterprise obtiene esa cuenta en la pantalla Pull requests, en las insignias de pull request y en una sesión en sandbox a la que se le concede su token. El token salía bajo una variable que gh ignora para un host empresarial, así que gh respondía allí como su cuenta activa.
- El clic, la escritura o la pulsación de tecla por índice del navegador de una sesión llega al elemento al que la última lectura de página del agente dio ese índice. Tras un desplazamiento y una segunda lectura, un elemento que la primera lectura había listado con el mismo índice, ahora fuera de vista, podía recibir el clic en su lugar, sin ningún error.
- En Windows, las sesiones que arrancan a la vez en un mismo perfil ya no fallan de vez en cuando con `Access is denied` mientras lich escribe los archivos de ese perfil.

## [0.80.0] - 2026-10-27

Expand Down
Loading
Loading