# Commit history · lucenx/signaltty

[View on GitCafe](https://git.cafe/lucenx/signaltty/commits/032-logind-shutdown)

Repository: [lucenx/signaltty](https://git.cafe/lucenx/signaltty)

Visibility: public

Requested revision: refs/heads/032-logind-shutdown

- [server: keep test runs off the host shutdown lock](https://git.cafe/lucenx/signaltty/commit/605b369f5f6347b84d5e3f4c9760cac435b70b2c?format=markdown) — 605b369f5f6347b84d5e3f4c9760cac435b70b2c; Lucenx9

- [server: save resume metadata before logind shutdown](https://git.cafe/lucenx/signaltty/commit/7948496772d40c9f4b0d9b99d6bd65095577849f?format=markdown) — 7948496772d40c9f4b0d9b99d6bd65095577849f; Lucenx9

- [params: explicit null means absent for defaulted fields \(\#60\)](https://git.cafe/lucenx/signaltty/commit/9300f357132eabf375c358db99302d04a8c30f28?format=markdown) — 9300f357132eabf375c358db99302d04a8c30f28; Simone

- [plugin: reserved SIGNALTTY\_\* env wins over hook.env \(\#26\)](https://git.cafe/lucenx/signaltty/commit/c33340cc813748995e2a5306107b779aca40e539?format=markdown) — c33340cc813748995e2a5306107b779aca40e539; Simone

- [contrib: desktop entry launches the GUI by absolute path \(\#32\)](https://git.cafe/lucenx/signaltty/commit/43220b7ce93568b7bb87dccbde0cf6917d332cdd?format=markdown) — 43220b7ce93568b7bb87dccbde0cf6917d332cdd; Simone

- [cli: refresh outdated marked skills on install \(\#25\)](https://git.cafe/lucenx/signaltty/commit/d40c12e8e81bc626e6989708edec192322352e86?format=markdown) — d40c12e8e81bc626e6989708edec192322352e86; Simone

- [gui: collapse tilde only on a true home path boundary \(\#24\)](https://git.cafe/lucenx/signaltty/commit/85c1bf364c62c1e358fa47c5bfa96b18d66a2641?format=markdown) — 85c1bf364c62c1e358fa47c5bfa96b18d66a2641; Simone

- [plugin: reject hook timeout_secs above documented max \(\#23\)](https://git.cafe/lucenx/signaltty/commit/0c60e2894b6efbec7a400243fc4d2c8d60cb2b68?format=markdown) — 0c60e2894b6efbec7a400243fc4d2c8d60cb2b68; Simone

- [plugin: keep hook statistics isolated across reloads \(\#21\)](https://git.cafe/lucenx/signaltty/commit/20a0cb23ebac8416aca222302890603c046eeb9e?format=markdown) — 20a0cb23ebac8416aca222302890603c046eeb9e; Simone

- [server: recover plugin hooks after broadcast lag \(\#20\)](https://git.cafe/lucenx/signaltty/commit/3160343700a9199f63be747a4c671fde82972e2e?format=markdown) — 3160343700a9199f63be747a4c671fde82972e2e; Simone

- [agents: leak an overlay's display name once, not per metadata\(\) call \(\#59\)](https://git.cafe/lucenx/signaltty/commit/a097f292428b13bd7d838b44657513cc1fc0891e?format=markdown) — a097f292428b13bd7d838b44657513cc1fc0891e; Simone

- [paths: treat empty XDG variables as unset \(\#58\)](https://git.cafe/lucenx/signaltty/commit/1fcffa398f0dbbf028bcbe704f04353f9a01dabf?format=markdown) — 1fcffa398f0dbbf028bcbe704f04353f9a01dabf; Simone

- [docs: record codex review and full verification](https://git.cafe/lucenx/signaltty/commit/2bac06a4538c4e787f05cfac7c0a189e5ab444e3?format=markdown) — 2bac06a4538c4e787f05cfac7c0a189e5ab444e3; Lucenx9

- [docs: record codex screen rules \(spec 031, ADR-0027\)](https://git.cafe/lucenx/signaltty/commit/04826795226b1bb3bf9fc42188f36dab76ee1903?format=markdown) — 04826795226b1bb3bf9fc42188f36dab76ee1903; Lucenx9

- [agents: bundle herdr screen rules for codex](https://git.cafe/lucenx/signaltty/commit/8338b5c4caa290a02fb0eb5612073e7dbe8b3808?format=markdown) — 8338b5c4caa290a02fb0eb5612073e7dbe8b3808; Lucenx9

- [agents: add Codex prompt-marker regions and a top region](https://git.cafe/lucenx/signaltty/commit/51b7d28ae98e9bd59c878877dac51c9da9f5357e?format=markdown) — 51b7d28ae98e9bd59c878877dac51c9da9f5357e; Lucenx9

- [tests: name temp dirs with unique ids, not the clock](https://git.cafe/lucenx/signaltty/commit/ed09ea8661962646c6c6ec6d2fbace6bc44c816b?format=markdown) — ed09ea8661962646c6c6ec6d2fbace6bc44c816b; Lucenx9

- [docs: record claude screen rules \(spec 030, ADR-0026\)](https://git.cafe/lucenx/signaltty/commit/519e236f35f8d1ab914bd2a4043c910ac5e6b473?format=markdown) — 519e236f35f8d1ab914bd2a4043c910ac5e6b473; Lucenx9

- [agents: bundle herdr screen rules for claude](https://git.cafe/lucenx/signaltty/commit/9a2f2a0669956535a8a9a601046f3ca383cdb27d?format=markdown) — 9a2f2a0669956535a8a9a601046f3ca383cdb27d; Lucenx9

- [agents: add prompt-aware screen regions and a hold state](https://git.cafe/lucenx/signaltty/commit/5f0ebaa1af3b3951ceccaabfc1e06847af7ba43f?format=markdown) — 5f0ebaa1af3b3951ceccaabfc1e06847af7ba43f; Lucenx9

- [docs: record pane.explain \(spec 029\)](https://git.cafe/lucenx/signaltty/commit/c91f27df413ee2845dc41ac3eaa86482cff45f76?format=markdown) — c91f27df413ee2845dc41ac3eaa86482cff45f76; Lucenx9

- [agents: explain a pane's screen classification](https://git.cafe/lucenx/signaltty/commit/7f548228441fc1fa1a4912190ec2910a579cb816?format=markdown) — 7f548228441fc1fa1a4912190ec2910a579cb816; Lucenx9

- [docs: record bundled screen rules \(spec 028, ADR-0025\)](https://git.cafe/lucenx/signaltty/commit/3f63f1b7373ecb2d9a169d71b28f4c0abbd333c6?format=markdown) — 3f63f1b7373ecb2d9a169d71b28f4c0abbd333c6; Lucenx9

- [agents: bundle herdr screen rules for pi, opencode and cursor](https://git.cafe/lucenx/signaltty/commit/de6e873ceecd89a7f1042724920bd08b1e2fe4e6?format=markdown) — de6e873ceecd89a7f1042724920bd08b1e2fe4e6; Lucenx9

- [agents: add all/not gates to screen rules](https://git.cafe/lucenx/signaltty/commit/454f9b002a184bf8eb4f78d5a24e8354c0e8723c?format=markdown) — 454f9b002a184bf8eb4f78d5a24e8354c0e8723c; Lucenx9

- [agents: screen-detection rules in manifests \(herdr parity, spec 027\) \(\#52\)](https://git.cafe/lucenx/signaltty/commit/4357d34deccd0c9fb9a7429ef4830dd94276c545?format=markdown) — 4357d34deccd0c9fb9a7429ef4830dd94276c545; Simone

- [tests: publish drained input atomically in pty_input_cancel \(\#51\)](https://git.cafe/lucenx/signaltty/commit/d5c87a29ad4c7066b743dbb400ce8277941c951a?format=markdown) — d5c87a29ad4c7066b743dbb400ce8277941c951a; Simone

- [herdr parity: pane env, self-reported resume argv, snapshot history \(\#50\)](https://git.cafe/lucenx/signaltty/commit/34a1cfb6e2d92246263a79ff0f6823c1d8b0ef78?format=markdown) — 34a1cfb6e2d92246263a79ff0f6823c1d8b0ef78; Simone

- [docs: align orchestration contracts with task behavior \(\#49\)](https://git.cafe/lucenx/signaltty/commit/f14cb1e65773db38d96a58fc4761bdea5cc8e5b7?format=markdown) — f14cb1e65773db38d96a58fc4761bdea5cc8e5b7; Simone

- [gui: preserve the task board through live updates \(\#48\)](https://git.cafe/lucenx/signaltty/commit/cfad352ef04d219c27aa9668caa06efa1caa0555?format=markdown) — cfad352ef04d219c27aa9668caa06efa1caa0555; Simone

- [agents: retain selected executable when resuming sessions \(\#46\)](https://git.cafe/lucenx/signaltty/commit/5dff6507ddcac1ed7af520487acc22b26bc06b44?format=markdown) — 5dff6507ddcac1ed7af520487acc22b26bc06b44; Simone

- [orchestration: cancel and bound stalled PTY input \(\#47\)](https://git.cafe/lucenx/signaltty/commit/917941d20696d37a10e19cdd8cf83d300fb2937e?format=markdown) — 917941d20696d37a10e19cdd8cf83d300fb2937e; Simone

- [orchestration: await pane writers outside the blocking pool \(\#44\)](https://git.cafe/lucenx/signaltty/commit/27c054d81d9185385e6e2106f6eaaf883b7a29e6?format=markdown) — 27c054d81d9185385e6e2106f6eaaf883b7a29e6; Simone

- [orchestration: isolate stalled PTY input by pane \(\#42\)](https://git.cafe/lucenx/signaltty/commit/2864a879c9808a782afe7e4cdd1843ce2fa2fe3b?format=markdown) — 2864a879c9808a782afe7e4cdd1843ce2fa2fe3b; Simone

- [agents: keep reviewed terminal outcomes quiet \(\#45\)](https://git.cafe/lucenx/signaltty/commit/8e4354d0d84807eed00a3558cc3e6eaab25834fa?format=markdown) — 8e4354d0d84807eed00a3558cc3e6eaab25834fa; Simone

- [gui: explain the completed task history subset \(\#43\)](https://git.cafe/lucenx/signaltty/commit/e6d1845dd7a4eb684565d9b6fa5ca3b8ef568d4e?format=markdown) — e6d1845dd7a4eb684565d9b6fa5ca3b8ef568d4e; Simone

- [agents: preserve failures and resume answered approvals \(\#40\)](https://git.cafe/lucenx/signaltty/commit/4feb5bdc6206c6431d72700ebbaa1d207a8595cc?format=markdown) — 4feb5bdc6206c6431d72700ebbaa1d207a8595cc; Simone

- [gui: show shell workspace context in the header \(\#41\)](https://git.cafe/lucenx/signaltty/commit/59f76b0985cbbfc1e0602906e89852e7461dfeb4?format=markdown) — 59f76b0985cbbfc1e0602906e89852e7461dfeb4; Simone

- [gui: improve command palette navigation and visual feedback \(\#39\)](https://git.cafe/lucenx/signaltty/commit/4815c16678dad0128053bde775a06b9691592da5?format=markdown) — 4815c16678dad0128053bde775a06b9691592da5; Simone

- [orchestration: preserve decisions across prompt submission \(\#38\)](https://git.cafe/lucenx/signaltty/commit/ffe2d94eaa7611b5f5b8b10ab35b948f3d8b73cf?format=markdown) — ffe2d94eaa7611b5f5b8b10ab35b948f3d8b73cf; Simone

- [cli: pane attach ends when the pane is closed \(\#37\)](https://git.cafe/lucenx/signaltty/commit/84d0307c39086bc3ee1402c2b183e2c48fb8a5c2?format=markdown) — 84d0307c39086bc3ee1402c2b183e2c48fb8a5c2; Simone

- [gui: refresh approval choices when their answer channel changes \(\#36\)](https://git.cafe/lucenx/signaltty/commit/35b2ca5444386f9a25daf5472165dad0f4827bf3?format=markdown) — 35b2ca5444386f9a25daf5472165dad0f4827bf3; Simone

- [gui: keep task board columns reachable and text readable \(\#35\)](https://git.cafe/lucenx/signaltty/commit/9b6b013c3bbc99df18436bf38e9ae6bc9e212e69?format=markdown) — 9b6b013c3bbc99df18436bf38e9ae6bc9e212e69; Simone

- [term: strip_ansi stays on a char boundary after an escape \(\#34\)](https://git.cafe/lucenx/signaltty/commit/5878aade62930c6bd6900a026560027b4e32ff3c?format=markdown) — 5878aade62930c6bd6900a026560027b4e32ff3c; Simone

- [tasks: default branch stays valid for labels with leading or doubled dots \(\#31\)](https://git.cafe/lucenx/signaltty/commit/49796379e41bbcdbff39c6d4c371bf518e458ce1?format=markdown) — 49796379e41bbcdbff39c6d4c371bf518e458ce1; Simone

- [testkit: reap the test server when it drops \(\#30\)](https://git.cafe/lucenx/signaltty/commit/013c16674d559b355066a354d65800f521234947?format=markdown) — 013c16674d559b355066a354d65800f521234947; Simone

- [tasks: fix relative \-\-repo, early report race and stale workspaces after finish \(\#28\)](https://git.cafe/lucenx/signaltty/commit/c29e7fee8ae20844bb890eaa94e0c363d53f8b83?format=markdown) — c29e7fee8ae20844bb890eaa94e0c363d53f8b83; Simone

- [agent: open Pi as a harness from the new-workspace dialog \(\#27\)](https://git.cafe/lucenx/signaltty/commit/1f2262d624768ba879f04eb5878ff7bf4ebdea37?format=markdown) — 1f2262d624768ba879f04eb5878ff7bf4ebdea37; Simone

- [gui: finished task rows recede and sidebar menus act on tasks \(\#19\)](https://git.cafe/lucenx/signaltty/commit/ce05ab1f171b07c1ce39945ab7fcf502ee2baeb7?format=markdown) — ce05ab1f171b07c1ce39945ab7fcf502ee2baeb7; Simone

- [gui: sidebar nests task workspaces and opens a context menu \(\#18\)](https://git.cafe/lucenx/signaltty/commit/e33e8c1da1164dbb752eef9f0dba07e0d9b4de24?format=markdown) — e33e8c1da1164dbb752eef9f0dba07e0d9b4de24; Simone

- [plugin: hooks can't wedge on stdin or a full stderr pipe \(\#17\)](https://git.cafe/lucenx/signaltty/commit/0bc42aa2965c247f80e9b77e2aaae5e91e0d1a93?format=markdown) — 0bc42aa2965c247f80e9b77e2aaae5e91e0d1a93; Simone

- [orchestrator: task pull-request cycle with CI and review on the board \(020\) \(\#16\)](https://git.cafe/lucenx/signaltty/commit/4d7ffcc5597607a2e910841f9868d059e900136a?format=markdown) — 4d7ffcc5597607a2e910841f9868d059e900136a; Simone

- [orchestrator: record T031 quickstart run and close 018 \(\#15\)](https://git.cafe/lucenx/signaltty/commit/04773791469bf05a3ee5b11c23e88ddc073b6fc8?format=markdown) — 04773791469bf05a3ee5b11c23e88ddc073b6fc8; Simone

- [gui: task board groups orchestrator tasks by what they need \(019\) \(\#14\)](https://git.cafe/lucenx/signaltty/commit/afdc8b5b020fb1c5e3e9e47bec1761b321d1046a?format=markdown) — afdc8b5b020fb1c5e3e9e47bec1761b321d1046a; Simone

- [gui: workspace sidebar resizes by dragging its edge \(\#13\)](https://git.cafe/lucenx/signaltty/commit/52669758b21a4609f4f5a96233d6f0503a62aa21?format=markdown) — 52669758b21a4609f4f5a96233d6f0503a62aa21; Simone

- [integration: opencode plugin uses documented V1\+V2 dual entrypoint \(\#12\)](https://git.cafe/lucenx/signaltty/commit/8e37e8ffd0f5aa5968a8eb1285205b5f1b67cd33?format=markdown) — 8e37e8ffd0f5aa5968a8eb1285205b5f1b67cd33; Simone

- [integration: opencode plugin satisfies v1 and v2 loaders](https://git.cafe/lucenx/signaltty/commit/7ad75e97e83da7c8629aefdf12be92a259321e98?format=markdown) — 7ad75e97e83da7c8629aefdf12be92a259321e98; Lucenx9

- [Merge pull request \#11 from Lucenx9/orch/audit-followup](https://git.cafe/lucenx/signaltty/commit/607650f8ac9456e6da01483a3bd3aae8e31bf49a?format=markdown) — 607650f8ac9456e6da01483a3bd3aae8e31bf49a; Simone

- [server: map generic one-shot exit to done/failed \(\#10\)](https://git.cafe/lucenx/signaltty/commit/1faa0b14851eff3d7da13334f121f9c4259ba0a4?format=markdown) — 1faa0b14851eff3d7da13334f121f9c4259ba0a4; Simone

- [orchestrator: audit and bug-hunt fixes \(submit stalls, attention, finish\) \(\#9\)](https://git.cafe/lucenx/signaltty/commit/802c1506359462d58b5d8da6c623129d43186792?format=markdown) — 802c1506359462d58b5d8da6c623129d43186792; Simone

- [orchestrator: tasks, reliable submit, rendered reads and safe finish \(\#8\)](https://git.cafe/lucenx/signaltty/commit/9ae710812f220d89f53d7772de0e9dc298657605?format=markdown) — 9ae710812f220d89f53d7772de0e9dc298657605; Simone

- [gui: themes and a less stock-Adwaita look \(\#7\)](https://git.cafe/lucenx/signaltty/commit/9f1ead01675ba9d6804bff4207afe4df9959b987?format=markdown) — 9f1ead01675ba9d6804bff4207afe4df9959b987; Simone

- [Fix IPC framing, leaks and lifecycle bugs found by multi-model review \(\#6\)](https://git.cafe/lucenx/signaltty/commit/a8e1afd99eb46f8cd2f9c2ccffbc3f35a057748a?format=markdown) — a8e1afd99eb46f8cd2f9c2ccffbc3f35a057748a; Simone

- [gui: raise the approval card and drop the header path \(\#5\)](https://git.cafe/lucenx/signaltty/commit/60f9af6f80e09840e1738fc2edfeebd7ccfa0128?format=markdown) — 60f9af6f80e09840e1738fc2edfeebd7ccfa0128; Simone

- [Merge pull request \#4 from Lucenx9/t3code/review-cmux-hedr](https://git.cafe/lucenx/signaltty/commit/e55dcc956c3c277397495ed12f7912ced33d2a33?format=markdown) — e55dcc956c3c277397495ed12f7912ced33d2a33; Simone

- [Merge pull request \#3 from Lucenx9/t3code/improve-visual-quality](https://git.cafe/lucenx/signaltty/commit/f70cd5125fa7ceb1310aef07637572de49f08cec?format=markdown) — f70cd5125fa7ceb1310aef07637572de49f08cec; Simone

- [Merge pull request \#2 from Lucenx9/t3code/migliora-qualita-visiva](https://git.cafe/lucenx/signaltty/commit/de84caf26c1ec0191569a9a6dce85fb83d5e4bb1?format=markdown) — de84caf26c1ec0191569a9a6dce85fb83d5e4bb1; Simone

- [Merge pull request \#1 from Lucenx9/015-agent-ready-repository](https://git.cafe/lucenx/signaltty/commit/4240f619f39050761ae52b315e26e77795ac0619?format=markdown) — 4240f619f39050761ae52b315e26e77795ac0619; Simone

- [gui: add bounded per-file diff review](https://git.cafe/lucenx/signaltty/commit/bb91637052ddf92f2942b6963977222f739b1d78?format=markdown) — bb91637052ddf92f2942b6963977222f739b1d78; Lucenx9

- [agents: record live Claude approval channel probes](https://git.cafe/lucenx/signaltty/commit/edf10ce972b46c5438599a80c6a339cc883a5e00?format=markdown) — edf10ce972b46c5438599a80c6a339cc883a5e00; Lucenx9

- [qa: record local workflow verification and proof limits](https://git.cafe/lucenx/signaltty/commit/880e3cef367578103a604bfacf25d9d864435adb?format=markdown) — 880e3cef367578103a604bfacf25d9d864435adb; Lucenx9

- [gui: add palette search zoom and local Git dialogs](https://git.cafe/lucenx/signaltty/commit/f98c9624ab5e2f7f3f72561509a515ddb82ca650?format=markdown) — f98c9624ab5e2f7f3f72561509a515ddb82ca650; Lucenx9

- [server: support native permission replies and local worktrees](https://git.cafe/lucenx/signaltty/commit/64d557f86c7889840cb658e6893470f180423414?format=markdown) — 64d557f86c7889840cb658e6893470f180423414; Lucenx9

- [docs: specify local agent workflows](https://git.cafe/lucenx/signaltty/commit/1f05e5f406a7c39de559f9ad78757e3894b8ac61?format=markdown) — 1f05e5f406a7c39de559f9ad78757e3894b8ac61; Lucenx9

- [gui: clarify sidebar and pane visual hierarchy](https://git.cafe/lucenx/signaltty/commit/2255f26d239a820fd4b54a9b727ea1b7263ce64c?format=markdown) — 2255f26d239a820fd4b54a9b727ea1b7263ce64c; Lucenx9

- [qa: record verified Codex pane runtime isolation](https://git.cafe/lucenx/signaltty/commit/97d9aadc07c9ee988e0d37432b71514a7fa72fcd?format=markdown) — 97d9aadc07c9ee988e0d37432b71514a7fa72fcd; Lucenx9

- [server: isolate Codex hook runtime per pane](https://git.cafe/lucenx/signaltty/commit/1a2d5cee8268d26767bba665ddfdc0804dd8ae8c?format=markdown) — 1a2d5cee8268d26767bba665ddfdc0804dd8ae8c; Lucenx9

- [qa: record successful automatic hook delivery](https://git.cafe/lucenx/signaltty/commit/7775d3ddaa95f67213720987060e316b68581e55?format=markdown) — 7775d3ddaa95f67213720987060e316b68581e55; Lucenx9

- [agents: configure hooks automatically before direct launches](https://git.cafe/lucenx/signaltty/commit/6cd930b9d46f94c0194a47a2a44a391cdff8620a?format=markdown) — 6cd930b9d46f94c0194a47a2a44a391cdff8620a; Lucenx9

- [qa: record successful UI delivery checks](https://git.cafe/lucenx/signaltty/commit/375fc8f138bb96757a2efa6f4a12c8313b87a997?format=markdown) — 375fc8f138bb96757a2efa6f4a12c8313b87a997; Lucenx9

- [qa: record native UI refinement verification](https://git.cafe/lucenx/signaltty/commit/8aa5f847494ed28a3d0651f534f00271280edca6?format=markdown) — 8aa5f847494ed28a3d0651f534f00271280edca6; Lucenx9

- [gui: refine approvals focus and native motion](https://git.cafe/lucenx/signaltty/commit/d2de1efd20c6b4ea6493dca803038198c60b4cb8?format=markdown) — d2de1efd20c6b4ea6493dca803038198c60b4cb8; Lucenx9

- [qa: record successful remote reliability checks](https://git.cafe/lucenx/signaltty/commit/fbe9409469e5f1b12c20d7f627e1674ba2806fd7?format=markdown) — fbe9409469e5f1b12c20d7f627e1674ba2806fd7; Lucenx9

- [test: isolate agent detection and resume from provider installs](https://git.cafe/lucenx/signaltty/commit/d89d53a9bb0f663d3d9f09913df48ff4ac3efdc6?format=markdown) — d89d53a9bb0f663d3d9f09913df48ff4ac3efdc6; Lucenx9

- [qa: document CI dependency correction](https://git.cafe/lucenx/signaltty/commit/ae116f1c41a78aec0ebd2ded80e244cdc9959e68?format=markdown) — ae116f1c41a78aec0ebd2ded80e244cdc9959e68; Lucenx9

- [ci: use Ubuntu 26.04 for required GTK dependencies](https://git.cafe/lucenx/signaltty/commit/b0433edc4ff6bb70d6d09872426db580329facc9?format=markdown) — b0433edc4ff6bb70d6d09872426db580329facc9; Lucenx9

- [qa: record verified publication to main](https://git.cafe/lucenx/signaltty/commit/e014e0d395a98745d929aacfff7fea3cfb71b09a?format=markdown) — e014e0d395a98745d929aacfff7fea3cfb71b09a; Lucenx9

- [qa: verify reliability fixes with native GTK regression probes](https://git.cafe/lucenx/signaltty/commit/87410c23f2ba5055605d463a75dceac2287a025a?format=markdown) — 87410c23f2ba5055605d463a75dceac2287a025a; Lucenx9

- [gui: await IPC without blocking and recover terminal snapshots](https://git.cafe/lucenx/signaltty/commit/3789618b8572a22f2e0a84b262dd183245d3e803?format=markdown) — 3789618b8572a22f2e0a84b262dd183245d3e803; Lucenx9

- [gui: derive current activity from live process state](https://git.cafe/lucenx/signaltty/commit/4e3713441be77a77cdfcf41c1c5c8a95b950f3cc?format=markdown) — 4e3713441be77a77cdfcf41c1c5c8a95b950f3cc; Lucenx9

- [gui: present the existing window on repeated activation](https://git.cafe/lucenx/signaltty/commit/d31be55252a10a130923a5bb19047b172d70b02b?format=markdown) — d31be55252a10a130923a5bb19047b172d70b02b; Lucenx9

- [server: order attach snapshots and preserve connected streams](https://git.cafe/lucenx/signaltty/commit/f1722b0c1e7d6259c3b13742e7b43380f79fb274?format=markdown) — f1722b0c1e7d6259c3b13742e7b43380f79fb274; Lucenx9

- [server: enforce pane ownership through spawn resume and close](https://git.cafe/lucenx/signaltty/commit/48e970aa568c2da37fc28b881e271c3a47d424a5?format=markdown) — 48e970aa568c2da37fc28b881e271c3a47d424a5; Lucenx9

- [server: preserve approval gates until an answer or agent transition](https://git.cafe/lucenx/signaltty/commit/3c583eeb9bd9a17bb9d71b9c4c55183a59f30aa0?format=markdown) — 3c583eeb9bd9a17bb9d71b9c4c55183a59f30aa0; Lucenx9

- [layouts: validate unique panes and normalize divider ratios](https://git.cafe/lucenx/signaltty/commit/f47551e2cd84d4359ae6075eb29d2717d704cfa0?format=markdown) — f47551e2cd84d4359ae6075eb29d2717d704cfa0; Lucenx9

- [qa: record reliability failures and approved fix plan](https://git.cafe/lucenx/signaltty/commit/315ad00127d349d53f7635cf29831ee11d75d2da?format=markdown) — 315ad00127d349d53f7635cf29831ee11d75d2da; Lucenx9

- [gui: instant status-close swap, no overlapping fade](https://git.cafe/lucenx/signaltty/commit/649d8eb2167d9b9bed2094e115f5471b89f7eb34?format=markdown) — 649d8eb2167d9b9bed2094e115f5471b89f7eb34; Lucenx9

- [gui: stable sidebar order plus disambiguated same-name rows](https://git.cafe/lucenx/signaltty/commit/d4b823f3d9d62bf68ad4e790d0fa1b17b4ea0259?format=markdown) — d4b823f3d9d62bf68ad4e790d0fa1b17b4ea0259; Lucenx9

- [gui: instant tab replacement on workspace switch](https://git.cafe/lucenx/signaltty/commit/b25d413541928df114e37ccda4395b68f2858f1b?format=markdown) — b25d413541928df114e37ccda4395b68f2858f1b; Lucenx9

- [docs: visual references from Geist and Linear](https://git.cafe/lucenx/signaltty/commit/e4aeb9d5e67af4d13806d4c6d3092ab6c603004d?format=markdown) — e4aeb9d5e67af4d13806d4c6d3092ab6c603004d; Lucenx9

More commits follow; continue with `GET /api/repos/lucenx/signaltty/commits?after=ImZkYTVhNTRhOTFiZGFiOWUxYzZmMWUwZmNhZTRmOWE2NjFhNTc4MDUi`.
