Repository navigation
v0.1.16
Started rebuilding Fleet. The entry point is now an Editor | Fleet segment at the left of the titlebar (⌘⇧M, with an Attention badge), and the left list now has one three-line row per Task, each showing the original text of what you asked for. The supervisor is renamed Captain (setting key coordinator_agent → captain_agent; the old key is not read). You can also click the rail and move between projects with ↑/↓.
Added
- Fleet entry in the titlebar: An
Editor | Fleetsegment sits right of the project name and switches the whole surface (key: ⌘⇧M). The small "Fleet" toggle at the top right is gone, because which surface you are on belongs next to which project you are in.- Attention count badge on Fleet (
◐ 2): Pending approvals and failures catch your eye even while you are writing in Editor. Nothing is shown when the count is 0. - Fleet icon on the rail: Red when something needs attention, the project color while Fleet is showing. The setting is
rail.fleet. - The moment you start a second Task, the hint "See them run side by side in Fleet (⌘⇧M)" appears once. That is the only hint; it never appears again.
- Attention count badge on Fleet (
- Fleet's left list is now a list of Tasks: It used to show thread rows under project headings, which made it hard to tell how many worktrees were running in parallel and what you had asked each one to do. Now each Task is one row with three lines.
- Line 1: status + Task name +
⎇ branch+ tokens. Line 2:› what you asked for(the original text). Line 3: what it is doing now, or how it ended. - You read each row as "asked → did", so with N agents running in parallel you can spot the one that drifted at a glance. The instruction is your own words, so it doesn't get ✳ (the AI-generated mark). When a previous conversation is restored, the row is rebuilt from the last instruction you wrote.
- At the top is the Captain bar (the assigned agent's name + its last decision in one line). ⌘0 takes you to that conversation. If no Captain is appointed, it says "Appoint a Captain" and takes you to Settings.
- The integration target (
main) isn't mixed in with Task rows. It gets its own line,⌂ main · Integration · protected, with "N branched · M integrated today" below it. - Only Tasks in the repository selected on the rail are shown. Activity in other repositories shows as dots on the rail.
- Line 1: status + Task name +
- Move between projects with ↑/↓ after clicking the rail: Click anywhere on the rail (empty space works too) to move focus there, then use plain ↑/↓ with no modifier to go to the neighboring project. Escape or a click returns you to editing.
Changed
- Renamed the supervisor to Captain: It is central to Fleet, so the name now fits the fleet metaphor. UI strings, the attribution name in News and the Captain thread's name all read
Captain(the same word in Japanese and English).- The setting key changes:
coordinator_agent→captain_agent. The old key is not read (edit yoursettings.json). - The rail icon setting also changes from
rail.herd→rail.fleet(the old key is ignored).
- The setting key changes:
- ⌘{ / ⌘} always switch tabs: They used to turn into project switching right after you clicked the rail. That was a hidden mode where a key's meaning depended on what you had last clicked, so it is gone. Move between projects with ⌃⌘↑↓ or with the rail ↑/↓ above.
- Fleet's default is back to the lineage graph plus the grid of cells: The "Work" tab made default in 0.1.15 (a desk with worktrees in columns) turned out to be harder to use day to day than the old fleet grid. It is no longer the default and is now one of the center tabs, an optional alternate view. Choose "Work" in the center tabs to open it as before.
- The + for adding cells is now three buttons (+ ACP / + Terminal / + Worktree): They are always visible at the bottom of the grid, with where they will open shown next to them (project ⎇ branch; hover for the real path).
- + ACP starts a separate conversation. You can place any number of ACP cells on the same working directory, and none of them replaces an existing conversation. (Up to 0.1.15, + either always created a new worktree or added a tab to the same panel.)
- + Terminal works the same way, adding an independent shell cell in the chosen working directory.
- Use + Worktree only when you want to work in parallel on another branch. Choose an existing branch, an existing worktree or a new branch name.
- The original working directory (the
mainside) is now shown as a cell too: The left list also shows everything by default instead of collapsing. Protecting the Git integration target is the job of Git-side gates, not of hiding it from the screen. - Removed the 8-cell limit on the grid: Three cells sit in one row; from the fourth on they stack into a grid, and rows that don't fit scroll. Closing a cell keeps its contents (conversation, PTY) alive, and bringing it back from the list shows the same instance. Rearranging or expanding doesn't recreate the ACP session or PTY.
Fixed
- Unrelated projects showed up in Fleet: A change meant to also show the current repository's
mainremoved the filtering along with it, so every other repository on the rail became a cell. The fleet is now scoped to one repository. When you move to another repository, the cell layout (including the results of + and ×) is set aside and replaced with that repository's. - AI CLIs no longer run on every launch: The check in Settings home for which agents are available ran every time, whether or not you opened Settings. It now runs only when Settings home is actually shown, so a normal launch doesn't spawn extra child processes.
- Clicking the transcript could crash (introduced in 0.1.15): When a conversation is too long to fit on screen, necoder draws only the visible range, and draws off-screen messages only to measure their height before discarding them. Click hit-testing included those discarded items, so clicking one that had no on-screen position crashed immediately. This also fixes selection mix-ups where any click selected the start of the last message and copied text came out in reverse order.
- Esc didn't stop the turn while the cursor was in the composer: The editor took Esc to collapse multiple cursors and swallowed it even when there was nothing to collapse, so the interrupt never reached the Agent panel and only the stop button worked. While renaming a thread or with a suggestion menu open, Esc still only closes that and doesn't stop a running turn.
- Closed thread tabs came back on every restart: Threads closed with the tab × or with ⌘W in the panel weren't archived in the ledger (DB), and restore on launch opens every thread that isn't archived, so all the closed tabs came back. The close paths are now merged into one. The opposite problem is fixed too: threads reopened with ⌘⇧T or from history disappeared on the next launch (they are now unarchived). Rows that already piled up will appear once on the next launch; close them there and they stay closed.
日本語
Fleet の作り直しを始めました。入口を titlebar 左の Editor | Fleet セグメント(⌘⇧M、要対応のバッジ付き)に置き、左の一覧を 1 行 1 Task の 3 段表示に替えて、各行に自分が頼んだことの原文を出します。「監督」は Captain に改名しました(設定キーは coordinator_agent から captain_agent へ。旧キーは読みません)。レールを押してから ↑/↓ でプロジェクトを移れるようにもなりました。
追加
- titlebar の Fleet の入口:プロジェクト名の右隣に
Editor | Fleetのセグメントを置き、押すと画面ごと切り替わります(キーは ⌘⇧M)。右上にあった小さな「Fleet」トグルは廃止しました。いまどちらの画面にいるかは、どのプロジェクトにいるかの隣に出すべきだと考えたためです。- Fleet 側の要対応の件数バッジ(
◐ 2):Editor で書いている最中でも、承認待ちや失敗が出れば目に入ります。0 件の時は何も出しません。 - レールの Fleet アイコン:要対応がある時は赤、Fleet を表示している時はプロジェクトの色になります。設定は
rail.fleetです。 - 2 本目の Task を作った時に、一度だけ「並走を Fleet で見る(⌘⇧M)」と出ます。案内はこの 1 回だけで、以後は出ません。
- Fleet 側の要対応の件数バッジ(
- Fleet の左の一覧を Task の一覧に:これまではプロジェクトの見出しの下にスレッドの行が並ぶ形で、並行して動いている worktree がいくつあるのか、それぞれに何を頼んだのかが読み取れませんでした。1 行 1 Task の 3 段表示に変えました。
- 1 段目は状態、Task 名、
⎇ ブランチ、トークンです。2 段目は› 自分が頼んだこと(原文)、3 段目はいま何をしているか、またはどう終わったかです。 - 頼んだこと、やったことの順に読めるので、N 体を並行して動かしている時にずれているものがすぐ分かります。指示の原文は人が書いた言葉なので、✳(AI が生成した印)は付けません。前回の会話を復元した時も、最後に自分が書いた指示から表示し直します。
- 一番上には Captain バー(担当エージェントの名前と、最後の采配 1 行)があります。⌘0 でその会話に移れます。まだ任命していなければ「Captain を任命する」と出て、押すと設定に移ります。
- 統合先(
main)は Task の行に混ぜず、⌂ main · 統合先 · 保護の 1 行にまとめ、その下に「N 本が分岐中 · 今日 M 件統合」と出します。 - 表示するのは、レールで選んでいるリポジトリの Task だけです。ほかのリポジトリの動きはレールのドットで分かります。
- 1 段目は状態、Task 名、
- レールを押して ↑/↓ でプロジェクトを移動:レールのどこか(空いている所でも可)を押すとフォーカスがレールに移り、修飾キーなしの上下キーで隣のプロジェクトへ移れます。Escape かクリックで編集に戻ります。
変更
- 「監督」を Captain に改名:Fleet の中心になる機能なので、編隊のたとえに名前を合わせました。UI の文字列、ニュースの帰属名、Captain スレッドの名前が、すべて
Captain(日英とも同じ語)になります。- 設定キーが変わります:
coordinator_agent→captain_agent。旧キーは読まないので、settings.jsonを書き換えてください。 - レールのアイコン表示の設定も
rail.herd→rail.fleetに変わりました(旧キーは無視します)。
- 設定キーが変わります:
- ⌘{ / ⌘} は常にタブの切り替え:これまではレールを押した直後だけ、プロジェクトの切り替えに変わっていました。直前に何を押したかでキーの意味が変わる隠れたモードなので、やめました。プロジェクトの移動には ⌃⌘↑↓ か、上のレールの ↑/↓ を使ってください。
- Fleet の既定を系譜グラフとセルのグリッドに戻す:0.1.15 で既定にした「作業」タブ(worktree を列に並べる机)は、毎日使ってみると以前の編隊グリッドより扱いにくいと分かりました。既定から外し、中央のタブの 1 つ(任意で選ぶ別の表示)にしました。中央のタブで「作業」を選べば、これまでどおり開きます。
- セルを足す + を 3 つのボタンに(+ ACP / + Terminal / + Worktree):グリッドの下に常に表示し、押した時にどこで開くかを隣に出します(プロジェクト ⎇ ブランチ。ホバーで実際のパス)。
- + ACP は独立した会話を作ります。同じ作業ディレクトリに ACP のセルをいくつでも並べられ、既存の会話を置き換えません(0.1.15 までの + は、必ず新しい worktree を作るか、同じパネルにタブを足すかのどちらかでした)。
- + Terminal も同じで、選んだ作業ディレクトリに独立したシェルのセルを足します。
- 別のブランチで並行して作業したい時だけ + Worktree を使います。既存のブランチ、既存の worktree、新しいブランチ名から選べます。
- 元の作業ディレクトリ(
main側)もセルとして表示:左の一覧も、既定で畳まずにすべて表示します。Git の統合先を守るのは Git 側の gate の役目で、画面から消すことではないからです。 - グリッドの 8 枚の上限を撤廃:3 枚までは横 1 列、4 枚目からはグリッドに積み、入りきらない行はスクロールします。セルを閉じても中身(会話と PTY)は動いたままで、一覧から戻せば同じものが出ます。配置を変えても拡大しても、ACP と PTY は作り直しません。
修正
- Fleet に関係のないプロジェクトが並ぶ問題:いまのリポジトリの
mainも並べるための変更で、絞り込みまで一緒に外してしまい、レール上のほかのリポジトリが 1 つずつセルになっていました。編隊をリポジトリ単位に閉じ、別のリポジトリへ移った時はセルの並び(+ や × の結果も含む)を畳んで、移った先のものに差し替えます。 - 起動のたびに AI CLI を実行していた問題:設定ホームに出す「どのエージェントが使えるか」の確認が、設定を開くかどうかに関係なく毎回動いていました。設定ホームを実際に表示した時だけ確認するようにしたので、普段の起動で子プロセスが増えません。
- transcript をクリックすると落ちることがある問題(0.1.15 で混入):会話が画面に収まらない長さになると、necoder は見えている範囲だけを描き、画面外の発言は高さを測るためだけに描いて捨てます。クリック位置の判定がこの捨てた分まで対象にしていたため、画面上の位置を持たないものに当たると落ちていました。あわせて、どこを押しても一番下の発言の先頭が選ばれる問題と、コピーした文が上下逆につながる問題も直しました。
- 入力欄にカーソルがある時に Esc でターンを止められなかった問題:エディタが Esc を「複数カーソルを畳む」操作として受け取り、畳むものがない時もそこで Esc を握りつぶしていました。そのため中断が Agent パネルまで届かず、停止ボタンでしか止められませんでした。スレッド名を変えている間と候補メニューを開いている間は、これまでどおり Esc はそれを閉じるだけで、動いているターンは止めません。
- 閉じたスレッドのタブが再起動のたびに戻る問題:タブの × やパネル内の ⌘W で閉じたスレッドが、台帳(DB)でアーカイブされていませんでした。起動時の復元は「アーカイブされていないスレッドを全部開く」ので、閉じたはずのタブがそろって戻っていました。閉じる経路を 1 つにまとめて直しました。逆に、⌘⇧T や履歴から開き直したスレッドが次の起動で消える問題も直しました(アーカイブを解除するようにしました)。すでに溜まっている分は次の起動で一度だけ出てくるので、そこで閉じ直せば以後は戻りません。
Install
- macOS 13+ (Apple Silicon): open
necoder.dmgand dragnecoder.appinto Applications. Signed and notarized, so Gatekeeper shows no warning. - Windows 10+ (x64): unzip
necoder-windows-x64.zipand runnecoder.exe. The build is not signed yet, so on first launch SmartScreen asks you to choose "More info → Run anyway". - Full history: CHANGELOG.md · License: AGPL-3.0 · https://necoder.com
インストール
- macOS 13 以降(Apple Silicon):
necoder.dmgを開き、necoder.appを「アプリケーション」へドラッグします。署名と公証を済ませてあるので、Gatekeeper の警告は出ません。 - Windows 10 以降(x64):
necoder-windows-x64.zipを展開してnecoder.exeを起動します。まだ署名していないため、初回は SmartScreen で「詳細情報」→「実行」を選んでください。 - 全変更履歴:CHANGELOG.md · ライセンス:AGPL-3.0 · https://necoder.com