Commit Graph

  • df22d9be21 test(e2e): pin the tree and the registry agreeing under a race l0ng-ai 2026-08-16 07:55:15 +08:00
  • 6238b8eb13 docs(view): restore four invariants, each checked against the code l0ng-ai 2026-08-16 07:46:32 +08:00
  • 0dcc527887 docs(machine): restore four invariants of the state model l0ng-ai 2026-08-16 07:42:54 +08:00
  • 32f893b3b1 docs(cli): ws attach cannot hold what it claims to take l0ng-ai 2026-08-16 07:37:53 +08:00
  • 9aaf8e28e0 fix(cli): tab new took a --cwd it never checked l0ng-ai 2026-08-16 07:32:47 +08:00
  • 78bc7789d9 fix(daemon): sweep every shell's throwaway directory, not just zsh's l0ng-ai 2026-08-16 07:27:50 +08:00
  • 6acf749930 fix(daemon): sweep the shell-integration dirs a killed daemon leaves l0ng-ai 2026-08-16 07:21:09 +08:00
  • b77da67380 fix(log): the timestamp is UTC and now says so l0ng-ai 2026-08-16 07:06:29 +08:00
  • 3c495e03af fix(cli): say "1 pane", not "1 pane(s)", on the failure lines l0ng-ai 2026-08-16 06:57:51 +08:00
  • 409334c023 fix(cli): a pane that could not be filed outlived the command l0ng-ai 2026-08-16 06:51:53 +08:00
  • b89496b9d4 fix(cli): a refused split left a live pane nothing was holding l0ng-ai 2026-08-16 06:45:20 +08:00
  • 4e6afe25b5 fix(cli): a --cwd that names no directory ran the command elsewhere l0ng-ai 2026-08-16 06:37:33 +08:00
  • 57aba5b4dd fix(machine): name the file when the tree cannot be written l0ng-ai 2026-08-16 06:26:13 +08:00
  • 2ab3b7efbe fix(cli): server start named a pid that had already exited l0ng-ai 2026-08-16 06:19:51 +08:00
  • bc28f0121d fix(daemon): a kill -9 left the server unable to start again l0ng-ai 2026-08-16 06:13:02 +08:00
  • a78b85d3ca fix(cli): an address in the wrong slot, and two pointers that led nowhere l0ng-ai 2026-08-16 06:04:57 +08:00
  • 335d98252c fix(cli): the advertised wait idiom fails in one of its own end states l0ng-ai 2026-08-16 05:57:48 +08:00
  • a343915734 fix(cli): a pane the tree still holds is not a pane that does not exist l0ng-ai 2026-08-16 05:49:11 +08:00
  • 881e938056 docs: restore five cross-file invariants, all re-verified l0ng-ai 2026-08-16 05:37:44 +08:00
  • aeef80d25a docs(pane): restore eight backpressure and probe invariants l0ng-ai 2026-08-16 05:33:16 +08:00
  • 43961cae20 docs: restore seven invariants that the comment strip took out l0ng-ai 2026-08-16 05:28:01 +08:00
  • 61002ec420 refactor(client): drop the file-wide dead_code allow and the nine it hid l0ng-ai 2026-08-16 05:19:28 +08:00
  • 709b375f68 fix(forwards): stop reporting an undelivered workspace teardown as a clean one l0ng-ai 2026-08-16 05:12:08 +08:00
  • 5de8fd552e fix(cli): check the inherited workspace before run --keep spawns l0ng-ai 2026-08-16 04:56:50 +08:00
  • d7e6b45e91 fix(pane): let kill reach what runs in a pane l0ng-ai 2026-08-16 04:29:10 +08:00
  • 29611a3227 fix(updater): tell a macOS user where the app went, as Windows does l0ng-ai 2026-08-16 04:06:30 +08:00
  • 8959421e2d fix(updater): keep the backup when the app cannot be put back l0ng-ai 2026-08-16 04:03:41 +08:00
  • 07790f589d docs(config): say that agent_commands needs the server restarted l0ng-ai 2026-08-16 03:57:06 +08:00
  • 7924f3f70c refactor(i18n): delete eight keys and their translations, read by nothing l0ng-ai 2026-08-16 03:53:20 +08:00
  • 256bb69f90 refactor(home): drop the labels for two rows the home page stopped offering l0ng-ai 2026-08-16 03:46:50 +08:00
  • b18b3a9179 docs(deps): read the russh advisory in the fork, and bound what it costs l0ng-ai 2026-08-16 03:36:24 +08:00
  • 918b4e8313 fix(pane): stop reporting a killed command as an honest exit 1 l0ng-ai 2026-08-16 03:33:13 +08:00
  • aafb613194 refactor(app): drop an opener nothing has called since the first commit l0ng-ai 2026-08-16 03:26:19 +08:00
  • 18f214eba4 fix(sftp): do not let a finished download replace a file it did not pick l0ng-ai 2026-08-16 03:19:33 +08:00
  • f6a85ba5ca test(kitty): refuse every indirect medium on a remote pane, not just shm l0ng-ai 2026-08-16 03:09:20 +08:00
  • 23b7b2dd2f fix(git): make a new op state what it needs validated l0ng-ai 2026-08-16 02:58:28 +08:00
  • 1c61b3b20b test(keymap): check all 106 actions bind, not the three in the list l0ng-ai 2026-08-16 02:52:14 +08:00
  • da29a1b367 test(settings): name the search-index test after what it checks l0ng-ai 2026-08-16 02:47:59 +08:00
  • c34ade0e55 fix(assets): serve the chevron this repo draws, not the stock one l0ng-ai 2026-08-16 02:43:39 +08:00
  • 3050260e68 fix(completion): a description with a newline broke its menu row l0ng-ai 2026-08-16 02:38:54 +08:00
  • 1c203cc89e fix(sftp): fold a remote filename where the panel draws it l0ng-ai 2026-08-16 02:34:17 +08:00
  • e6078c10ca fix(ssh): stop a failed shell probe disabling integration for good l0ng-ai 2026-08-16 02:26:56 +08:00
  • 122668ccb4 test(update-guard): pin what a future-dated guard does, and why l0ng-ai 2026-08-16 02:18:07 +08:00
  • 415703df20 docs(control): say which hello features are read, and which is not l0ng-ai 2026-08-16 02:13:09 +08:00
  • 9b472ae799 fix(scm): stop a commit-losing op inheriting the discard question l0ng-ai 2026-08-16 02:08:25 +08:00
  • 56f7c70541 fix(git): make a new op state whether it can lose work l0ng-ai 2026-08-16 02:03:28 +08:00
  • 797bfc7447 test(control): make a new wire variant break the build, not a link l0ng-ai 2026-08-16 01:57:44 +08:00
  • 652e4a230b test(config): pin that every key survives a write and a read l0ng-ai 2026-08-16 01:49:40 +08:00
  • 03685c06d2 test: finish the fixture cleanup, down to the ones a scope cannot own l0ng-ai 2026-08-16 01:38:24 +08:00
  • cde2068ee6 test: remove the scratch directories the fixtures leave behind l0ng-ai 2026-08-16 01:31:32 +08:00
  • 99994553ef fix(config): hold side-panel widths to the widths they can be drawn at l0ng-ai 2026-08-16 01:14:04 +08:00
  • a9c96d81f6 fix(host): arm the UI-thread guard on the remote host too l0ng-ai 2026-08-16 01:06:46 +08:00
  • 864ab3f4be test(view): name the file-command test after what it asserts l0ng-ai 2026-08-16 01:00:03 +08:00
  • 005efee058 fix(ui): explain the io errors that build their own message l0ng-ai 2026-08-16 00:52:02 +08:00
  • 4a41dbd747 fix(ui): cut display text between clusters, not inside them l0ng-ai 2026-08-16 00:46:02 +08:00
  • 8e4de5d525 fix(ui): route every home lookup through the one that knows Windows l0ng-ai 2026-08-16 00:40:19 +08:00
  • 25d1f06a57 fix(file-tree): fold a filename's line breaks where it is drawn l0ng-ai 2026-08-16 00:36:40 +08:00
  • b3149c31b1 fix(pane): fold control characters out of a terminal title l0ng-ai 2026-08-16 00:27:31 +08:00
  • 2919464e84 docs(pane): why the split ratio's clamp is enough, and when it stops being l0ng-ai 2026-08-16 00:17:18 +08:00
  • 74d647e5ff refactor(tree_sync): make the sweep's decision assertable l0ng-ai 2026-08-16 00:07:58 +08:00
  • 381f626704 docs(deps): the russh rebase has nowhere to land yet l0ng-ai 2026-08-15 23:16:08 +08:00
  • 976bd36566 fix(tree_sync): ask every window before ending a pane, not just one l0ng-ai 2026-08-15 23:02:04 +08:00
  • a689ee2bb2 refactor: say why the clippy allows are there, and drop the one that is not l0ng-ai 2026-08-15 22:54:11 +08:00
  • c24ef21472 refactor(core): pub(crate) for the crate's own types l0ng-ai 2026-08-15 22:46:46 +08:00
  • d22cc39a8e refactor(core): pub(crate) for the crate's own constants and aliases l0ng-ai 2026-08-15 22:37:46 +08:00
  • 39e344dad6 refactor(core): pub(crate) for what never leaves the crate l0ng-ai 2026-08-15 22:33:13 +08:00
  • 9710fb23e6 docs(cli): say what exit_code_known means, and what run cannot tell you l0ng-ai 2026-08-15 22:03:08 +08:00
  • df8432f0af fix(cli): one answer for a pane that is not there l0ng-ai 2026-08-15 21:55:10 +08:00
  • 489c394837 fix(tree_sync): end the shells a layout rewrite leaves behind l0ng-ai 2026-08-15 21:40:26 +08:00
  • 1b75500b88 fix(tree_sync): hang up the panes the tree hands back l0ng-ai 2026-08-15 21:23:31 +08:00
  • 24a0469ca5 fix(ui): git's confirmation dialogs lost Escape outside English l0ng-ai 2026-08-15 20:35:50 +08:00
  • deb070f25b refactor(scm): match the reset mode the confirmation text is written for l0ng-ai 2026-08-15 20:29:19 +08:00
  • ce35dca704 fix(security): redact three more secrets from Debug output l0ng-ai 2026-08-15 20:21:09 +08:00
  • bb563505ad refactor: scope the dead_code allows to the items that need them l0ng-ai 2026-08-15 20:10:21 +08:00
  • b11ad35680 refactor: drop eight #[allow(dead_code)] that no longer allow anything l0ng-ai 2026-08-15 20:06:13 +08:00
  • f7130c99de fix(i18n): say which request the server answered unexpectedly l0ng-ai 2026-08-15 20:02:10 +08:00
  • bc835fd811 fix(i18n): the UI names the background process "server", not "daemon" l0ng-ai 2026-08-15 19:56:51 +08:00
  • ceb0f76193 fix(i18n): stop calling a pane a panel in Chinese l0ng-ai 2026-08-15 19:52:05 +08:00
  • 3edcc3884a docs(cli): agent_status is never sent either — correcting yesterday's table l0ng-ai 2026-08-15 19:34:35 +08:00
  • a4d0a10a6e docs(cli): events had no schema, and promised a pane-exit event nothing sends l0ng-ai 2026-08-15 19:30:16 +08:00
  • 27c0c6c399 docs(cli): --orphans kills a run that is still going, not just an interrupted one l0ng-ai 2026-08-15 19:24:21 +08:00
  • 50b1d4a455 fix(cli): procs on a pane that does not exist is an error, not an idle pane l0ng-ai 2026-08-15 19:04:59 +08:00
  • d5368807c1 fix(cli): say the server is down instead of "No such file or directory" l0ng-ai 2026-08-15 18:57:53 +08:00
  • 162d66b005 fix(daemon): block SIGTERM before any thread exists, or the shutdown save never runs l0ng-ai 2026-08-15 18:46:08 +08:00
  • bfa58af587 fix(config): say "your config is broken" once, not once per pane spawn l0ng-ai 2026-08-15 18:29:17 +08:00
  • d76ed6df50 diag(tree-sync): correct what the strand-a-pane note claims, after measuring it l0ng-ai 2026-08-15 18:22:59 +08:00
  • 629df29b2b docs(deps): name the russh advisories, two of which reach a client pre-auth l0ng-ai 2026-08-15 18:08:17 +08:00
  • 56eb32b99f docs(deps): record that the pinned russh fork predates upstream's security fixes l0ng-ai 2026-08-15 18:04:09 +08:00
  • 84124a57a2 fix(terminal): pin the OSC 52 policy instead of inheriting "no clipboard reads" l0ng-ai 2026-08-15 17:56:56 +08:00
  • adfdd398f6 fix(images): own the PNG decode ceiling instead of inheriting it, and test that path l0ng-ai 2026-08-15 17:51:22 +08:00
  • fd100f0e95 refactor(duplex): own the dup'd descriptors, so a failed redirect cannot leak one l0ng-ai 2026-08-15 17:43:15 +08:00
  • 768aca01f1 fix(cli): machine ls --json was missing the machine it runs on l0ng-ai 2026-08-15 17:27:40 +08:00
  • 23bbe7d400 diag(tree-sync): name the pane a refused tree operation strands l0ng-ai 2026-08-15 17:18:33 +08:00
  • a5229e18fa docs(cli): say what attach, ATTACHED and tab move INDEX actually do l0ng-ai 2026-08-15 16:53:18 +08:00
  • e530d5f778 docs(rustdoc): fix the links that pointed nowhere, and gate rustdoc in CI l0ng-ai 2026-08-15 16:37:42 +08:00
  • 280daff463 fix(config): drop the retired theme key from what gets written to config.json l0ng-ai 2026-08-15 16:30:50 +08:00
  • 0d0969ac56 fix(test): stop closing_the_pool_drops_queued_work racing, and guard i18n placeholders l0ng-ai 2026-08-15 16:06:37 +08:00
  • c957231142 chore(lint): put clippy on the CI gate, and clear the ~200 findings behind it l0ng-ai 2026-08-15 15:50:31 +08:00
  • 9fc0f331e8 feat(tabs): drag a tab in as a pane, and a pane out as a tab (#651) l0ng-aiandl0ng-ai 2026-08-15 17:05:34 +08:00
  • 3ef644d267 fix(scm): keep the sync tile on the branch row at any panel width (#650) l0ng-aiandl0ng-ai 2026-08-15 15:18:12 +08:00