diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e6e29232..501f53074 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.79.0] - 2026-10-24 + +> [!IMPORTANT] +> **Anyone who keeps a dev server, a container or a tunnel open beside their agents: lich now runs them.** Save +> them once in Settings › Services of a project, then start, stop and read them from the bottom of the sidebar. + ### Added - On macOS, lich has a menu-bar item: a lich whose window is closed shows it is still running its sessions there, with Show lich, the count of running sessions and Quit, as the tray does on Linux and Windows. @@ -6372,7 +6378,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 CPU, costing ~40ms per frame in a full-size window. Under Xwayland typing is stall-free at full frame rate. -[Unreleased]: https://github.com/lichdotdev/lich/compare/v0.78.1...HEAD +[Unreleased]: https://github.com/lichdotdev/lich/compare/v0.79.0...HEAD +[0.79.0]: https://github.com/lichdotdev/lich/compare/v0.78.1...v0.79.0 [0.78.1]: https://github.com/lichdotdev/lich/compare/v0.78.0...v0.78.1 [0.78.0]: https://github.com/lichdotdev/lich/compare/v0.77.0...v0.78.0 [0.77.0]: https://github.com/lichdotdev/lich/compare/v0.76.0...v0.77.0 diff --git a/changelog/es.md b/changelog/es.md index 96c37b554..7fe2b38f2 100644 --- a/changelog/es.md +++ b/changelog/es.md @@ -1,3 +1,31 @@ +## [0.79.0] - 2026-10-24 + +> [!IMPORTANT] +> **Quien deja un servidor de desarrollo, un contenedor o un túnel abierto junto a sus agentes: ahora lich los +> ejecuta.** Guárdalos una vez en Ajustes › Servicios del proyecto e inícialos, detenlos y léelos al final de la barra lateral. + +### Added + +- En macOS, lich tiene un elemento en la barra de menús: un lich con la ventana cerrada muestra allí que sigue ejecutando sus sesiones, con Mostrar lich, el número de sesiones en marcha y Salir de lich, como hace la bandeja en Linux y Windows. +- **Servicios: comandos que un proyecto mantiene en marcha, iniciados por lich.** Guarda una vez un contenedor, un túnel o un servidor de desarrollo en Ajustes › Servicios de un proyecto, e inícialo desde la fila Servicios al final de la barra lateral, encima del perfil. Cerrada, la fila indica cuántos están en marcha (2/3); abierta, lista cada servicio con cuánto lleva en marcha o cómo terminó, y Iniciar, Detener y Reiniciar al pasar el ratón. Un clic abre su consola, donde acepta entrada y Ctrl+C lo detiene. Un servicio no es una terminal: cuando su comando termina, se ha detenido, su última salida sigue legible e Iniciar lo ejecuta de nuevo. Marca Iniciar con lich y se inicia cada vez que lich arranca con su proyecto abierto. Los servicios guardados en Ajustes › Servicios con Global seleccionado se ejecutan en tu carpeta personal y aparecen en la pantalla de inicio de lich, el lugar para un `lazydocker` que mantienes abierto sea cual sea el proyecto. Un servicio vive tanto como la pestaña de su proyecto: cerrar la pestaña lo detiene, y reabrir el proyecto inicia los guardados para iniciarse con lich. Cerrar la ventana los deja en marcha, y la bandeja los lista con Mostrar salida, Reiniciar y Detener; salir de lich los detiene, y el diálogo de cierre los cuenta. Con la barra lateral contraída, el botón Servicios del riel abre la misma lista. + +- **Envía los hilos de revisión de un pull request a su sesión.** En la pantalla Pull requests, un hilo de revisión abierto tiene Enviar a la sesión junto a Responder y Resolver, en la pestaña Conversación y en el diff, y la pestaña Conversación puede enviar todos los hilos abiertos a la vez. Los hilos van como un solo prompt a la sesión en el checkout de la rama, que lich abre cuando no hay ninguna, con el archivo, las líneas, el enlace y cada comentario de cada hilo. Pull requests sigue en pantalla, y un aviso con Abrir indica cuándo la sesión los recibió. lich responde entonces a cada hilo en GitHub con "Fixing this. It'll be in the next commit." y lo resuelve cuando el pull request se vuelve a enviar con push, respondiendo con el commit en el que quedó; hasta entonces el hilo muestra Enviado · esperando un push. Cualquier push lo resuelve, incluso uno que no lo tocó. + +### Changed + +- Un pull request fusionado fuera de lich, en github.com, con `gh` en una terminal o por un agente, ahora se anuncia a los agentes del checkout de su rama como uno fusionado desde Pull requests, en el minuto siguiente al merge. Antes seguían creyendo que estaba abierto. Lo oyen los agentes que se ejecutan allí cuando lich lo ve abierto y luego fusionado; uno aparcado en ese momento, o un pull request fusionado antes del último arranque de lich, no. +- Resolver conflictos y Corregir errores de CI en Pull requests ya no te llevan a la sesión a la que entregan el pull request. Pull requests sigue en pantalla para que pases al siguiente pull request, la sesión se inicia en la barra lateral, y un aviso indica cuándo el agente recibió la tarea, con Abrir para ir a ella. Una sesión cuyo inicio necesita antes tu respuesta, como si reanudar su última conversación, sí aparece. Abrir en una sesión sigue yendo a la sesión. +- Los filtros rápidos sobre la lista de pull requests en Pull requests (Todos, Listos, Borradores, Con fallos) son más ligeros: texto pequeño con el seleccionado sombreado, como en las pestañas del dock, y comparten el ancho de la lista. Un filtro sin nada está atenuado y el recuento de Con fallos se vuelve rojo cuando falla una comprobación. Ya no sobrepasan el borde de la lista con una fuente monoespaciada en la interfaz. + +### Fixed + +- La insignia de pull request en una tarjeta de sesión, su elemento de menú Pull request y el botón de pull request del pie de ventana ya no abren el pull request equivocado después de que el shell de la sesión pasara a otro repositorio. La insignia muestra el pull request de ese repositorio, y el clic buscaba su número entre los del propio proyecto en Pull requests; ahora abre el pull request en GitHub. +- La barra lateral contraída muestra el perfil en el que nacen las sesiones nuevas, al final del riel, y abre el mismo menú que el pie de la barra lateral abierta. Antes no mostraba ningún perfil. +- Una pestaña de la barra superior ya no puede quedarse levantada, dibujada con el color de acento como si se estuviera arrastrando, sin que ninguna pestaña volviera a moverse hasta reiniciar lich. Una pestaña enfocada con un clic y luego accionada con Espacio o Enter se recogía para reordenarla con el teclado, y cuando un clic en otro lugar se llevaba el teclado no podía soltarse ni cancelarse; ahora vuelve a su sitio al perder el foco. Una pestaña de diseño renombrada en mitad de un arrastre ya no se queda atascada de la misma manera. +- Una tarjeta de sesión ya no crece y se encoge cuando su agente inicia y termina una herramienta, espera tu respuesta o compacta, empujando hacia arriba y hacia abajo todas las tarjetas que tiene debajo. Esa línea ahora ocupa el lugar de la ruta de la tarjeta mientras se muestra, y la ruta vuelve cuando se va. +- La ventana nativa usa menos memoria para sus fuentes. Un archivo de fuente pedido más de una vez, como la interfaz y la terminal con la misma familia o la cara negrita que también hace de seminegrita, se analizaba de nuevo cada vez, unos 30MB por cara de una Nerd Font; ahora se analiza una vez y se comparte mientras se usa. Una interfaz en un idioma distinto del chino, japonés o coreano ya no carga una fuente CJK al arrancar, decenas de megabytes: lo hace con el primer texto CJK en pantalla, dibujado mientras tanto con una fuente del sistema. Con una Nerd Font para la interfaz, la terminal y el editor y sin CJK en pantalla, las fuentes ocupan 119MB donde antes ocupaban 246MB. +- En macOS, abrir lich desde el Dock, Launchpad, Spotlight o Finder mientras se ejecuta con la ventana cerrada vuelve a abrir la ventana. También un lich iniciado al arrancar la sesión con `--no-window`, donde el clic no hacía nada. Cerrar la sesión de usuario ahora sale de lich como lo hace `lich quit`, así que el siguiente arranque no lo toma por una caída. + ## [0.78.1] - 2026-10-23 ### Changed diff --git a/changelog/ja.md b/changelog/ja.md index bb38b5ac8..60759e6ca 100644 --- a/changelog/ja.md +++ b/changelog/ja.md @@ -1,3 +1,31 @@ +## [0.79.0] - 2026-10-24 + +> [!IMPORTANT] +> **エージェントの横で開発サーバー、コンテナ、トンネルを動かしている方へ: lich がそれらを動かすようになりました。** +> プロジェクトの 設定 › サービス に一度保存すれば、サイドバーの下部から起動、停止、出力の確認ができます。 + +### Added + +- macOS で lich にメニューバー項目が加わりました。ウィンドウを閉じた lich は、Linux や Windows のトレイと同じように、セッションを実行し続けていることをそこに表示します。「lich を表示」、実行中のセッション数、「lich を終了」が並びます。 +- **サービス: プロジェクトが動かし続けるコマンドを lich が起動します。** コンテナ、トンネル、開発サーバーを、プロジェクトの 設定 › サービス に一度保存すれば、サイドバーの下部、プロファイルの上にあるサービスの行から起動できます。閉じているときは実行中の数(2/3)を、開くと各サービスと、その実行時間または終了の経緯を一覧し、ホバーすると「開始」「停止」「再起動」が現れます。クリックするとコンソールが開き、入力を受け付け、Ctrl+C で停止します。サービスはターミナルではありません。コマンドが終了すれば停止した状態になり、最後の出力は読める状態で残り、「開始」でもう一度実行します。「lich と一緒に開始」にチェックを入れると、そのプロジェクトを開いた状態で lich が起動するたびに開始します。設定 › サービス で「グローバル」を選んで保存したサービスはホームディレクトリで動き、lich のホーム画面に表示されます。どのプロジェクトでも開いたままにしておく `lazydocker` のような用途に向いています。サービスはそのプロジェクトのタブが存在する間だけ生きます。タブを閉じると停止し、プロジェクトを開き直すと、lich と一緒に開始するよう保存したものが起動します。ウィンドウを閉じても実行は続き、トレイには「出力を表示」「再起動」「停止」とともに一覧されます。lich を終了すると停止し、閉じるダイアログにはその数が表示されます。サイドバーを折りたたむと、レールのサービスボタンから同じ一覧を開けます。 + +- **プルリクエストのレビュースレッドをそのセッションへ送れます。** プルリクエスト画面では、未解決のレビュースレッドに「返信」「解決」と並んで「セッションに送る」があり、会話タブでも差分でも使えます。会話タブからは未解決のスレッドをまとめて送ることもできます。スレッドは 1 つのプロンプトとして、そのブランチのチェックアウトにあるセッションへ送られ、セッションがなければ lich が開きます。各スレッドのファイル、行、リンク、すべてのコメントが含まれます。プルリクエスト画面は表示されたままで、セッションが受け取ると「開く」付きのトーストで知らせます。そのあと lich は各スレッドに GitHub 上で "Fixing this. It'll be in the next commit." と返信し、プルリクエストが再び push されると、反映されたコミットを添えて返信したうえでスレッドを解決します。それまでスレッドには「送信済み · push 待ち」と表示されます。push があればどれでも解決され、そのスレッドに触れていない push でも同じです。 + +### Changed + +- lich の外、つまり github.com、ターミナルの `gh`、エージェントのいずれかでマージされたプルリクエストも、Pulls からマージした場合と同じように、そのブランチのチェックアウトにいるエージェントへマージから 1 分以内に通知されるようになりました。以前は、エージェントはまだオープンだと思い込んだままでした。通知されるのは、lich がオープンからマージ済みへの変化を見たときにそこで動いていたエージェントです。そのとき待機中だったエージェントや、lich が最後に起動する前にマージされたプルリクエストには通知されません。 +- プルリクエスト画面の「コンフリクトを解決」と「CI のエラーを修正」は、プルリクエストを渡したセッションへ移動しなくなりました。プルリクエスト画面は表示されたままなので次のプルリクエストへ進めます。セッションはサイドバーで起動し、エージェントがタスクを受け取るとトーストで知らせ、「開く」でそこへ移動できます。直前の会話を再開するかどうかなど、起動にあなたの答えが先に必要なセッションは、これまでどおり前面に表示されます。「セッションで開く」は引き続きセッションへ移動します。 +- プルリクエスト画面の一覧の上にあるクイックフィルター(すべて、準備完了、ドラフト、失敗)が軽くなりました。小さな文字で、選択中のものに陰影が付き、ドックのタブと同じ見た目で、一覧と同じ幅を共有します。中身のないフィルターは薄く表示され、チェックが失敗すると「失敗」の件数が赤くなります。インターフェースのフォントが等幅のとき、一覧の端からはみ出すこともなくなりました。 + +### Fixed + +- セッションのシェルが別のリポジトリへ移ったあと、セッションカードのプルリクエストバッジ、そのプルリクエストのメニュー項目、フッターのプルリクエストボタンが、間違ったプルリクエストを開かなくなりました。バッジにはそのリポジトリのプルリクエストが表示されますが、クリックするとプロジェクト自身のプルリクエストの中から番号を探していました。今は代わりに GitHub 上のプルリクエストを開きます。 +- 折りたたんだサイドバーが、レールの下部に新しいセッションの作成先となるプロファイルを表示し、開いたサイドバーのフッターと同じメニューを開くようになりました。以前はプロファイルがまったく表示されていませんでした。 +- 上部バーのタブが持ち上がったまま固まり、ドラッグ中のようにアクセントカラーで描かれ、lich を再起動するまでどのタブも動かせなくなることがなくなりました。クリックでフォーカスしたタブに Space か Enter を押すとキーボードで並べ替えのために持ち上がり、そのあとほかの場所をクリックしてキーボードが移ると、ドロップもキャンセルもできませんでした。今はフォーカスを失うと元の位置に戻ります。ドラッグの途中で名前を変更したレイアウトタブが同じように固まることもなくなりました。 +- セッションカードが、エージェントがツールを開始・終了したり、あなたを待ったり、コンパクションしたりするたびに伸び縮みして、下のカードをすべて上下に動かすことがなくなりました。その行は、表示されている間カードのパスの位置を使い、消えるとパスが戻ります。 +- ネイティブウィンドウがフォントに使うメモリが減りました。複数回要求されたフォントファイル、たとえば同じファミリーで設定したインターフェースとターミナルや、セミボールドの代わりにもなるボールド書体は、そのたびに解析し直されており、Nerd Font の書体 1 つで約 30MB でした。今は 1 回だけ解析され、使用中は共有されます。中国語、日本語、韓国語以外の言語のインターフェースは、起動時に数十メガバイトの CJK フォントを読み込まなくなりました。画面に最初の CJK テキストが現れたときに読み込み、それまではシステムフォントで描画します。インターフェース、ターミナル、エディターに 1 つの Nerd Font を使い、画面に CJK がない場合、フォントのメモリは 246MB から 119MB になります。 +- macOS で、ウィンドウを閉じて動いている lich を Dock、Launchpad、Spotlight、Finder から開くと、ウィンドウが再び開くようになりました。`--no-window` を付けてログイン時に起動した lich も含まれ、そこではクリックしても何も起こりませんでした。ログアウトすると `lich quit` と同じように lich が終了するようになったため、次の起動でクラッシュとして扱われません。 + ## [0.78.1] - 2026-10-23 ### Changed diff --git a/changelog/ko.md b/changelog/ko.md index 852d5660b..9e5036c5a 100644 --- a/changelog/ko.md +++ b/changelog/ko.md @@ -1,3 +1,31 @@ +## [0.79.0] - 2026-10-24 + +> [!IMPORTANT] +> **에이전트 옆에 개발 서버, 컨테이너, 터널을 띄워 두는 분께: 이제 lich가 그것들을 실행합니다.** 프로젝트의 +> 설정 › 서비스에 한 번 저장하면 사이드바 맨 아래에서 시작, 중지하고 출력을 볼 수 있습니다. + +### Added + +- macOS에서 lich가 메뉴 막대 항목을 가집니다. 창을 닫은 lich는 Linux와 Windows의 트레이처럼 그곳에서 세션을 계속 실행 중임을 보여 주며, lich 보기, 실행 중인 세션 수, lich 종료를 제공합니다. +- **서비스: lich가 시작해 프로젝트가 계속 실행하는 명령.** 컨테이너, 터널, 개발 서버를 프로젝트의 설정 › 서비스에 한 번 저장하면, 사이드바 맨 아래 프로필 위에 있는 서비스 행에서 시작할 수 있습니다. 닫혀 있을 때 이 행은 실행 중인 개수(2/3)를 보여 주고, 펼치면 각 서비스가 얼마나 오래 실행되었는지 또는 어떻게 끝났는지를 나열하며, 호버하면 시작, 중지, 다시 시작이 나타납니다. 클릭하면 입력을 받고 Ctrl+C로 중지할 수 있는 콘솔이 열립니다. 서비스는 터미널이 아닙니다. 명령이 끝나면 서비스는 중지된 것이고, 마지막 출력은 그대로 읽을 수 있으며, 시작을 누르면 다시 실행됩니다. lich와 함께 시작을 선택하면 해당 프로젝트가 열린 채 lich가 시작될 때마다 시작됩니다. 설정 › 서비스에서 전역을 선택해 저장한 서비스는 홈 디렉터리에서 실행되고 lich의 시작 화면에 표시되며, 프로젝트와 상관없이 계속 열어 두는 `lazydocker` 같은 것을 두기에 알맞습니다. 서비스는 프로젝트 탭이 있는 동안만 유지됩니다. 탭을 닫으면 중지되고, 프로젝트를 다시 열면 lich와 함께 시작하도록 저장된 서비스가 시작됩니다. 창을 닫아도 서비스는 계속 실행되며 트레이에 출력 보기, 다시 시작, 중지와 함께 나열됩니다. lich를 종료하면 서비스가 중지되고, 닫기 대화상자가 그 수를 알려 줍니다. 사이드바를 접으면 레일의 서비스 버튼이 같은 목록을 엽니다. + +- **풀 리퀘스트의 리뷰 스레드를 그 세션으로 보내기.** 풀 리퀘스트 화면에서 열린 리뷰 스레드에는 대화 탭과 diff 모두에서 답글, 해결 옆에 세션으로 보내기가 있으며, 대화 탭에서는 열린 스레드를 한꺼번에 보낼 수 있습니다. 스레드는 각 스레드의 파일, 줄, 링크, 모든 댓글과 함께 하나의 프롬프트로 그 브랜치의 체크아웃에 있는 세션으로 전달되며, 세션이 없으면 lich가 엽니다. 풀 리퀘스트 화면은 그대로 유지되고, 세션이 받으면 열기가 있는 토스트로 알려 줍니다. 이후 lich는 GitHub에서 각 스레드에 "Fixing this. It'll be in the next commit."라고 답하고, 풀 리퀘스트가 다시 push되면 스레드를 해결 처리하면서 반영된 커밋을 답글로 남깁니다. 그때까지 스레드에는 보냄 · push 대기 중이 표시됩니다. 스레드를 건드리지 않은 push라도 해결 처리됩니다. + +### Changed + +- github.com에서, 터미널의 `gh`로, 또는 에이전트가 lich 밖에서 머지한 풀 리퀘스트도 이제 풀 리퀘스트 화면에서 머지한 것처럼 머지 후 1분 안에 그 브랜치의 체크아웃에 있는 에이전트에게 알립니다. 이전에는 에이전트가 풀 리퀘스트가 아직 열려 있다고 계속 믿었습니다. lich가 열린 상태에서 머지된 것을 확인했을 때 그곳에서 실행 중이던 에이전트가 알림을 받으며, 그 순간 보관되어 있던 에이전트나 lich가 마지막으로 시작되기 전에 머지된 풀 리퀘스트는 받지 않습니다. +- Pulls의 충돌 해결과 CI 오류 고치기는 더 이상 풀 리퀘스트를 넘긴 세션으로 이동하지 않습니다. Pulls가 화면에 그대로 있어 다음 풀 리퀘스트로 넘어갈 수 있고, 세션은 사이드바에서 시작되며, 에이전트가 작업을 받으면 열기가 있는 토스트로 알립니다. 마지막 대화를 재개할지처럼 시작 전에 사용자의 답이 필요한 세션은 그대로 나타납니다. 세션에서 열기는 여전히 세션으로 이동합니다. +- Pulls의 풀 리퀘스트 목록 위 빠른 필터(전체, 준비됨, 초안, 실패)가 더 가벼워졌습니다. 도크의 탭처럼 작은 글자에 선택된 항목만 음영이 들어가며 목록의 너비를 나눠 씁니다. 항목이 없는 필터는 흐리게 표시되고, 체크가 실패하면 실패의 개수가 빨간색이 됩니다. 고정폭 인터페이스 글꼴에서도 더 이상 목록의 가장자리를 넘지 않습니다. + +### Fixed + +- 세션의 셸이 다른 저장소로 이동한 뒤 세션 카드의 풀 리퀘스트 배지, 풀 리퀘스트 메뉴 항목, 하단 바의 풀 리퀘스트 버튼이 더 이상 엉뚱한 풀 리퀘스트를 열지 않습니다. 배지는 그 저장소의 풀 리퀘스트를 보여 주는데, 클릭하면 그 번호를 Pulls의 프로젝트 자체 풀 리퀘스트에서 찾았습니다. 이제는 대신 GitHub에서 그 풀 리퀘스트를 엽니다. +- 접은 사이드바가 레일 맨 아래에 새 세션이 생성되는 프로필을 표시하고, 펼친 사이드바의 푸터와 같은 메뉴를 엽니다. 이전에는 프로필이 전혀 표시되지 않았습니다. +- 상단 바의 탭이 들어 올려진 채 멈춰, 드래그 중인 것처럼 강조 색으로 그려지고 lich를 다시 시작할 때까지 어떤 탭도 움직이지 않는 일이 없어졌습니다. 클릭으로 포커스된 뒤 Space나 Enter를 받은 탭이 키보드로 순서를 바꾸기 위해 집어 올려졌고, 다른 곳을 클릭해 키보드가 넘어가면 내려놓을 수도 취소할 수도 없었습니다. 이제는 포커스를 잃으면 제자리로 돌아갑니다. 드래그 도중 이름이 바뀐 레이아웃 탭도 같은 방식으로 멈추지 않습니다. +- 에이전트가 도구를 시작하거나 멈추거나, 사용자를 기다리거나, 컴팩트할 때 세션 카드가 커졌다 작아지면서 아래의 모든 카드를 위아래로 밀지 않습니다. 이제 그 줄이 표시되는 동안 카드의 경로 자리를 차지하고, 사라지면 경로가 돌아옵니다. +- 네이티브 창이 글꼴에 쓰는 메모리가 줄었습니다. 같은 글꼴 파일을 두 번 이상 요청하는 경우(같은 글꼴 계열로 설정한 인터페이스와 터미널, 세미볼드를 대신하는 볼드체 등), Nerd Font 한 서체당 약 30MB를 매번 다시 파싱했지만, 이제는 한 번만 파싱해 사용하는 동안 공유합니다. 중국어, 일본어, 한국어가 아닌 언어의 인터페이스는 시작할 때 수십 MB의 CJK 글꼴을 불러오지 않으며, 화면에 처음 CJK 텍스트가 나올 때 불러오고 그동안은 시스템 글꼴로 그립니다. 인터페이스, 터미널, 편집기에 Nerd Font 하나를 쓰고 화면에 CJK가 없을 때 글꼴이 차지하는 메모리는 246MB에서 119MB가 되었습니다. +- macOS에서 창을 닫은 채 실행 중인 lich를 Dock, Launchpad, Spotlight, Finder에서 열면 창이 다시 열립니다. `--no-window`로 로그인 시 시작된 lich도 포함되며, 이전에는 클릭해도 아무 일도 없었습니다. 로그아웃하면 이제 `lich quit`과 같은 방식으로 lich를 종료하므로, 다음 실행에서 이를 비정상 종료로 읽지 않습니다. + ## [0.78.1] - 2026-10-23 ### Changed diff --git a/changelog/pt-BR.md b/changelog/pt-BR.md index d623703ad..999c8f398 100644 --- a/changelog/pt-BR.md +++ b/changelog/pt-BR.md @@ -1,3 +1,31 @@ +## [0.79.0] - 2026-10-24 + +> [!IMPORTANT] +> **Quem deixa um servidor de desenvolvimento, um container ou um túnel aberto ao lado dos agentes: agora o lich +> roda isso.** Salve uma vez em Configurações › Serviços do projeto e inicie, pare e leia cada um no fim da barra lateral. + +### Added + +- No macOS, o lich ganha um item na barra de menus: um lich com a janela fechada mostra ali que ainda está rodando as sessões, com Mostrar o lich, a contagem de sessões em execução e Encerrar o lich, como a bandeja faz no Linux e no Windows. +- **Serviços: comandos que um projeto mantém rodando, iniciados pelo lich.** Salve um container, um túnel ou um servidor de desenvolvimento uma vez em Configurações › Serviços de um projeto e inicie-o pela linha Serviços no fim da barra lateral, acima do perfil. Fechada, a linha diz quantos estão rodando (2/3); aberta, lista cada serviço com há quanto tempo roda ou como terminou, e Iniciar, Parar e Reiniciar ao passar o mouse. Um clique abre o console dele, onde ele aceita entrada e Ctrl+C o para. Um serviço não é um terminal: quando o comando dele sai, o serviço parou, a última saída continua legível e Iniciar o executa de novo. Marque Iniciar com o lich e ele inicia toda vez que o lich inicia com o projeto aberto. Os serviços salvos em Configurações › Serviços com Global selecionado rodam na sua pasta home e aparecem na tela inicial do lich, o lugar para um `lazydocker` que você mantém aberto seja qual for o projeto. Um serviço vive enquanto a aba do projeto existir: fechar a aba o para, e reabrir o projeto inicia os salvos para iniciar com o lich. Fechar a janela os deixa rodando, e a bandeja os lista com Mostrar saída, Reiniciar e Parar; encerrar o lich os para, e a caixa de diálogo de fechamento os conta. Com a barra lateral recolhida, o botão Serviços da barra de ícones abre a mesma lista. + +- **Envie as threads de revisão de um pull request para a sessão dele.** Na tela Pull requests, uma thread de revisão aberta tem Enviar para a sessão ao lado de Responder e Resolver, na aba Conversa e no diff, e a aba Conversa pode enviar todas as threads abertas de uma vez. As threads vão como um único prompt para a sessão no checkout da branch, que o lich abre quando não há nenhuma, com o arquivo, as linhas, o link e todos os comentários de cada thread. A tela Pull requests continua aberta, e um toast com Abrir avisa quando a sessão as recebeu. O lich então responde a cada thread no GitHub com "Fixing this. It'll be in the next commit." e a resolve quando o pull request recebe um novo push, respondendo com o commit em que ela foi parar; até lá a thread aparece como Enviada, aguardando um push. Qualquer push a resolve, mesmo um que não a tenha tocado. + +### Changed + +- Um pull request mergeado fora do lich, no github.com, com `gh` em um terminal ou por um agente, agora é anunciado aos agentes no checkout da branch dele como um mergeado pela tela Pull requests, em até um minuto depois do merge. Antes eles continuavam achando que ele estava aberto. Ouvem os agentes que estavam rodando ali quando o lich o viu aberto e depois mergeado; um parqueado nesse momento, ou um pull request mergeado antes de o lich iniciar pela última vez, não ouve. +- Resolver conflitos e Corrigir erros de CI na tela Pull requests não levam mais você à sessão para a qual entregam o pull request. A tela Pull requests continua aberta para você passar ao próximo pull request, a sessão inicia na barra lateral, e um toast avisa quando o agente recebeu a tarefa, com Abrir para ir até ela. Uma sessão cujo início precisa antes da sua resposta, como retomar ou não a última conversa, ainda aparece. Abrir em sessão continua indo até a sessão. +- Os filtros rápidos sobre a lista de pull requests na tela Pull requests (Todos, Prontos, Rascunhos, Falhando) ficaram mais leves: texto pequeno com o selecionado sombreado, como nas abas do dock, dividindo a largura da lista. Um filtro sem nada fica apagado e a contagem de Falhando fica vermelha quando uma verificação falha. Eles não passam mais da borda da lista com uma fonte monoespaçada na interface. + +### Fixed + +- O selo de pull request em um card de sessão, o item de menu Pull request dele e o botão de pull request do rodapé não abrem mais o pull request errado depois que o shell da sessão passou para outro repositório. O selo mostra o pull request desse repositório, e o clique procurava o número dele entre os do próprio projeto na tela Pull requests; agora ele abre o pull request no GitHub. +- A barra lateral recolhida mostra o perfil em que as novas sessões nascem, no fim da barra de ícones, e abre o mesmo menu do rodapé da barra lateral aberta. Antes ela não mostrava perfil nenhum. +- Uma aba da barra superior não pode mais ficar presa levantada, desenhada na cor de destaque como se estivesse sendo arrastada, sem que nenhuma aba voltasse a se mover até o lich reiniciar. Uma aba focada por um clique e depois acionada com Espaço ou Enter era pega para reordenar pelo teclado, e depois que um clique em outro lugar levava o teclado ela não podia ser solta nem cancelada; agora ela volta ao lugar quando perde o foco. Uma aba de layout renomeada no meio de um arrastar também não fica mais presa assim. +- Um card de sessão não cresce e encolhe mais quando o agente começa e termina uma ferramenta, espera por você ou compacta, empurrando para cima e para baixo todos os cards abaixo dele. Essa linha agora ocupa o lugar do caminho do card enquanto aparece, e o caminho volta quando ela some. +- A janela nativa usa menos memória para as fontes. Um arquivo de fonte pedido mais de uma vez, como a interface e o terminal na mesma família ou a face negrito que também faz as vezes de seminegrito, era processado de novo a cada vez, cerca de 30MB para uma face Nerd Font; agora é processado uma vez e compartilhado enquanto está em uso. Uma interface em um idioma que não seja chinês, japonês ou coreano não carrega mais uma fonte CJK na inicialização, dezenas de megabytes: ela carrega no primeiro texto CJK na tela, desenhado nesse meio-tempo com uma fonte do sistema. Com uma Nerd Font para a interface, o terminal e o editor e sem CJK na tela, as fontes ocupam 119MB onde ocupavam 246MB. +- No macOS, abrir o lich pelo Dock, Launchpad, Spotlight ou Finder enquanto ele roda com a janela fechada abre a janela de novo. O lich iniciado no login com `--no-window` está incluído, onde o clique não fazia nada. Sair da sessão agora encerra o lich como `lich quit` faz, então a próxima inicialização não o lê como uma falha. + ## [0.78.1] - 2026-10-23 ### Changed diff --git a/changelog/ru.md b/changelog/ru.md index 53ff610b6..12157a968 100644 --- a/changelog/ru.md +++ b/changelog/ru.md @@ -1,3 +1,31 @@ +## [0.79.0] - 2026-10-24 + +> [!IMPORTANT] +> **Для тех, кто держит рядом с агентами dev-сервер, контейнер или туннель: теперь их запускает lich.** Сохраните +> их один раз в «Настройки › Сервисы» проекта, а запускайте, останавливайте и читайте внизу боковой панели. + +### Added + +- В macOS у lich есть значок в строке меню: lich с закрытым окном показывает там, что продолжает вести свои сессии, с пунктами «Показать lich», числом запущенных сессий и «Выйти из lich», как трей в Linux и Windows. +- **Сервисы: команды, которые проект держит запущенными и которые запускает lich.** Сохраните контейнер, туннель или dev-сервер один раз в «Настройки › Сервисы» проекта и запускайте его из строки «Сервисы» внизу боковой панели, над профилем. Свёрнутая, строка говорит, сколько сервисов работает (2/3); раскрытая, перечисляет каждый сервис с тем, как долго он работает или как завершился, а при наведении показывает «Запустить», «Остановить» и «Перезапустить». Клик открывает его консоль, где он принимает ввод, а Ctrl+C его останавливает. Сервис не терминал: когда его команда завершается, он остановлен, его последний вывод остаётся доступным для чтения, а «Запустить» запускает его снова. Отметьте «Запускать вместе с lich», и он будет стартовать каждый раз, когда lich запускается с открытым проектом. Сервисы, сохранённые в «Настройки › Сервисы» при выбранном «Глобальные», работают в вашей домашней папке и показываются на начальном экране lich, это место для `lazydocker`, который вы держите открытым независимо от проекта. Сервис живёт, пока жива вкладка его проекта: закрытие вкладки останавливает его, а повторное открытие проекта запускает те сервисы, что сохранены для запуска вместе с lich. Закрытие окна оставляет их работать, а трей перечисляет их с пунктами «Показать вывод», «Перезапустить» и «Остановить»; выход из lich их останавливает, и диалог закрытия их учитывает. При свёрнутой боковой панели кнопка «Сервисы» на рейке открывает тот же список. + +- **Отправка веток ревью pull request в его сессию.** На экране Pull requests у открытой ветки ревью рядом с «Ответить» и «Решено» есть «Отправить в сессию», на вкладке «Обсуждение» и в диффе, а вкладка «Обсуждение» может отправить сразу все открытые ветки. Ветки уходят одним промптом в сессию в checkout этой ветки, которую lich открывает, если её нет, с файлом, строками, ссылкой и каждым комментарием каждой ветки. Экран Pull requests остаётся на месте, а тост с «Открыть» сообщает, когда сессия приняла ветки. Затем lich отвечает на каждую ветку на GitHub «Fixing this. It'll be in the next commit.» и решает её, как только pull request снова отправлен push, отвечая коммитом, в который она попала; до тех пор ветка помечена «Отправлено · ждёт push». Решает её любой push, даже тот, что её не затронул. + +### Changed + +- Pull request, слитый вне lich, на github.com, через `gh` в терминале или агентом, теперь объявляется агентам в checkout его ветки так же, как слитый из Pull requests, в течение минуты после слияния. Раньше они продолжали считать его открытым. Слышат это агенты, работающие там, когда lich видит pull request открытым, а затем слитым; агент, припаркованный в этот момент, и pull request, слитый до последнего запуска lich, не слышат. +- «Разрешить конфликты» и «Исправить ошибки CI» на экране Pull requests больше не переводят вас в сессию, которой передают pull request. Экран Pull requests остаётся на месте, чтобы вы могли перейти к следующему pull request, сессия запускается в боковой панели, а тост сообщает, когда агент получил задачу, с «Открыть» для перехода к ней. Сессия, для запуска которой сначала нужен ваш ответ, например возобновлять ли её последний разговор, по-прежнему появляется. «Открыть в сессии» по-прежнему переходит в сессию. +- Быстрые фильтры над списком pull request на экране Pull requests («Все», «Готовые», «Черновики», «С ошибками») стали легче: мелкий текст, выбранный фильтр затенён, как во вкладках дока, и они делят ширину списка. Фильтр, в котором ничего нет, приглушён, а счётчик «С ошибками» становится красным, когда проверка не проходит. Они больше не выходят за край списка при моноширинном шрифте интерфейса. + +### Fixed + +- Бейдж pull request на карточке сессии, его пункт меню Pull request и кнопка pull request в футере больше не открывают не тот pull request после того, как оболочка сессии перешла в другой репозиторий. Бейдж показывает pull request этого репозитория, а клик раньше искал его номер среди pull request самого проекта на экране Pull requests; теперь он открывает pull request на GitHub. +- Свёрнутая боковая панель показывает профиль, в котором рождаются новые сессии, внизу рейки и открывает то же меню, что и футер раскрытой панели. Раньше она не показывала профиль вовсе. +- Вкладка в верхней панели больше не может застрять приподнятой, нарисованной цветом акцента, будто её перетаскивают, так что ни одна вкладка не двигалась до перезапуска lich. Вкладка, получившая фокус кликом, а затем Space или Enter, подхватывалась для перестановки с клавиатуры, и когда клик в другом месте забирал клавиатуру, её нельзя было ни опустить, ни отменить; теперь при потере фокуса она возвращается на своё место. Вкладка раскладки, переименованная посреди перетаскивания, больше не застревает так же. +- Карточка сессии больше не растёт и не сжимается, когда её агент начинает и заканчивает инструмент, ждёт вас или сжимает контекст, сдвигая вверх и вниз все карточки под ней. Эта строка теперь занимает место пути карточки, пока показывается, а путь возвращается, когда она уходит. +- Нативное окно занимает меньше памяти под шрифты. Файл шрифта, запрошенный больше одного раза, например интерфейс и терминал в одном семействе или жирное начертание, которое заодно заменяет полужирное, разбирался заново каждый раз, около 30 МБ на начертание Nerd Font; теперь он разбирается один раз и делится, пока используется. Интерфейс на языке, отличном от китайского, японского и корейского, больше не загружает CJK-шрифт при старте, десятки мегабайт: он загружается при первом CJK-тексте на экране, а пока рисуется системным шрифтом. С одним Nerd Font для интерфейса, терминала и редактора и без CJK на экране шрифты занимают 119 МБ там, где занимали 246 МБ. +- В macOS открытие lich из Dock, Launchpad, Spotlight или Finder, пока он работает с закрытым окном, снова открывает окно. Это касается и lich, запущенного при входе с `--no-window`, где клик ничего не делал. Выход из системы теперь завершает lich так же, как `lich quit`, поэтому следующий запуск не принимает это за сбой. + ## [0.78.1] - 2026-10-23 ### Changed diff --git a/changelog/zh-CN.md b/changelog/zh-CN.md index 2eb7af9cf..1c6cd54fa 100644 --- a/changelog/zh-CN.md +++ b/changelog/zh-CN.md @@ -1,3 +1,31 @@ +## [0.79.0] - 2026-10-24 + +> [!IMPORTANT] +> **在智能体旁边一直开着开发服务器、容器或隧道的用户:现在由 lich 来运行它们。** 在项目的设置 › 服务中保存一次, +> 之后即可在侧边栏底部启动、停止并查看它们的输出。 + +### Added + +- 在 macOS 上,lich 有了菜单栏图标:窗口已关闭的 lich 会在那里表明它仍在运行会话,提供“显示 lich”、运行中的会话数和“退出 lich”,与 Linux 和 Windows 上的托盘一样。 +- **服务:项目持续运行、由 lich 启动的命令。** 在项目的设置 › 服务中保存一次容器、隧道或开发服务器,然后从侧边栏底部、配置文件上方的“服务”行启动它。收起时,该行显示有多少个在运行(2/3);展开后,它列出每个服务已运行多久或如何结束,悬停时显示“启动”、“停止”和“重启”。点击会打开它的控制台,可以在其中输入,Ctrl+C 停止它。服务不是终端:它的命令退出后,服务就停止了,最后的输出仍可阅读,“启动”会再次运行它。勾选“随 lich 启动”后,每次 lich 在打开其项目的情况下启动,它都会随之启动。在设置 › 服务中选择“全局”所保存的服务在你的主目录中运行,并显示在 lich 的首页上,适合放一个无论哪个项目都一直开着的 `lazydocker`。服务的存续与其项目的标签页一致:关闭标签页会停止它,重新打开项目则会启动那些保存为随 lich 启动的服务。关闭窗口时它们继续运行,托盘会列出它们,并提供“显示输出”、“重启”和“停止”;退出 lich 会停止它们,关闭对话框也会统计它们。侧边栏折叠时,边栏中的“服务”按钮会打开同一个列表。 + +- **把拉取请求的评审讨论发送到它的会话。** 在 Pulls 屏幕中,打开状态的评审讨论在“回复”和“标记为已解决”旁边有“发送到会话”,在对话标签页和差异中都有,对话标签页还可以一次发送所有未解决的讨论。这些讨论会作为一条提示发送到该分支检出目录中的会话(没有时 lich 会打开一个),其中包含每个讨论的文件、行、链接和其中的所有评论。Pulls 保持在屏幕上,会话接收讨论后,会有带“打开”的提示通知告知。随后 lich 会在 GitHub 上回复每个讨论“Fixing this. It'll be in the next commit.”,并在拉取请求再次被推送后将其标记为已解决,同时回复它所落入的提交;在此之前,该讨论显示“已发送 · 等待 push”。任何一次推送都会将其解决,即使这次推送没有触及它。 + +### Changed + +- 在 lich 之外合并的拉取请求(在 github.com 上、在终端里用 `gh`,或由代理合并),现在会像从 Pulls 合并的那样,在合并后一分钟内通知其分支检出目录中的代理。此前它们会一直以为它仍处于打开状态。只有在 lich 看到它处于打开、随后被合并时正在那里运行的代理才会收到通知;当时已被搁置的代理,或在 lich 上次启动之前就已合并的拉取请求,则不会。 +- Pulls 中的“解决冲突”和“修复 CI 错误”不再把你带到它们交付拉取请求的那个会话。Pulls 保持在屏幕上,方便你转到下一个拉取请求,会话在侧边栏中启动,代理接到任务时会有带“打开”的提示通知告知。需要你先回答才能启动的会话(例如是否恢复其上一次对话)仍会弹出。“在会话中打开”仍会前往该会话。 +- Pulls 中拉取请求列表上方的快速筛选器(全部、就绪、草稿、失败)更轻量了:小号文字,选中的一项带底色,与停靠栏的标签页一样,宽度与列表一致。没有内容的筛选器会变淡,有检查失败时“失败”的计数会变红。使用等宽界面字体时,它们也不再超出列表的边缘。 + +### Fixed + +- 在会话的 shell 移入另一个仓库之后,会话卡片上的拉取请求徽章、其“拉取请求”菜单项以及页脚的拉取请求按钮,不再打开错误的拉取请求。徽章显示的是那个仓库的拉取请求,而此前点击时会在 Pulls 中该项目自己的拉取请求里按编号查找;现在改为在 GitHub 上打开该拉取请求。 +- 折叠的侧边栏会在边栏底部显示新会话所使用的配置文件,并打开与展开的侧边栏页脚相同的菜单。此前它完全不显示配置文件。 +- 顶部栏中的标签页不再会卡在被抬起的状态,不再以强调色绘制得像在被拖动,并且在 lich 重启之前没有任何标签页能再移动。先用点击聚焦、再按空格或回车的标签页,会被拿起以便用键盘重新排序,而一旦点击别处夺走了键盘,它既无法放下也无法取消;现在它失去焦点时会回到原位。在拖动过程中被重命名的布局标签页,也不会再以同样的方式卡住。 +- 会话卡片不再因其代理开始和结束使用工具、等待你或压缩上下文而变大变小,把下面的所有卡片推上推下。那一行现在会在显示期间占据卡片路径的位置,消失后路径再回来。 +- 原生窗口的字体占用的内存更少了。被多次请求的字体文件(例如界面和终端设置为同一字体族,或同时充当半粗体的粗体)此前每次都会被重新解析,一个 Nerd Font 字体约 30MB;现在只解析一次,使用期间共享。界面语言不是中文、日文或韩文时,启动时不再加载数十兆字节的 CJK 字体:它会在屏幕上第一次出现 CJK 文本时才加载,在此期间用系统字体绘制。界面、终端和编辑器使用同一款 Nerd Font 且屏幕上没有 CJK 时,字体占用 119MB,而此前是 246MB。 +- 在 macOS 上,当 lich 在窗口已关闭的状态下运行时,从 Dock、启动台、聚焦搜索或访达打开 lich,会重新打开窗口。包括以 `--no-window` 在登录时启动的 lich,此前点击没有任何反应。注销现在会像 `lich quit` 那样退出 lich,因此下次启动不会把它当作崩溃。 + ## [0.78.1] - 2026-10-23 ### Changed