@omg-dev/app 0.1.308

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/LICENSE +21 -0
  2. package/dist-lib/BrowserProfiles-BKqSwtW3.js +650 -0
  3. package/dist-lib/ChangelogPage-DUF8wn1F.js +2978 -0
  4. package/dist-lib/File-BszRWhXA.js +5866 -0
  5. package/dist-lib/FileEditor-ByMnm-sa.js +6892 -0
  6. package/dist-lib/FileTreePane-BG2k7gTc.js +8422 -0
  7. package/dist-lib/FileViewer-DgjR_OJp.js +18 -0
  8. package/dist-lib/SessionFilesPanel-Brfp2niD.js +336 -0
  9. package/dist-lib/TermView-BNcp4mex.js +4000 -0
  10. package/dist-lib/__vite-browser-external-2447137e-DYxpcVy9.js +4 -0
  11. package/dist-lib/_commonjsHelpers-C6fGbg64.js +6 -0
  12. package/dist-lib/abap-Y8Dl9g_6.js +6 -0
  13. package/dist-lib/abnfDiagram-VRR7QNED-Chn1Z_p9.js +87 -0
  14. package/dist-lib/actionscript-3-DQVEcJUW.js +6 -0
  15. package/dist-lib/ada-vP6ak0IW.js +6 -0
  16. package/dist-lib/agent-claude.svg +1 -0
  17. package/dist-lib/agent-codex.svg +1 -0
  18. package/dist-lib/agent-copilot.svg +1 -0
  19. package/dist-lib/agent-cursor.svg +4 -0
  20. package/dist-lib/agent-grok.svg +1 -0
  21. package/dist-lib/agent-hermes.svg +9 -0
  22. package/dist-lib/agent-opencode.svg +1 -0
  23. package/dist-lib/agent-pi.svg +7 -0
  24. package/dist-lib/andromeeda-BbmzSJq1.js +4 -0
  25. package/dist-lib/angular-html-DPB4Rf0C.js +32 -0
  26. package/dist-lib/angular-ts-CTOR2ofC.js +21 -0
  27. package/dist-lib/apache-BUjz-sD2.js +6 -0
  28. package/dist-lib/apex-OyTfjCYK.js +6 -0
  29. package/dist-lib/apl-CjNiDgad.js +16 -0
  30. package/dist-lib/apple-touch-icon.png +0 -0
  31. package/dist-lib/applescript-BPx7YFFu.js +6 -0
  32. package/dist-lib/ara-Z2fSOxSw.js +6 -0
  33. package/dist-lib/arc-B652oHQ-.js +83 -0
  34. package/dist-lib/architectureDiagram-ZJ3FMSHR-CMatArpz.js +4762 -0
  35. package/dist-lib/asciidoc-C1T9ziH6.js +6 -0
  36. package/dist-lib/asm-BTWLY5ym.js +6 -0
  37. package/dist-lib/astro-CFFExE8Q.js +18 -0
  38. package/dist-lib/aurora-x-BwoVEUWZ.js +4 -0
  39. package/dist-lib/awk-Fb0P9dkn.js +6 -0
  40. package/dist-lib/ayu-dark-DJoqd4M9.js +4 -0
  41. package/dist-lib/ayu-light-BzXEJRJ-.js +4 -0
  42. package/dist-lib/ayu-mirage-BJ2oZGzi.js +4 -0
  43. package/dist-lib/badge-CgdKT4o8.js +46 -0
  44. package/dist-lib/ballerina-oZK-YekG.js +6 -0
  45. package/dist-lib/bat-0FvbqU9S.js +6 -0
  46. package/dist-lib/beancount-DqJEb89h.js +6 -0
  47. package/dist-lib/berry-DODBq_Ff.js +6 -0
  48. package/dist-lib/bibtex-EULQRLY5.js +6 -0
  49. package/dist-lib/bicep-BorU73w0.js +6 -0
  50. package/dist-lib/bird2-CIjBSNj3.js +6 -0
  51. package/dist-lib/blade-D0HyNvCw.js +20 -0
  52. package/dist-lib/blockDiagram-677ZJIJ3-CEOPfI9A.js +2429 -0
  53. package/dist-lib/bsl-NkNNwerW.js +8 -0
  54. package/dist-lib/c-eeMepfLm.js +6 -0
  55. package/dist-lib/c3-BY5XW5ym.js +6 -0
  56. package/dist-lib/c4Diagram-LMCZKHZV-DcUHrESL.js +1578 -0
  57. package/dist-lib/cadence-02UX7mW8.js +6 -0
  58. package/dist-lib/cairo-DM6WF2e3.js +8 -0
  59. package/dist-lib/catppuccin-frappe-D3cH2rXe.js +4 -0
  60. package/dist-lib/catppuccin-latte-C0LRGUW4.js +4 -0
  61. package/dist-lib/catppuccin-macchiato-c5wQ11TT.js +4 -0
  62. package/dist-lib/catppuccin-mocha-WMD6Qvya.js +4 -0
  63. package/dist-lib/channel-B5lJFbed.js +5 -0
  64. package/dist-lib/chat-engine-BeMpvOlJ.js +7272 -0
  65. package/dist-lib/chunk-2Q5K7J3B-Ex8Ly28R.js +15 -0
  66. package/dist-lib/chunk-32BRIVSS-IYmNSvH8.js +68 -0
  67. package/dist-lib/chunk-5VM5RSS4-DO2g-xIj.js +19 -0
  68. package/dist-lib/chunk-EX3LRPZG-N96wfks9.js +1421 -0
  69. package/dist-lib/chunk-JWPE2WC7-DFPBClX_.js +9 -0
  70. package/dist-lib/chunk-MOJQB5TN-dusfI9ob.js +664 -0
  71. package/dist-lib/chunk-RYQCIY6F-fkeERzIG.js +315 -0
  72. package/dist-lib/chunk-V7JOEXUC-DQwf2vkP.js +1534 -0
  73. package/dist-lib/chunk-VR4S4FIN-hOZG7eF3.js +20 -0
  74. package/dist-lib/chunk-XXDRQBXY-Ccv4aRcn.js +8 -0
  75. package/dist-lib/clarity-PKm5CwqM.js +6 -0
  76. package/dist-lib/classDiagram-OUVF2IWQ-DOn-rhuL.js +16 -0
  77. package/dist-lib/classDiagram-v2-EOCWNBFH-DOn-rhuL.js +16 -0
  78. package/dist-lib/clipboard-paste-Cq1hNjMN.js +17 -0
  79. package/dist-lib/clojure-CXJfHrL3.js +6 -0
  80. package/dist-lib/cmake-BJz8BOTU.js +6 -0
  81. package/dist-lib/cobol-HihOMwht.js +10 -0
  82. package/dist-lib/codeowners-Bt9yU6NX.js +6 -0
  83. package/dist-lib/codeql-DHkodjjI.js +6 -0
  84. package/dist-lib/coding-agents-page-7V7PKijy.js +209 -0
  85. package/dist-lib/coffee-DGBR_nr_.js +8 -0
  86. package/dist-lib/common-lisp-EVqT9Zhp.js +6 -0
  87. package/dist-lib/coq-B0L9upzn.js +6 -0
  88. package/dist-lib/cose-bilkent-JH36ORCC-C-tACTrT.js +2609 -0
  89. package/dist-lib/cpp-Cj177cuW.js +18 -0
  90. package/dist-lib/create-BrnHvSDE.js +306 -0
  91. package/dist-lib/crystal-CRJyc4G-.js +18 -0
  92. package/dist-lib/csharp-CCgA4A09.js +6 -0
  93. package/dist-lib/css-CECN5uSL.js +6 -0
  94. package/dist-lib/csv-CmYOceLb.js +6 -0
  95. package/dist-lib/cue-ZzumE7IT.js +6 -0
  96. package/dist-lib/cynefin-VYW2F7L2-DQXPWaog.js +23853 -0
  97. package/dist-lib/cynefinDiagram-TSTJHNR4-Be7CamD2.js +299 -0
  98. package/dist-lib/cypher-jpdmjtA6.js +6 -0
  99. package/dist-lib/cytoscape.esm-B0ledd6M.js +18786 -0
  100. package/dist-lib/d-CBagWSwH.js +6 -0
  101. package/dist-lib/dagre-VKFMJZFB-BhCjK7XQ.js +346 -0
  102. package/dist-lib/dark-plus-pUHDTVV0.js +4 -0
  103. package/dist-lib/dart-6ObCrKr9.js +6 -0
  104. package/dist-lib/dax-CcDT-8dH.js +6 -0
  105. package/dist-lib/defaultLocale-BgPVtth8.js +171 -0
  106. package/dist-lib/desktop-B93p9R9O.js +6 -0
  107. package/dist-lib/diagram-FQU43EPY-Jg12ow4Z.js +466 -0
  108. package/dist-lib/diagram-G47NLZAW-C3_z2t6T.js +530 -0
  109. package/dist-lib/diagram-NH7WQ7WH-DUdK08IT.js +143 -0
  110. package/dist-lib/diagram-OA4YK3LP-TUUyRYY3.js +353 -0
  111. package/dist-lib/diagram-WEI45ONY-D1kKPOc_.js +221 -0
  112. package/dist-lib/diff-BxzP2J8R.js +6 -0
  113. package/dist-lib/docker-CsHqm9tx.js +6 -0
  114. package/dist-lib/dotenv-BMjVjUL1.js +6 -0
  115. package/dist-lib/dracula-BtZx2Kac.js +4 -0
  116. package/dist-lib/dracula-soft-BKa-aqBv.js +4 -0
  117. package/dist-lib/dream-maker-PAx17jaB.js +6 -0
  118. package/dist-lib/ebnfDiagram-CCIWWBDH-BhQWrGMc.js +109 -0
  119. package/dist-lib/edge-BYQkOzbF.js +12 -0
  120. package/dist-lib/elixir-Dh036GMp.js +8 -0
  121. package/dist-lib/elm-BtNbw_Cd.js +8 -0
  122. package/dist-lib/emacs-lisp-Cfxdx5D-.js +6 -0
  123. package/dist-lib/embedded-DS7udW2I.js +41876 -0
  124. package/dist-lib/engine-compile-BeZvvx0I.js +10442 -0
  125. package/dist-lib/erDiagram-Q63AITRT-D2q6Nmwa.js +911 -0
  126. package/dist-lib/erb-ScVOXVpH.js +10 -0
  127. package/dist-lib/erlang-DNcDT8Hi.js +8 -0
  128. package/dist-lib/everforest-dark-DMCBqXCK.js +4 -0
  129. package/dist-lib/everforest-light-BbXl82Em.js +4 -0
  130. package/dist-lib/fennel-N4WcXuKx.js +6 -0
  131. package/dist-lib/fish-BTDEUgqH.js +6 -0
  132. package/dist-lib/flowDiagram-23GEKE2U-DU3S3biU.js +1645 -0
  133. package/dist-lib/fluent-BMXUxfv1.js +6 -0
  134. package/dist-lib/fortran-fixed-form-B67KFkXH.js +8 -0
  135. package/dist-lib/fortran-free-form-CwqYvCLJ.js +6 -0
  136. package/dist-lib/fsharp-CYOiIVNx.js +8 -0
  137. package/dist-lib/ganttDiagram-NO4QXBWP-C_Lj-cJB.js +2712 -0
  138. package/dist-lib/gdresource-CvCIUjhi.js +10 -0
  139. package/dist-lib/gdscript-DSAxJ_aS.js +6 -0
  140. package/dist-lib/gdshader-Bk8fF6yr.js +6 -0
  141. package/dist-lib/genie-DzUvd7U9.js +6 -0
  142. package/dist-lib/gherkin-DHRaV0YP.js +6 -0
  143. package/dist-lib/git-commit-Bd32YZ0K.js +8 -0
  144. package/dist-lib/git-rebase-ZWUFO_T4.js +8 -0
  145. package/dist-lib/gitGraphDiagram-IHSO6WYX-CvGu0XAR.js +828 -0
  146. package/dist-lib/github-dark-DenFmJkN.js +4 -0
  147. package/dist-lib/github-dark-default-BJPUVz4H.js +4 -0
  148. package/dist-lib/github-dark-dimmed-DUshB20C.js +4 -0
  149. package/dist-lib/github-dark-high-contrast-D3aGCnF8.js +4 -0
  150. package/dist-lib/github-light-JYsPkUQd.js +4 -0
  151. package/dist-lib/github-light-default-D99KPAby.js +4 -0
  152. package/dist-lib/github-light-high-contrast-BbmZE-Mp.js +4 -0
  153. package/dist-lib/gleam-Bv284lvN.js +6 -0
  154. package/dist-lib/glimmer-js-DkxNrfPT.js +14 -0
  155. package/dist-lib/glimmer-ts-D6YZEmK_.js +14 -0
  156. package/dist-lib/glsl-CkUcVZNK.js +8 -0
  157. package/dist-lib/gn-XtJxiLa4.js +6 -0
  158. package/dist-lib/gnuplot-yPG9-sE_.js +6 -0
  159. package/dist-lib/go-CvFNMTvu.js +6 -0
  160. package/dist-lib/graph-B68L3K2T.js +1545 -0
  161. package/dist-lib/graphql-CBu2ehBn.js +14 -0
  162. package/dist-lib/groovy-CJQTphOW.js +6 -0
  163. package/dist-lib/gruvbox-dark-hard-C5HOtKIh.js +4 -0
  164. package/dist-lib/gruvbox-dark-medium-FVgwJHuz.js +4 -0
  165. package/dist-lib/gruvbox-dark-soft-B46F314v.js +4 -0
  166. package/dist-lib/gruvbox-light-hard-CJD38wDZ.js +4 -0
  167. package/dist-lib/gruvbox-light-medium-BlIhMYTA.js +4 -0
  168. package/dist-lib/gruvbox-light-soft-DoPHyLVZ.js +4 -0
  169. package/dist-lib/hack-ItRNKiEb.js +10 -0
  170. package/dist-lib/haml-NZLVzu_R.js +10 -0
  171. package/dist-lib/handlebars-mxStpSE7.js +14 -0
  172. package/dist-lib/haskell-WeIwNIP6.js +6 -0
  173. package/dist-lib/haxe-TztHsm5T.js +6 -0
  174. package/dist-lib/hcl-D438OF-I.js +6 -0
  175. package/dist-lib/highlighted-body-OFNGDK62-B2IXPhCU.js +19 -0
  176. package/dist-lib/hjson-DYBUbqOl.js +6 -0
  177. package/dist-lib/hlsl-Bk8TCZNL.js +6 -0
  178. package/dist-lib/horizon-CJQ10nlf.js +4 -0
  179. package/dist-lib/horizon-bright-CdkBZOMB.js +4 -0
  180. package/dist-lib/houston-BDYrDoDW.js +4 -0
  181. package/dist-lib/html-B50bmoVb.js +10 -0
  182. package/dist-lib/html-derivative-C6bxFbFW.js +8 -0
  183. package/dist-lib/http-DLvAkeD-.js +14 -0
  184. package/dist-lib/hurl-CgkFN90t.js +12 -0
  185. package/dist-lib/hxml-GbqSQCLa.js +8 -0
  186. package/dist-lib/hy-Brt5EZ7-.js +6 -0
  187. package/dist-lib/icon-192.png +0 -0
  188. package/dist-lib/icon-512.png +0 -0
  189. package/dist-lib/icon-maskable-512.png +0 -0
  190. package/dist-lib/icon-maskable.svg +16 -0
  191. package/dist-lib/icon-small.svg +19 -0
  192. package/dist-lib/icon.svg +19 -0
  193. package/dist-lib/imba-CimUv-Uh.js +6 -0
  194. package/dist-lib/index-DhYD46ms.js +5062 -0
  195. package/dist-lib/index-JkCQXUYs.js +16566 -0
  196. package/dist-lib/index-npuLMlPS.js +746 -0
  197. package/dist-lib/index.d.ts +95 -0
  198. package/dist-lib/index.js +8 -0
  199. package/dist-lib/infoDiagram-FWYZ7A6U-BbUkT0KS.js +24 -0
  200. package/dist-lib/ini-BZIuRIvJ.js +6 -0
  201. package/dist-lib/init-DjUOC4st.js +16 -0
  202. package/dist-lib/ishikawaDiagram-FXEZZL3T-D_Y6Tuyb.js +622 -0
  203. package/dist-lib/java-DY6VlHhP.js +6 -0
  204. package/dist-lib/javascript-C25yR2R2.js +6 -0
  205. package/dist-lib/jinja-CFW5uAwY.js +11 -0
  206. package/dist-lib/jison-DdreslRX.js +8 -0
  207. package/dist-lib/journeyDiagram-5HDEW3XC-CgykmVSC.js +834 -0
  208. package/dist-lib/json-DxJze_jm.js +6 -0
  209. package/dist-lib/json5-BT4Fjg39.js +6 -0
  210. package/dist-lib/jsonc-CHjZD8gR.js +6 -0
  211. package/dist-lib/jsonl-BGuvDmy9.js +6 -0
  212. package/dist-lib/jsonnet-Bx2cfsXg.js +6 -0
  213. package/dist-lib/jssm-BcADi6EI.js +6 -0
  214. package/dist-lib/jsx-BtKADgXT.js +6 -0
  215. package/dist-lib/julia-CZiKXNNP.js +16 -0
  216. package/dist-lib/just-CEK2SJ_k.js +18 -0
  217. package/dist-lib/kanagawa-dragon-CiKur4Hl.js +4 -0
  218. package/dist-lib/kanagawa-lotus-BKu-smKu.js +4 -0
  219. package/dist-lib/kanagawa-wave-CQwozSzG.js +4 -0
  220. package/dist-lib/kanban-definition-HUTT4EX6-CPFLTskY.js +726 -0
  221. package/dist-lib/katex-jHfnQmlp.js +11682 -0
  222. package/dist-lib/kdl-BNOv9TC3.js +6 -0
  223. package/dist-lib/kotlin-ByBMgTeR.js +6 -0
  224. package/dist-lib/kusto-DH_XitHS.js +6 -0
  225. package/dist-lib/laserwave-6a00oqik.js +4 -0
  226. package/dist-lib/latex-B8Egmqc5.js +8 -0
  227. package/dist-lib/layout-BGrtsiRL.js +1519 -0
  228. package/dist-lib/lean-BnVxaZxY.js +6 -0
  229. package/dist-lib/less-B1GLI2Di.js +6 -0
  230. package/dist-lib/light-plus-CZuVqSLX.js +4 -0
  231. package/dist-lib/linear-B5ZSwawJ.js +259 -0
  232. package/dist-lib/liquid-CHzkx3jT.js +14 -0
  233. package/dist-lib/llvm-Bk2XctFf.js +6 -0
  234. package/dist-lib/log-Al8wyEFV.js +6 -0
  235. package/dist-lib/logo-DBa4JDzV.js +6 -0
  236. package/dist-lib/lua-Bp3IRv7I.js +8 -0
  237. package/dist-lib/luau-UQyhudEE.js +6 -0
  238. package/dist-lib/make-CsMclxtr.js +6 -0
  239. package/dist-lib/manifest.webmanifest +19 -0
  240. package/dist-lib/map-hbfFlSln.js +224 -0
  241. package/dist-lib/markdown-CrScaQ96.js +6 -0
  242. package/dist-lib/marko-CJBA24Ri.js +14 -0
  243. package/dist-lib/material-theme-D6KBX41T.js +4 -0
  244. package/dist-lib/material-theme-darker-CkRroheE.js +4 -0
  245. package/dist-lib/material-theme-lighter-BUBw43Yz.js +4 -0
  246. package/dist-lib/material-theme-ocean-ClGX14Ja.js +4 -0
  247. package/dist-lib/material-theme-palenight-C1RVm8K1.js +4 -0
  248. package/dist-lib/matlab-BOAaUVP0.js +6 -0
  249. package/dist-lib/mdc-C9YSUwVC.js +12 -0
  250. package/dist-lib/mdx-BOhZZUJ8.js +6 -0
  251. package/dist-lib/mermaid-C3rz4dYh.js +6 -0
  252. package/dist-lib/mermaid-GHXKKRXX-BepkNUDb.js +4 -0
  253. package/dist-lib/min-dark-C7ak0t6c.js +4 -0
  254. package/dist-lib/min-light-CKFxVcPp.js +4 -0
  255. package/dist-lib/mindmap-definition-LN4V7U3C-CfhfeEht.js +831 -0
  256. package/dist-lib/mipsasm-CTx18fBl.js +6 -0
  257. package/dist-lib/mojo-EIZIZRTQ.js +6 -0
  258. package/dist-lib/monokai-C1KBYcO0.js +4 -0
  259. package/dist-lib/moonbit-B1TV0fG3.js +6 -0
  260. package/dist-lib/move-Db4ltDq1.js +6 -0
  261. package/dist-lib/narrat-DmhDCBs-.js +6 -0
  262. package/dist-lib/nextflow-47kAzSl1.js +8 -0
  263. package/dist-lib/nextflow-groovy-Drz_2V0j.js +6 -0
  264. package/dist-lib/nginx-D7O4WoB1.js +8 -0
  265. package/dist-lib/night-owl-Bm2rzalh.js +4 -0
  266. package/dist-lib/night-owl-light-CBI5u5kw.js +4 -0
  267. package/dist-lib/nim-QAjRdh9w.js +20 -0
  268. package/dist-lib/nix-fTRXMGic.js +9 -0
  269. package/dist-lib/nord-CC5OiUXg.js +4 -0
  270. package/dist-lib/nushell-BGCPRlV5.js +6 -0
  271. package/dist-lib/objective-c-Itk8tzmv.js +6 -0
  272. package/dist-lib/objective-cpp-DGt5UKRO.js +6 -0
  273. package/dist-lib/ocaml-eSVK32Eg.js +6 -0
  274. package/dist-lib/odin-BItnF517.js +6 -0
  275. package/dist-lib/one-dark-pro-DTA3VF0_.js +4 -0
  276. package/dist-lib/one-light-LkMrt1Cf.js +4 -0
  277. package/dist-lib/openscad-Sp5uZ6f2.js +6 -0
  278. package/dist-lib/ordinal-DfAQgscy.js +61 -0
  279. package/dist-lib/pascal-xy8pJNns.js +6 -0
  280. package/dist-lib/pegDiagram-2B236MQR-CYDAJHPF.js +95 -0
  281. package/dist-lib/perl-DkVrgJBg.js +16 -0
  282. package/dist-lib/php-BIzsF_5x.js +18 -0
  283. package/dist-lib/pieDiagram-ENE6RG2P-udKxQm4p.js +209 -0
  284. package/dist-lib/pierre-dark-D52vmD1t.js +4 -0
  285. package/dist-lib/pierre-dark-protanopia-deuteranopia-Coza2ydH.js +4 -0
  286. package/dist-lib/pierre-dark-soft-D0o08Lfm.js +4 -0
  287. package/dist-lib/pierre-dark-tritanopia-BP-A_WyN.js +4 -0
  288. package/dist-lib/pierre-dark-vibrant-BjUzbiGn.js +4 -0
  289. package/dist-lib/pierre-light-CzM3AfLn.js +4 -0
  290. package/dist-lib/pierre-light-protanopia-deuteranopia-DFclCKch.js +4 -0
  291. package/dist-lib/pierre-light-soft-m3tr_5b6.js +4 -0
  292. package/dist-lib/pierre-light-tritanopia-Dh0MAsTp.js +4 -0
  293. package/dist-lib/pierre-light-vibrant-BZSORskK.js +4 -0
  294. package/dist-lib/pkl-C-zSNmaA.js +6 -0
  295. package/dist-lib/plastic-CSTz3KZp.js +4 -0
  296. package/dist-lib/plsql-pVbGZfOv.js +6 -0
  297. package/dist-lib/po-BNfHvqmm.js +6 -0
  298. package/dist-lib/poimandres-C-VADXHD.js +4 -0
  299. package/dist-lib/polar-CAZahv3u.js +6 -0
  300. package/dist-lib/postcss-05aHdL-n.js +6 -0
  301. package/dist-lib/powerquery-DI9HkTvs.js +6 -0
  302. package/dist-lib/powershell-Clc4ydu-.js +6 -0
  303. package/dist-lib/prisma-FZjmVtSl.js +6 -0
  304. package/dist-lib/prolog-C5-yg4TO.js +6 -0
  305. package/dist-lib/proto-C7QgialS.js +6 -0
  306. package/dist-lib/pug-XOw9Q1Ho.js +12 -0
  307. package/dist-lib/puppet-CUJHmnxV.js +6 -0
  308. package/dist-lib/purescript-rUfGld-4.js +6 -0
  309. package/dist-lib/python-BFNSHbwJ.js +6 -0
  310. package/dist-lib/qml-rTNXsquU.js +8 -0
  311. package/dist-lib/qmldir-BInDYbpo.js +6 -0
  312. package/dist-lib/qss-AeJTysr_.js +6 -0
  313. package/dist-lib/quadrantDiagram-ABIIQ3AL-BmDmLczk.js +1025 -0
  314. package/dist-lib/r-CSmzDPi7.js +6 -0
  315. package/dist-lib/racket-B83wSAja.js +6 -0
  316. package/dist-lib/railroadDiagram-RFXS5EU6-q0Svkmuy.js +77 -0
  317. package/dist-lib/raku-nEQ4ZJJ7.js +6 -0
  318. package/dist-lib/razor-Ci8D0dQK.js +10 -0
  319. package/dist-lib/red-7y8PH7HH.js +4 -0
  320. package/dist-lib/reg-m_s_Kiip.js +6 -0
  321. package/dist-lib/regexp-BazyLpPg.js +6 -0
  322. package/dist-lib/rel-BcRfyd6Q.js +6 -0
  323. package/dist-lib/requirementDiagram-TGXJPOKE-tNxRI1gc.js +884 -0
  324. package/dist-lib/resume-session-sheet-YCOfKuXl.js +316 -0
  325. package/dist-lib/riscv-Ce8MAQLP.js +6 -0
  326. package/dist-lib/ron-DCEEQypA.js +6 -0
  327. package/dist-lib/rose-pine-BKc3yVeu.js +4 -0
  328. package/dist-lib/rose-pine-dawn-BulJcPZT.js +4 -0
  329. package/dist-lib/rose-pine-moon-j6jiXKV8.js +4 -0
  330. package/dist-lib/rosmsg-Cz0w1km8.js +6 -0
  331. package/dist-lib/rst-DM32Wy3O.js +22 -0
  332. package/dist-lib/ruby-BeqCs27h.js +30 -0
  333. package/dist-lib/rust-CLzF9zIN.js +6 -0
  334. package/dist-lib/sankeyDiagram-HTMAVEWB-B9Bl7f2P.js +847 -0
  335. package/dist-lib/sas-fpEvgATw.js +8 -0
  336. package/dist-lib/sass-DxHp5rTx.js +6 -0
  337. package/dist-lib/scala-D4grkFkl.js +6 -0
  338. package/dist-lib/scheme-BCRWuEm4.js +6 -0
  339. package/dist-lib/scss-B1FaCqwR.js +8 -0
  340. package/dist-lib/sdbl-B7T8abf4.js +6 -0
  341. package/dist-lib/sequenceDiagram-DBY2YBRQ-Dvl2_CXL.js +2898 -0
  342. package/dist-lib/session-token-usage-DIMXh6Pi.js +236 -0
  343. package/dist-lib/shaderlab-Cr62-Wb4.js +8 -0
  344. package/dist-lib/shadow-text-size-CBCTdbYU.js +39 -0
  345. package/dist-lib/shellscript-InADTalH.js +6 -0
  346. package/dist-lib/shellsession-DiDJNQdy.js +8 -0
  347. package/dist-lib/shipped-page-D51HiXpe.js +574 -0
  348. package/dist-lib/sizeCapture-X5ZJPWSS-B1EeO3N9.js +47 -0
  349. package/dist-lib/slack-dark-i7wN4OET.js +4 -0
  350. package/dist-lib/slack-ochin-ndHf0LoP.js +4 -0
  351. package/dist-lib/smalltalk-BlI1_OkM.js +6 -0
  352. package/dist-lib/snazzy-light-BlSJXAu4.js +4 -0
  353. package/dist-lib/solarized-dark-UTmkh7lw.js +4 -0
  354. package/dist-lib/solarized-light-BheCkDPT.js +4 -0
  355. package/dist-lib/solidity-DUWnFhS6.js +6 -0
  356. package/dist-lib/soy-C1-6njHa.js +8 -0
  357. package/dist-lib/sparql-B0KWFEri.js +8 -0
  358. package/dist-lib/splunk-CRXR8A9s.js +6 -0
  359. package/dist-lib/sql-Cn_v3PB0.js +6 -0
  360. package/dist-lib/ssh-config-DP-hNVbF.js +6 -0
  361. package/dist-lib/stata-B8c5fTjX.js +8 -0
  362. package/dist-lib/stateDiagram-2N3HPSRC-CnWB7HvU.js +263 -0
  363. package/dist-lib/stateDiagram-v2-6OUMAXLB-DnZ0UI2p.js +16 -0
  364. package/dist-lib/streamdown-response-DPrve_Vt.js +20929 -0
  365. package/dist-lib/styles.css +1 -0
  366. package/dist-lib/stylus-CyKEU1Ej.js +6 -0
  367. package/dist-lib/surrealql-CQi7GQN7.js +8 -0
  368. package/dist-lib/svelte-rYri41WT.js +14 -0
  369. package/dist-lib/sw.js +215 -0
  370. package/dist-lib/swift-DJpUqPLg.js +6 -0
  371. package/dist-lib/swimlanes-5IMT3BWC-CvqDJcS9.js +5353 -0
  372. package/dist-lib/swimlanesDiagram-G3AALYLV-CKyOeqF_.js +13 -0
  373. package/dist-lib/synthwave-84-NU3C_KFZ.js +4 -0
  374. package/dist-lib/system-verilog-BCm7smPJ.js +6 -0
  375. package/dist-lib/systemd-C-4qm6XH.js +6 -0
  376. package/dist-lib/talonscript-CFF3LF_O.js +6 -0
  377. package/dist-lib/tasl-Cg_WBUAe.js +6 -0
  378. package/dist-lib/tcl-DN7buRTF.js +6 -0
  379. package/dist-lib/templ-Crs9Ui8q.js +12 -0
  380. package/dist-lib/terraform-DGvcn9zM.js +6 -0
  381. package/dist-lib/tex-AHxmLTL0.js +8 -0
  382. package/dist-lib/timeline-definition-FHXFAJF6-b15X0Oru.js +1066 -0
  383. package/dist-lib/tokyo-night-DP4TmcQl.js +4 -0
  384. package/dist-lib/toml-DY62mUL_.js +6 -0
  385. package/dist-lib/ts-tags-ioVe2PKw.js +41 -0
  386. package/dist-lib/tsv-BtvSkaG0.js +6 -0
  387. package/dist-lib/tsx-B8rCNbgL.js +6 -0
  388. package/dist-lib/turtle-_H59FV7D.js +6 -0
  389. package/dist-lib/twig-DwV2Fi4L.js +18 -0
  390. package/dist-lib/types-BSXdE6DF.js +4 -0
  391. package/dist-lib/typescript-RycA9KXf.js +6 -0
  392. package/dist-lib/typespec-DWqp-kUU.js +6 -0
  393. package/dist-lib/typst-D_1QKWns.js +6 -0
  394. package/dist-lib/v-BPCNiyYe.js +6 -0
  395. package/dist-lib/vala-uxaPR7d1.js +6 -0
  396. package/dist-lib/vb-D8_c5-KN.js +6 -0
  397. package/dist-lib/vennDiagram-L72KCM5P-C4lh5m77.js +1585 -0
  398. package/dist-lib/verilog-B-bybjPF.js +6 -0
  399. package/dist-lib/vesper-BckBta1U.js +4 -0
  400. package/dist-lib/vhdl-CUlNa8ac.js +6 -0
  401. package/dist-lib/viml-DsfA-sWm.js +6 -0
  402. package/dist-lib/vitesse-black-BoGvW84i.js +4 -0
  403. package/dist-lib/vitesse-dark-Cym-eLtO.js +4 -0
  404. package/dist-lib/vitesse-light-CcmG315c.js +4 -0
  405. package/dist-lib/vue-DXEmyXn9.js +31 -0
  406. package/dist-lib/vue-html-j9xNEdu3.js +8 -0
  407. package/dist-lib/vue-vine-D41-N99t.js +18 -0
  408. package/dist-lib/vyper-CPQuu50u.js +6 -0
  409. package/dist-lib/wardleyDiagram-EHGQE667-Cev6fT_D.js +684 -0
  410. package/dist-lib/wasm-BBXxrAl7.js +6 -0
  411. package/dist-lib/wasm-DQxwEHae.js +7 -0
  412. package/dist-lib/wenyan-pbVjoM9_.js +6 -0
  413. package/dist-lib/wgsl-DY4iK1q1.js +6 -0
  414. package/dist-lib/wikitext-Z-MoUasO.js +6 -0
  415. package/dist-lib/wit-CQMQOlTg.js +6 -0
  416. package/dist-lib/wolfram-Dz4KXISs.js +6 -0
  417. package/dist-lib/xml-C2J0sS9M.js +8 -0
  418. package/dist-lib/xsl-BmSZphgC.js +8 -0
  419. package/dist-lib/xychartDiagram-FW5EYKEG-m3s7caPv.js +1385 -0
  420. package/dist-lib/yaml-DaO7k5B1.js +6 -0
  421. package/dist-lib/zenscript-CxBjpf9c.js +6 -0
  422. package/dist-lib/zig-Vm0PO9wB.js +6 -0
  423. package/package.json +55 -0
@@ -0,0 +1,2978 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { M as n } from "./embedded-DS7udW2I.js";
3
+ const t = `# Changelog
4
+
5
+ Recent product updates and deployment notes.
6
+
7
+ ## August 8, 2026 - The @omg-dev packages actually reach npm (v0.1.308)
8
+
9
+ - **\`@omg-dev/protocol\`, \`@omg-dev/client\`, \`@omg-dev/react\` and \`@omg-dev/app\`
10
+ are on npm as of this release.** The v0.1.306 notes announced the move, but no
11
+ release had managed to publish: \`npm publish\` was handed the tarball as
12
+ \`dist/omg-dev-protocol-….tgz\`, which npm reads as a GitHub \`owner/repo\`
13
+ shorthand rather than a file, so it tried to clone it over SSH and failed on a
14
+ public key. Nothing was ever half-published — the packages publish in
15
+ dependency order, so the failure hit the first one and stopped there.
16
+
17
+ ## August 8, 2026 - Browsing files works on a phone (v0.1.307)
18
+
19
+ - **The file tree gets the whole screen, and so does the file.** Files opened
20
+ on a phone as a 208px tree strip stacked over a file view with about five
21
+ lines in it. Below the tablet breakpoint it is now two screens: the tree
22
+ fills the sheet, tapping a file pushes it full-screen with its own back bar,
23
+ and Back returns to the tree exactly where you left it — same selection,
24
+ same unsent edit. Desktop keeps the two-pane layout unchanged.
25
+ - **The sheet stops fighting the keyboard and the safe areas.** It follows the
26
+ visible viewport, so opening the keyboard to write a note shrinks it instead
27
+ of pushing "Send to agent" underneath. Headers clear the status bar, the
28
+ bottom of the sheet clears the home indicator, and the path breadcrumb
29
+ scrolls sideways on one line instead of wrapping the header down the screen.
30
+ - **Tapping the search box or the editor no longer zooms the page.** Both are
31
+ drawn inside a shadow root that the app's 16px-on-touch rule could not
32
+ reach, so iOS zoomed in on focus and left no way back out.
33
+ - Bigger hit targets on the header controls, a full-width send button, and the
34
+ Files and Review pills wrap instead of clipping on a narrow screen.
35
+
36
+ ## August 8, 2026 - The embeddable packages move to npm as @omg-dev (v0.1.306)
37
+
38
+ - **\`@omg-dev/protocol\`, \`@omg-dev/client\`, \`@omg-dev/react\` and \`@omg-dev/app\`
39
+ are published to npm.** \`npm install @omg-dev/app @omg-dev/client\` is now all
40
+ it takes to embed the application. Until now these were not on the registry at
41
+ all — each release attached tarballs to its GitHub release and rewrote the
42
+ packages' own dependencies into download URLs, so embedding meant pinning
43
+ asset links by hand.
44
+ - **A release installs as one consistent set.** The four are versioned together
45
+ off the release tag and depend on each other by exact version, so
46
+ \`@omg-dev/client\` can never resolve against a \`@omg-dev/protocol\` it did not
47
+ ship with — a mismatch that would typecheck and then disagree on the wire.
48
+ - **The old \`@lfg-dev\` names are gone rather than aliased.** Nothing was ever
49
+ published under them, so there is nobody to keep compatible. Exported types
50
+ and components follow the same rename: \`OmgAppSurface\`, \`OmgTransport\`,
51
+ \`OmgSettingsPage\` and the rest.
52
+ - Each tag still attaches its package tarballs to the GitHub release, as the
53
+ record of exactly what that version shipped.
54
+
55
+ ## August 8, 2026 - The folder picker finds its way back (v0.1.305)
56
+
57
+ - **A deleted project folder no longer traps the picker.** "Choose a project"
58
+ opens on the folder you used last, remembered in the browser and never
59
+ rechecked. Once that folder was deleted or renamed — a pruned worktree, a
60
+ repo moved on disk — opening the picker showed "folder does not exist" over
61
+ an empty list, with the header stuck on "Opening…" and both **New Folder**
62
+ and **Use This Folder** greyed out. Closing and reopening returned to the
63
+ same dead end. The picker now drops back to your projects folder and says
64
+ which path went missing, so you can navigate on from there. Clicking into a
65
+ folder that genuinely fails still reports the error where it happened
66
+ instead of jumping you elsewhere.
67
+
68
+ ## August 8, 2026 - The folder picker can no longer take the app down (v0.1.304)
69
+
70
+ - **Browsing for a project folder can't crash the app anymore.** The picker
71
+ read the folder list straight off whatever the server sent back, so a reply
72
+ that arrived without one took out the entire page — App is the root of the
73
+ router, so a single missing list meant the crash screen instead of the app.
74
+ It now falls back to an empty list and keeps the "This folder is empty" hint
75
+ for when the folder really is empty.
76
+ - **\`uninstall --purge\` accepts an install under either name.** Its safety
77
+ guard insisted the manifest say \`lfg\`, so a renamed install would have been
78
+ told it is "not an OMG installation" — about its own directory. It now
79
+ recognises both names, and still refuses anything that is neither.
80
+
81
+ ## August 8, 2026 - A new install is OMG all the way down (v0.1.303)
82
+
83
+ - **A fresh machine now installs as \`omg\`.** It lands in \`~/omg\`, runs as
84
+ \`omg.service\` (or the \`dev.omg.serve\` launch agent on macOS), and puts both
85
+ \`omg\` and \`lfg\` on your \`PATH\`. The last places still saying LFG on a brand
86
+ new box are gone.
87
+ - **An existing machine is left exactly where it is.** A box already running
88
+ from \`~/lfg\` under \`lfg.service\` keeps both names, and re-running setup will
89
+ not move it. Renaming a live install means stopping the control plane that is
90
+ currently working and hoping its replacement comes up — not something worth
91
+ doing to a machine that is fine, and not something you should have to think
92
+ about before updating.
93
+ - **Everything that restarts the service now asks which one is installed**
94
+ rather than assuming. That was a real trap: the deploy script restarted a
95
+ hardcoded \`lfg.service\`, so on a newly-named box every future deploy would
96
+ have reported success while restarting nothing.
97
+ - **Setup accepts \`OMG_*\` variables.** \`OMG_PORT=9000 curl … | bash\` works, and
98
+ every older \`LFG_*\` name is still read.
99
+ - **Uninstall now removes both.** A box that was installed under the old name
100
+ and reinstalled under the new one could carry two service units; removing
101
+ only one left the other enabled and still starting a server at boot.
102
+ - Releases publish \`omg-bundle.tar.gz\`, with the old \`lfg-bundle.tar.gz\` name
103
+ kept alongside it so installers already on a machine keep resolving.
104
+
105
+ ## August 8, 2026 - A missing model list now repairs itself (v0.1.302)
106
+
107
+ - **Installing an agent CLI after LFG is running no longer takes until the
108
+ next morning to show up.** LFG asks each agent CLI what models it offers a
109
+ few seconds after starting. If a CLI was not installed or signed in yet, that
110
+ failure was recorded as the answer and nothing asked again until 08:00 the
111
+ following day — so a box set up in the wrong order, most often a fresh
112
+ workspace, showed a stale built-in model list for up to 24 hours no matter
113
+ what you installed in the meantime. Failed lookups are now retried on a
114
+ widening interval that tops out at half an hour, so a CLI installed at any
115
+ point is picked up on its own. A harness that has no model-list command is
116
+ left alone rather than retried forever, and a retry no longer disturbs the
117
+ providers that already answered.
118
+
119
+ ## August 8, 2026 - Read and edit the files an agent touched (v0.1.301)
120
+
121
+ - **There is now a Files panel in the chat.** The diffs bar only ever showed
122
+ what changed, so a session where an agent wrote three new documents left you
123
+ with an all-green diff and no way to read anything else in the checkout. Files
124
+ lists the whole tree — 1,200-odd paths for a typical session — with git status
125
+ badges on what the agent touched, and opens any file syntax-highlighted.
126
+ - **You can browse out of the session, too.** The breadcrumb walks up to the
127
+ worktrees directory and the home directory, so a file that lives next to the
128
+ session is reachable without a terminal. Browsing stops at a ceiling, and
129
+ secrets — \`~/.ssh\`, \`.env\`, keys and certificates — are refused at every level.
130
+ - **Edits go to the agent, not behind its back.** Editing a file and pressing
131
+ "Send to agent" turns the change into a patch and queues it as a message, so
132
+ the agent applies it with its own tools. Nothing writes to disk underneath a
133
+ running session, and the change shows up in the transcript instead of
134
+ appearing from nowhere.
135
+ - **Opening the app is no slower.** The tree, the viewer and the editor each
136
+ load only when first used; the startup bundle grows by about 200 bytes.
137
+ - **Typing no longer triggers shortcuts.** Keystrokes inside the new tree search
138
+ and editor were also reaching the app's global hotkeys, so typing could open
139
+ dialogs or jump between sessions mid-word. Every hotkey guard now sees focus
140
+ correctly.
141
+
142
+ ## August 8, 2026 - One name everywhere, and agents can run the schedule (v0.1.300)
143
+
144
+ - **The agent toolset is now \`omg_*\`.** Every tool an agent calls was named
145
+ \`lfg_*\` while the product, the site and the settings had already become OMG,
146
+ so the one surface an agent reads all day was the last one still disagreeing.
147
+ The MCP server is registered as \`omg\`, so tools now read
148
+ \`mcp__omg__omg_ship\`, and the launch contract is the OMG runtime contract.
149
+ - **Nothing has to be restarted for this.** Sessions already running keep the
150
+ tool list they started with, and their \`lfg_*\` calls are translated at the
151
+ connection instead of failing. New sessions see only the new names, so the
152
+ catalog does not carry both spellings forever.
153
+ - **Agents can now manage the scheduled fleet.** Auto agents — a prompt plus a
154
+ cron schedule, reporting findings — were reachable only from the web UI, so
155
+ asking an agent to "check this every morning" had nowhere to go. There are
156
+ now tools to list, compose, save, run, and delete them, and to read and
157
+ resolve their findings. They call the same routes the UI does, so an agent
158
+ and a human are editing one fleet.
159
+ - **\`omg\` is now the command.** \`lfg\` keeps working as an alias, and the older
160
+ \`LFG_*\` variables are still read.
161
+ - Artifacts published before the rename keep their theming: the older
162
+ \`--lfg-artifact-*\` style variables are still supplied alongside the new
163
+ \`--omg-artifact-*\` ones.
164
+
165
+ ## August 8, 2026 - Every open dependency advisory is closed (v0.1.299)
166
+
167
+ - **The three open Dependabot alerts are fixed.** All of them sat in the mobile
168
+ app's Expo toolchain: \`js-yaml\` (a YAML document could burn CPU quadratically
169
+ on \`!!omap\`), \`brace-expansion\` (a glob pattern could exhaust memory), and
170
+ \`uuid\` (a missing bounds check when a caller supplies its own buffer). The
171
+ first two only needed a lockfile bump. \`uuid\` needed an override — the one
172
+ package that pulls it in still pins a 7.x range with no backported fix, and
173
+ npm's own suggestion was to downgrade Expo by four majors. An iOS prebuild
174
+ was run end to end against the patched tree to confirm the native project
175
+ still generates correctly.
176
+ - **Two more advisories that Dependabot cannot see are fixed too.** It cannot
177
+ read \`bun.lock\`, so it never reported the root \`nanoid\` (a custom generator
178
+ could loop forever) — now patched. The \`brace-expansion\` override was also
179
+ pinned *at* the vulnerable version; installs happened to resolve above it, so
180
+ the audit stayed green while the floor invited the bug straight back. Both
181
+ floors now sit on patched releases.
182
+
183
+ ## August 8, 2026 - A new account sees the whole free model tier (v0.1.298)
184
+
185
+ - **The model picker no longer hides most of the free tier on a fresh
186
+ install.** OpenCode publishes seven models that need no credentials, but a
187
+ brand new account saw exactly one of them and reasonably concluded that was
188
+ the entire free offering. Live discovery had always listed all seven — it
189
+ just does not run until a few seconds after boot, and anyone who opened the
190
+ picker before then got a built-in fallback list that held a single entry.
191
+ That list now carries all seven, so the first look is the true one. The
192
+ default is unchanged.
193
+ - **The README now leads with installing the open-source project.** The
194
+ one-line \`curl\` install is the first thing on the page, followed by what
195
+ \`lfg\` is for and why you would want it; install management and the hosted
196
+ option moved below. It also states plainly that you bring your own agent
197
+ accounts, and that everything works forever without an account. The
198
+ from-source steps had you \`cd\` into a directory that the clone does not
199
+ create — fixed.
200
+
201
+ ## August 8, 2026 - Dictation shows words as you speak on hosted workspaces (v0.1.297)
202
+
203
+ - **Dictation is live on a hosted workspace.** Words now appear while you are
204
+ still talking. Until now a hosted workspace held no speech key, so the
205
+ browser's realtime socket was refused the moment it opened and every take
206
+ quietly degraded to uploading the whole clip after you stopped — a blank
207
+ composer while you spoke, the transcript arriving all at once at the end,
208
+ and nothing on screen explaining why. Audio now streams to the platform's
209
+ own relay instead, which keeps the provider credential host-side, so there
210
+ is no key to enter and nothing to configure.
211
+ - **A dead speech provider can no longer be chosen.** Three separate defaults
212
+ used to pin a keyless machine to a provider that could not answer: the
213
+ default was a fixed name, a previously saved choice was honoured even with
214
+ nothing behind it, and both fallbacks named one provider outright. Each now
215
+ resolves against what is actually available.
216
+ - **When dictation cannot stream, the mic says so.** The button reads
217
+ "transcribes after you stop" rather than looking like it has hung.
218
+
219
+ ## August 7, 2026 - Settings move to the OMG_ prefix (v0.1.296)
220
+
221
+ - **Configuration variables are now named \`OMG_*\`.** New installs are seeded
222
+ with \`OMG_HOST\`, \`OMG_PORT\` and the rest. Every older \`LFG_\` name is still
223
+ read, so an existing \`.env\` keeps working exactly as before and needs no
224
+ migration — if a name is set both ways, \`OMG_\` wins.
225
+ - The finished-install summary prints \`http://localhost:8766\` beside the
226
+ loopback address, so there is a named URL to click.
227
+ - Setup's own messages now use one consistent spelling of the product name.
228
+ - **The dependency audit is green again after three new high-severity
229
+ advisories landed.** Patched transitive versions of \`ip-address\`, \`js-yaml\`,
230
+ and \`undici\` now cover an SSRF parsing mismatch, a YAML CPU-exhaustion path,
231
+ and a cache disclosure/crash issue. Root overrides keep future installs from
232
+ silently resolving back to vulnerable releases.
233
+
234
+ ## August 7, 2026 - Sessions ship again (v0.1.295)
235
+
236
+ - **A voice recording can be thrown away with one tap.** While you're dictating,
237
+ a small ✕ slides up out of the mic button — tap it and the take is discarded
238
+ and the composer goes back to whatever it said before you started talking.
239
+ Tapping the mic still sends, so until now backing out of a bad take meant
240
+ either holding and dragging away or reaching for the Esc key; on a phone there
241
+ was no way at all once a tap-to-record take was underway.
242
+ - **Finished sessions post to Shipped again.** The Shipped feed had gone silent
243
+ since August 5 — not because posting was broken, but because the instructions
244
+ telling agents to post had been deleted. A prompt cleanup that split the old
245
+ \`lfg_output\` tool into ordinary replies plus \`lfg_ship\` dropped both shipping
246
+ bullets from the agent contract on its way through, so agents simply never
247
+ learned that shipping was part of finishing a job.
248
+ - Shipping guidance is now stated three ways — in the runtime contract, in the
249
+ MCP server instructions, and as a promoted capability — along with the
250
+ "Shipped is not deployed" rule that went missing with it.
251
+ - Setup notes for macOS: \`scripts/setup.sh\` no longer passes GNU-only flags to
252
+ bsdtar.
253
+
254
+ ## August 7, 2026 - Click the thinking pill to get the slider (v0.1.294)
255
+
256
+ - **The thinking control now opens on a plain click.** Tapping or clicking the
257
+ "Thinking" pill parks the effort slider open as an ordinary popover: point at
258
+ the bar or click a level name and it applies straight away. Previously the
259
+ pill only answered to hold-and-slide, so a click did nothing — and letting go
260
+ of a half-finished drag left the level unchanged.
261
+ - Escape, a click anywhere outside, or a second click on the pill puts the
262
+ slider away without changing anything.
263
+ - Hold-and-slide is unchanged, so the one-motion gesture on mobile still works
264
+ exactly as before.
265
+
266
+ ## August 7, 2026 - The Start button holds still while you pick effort (v0.1.292)
267
+
268
+ - **Holding Start to slide the thinking level no longer restyles the button.**
269
+ It kept its ring, grew slightly, swapped its icon and replaced "Start" with
270
+ the level name, which nudged the buttons beside it on every step. The button
271
+ now looks exactly as it does at rest; the floating scrubber still shows the
272
+ live level.
273
+
274
+ ## August 7, 2026 - Mounted settings pages really do end where the page ends (v0.1.293)
275
+
276
+ - **Third and last piece of the mounted-page scroll fix.** The mobile
277
+ viewport-sizing pass — the one that keeps the standalone app pinned to the
278
+ visible band on iOS — was still stretching a host-mounted page to exactly one
279
+ screen, which is the same clamp in JavaScript. It now leaves host-mounted
280
+ pages alone; only the app that owns the viewport gets pinned.
281
+
282
+ ## August 7, 2026 - Mounted settings pages keep their bottom margin (v0.1.291)
283
+
284
+ - **Follow-up to v0.1.290.** The mounted pages scrolled to the end, but the
285
+ last row sat flush against the bottom edge on the tallest of them because
286
+ the page's box still measured one screen tall. Fixed — the host's page
287
+ padding is back under the last card.
288
+
289
+ ## August 7, 2026 - Mounted settings pages scroll all the way down (v0.1.290)
290
+
291
+ - **A settings page mounted inside another product no longer cuts off at one
292
+ screen.** The mounted page reused the standalone app's full-viewport shell,
293
+ which clips anything taller than the window — so on omg's Storage page the
294
+ scroll stopped dead partway through and the last cards (resource pressure,
295
+ and everything under it) were unreachable. Mounted pages now size to their
296
+ content and scroll with the host page.
297
+ - The blank band that used to sit under the last card on those pages is gone
298
+ too: it reserved room for a floating composer the mounted page doesn't have.
299
+ - **A recurring high-severity finding can no longer be muted.** Dismissing a
300
+ HIGH finding used to tell the next automated run not to raise it again, so a
301
+ daily check that stayed red went unnoticed for a day. High severity always
302
+ resurfaces and escalates on repeat now; low/medium dismissals still stick.
303
+ Findings can also finally be marked resolved — \`lfg agents auto resolve <id>\`.
304
+
305
+ ## August 6, 2026 - No more "Welcome, Unassigned" (v0.1.289)
306
+
307
+ - **The mobile Live header stops greeting people by a filter label.** When
308
+ nothing identifies the viewer — a hosted surface that passes no viewer, or
309
+ omg.dev's signed-out preview — the welcome fell through to the roster's
310
+ "unassigned" label, so visitors were greeted with "Welcome, Unassigned".
311
+ - No identity now simply means no name: "Welcome", and the agent-needs-you
312
+ headlines drop their name prefix the same way. Signed-in and hosted-viewer
313
+ greetings are unchanged.
314
+
315
+ ## August 6, 2026 - Newly started sessions can post images without being told who they are (v0.1.288)
316
+
317
+ - **Finishes the image fix from v0.1.287.** That release taught the server to
318
+ recognize which session was calling, but the matching change on the agent
319
+ side landed in the backend that writes reports rather than the one that runs
320
+ your sessions — so a freshly started session still couldn't identify itself,
321
+ and an agent had to name its own session id by hand to show you a screenshot.
322
+ Sessions now register themselves at launch, verified end to end on a real
323
+ session that displayed an image without naming itself.
324
+ - Both agent launchers share one registration path now, guarded by a check that
325
+ fails if a future launcher is added without it — which is exactly how the
326
+ first attempt slipped through.
327
+
328
+ ## August 6, 2026 - Screenshots show up in transcripts again (v0.1.287)
329
+
330
+ - **Agents can post images and videos to a session again.** Since August 1,
331
+ every \`lfg_display_image\` and \`lfg_display_video\` call had been failing with
332
+ "sessionId required" and creating nothing, so screenshots an agent captured
333
+ to prove a change worked silently never reached the transcript — you just
334
+ saw the work described, never shown. Publishing HTML artifacts, asking a
335
+ question, and sending media back to the originating channel were failing the
336
+ same way.
337
+ - The cause was a performance change that moved MCP out of one process per
338
+ session and into the server. That collapsed 14 near-identical processes into
339
+ one and saved real memory, but a per-session process also carried the one
340
+ thing the shared one couldn't: which session was calling. Sessions now
341
+ identify themselves on each request, so the memory win stays and the tools
342
+ work.
343
+ - **A session can no longer act on another session's behalf.** The same missing
344
+ caller identity had quietly turned the ownership checks into no-ops, letting
345
+ session-owned actions target any session at all. They're enforced again.
346
+ - **Sessions report why a turn failed** instead of just naming the failure
347
+ type, and transcript indexing no longer errors when its database connection
348
+ is rebound.
349
+
350
+ ## August 6, 2026 - Shipped notifications open, and live worktrees stop vanishing (v0.1.286)
351
+
352
+ - Tapping a **Shipped** notification now opens the finished session for review
353
+ instead of failing. The notification says "tap to review the finished
354
+ session", but posting to Shipped can also close that session — so by the time
355
+ you tapped, the link had nothing live to point at and gave up with "That
356
+ session is no longer running". It now falls back to the same read-only review
357
+ the in-app Shipped row has always opened, and you can reply there to pick the
358
+ conversation back up.
359
+ - **Sessions no longer lose their working folder while they're running.** The
360
+ cleanup that reclaims finished sessions' folders judged "still alive" by tmux,
361
+ which agents on the default backend don't use — so after a restart it could
362
+ delete the folder out from under a working agent, uncommitted changes and all.
363
+ It now checks whether anything is actually running in the folder first. Two
364
+ sessions were lost to this earlier today; the sweep immediately after the fix
365
+ reclaimed nothing while every live session stayed intact.
366
+
367
+ ## August 6, 2026 - Readable session titles in Resume (v0.1.285)
368
+
369
+ - The **Resume** sheet, and session cards generally, now show what you actually
370
+ asked for. Sessions started through LFG had been titled and previewed with
371
+ the runtime instructions LFG prepends to the first message, so the list read
372
+ as page after page of identical \`=== LFG RUNTIME CONTRACT (capability ve…\`
373
+ rows with no way to tell them apart. Rebuilding the list from real history
374
+ went from 32 of 200 sessions unreadable to none.
375
+ - Applies across Claude, Codex, Grok and Cursor sessions, and to the titles
376
+ shown on a brand-new session before its transcript exists. Existing sessions
377
+ with a stored boilerplate title are repaired automatically on upgrade.
378
+
379
+ ## August 6, 2026 - Triage starts in the right folder (v0.1.284)
380
+
381
+ - **Triage & execute** now starts its session in the same project folder the
382
+ findings are listed under, so it shows up in the Live list and rail group you
383
+ pressed the button in. Previously a batch spanning more than one agent folder
384
+ — or any agent without a folder — fell back to the last repo you happened to
385
+ open, and the run appeared under an unrelated project.
386
+ - Headless Chrome no longer leaks between agent sessions: every managed session
387
+ gets a browser idle timeout and closes its browser on teardown.
388
+
389
+ ## August 6, 2026 - One-click auto finding triage (v0.1.283)
390
+
391
+ - Open auto-agent findings now have a **Triage & execute** shortcut. It starts
392
+ one visible parent session that verifies the findings, groups related work,
393
+ dismisses confirmed noise, and launches linked LFG agents for actionable
394
+ groups.
395
+ - Triage runs preserve the human decision boundary: product, pricing,
396
+ destructive, and genuinely ambiguous calls stay open for review, while
397
+ scoped project runs do not pull in unrelated findings.
398
+
399
+ ## August 5, 2026 - Horizontal effort bar restored, upright one tracks your thumb (v0.1.282)
400
+
401
+ - **Fixed the Thinking pill's horizontal bar rendering as an empty strip.** The
402
+ upright bar added for Start in v0.1.281 collapsed the horizontal one to zero
403
+ width — the level names showed but the bar itself was gone.
404
+ - Holding **Start** now tracks your thumb **absolutely**: the level next to your
405
+ finger on the bar is the level you get, rather than counting steps from wherever
406
+ you pressed. Until your finger actually reaches the bar the level stays put, so
407
+ a press and release with no real drag can never launch at the wrong effort.
408
+
409
+ ## August 5, 2026 - Start's effort picker stands upright (v0.1.281)
410
+
411
+ - Holding **Start** now raises an **upright** effort bar you scrub by sliding
412
+ up and down, instead of side to side. Start sits in the bottom-right corner
413
+ where there was barely any room to swipe sideways, so the deeper levels were
414
+ awkward to reach.
415
+ - The bar is parked **directly above the button**, so your thumb slides along
416
+ the bar itself rather than beside it, and one level of finger movement lands
417
+ on exactly one stop. Every level is named down the left with the live one lit.
418
+ - Sideways drift no longer disturbs the choice — only up and down counts.
419
+ - The Thinking pill in the agent controls keeps its horizontal bar, and still
420
+ takes a drag on either axis.
421
+ - Fixed effort names rendering inconsistently capitalised ("Low" next to
422
+ "medium", "xhigh").
423
+
424
+ ## August 5, 2026 - Thinking scrub no longer selects text (v0.1.280)
425
+
426
+ - Dragging out of **Start** to set the thinking effort no longer highlights the
427
+ session list behind it. The drag now belongs entirely to the gesture — no
428
+ text selection, no drag-image, and no long-press callout anywhere your finger
429
+ travels — and everything returns to normal the moment you let go.
430
+
431
+ ## August 5, 2026 - Hold Start to pick thinking effort (v0.1.279)
432
+
433
+ - **Press and hold Start** on the new-session composer to raise the thinking
434
+ scrubber, slide to the effort you want, and release — the level is set and
435
+ the session launches in one motion. A plain tap still starts immediately at
436
+ the current effort. Picking a deeper effort no longer means a detour into the
437
+ agent popover first.
438
+ - The scrubber now follows a drag **up as well as sideways**, whichever you
439
+ move first. Start sits in the bottom-right corner where there is no room left
440
+ to drag sideways, so a horizontal-only scrub couldn't reach the top levels.
441
+ - **Every effort level is now named under the bar** while the labels fit, with
442
+ the live one lit, plus tick marks for each stop. The panel header says which
443
+ gesture is running, and the trigger shows the level under your finger instead
444
+ of the old one — the Start button even takes on the effort colour as you go.
445
+ - **Escape cancels** an open scrubber, and cancelling no longer starts the
446
+ session anyway on release.
447
+ - The Thinking pill is now a proper slider for keyboard and screen-reader
448
+ users: arrow keys, Home, and End adjust it. The hold gesture used to be the
449
+ only way to change effort.
450
+
451
+ ## August 5, 2026 - Agents reason without hidden advisors (v0.1.278)
452
+
453
+ - LFG agents now handle technical reasoning directly instead of spawning a
454
+ separate, persistent advisor session. The obsolete advisor MCP tools and
455
+ voice-consult backend have been removed, so internal advisor sessions no
456
+ longer appear in the live session list or consume an agent slot.
457
+
458
+ ## August 5, 2026 - Updates no longer yank open sessions (v0.1.277)
459
+
460
+ - A new deploy no longer hard-reloads the app while you are using it. Mid-session
461
+ you only get the **new version available** toast; the page reloads when you
462
+ tap **Reload**, or automatically on the next cold open if an update was
463
+ already waiting. Resume/focus and service-worker takeover no longer force a
464
+ bounce mid-flow.
465
+
466
+ ## August 5, 2026 - Ask-user replies no longer arrive empty (v0.1.276)
467
+
468
+ - Answering an agent question (tap an option or type a reply) now delivers the
469
+ choice to the agent reliably. Multi-line answer envelopes could lose the
470
+ trailing "Their reply" line on Grok while still counting as delivered, so the
471
+ agent saw an empty body even though your pick was stored. The reply is now
472
+ first in the envelope, and long messages confirm delivery with a head+tail
473
+ check so a truncated send is retried instead of silently accepted.
474
+
475
+ ## August 5, 2026 - Thinking scrub polish
476
+
477
+ - iOS haptics on the thinking scrubber work without the old \`display:none\`
478
+ switch that blocked vibration on some devices.
479
+ - Stronger scrub haptics and a taller, borderless thinking matrix bar.
480
+
481
+ ## August 5, 2026 - Repository renamed to BennyKok/omg.dev
482
+
483
+ - The public GitHub repository moved from \`BennyKok/lfg\` to
484
+ [\`BennyKok/omg.dev\`](https://github.com/BennyKok/omg.dev).
485
+ - Old web and git URLs redirect automatically. Install/release defaults and docs
486
+ now point at the new path. The product CLI remains \`lfg\`.
487
+
488
+ ## August 5, 2026 - No false "did not finish loading" (v0.1.275)
489
+
490
+ - Cold loads that take a few seconds (phone + Tailscale, or a hard reload after
491
+ an update) no longer flash **lfg did not finish loading** and then the real
492
+ UI a moment later. The boot shell cancels that recovery as soon as the app
493
+ module starts, and only escalates after 12s if the shell never arrives.
494
+
495
+ ## August 5, 2026 - Reload actually reloads (v0.1.274)
496
+
497
+ - Tapping **Reload** on the "new version available" toast now hard-refreshes the
498
+ app. After the recent service-worker cleanup, that button only asked the
499
+ worker to take over — and a session latch could block later reloads — so you
500
+ often had to close and reopen the app to pick up a deploy.
501
+
502
+ ## August 5, 2026 - Compact thinking scrub labels (v0.1.273)
503
+
504
+ - Scrub card is tighter: drops Faster/Deeper, centers the current level, and
505
+ shows the agent’s real min/max effort names at the ends (e.g. low · xhigh).
506
+
507
+ ## August 5, 2026 - Thinking scrub card really solid (v0.1.272)
508
+
509
+ - Scrub overlay uses a dedicated opaque panel class (dark \`#1c1c1e\` fill +
510
+ border + shadow) so it no longer floats as bare labels over the composer.
511
+
512
+ ## August 5, 2026 - Solid thinking scrub card (v0.1.271)
513
+
514
+ - Thinking scrubber panel uses a solid popover background and border again so
515
+ it reads clearly over the transcript (not a near-transparent frosted wash).
516
+
517
+ ## August 5, 2026 - Thinking scrub dial-back (v0.1.270)
518
+
519
+ - Restored the frosted card behind the Thinking scrubber, and dialed scrub
520
+ sensitivity back to the original hold-then-slide feel (more travel per level).
521
+
522
+ ## August 5, 2026 - Lighter, snappier thinking scrub (v0.1.269)
523
+
524
+ - Thinking scrub overlay no longer sits in a bordered card — just the matrix,
525
+ thumb, and labels floating over the UI.
526
+ - Scrubbing is more sensitive: about half the travel per level, and a short
527
+ horizontal drag starts the gesture immediately instead of waiting out a hold.
528
+
529
+ ## August 5, 2026 - Pixel-matrix thinking scrubber (v0.1.268)
530
+
531
+ - Hold-to-scrub Thinking control now matches the Codex density-track language:
532
+ a thicker bar filled with rounded square cells, a chunky white squircle
533
+ thumb, and a blue → fuchsia light-up as effort deepens.
534
+
535
+ ## August 5, 2026 - Scheduled sessions run once (v0.1.267)
536
+
537
+ - Retrying the same scheduled occurrence now returns its original session
538
+ instead of starting a duplicate after a control-plane restart or lost
539
+ response.
540
+
541
+ ## August 5, 2026 - Thinking scrubber glow-up (v0.1.266)
542
+
543
+ - Hold-to-scrub Thinking control now uses a thicker track and a rounded-square
544
+ thumb instead of the thin dotted line. The fill borrows the send-message
545
+ organic blue → indigo → violet → fuchsia wash, and the accent, glow, and
546
+ level label morph hotter as effort intensifies.
547
+
548
+ ## August 5, 2026 - One lfg on the splash (v0.1.265)
549
+
550
+ - Cold-load splash no longer stacks the app icon and a separate "lfg" wordmark.
551
+ The logo already says the name, so the splash is just the mark and the
552
+ progress bar.
553
+
554
+ ## August 5, 2026 - Silent failures removed (v0.1.264)
555
+
556
+ - After the black home-screen fix, the recovery stack was a pile of one-shot
557
+ cache markers, dual reload paths, and dead message handlers. Collapsed to one
558
+ generation marker, a single controllerchange reload (in the boot shell), and
559
+ the push-only worker that still takes over even when the Cache API is broken.
560
+ - Kept **/__lfg_pwa_diag** and the boot beacons — that page is how we debug the
561
+ next silent black launch without guessing.
562
+ - Root cause, for the record: shell/asset fetch interception from day one (June)
563
+ could answer navigations from a stale cache on iOS standalone; July 30 then
564
+ put \`skipWaiting\` after cache work, so a Cache API error blocked the only
565
+ escape forever. The real fix was remove the fetch handler + take over first;
566
+ the rest of the stack was scaffolding.
567
+ - LFG-managed agents now communicate through their normal assistant replies
568
+ instead of being forced to route every update through \`lfg_output\`, which
569
+ caused some models to complete work without ever showing a response.
570
+ - The redundant \`lfg_output\` tool has been removed. Agents can still display
571
+ local screenshots and recordings with the dedicated image and video tools.
572
+
573
+ ## August 5, 2026 - Both resets in the campfire (v0.1.263)
574
+
575
+ - Focusing an agent in the Usage Campfire now keeps its nearest restore as the
576
+ main countdown and shows every other reported window underneath. Session,
577
+ 5-hour, weekly, and 7-day resets are all visible together when available.
578
+
579
+ ## August 5, 2026 - Finding sheet thinking matches the composer (v0.1.262)
580
+
581
+ - Opening a finding to launch a fix still used a plain Thinking dropdown. It
582
+ now shares the same signal bars, level label, and hold-to-scrub control as
583
+ the new-session composer and fork dialog — including auto-agent launch
584
+ pickers that use the same row.
585
+
586
+ ## August 5, 2026 - Found it: the black home-screen app (v0.1.261)
587
+
588
+ - A stale service worker could hold an installed app hostage forever. Tapping
589
+ the icon fetched \`/sw.js\` two dozen times and never once requested the page:
590
+ the old worker answered navigations from its own cache, so the app never
591
+ loaded and nothing on the page could recover it.
592
+ - The replacement worker was failing to install. It did all its cache
593
+ housekeeping *before* handing over control, so a single Cache API error (iOS
594
+ storage pressure, an evicted bucket) aborted the install and left the old
595
+ worker in charge. Takeover now happens first and unconditionally; cache work
596
+ is best-effort and can never block it.
597
+ - The launch diagnostics now judge one launch at a time instead of pooling
598
+ every device together — a healthy laptop tab was masking a failing phone.
599
+
600
+ ## August 5, 2026 - A black PWA can finally say what went wrong (v0.1.260)
601
+
602
+ - New **/__lfg_pwa_diag** page reports how far a home-screen launch actually
603
+ got, and names the layer that failed. Open it from any device — a phone stuck
604
+ on a black screen cannot show you anything, so the answer lives on the server.
605
+ - It distinguishes the cases the last several fixes were guessing between: the
606
+ phone never reached the box at all (network / Tailscale), the page was sent
607
+ but never ran, the app bundle never evaluated, or the app mounted and painted
608
+ nothing.
609
+ - The app now reports its boot phases as it starts, so "it's black" becomes a
610
+ specific failure instead of a symptom.
611
+
612
+ ## August 5, 2026 - Fresh home-screen install no longer reloads into black (v0.1.259)
613
+
614
+ - A brand-new Add to Home Screen was force-reloading on service-worker activate
615
+ (and again on controllerchange), which left real iPhones on a solid black
616
+ screen even after every icon was deleted. Fresh installs no longer reload;
617
+ only upgrades that purge old shell caches do.
618
+ - Manifest start_url is plain \`/\` again (install id stays unique).
619
+
620
+ ## August 5, 2026 - Home-screen loads like Safari (v0.1.258)
621
+
622
+ - The service worker no longer intercepts page or asset loads. That fetch
623
+ handler is what made every iOS home-screen install solid black while Chrome
624
+ and Safari on the same URL worked. The worker now only handles push
625
+ notifications and wipes old caches on update.
626
+
627
+ ## August 5, 2026 - Home-screen vs Safari are different (v0.1.257)
628
+
629
+ - On iPhone, resetting lfg in Safari does not reset the home-screen app — they
630
+ keep separate website data. The reset page now detects which one you opened
631
+ and tells you to delete the black icon before re-adding.
632
+ - A fresh Add to Home Screen uses a new install id so iOS does not revive the
633
+ stuck profile.
634
+
635
+ ## August 5, 2026 - PWA actually updates (v0.1.256)
636
+
637
+ - Home-screen LFG installs were keeping a cached service worker forever on iOS
638
+ (\`updateViaCache\` default), so recovery code never arrived. Registration now
639
+ opts out of HTTP caching for worker updates, new workers activate immediately,
640
+ and every deploy rewrites the worker identity from the live index stamp.
641
+ - Open \`/__lfg_pwa_reset\` in Safari to force-clear a stuck install.
642
+ - A home-screen install that only showed solid black no longer falls back to an
643
+ empty cached HTML document; the splash shows an "lfg" wordmark and recovery UI.
644
+
645
+ falls back to an empty cached HTML document. The service worker only reuses
646
+ a real app shell, otherwise it shows retry / clear-cache controls.
647
+ - The splash always paints the "lfg" wordmark (not only the icon), and if the
648
+ app has not mounted after four seconds the recovery UI appears.
649
+
650
+ ## August 4, 2026 - Black LFG PWA actually recovers (v0.1.255)
651
+
652
+ - A home-screen LFG app stuck on a black screen after a deploy now recovers
653
+ even when the old shell never loaded the app bundle: the service worker
654
+ registers from the page itself, clears the dead shell cache, and reloads.
655
+ - Offline launches without a usable shell show a retry / clear-cache screen
656
+ instead of a solid black window.
657
+ - If the black splash is still up after ten seconds, the page now shows an
658
+ explicit recovery UI (retry / reset install data) instead of hanging forever
659
+ — including when site data was already cleared and the app still never mounts.
660
+
661
+ ## August 4, 2026 - Black LFG PWA self-heals (v0.1.254)
662
+
663
+ - An installed LFG home-screen app that was stuck on a black screen after a
664
+ deploy now clears its stale shell cache once and reloads onto the current
665
+ build, instead of sitting on missing content-hashed chunks until you wipe
666
+ the app by hand.
667
+
668
+ ## August 4, 2026 - Settings controls stay clear (v0.1.253)
669
+
670
+ - Settings now shows a real on/off switch for pausing new agents, so the
671
+ current state and the available action are visible without guessing that the
672
+ whole row is clickable.
673
+ - Mobile secondary pages now leave enough room below the floating back header,
674
+ keeping the first settings content from colliding with navigation.
675
+
676
+ ## August 4, 2026 - New sessions show up when you make them (v0.1.252)
677
+
678
+ - A newly created session now appears in the list immediately instead of after
679
+ a delay of several seconds. The create call returns the session itself, and
680
+ a session no longer falls out of the list entirely while its agent is still
681
+ starting up.
682
+ - The "Creating session…" indicator now stays up until the new session is
683
+ actually on screen, rather than finishing before there is anything to see.
684
+ - An OpenCode session that fails on its first turn — a rate-limited or
685
+ overloaded provider, a bad key — now says so in the transcript instead of
686
+ sitting on "Working" forever with nothing in it.
687
+
688
+ ## August 4, 2026 - Thinking at a glance (v0.1.251)
689
+
690
+ - Thinking controls now show their selected effort level directly beside the
691
+ control name and signal-strength indicator, while hold-and-slide adjustments
692
+ use relative finger movement from the currently selected level.
693
+
694
+ ## August 4, 2026 - Mobile pages find their place (v0.1.250)
695
+
696
+ - Fork and Continue now share the composer's tactile Thinking control, with a
697
+ colored signal-strength indicator, selection-safe long press, and a cleaner
698
+ icon-free slider popup.
699
+ - On mobile, Notifications and Artifacts now open as secondary pages from the
700
+ Pages menu, with an explicit back-to-Live action and no composer or
701
+ swipe-through project navigation competing with their content.
702
+
703
+ ## August 4, 2026 - Thinking at your fingertips (v0.1.249)
704
+
705
+ - The live-session menu now labels its thinking control simply as "Thinking",
706
+ matching the other session-launch controls.
707
+ - The new-session composer now turns its Thinking control into a tactile effort
708
+ slider on long press, with tap-to-pick fallback, live level previews, and
709
+ haptic feedback while scrubbing.
710
+
711
+ ## August 4, 2026 - A hosted welcome that knows you (v0.1.248)
712
+
713
+ - Embedded LFG surfaces can now receive the signed-in viewer's display identity
714
+ from their host, so omg.dev's mobile Computer greets the person by name while
715
+ keeping LFG session ownership and authorization completely separate.
716
+
717
+ ## August 4, 2026 - Questions stay in the conversation (v0.1.247)
718
+
719
+ - Questions that need your input now appear inside the session that asked them,
720
+ with suggested answers and a freeform reply box available right where the
721
+ conversation is already open.
722
+ - Thinking-level menus now use the simpler visible label "Thinking" across new
723
+ sessions, forks, and agent workflows while keeping every level selectable.
724
+
725
+ ## August 4, 2026 - Image quality stays visible (v0.1.246)
726
+
727
+ - Every image attachment now shows its HD quality control immediately. Large
728
+ images keep the compressed/original toggle, while images already being sent
729
+ at full resolution show HD selected instead of hiding the control.
730
+
731
+ ## August 4, 2026 - Recovery needs one tap (v0.1.245)
732
+
733
+ - Sessions recovered after a host restart now offer a one-tap Continue action,
734
+ and paused sessions use a clear pause icon in place of the normal green idle
735
+ dot without relying on emoji labels.
736
+
737
+ ## August 4, 2026 - Thinking controls tuck in (v0.1.244)
738
+
739
+ - The live thinking-level selector now lives inside the existing session menu
740
+ on desktop and mobile, keeping session headers focused while still showing
741
+ the current level at a glance in the menu.
742
+
743
+ ## August 4, 2026 - Thinking controls, in the moment (v0.1.243)
744
+
745
+ - Live session headers now show the active thinking level and let you change it
746
+ for subsequent turns without starting over; each agent offers only the levels
747
+ its current runtime supports.
748
+
749
+ ## August 4, 2026 - Mobile controls return (v0.1.242)
750
+
751
+ - The standalone mobile Live header once again shows its top-right account and
752
+ pages island alongside the personal welcome. Hosted omg.dev surfaces still
753
+ leave that corner to the host's own controls.
754
+
755
+ ## August 4, 2026 - The first message is yours again (v0.1.241)
756
+
757
+ - LFG's launch instructions are shorter while preserving the narration,
758
+ verification, shipping, landing, and session-safety rules agents need.
759
+ - The runtime contract now appears as its own collapsed instructions block in
760
+ the transcript, so the user's actual first message is immediately readable;
761
+ existing session history benefits without being rewritten.
762
+
763
+ ## August 4, 2026 - One reconnect, one message (v0.1.240)
764
+
765
+ - Embedded Computer surfaces now share the same reconnect notification from
766
+ interruption through recovery, so returning to Home or Settings cannot show
767
+ "Reconnected" twice for one physical connection.
768
+ - Cloud Computers now archive the minimum number of oldest idle, durable agents
769
+ needed to admit new work safely; their transcripts remain available from
770
+ Resume, and the new session appears immediately instead of failing on memory.
771
+ - Plan concurrency is authoritative throughout LFG: Free allows 1 active agent,
772
+ Personal 5, Pro 16, and Always-on 24, including the Settings and Performance
773
+ surfaces users see.
774
+
775
+ ## August 3, 2026 - The welcome comes home to omg (v0.1.239)
776
+
777
+ - omg.dev's mobile Computer now shows the same personal Live welcome, active
778
+ agent count, and agent-question handoff as standalone LFG instead of falling
779
+ back to a static logo.
780
+ - The shared header automatically leaves room for omg.dev's account and plan
781
+ controls, so hosted and standalone surfaces keep one behavior without
782
+ overlapping their independently owned chrome.
783
+
784
+ ## August 3, 2026 - Continued sessions keep their names (v0.1.238)
785
+
786
+ - Continuing a session into a replacement now carries over the source session's
787
+ displayed name, including names you set yourself, instead of naming the new
788
+ session from its internal handoff prompt. Ordinary forks still get their own
789
+ independent name.
790
+
791
+ ## August 3, 2026 - Agents stop before the Computer does (v0.1.237)
792
+
793
+ - Cloud Computers now reserve memory before starting an agent and keep enough
794
+ headroom for LFG, the operating system, and the secure tunnel to stay alive.
795
+ - Simultaneous starts share one atomic memory budget, so a launch burst cannot
796
+ race the machine into an out-of-memory crash. When memory is tight, LFG asks
797
+ the user to finish an agent or upgrade instead of starting work that will die.
798
+
799
+ ## August 3, 2026 - Photos upload small by default (v0.1.236)
800
+
801
+ - Images attached to any composer are now downscaled and re-encoded in the
802
+ browser before they upload: a 1.6 MB phone photo goes up as a 96 KB WebP, so
803
+ attachments land in a fraction of the time on a phone connection.
804
+ - Tap **HD** on an attachment chip to send the untouched original instead, and
805
+ tap it again to go back to the compressed copy. Sending while an image is
806
+ still compressing waits for the small copy rather than racing it.
807
+ - Annotated screenshots are compressed on the same terms, images already small
808
+ enough are left alone, and GIFs keep their animation.
809
+ - Re-encoding also drops camera EXIF, so a photo's GPS coordinates no longer
810
+ ride along with the upload.
811
+
812
+ ## August 3, 2026 - Listing sessions gets out of everything else's way (v0.1.235)
813
+
814
+ - Binding a newly started Codex session to its transcript used to search every
815
+ Codex session ever recorded on the box — 3,604 of them here, re-checked every
816
+ couple of seconds. It now looks only at the last week, which is all a
817
+ just-started session can be, and the session list rebuilds around a quarter
818
+ faster.
819
+ - The last piece of the rebuild that stopped the server outright — asking tmux
820
+ for its panes — no longer does. The worst pause the rebuild inflicts on
821
+ everything else is down to about 10ms.
822
+ - Both changes were checked against the real fleet: the session list they
823
+ produce is identical, down to every Codex binding and tmux pane.
824
+
825
+ ## August 3, 2026 - The right agent from the first frame (v0.1.234)
826
+
827
+ - Managed Computers now keep the saved OpenCode choice visible while their
828
+ live agent roster loads, instead of briefly presenting Claude during boot.
829
+
830
+ ## August 3, 2026 - More room for parallel work (v0.1.233)
831
+
832
+ - Cloud Computers now admit up to 1 simultaneous agent on Free, 5 on Personal,
833
+ 16 on Pro, and 24 on Always On, with atomic reservations preventing a burst
834
+ of launches from exceeding the plan's limit.
835
+
836
+ ## August 3, 2026 - Forking stays put (v0.1.232)
837
+
838
+ - Fork and Continue now open in a stable modal on phones instead of a draggable
839
+ drawer, so typing, textarea scrolling, and the software keyboard no longer
840
+ compete with the sheet gesture. Compact keyboard layouts keep every action
841
+ reachable through the modal's own scroll area.
842
+
843
+ ## August 3, 2026 - Your Computer, ready first (v0.1.231)
844
+
845
+ - Managed hosts can now open a credential-free Computer directly and keep
846
+ Claude, Codex, and other provider connections as optional Settings actions.
847
+ - Ordinary embedded LFG installs retain the existing first-run connection
848
+ guide unless their host explicitly takes ownership of onboarding.
849
+
850
+ ## August 3, 2026 - A focused first choice (v0.1.230)
851
+
852
+ - Grok is temporarily hidden from the first-run Computer connection choices.
853
+ Its existing login and runtime support remain intact for a future return.
854
+
855
+ ## August 3, 2026 - Every link opens in the right folder (v0.1.229)
856
+
857
+ - Tapping an Ask question now opens the conversation that asked it, while an
858
+ explicit More action expands the full question and reply composer in place.
859
+ - Opening a session from Notifications or Artifacts now selects that session's
860
+ folder automatically, so the destination is visible in the correct scope.
861
+
862
+ ## August 3, 2026 - Your Computer meets your tools (v0.1.228)
863
+
864
+ - The first-run Computer connection flow now has two focused steps: connect a
865
+ coding agent, then connect the tools that agent works through.
866
+ - Grok joins Claude Code and Codex as a browser-login option, using its existing
867
+ device-code flow with no terminal handoff.
868
+ - GitHub can now be connected from onboarding for private repositories, pushes,
869
+ and pull requests. The same device-login session owner handles agent and tool
870
+ authentication, including expiry and cancellation.
871
+
872
+ ## August 3, 2026 - Toasts land on the right edge (v0.1.227)
873
+
874
+ - Desktop toasts now sit at the bottom of the screen, while mobile toasts stay
875
+ below the top chrome and fold their stacked layers back toward the top edge.
876
+
877
+ ## August 3, 2026 - Computer plans guard their real capacity (v0.1.226)
878
+
879
+ - Cloud Computers now enforce their plan's agent concurrency at LFG's single
880
+ session-admission boundary: Free/Trial 1, Personal 2, Pro 4, Always On 8.
881
+ - Concurrent launch races reserve a slot before any asynchronous work, so a
882
+ burst of requests cannot overfill the machine while sessions are registering.
883
+ - A live plan change is read from the control-plane-owned plan file on every
884
+ admission, so downgrades lower the cap immediately without restarting LFG.
885
+
886
+ ## August 3, 2026 - A welcome that knows when to speak (v0.1.225)
887
+
888
+ - The mobile Live welcome now gets a full eight seconds before briefly yielding
889
+ to agent activity, and activity appears only while an agent is actually
890
+ working — idle rooms stay on the welcome instead of cycling filler.
891
+ - The welcome is larger, while agent questions use the same clean plain-text
892
+ treatment instead of switching the header into a bell-and-count badge.
893
+
894
+ ## August 3, 2026 - A clean way out (v0.1.224)
895
+
896
+ - \`lfg uninstall\` now removes the LFG service, command, MCP registrations, and
897
+ release application files while preserving sessions and config for a future
898
+ reinstall.
899
+ - \`lfg uninstall --purge --yes\` is the explicit destructive path for deleting
900
+ sessions and config too. Shared tools such as Bun, Tailscale, tmux, and agent
901
+ CLIs are never removed, and source checkouts stay intact by default.
902
+
903
+ ## August 3, 2026 - Mobile Live is a list again (v0.1.223)
904
+
905
+ - Live view on mobile no longer expands a session in place. Every session is a
906
+ compact row — title, latest activity, status — and tapping it opens the full
907
+ session sheet, which stays the one place to read and reply.
908
+ - The long-press-to-expand gesture is gone, along with the transcript streams
909
+ those expanded cards kept open in the background. Desktop is unchanged.
910
+
911
+ ## August 3, 2026 - A welcome with a pulse (v0.1.222)
912
+
913
+ - The mobile Live header now cycles between the personal welcome and current
914
+ agent activity. Status appears as a smaller shimmering line, while the soft
915
+ text swap respects reduced-motion preferences and urgent questions still
916
+ take priority.
917
+
918
+ ## August 3, 2026 - Toasts follow their edge (v0.1.221)
919
+
920
+ - Top-anchored toasts now dismiss upward through the top edge, including
921
+ background toasts in a collapsed stack, instead of slipping downward.
922
+
923
+ ## August 3, 2026 - A welcome that reflects the room (v0.1.220)
924
+
925
+ - The mobile Live welcome now keeps its compact, bell-free single line while
926
+ showing current activity inline, using larger type, and sitting closer to the
927
+ screen edge. When no agents are working, it switches to “Ready to build.”
928
+
929
+ ## August 3, 2026 - Every artifact leads home (v0.1.219)
930
+
931
+ - Artifact cards now show the conversation that created them. Open the related
932
+ session straight from the gallery, including finished sessions that need to
933
+ be reviewed or resumed.
934
+
935
+ ## August 3, 2026 - A quieter mobile hello (v0.1.218)
936
+
937
+ - The mobile Live welcome is now one compact line with no bell icon or
938
+ secondary status copy. Bells, context, and the wider card remain reserved
939
+ for agent questions that actually need attention.
940
+
941
+ ## August 3, 2026 - A lighter mobile welcome (v0.1.217)
942
+
943
+ - The mobile Live welcome now sits directly on the page instead of inside a
944
+ frosted card. The introductory LFG mark and urgent agent-question states
945
+ still keep their pill treatment so notifications remain easy to spot and tap.
946
+
947
+ ## August 3, 2026 - A Live header that knows what is happening (v0.1.216)
948
+
949
+ - On mobile, the Live header now introduces the LFG mark for two seconds and
950
+ then turns that same island into a personal welcome using the active profile.
951
+ - The welcome stays useful after hello: it shows how many agents are building,
952
+ changes into an urgent notification when an agent needs input, and opens the
953
+ unified Notification Center when tapped.
954
+ - Toasts now arrive at the top center, immediately below the mobile header,
955
+ instead of competing with the persistent composer at the bottom of the screen.
956
+
957
+ ## August 3, 2026 - Faster, complete mic messages (v0.1.215)
958
+
959
+ - Releasing the mic no longer discards the realtime transcription's final
960
+ update and then waits 1.8 seconds before sending a possibly cut-off partial.
961
+ LFG keeps that final update connected and sends as soon as it arrives.
962
+ - Each voice take now has one explicit commit boundary. Realtime partial text
963
+ still appears while speaking, while duplicate close-time commits are removed
964
+ and whole-clip transcription remains a fallback only when realtime fails.
965
+
966
+ ## August 3, 2026 - Pinned means protected (v0.1.214)
967
+
968
+ - Smart clear now leaves pinned sessions running while it archives the other
969
+ idle sessions in scope. Its confirmation also calls out how many pinned
970
+ sessions are being protected.
971
+ ## August 3, 2026 - The last freeze, at startup (v0.1.213)
972
+
973
+ - Restarting LFG used to stall it for several seconds about a minute in, while
974
+ it re-read the header of every Codex session ever recorded on the box — 3,517
975
+ files and 1.8GB here. Those headers never change, so they are kept now: the
976
+ first session list after a restart went from 3.9s to 0.25s.
977
+ - With that gone, yesterday's other fixes hold up on a full day of real
978
+ traffic: requests to the session list that took over a second dropped from
979
+ 686 to effectively zero, and the ones that remained were all this startup
980
+ stall, which is now fixed too.
981
+
982
+ ## August 3, 2026 - Quieter interrupted turns (v0.1.212)
983
+
984
+ - Steering an agent mid-task no longer leaves a large synthetic
985
+ \`[Request interrupted by user for tool use]\` chat bubble behind. The event
986
+ now appears as a subtle \`Interrupted\` status between the surrounding turns.
987
+
988
+ ## August 2, 2026 - Fewer whole-server freezes (v0.1.211)
989
+
990
+ - Listing sessions ran \`pgrep\` twice, forking a process to ask the operating
991
+ system something it already publishes as files. LFG reads that directly now,
992
+ which is about ten times faster and, more importantly, doesn't block the
993
+ server while it happens. Today's log recorded 686 requests that took over a
994
+ second and 220 over five — during which nothing else moved, including live
995
+ streams and reconnects.
996
+
997
+ ## August 2, 2026 - Reconnecting is quick again (v0.1.210)
998
+
999
+ - Coming back to a tab that had gone stale — after sleep, or a long spell in
1000
+ the background — made LFG wait a flat 2 seconds before it even started
1001
+ reconnecting. It now gives the old connection half a second, which is already
1002
+ generous against a server that answers in single-digit milliseconds.
1003
+ - Waking up or regaining the network now restarts the retry schedule. The first
1004
+ attempt after a laptop wake usually fails because Wi-Fi hasn't come back yet,
1005
+ and the next retry was using the delay it had wound up to before sleeping —
1006
+ up to 12 seconds of sitting on "offline" over a perfectly good network.
1007
+ - Reconnecting no longer rebuilds transcript history the server then throws
1008
+ away, and a tab that reconnects while another one is open now gets the
1009
+ current session list immediately instead of waiting for something to change.
1010
+ - The shipped feed, artifact gallery, coding-agents page, resume sheet and
1011
+ token-usage dialog now load only when opened, taking another 39 KB out of the
1012
+ bundle you download before anything renders.
1013
+
1014
+ ## August 2, 2026 - The app paints a third faster on a cold load (v0.1.209)
1015
+
1016
+ - The AI SDK that powers the chat surface was in the bundle you download before
1017
+ anything can render, even though nothing needs it until you open a session.
1018
+ It now loads in the background just after first paint, and is already cached
1019
+ by the time you open one.
1020
+ - On a cold 4G load: first contentful paint 1.40s → 0.93s, DOM content loaded
1021
+ 2.91s → 2.32s, and the entry bundle is 150 KB smaller.
1022
+
1023
+ ## August 2, 2026 - The server stops re-reading itself every 2.5 seconds (v0.1.208)
1024
+
1025
+ - Whenever a browser is open, LFG rebuilds its session list every 2.5 seconds to
1026
+ keep the fleet status live — and that rebuild was re-reading and re-parsing
1027
+ the entire session registry about eight times over, roughly 700 file reads per
1028
+ rebuild. The server was spending around a tenth of its time in a blocking
1029
+ rebuild, permanently, which made everything else feel intermittently sticky.
1030
+ - Entries are now cached and checked against the file's timestamp instead of
1031
+ being re-read, so an unchanged session costs a stat rather than a read and a
1032
+ parse. Rebuild time drops from 196ms to 45ms, and the worst pause it inflicts
1033
+ on everything else from 176ms to 58ms.
1034
+ - Nothing about liveness changes: a session updated by another process is still
1035
+ picked up on the very next poll.
1036
+
1037
+ ## August 2, 2026 - Returning home no longer repeats replies (v0.1.207)
1038
+
1039
+ - Opening Settings and returning Home could briefly render the same assistant
1040
+ reply and Thought block several times. The saved transcript was correct, but
1041
+ two live listeners could both accept the first event from a locally sent
1042
+ message and cache the duplicate UI state. Locally started chats now claim
1043
+ their live stream synchronously, while replies started from another device
1044
+ still appear normally.
1045
+ - Starting a new session no longer pauses every other live session while LFG
1046
+ runs the Git commands that prepare its worktree. Provisioning now stays off
1047
+ the server event loop, and its remote refresh benefits the next session
1048
+ without blocking the one you just started.
1049
+ - Leaving an embedded settings page no longer strips the styling from another
1050
+ surface the host still has mounted. Every packaged style is anchored to one
1051
+ attribute on the document, and the first surface to unmount removed it —
1052
+ so in a host with two surfaces alive, the visible one could drop to unstyled
1053
+ markup. The attribute is reference counted now.
1054
+
1055
+ ## August 2, 2026 - Artifact cards follow your theme instead of your desktop (v0.1.206)
1056
+
1057
+ - An artifact rendered in a dark card on a light machine kept its light
1058
+ styling — dark surfaces with dark text — because it had no way to see which
1059
+ theme the card was in. The renderer now stamps \`data-theme\` on the artifact
1060
+ document (and on the shadow host, where theme selectors were already being
1061
+ rewritten against an attribute nothing set), so an artifact can key its dark
1062
+ styles off the card rather than off the desktop.
1063
+ - Artifacts that reach for the short token names (\`--lfg-artifact-bg\`, \`-fg\`,
1064
+ \`-muted-fg\`) now get the theme instead of silently falling back to their own
1065
+ hardcoded colors.
1066
+ - Fixed the perf report card itself, which had painted every axis label,
1067
+ legend, caption and table header with a *surface* color — invisible in both
1068
+ light and dark.
1069
+
1070
+ ## August 2, 2026 - Sessions on a second Claude account get their tools back (v0.1.205)
1071
+
1072
+ - Sessions running on any Claude account other than the first started with no
1073
+ LFG tools at all — they could not narrate to the thread, ask you a question,
1074
+ publish an artifact, or ship. Each extra account has its own Claude config
1075
+ directory, but LFG only ever registered its MCP server into the default one,
1076
+ so those sessions launched mute while Setup still showed "Claude MCP ·
1077
+ registered".
1078
+ - Setup now registers into every account's config directory, seeds a newly added
1079
+ account the moment you create it, and the Claude MCP check only turns green
1080
+ when all of them are covered.
1081
+ - Embedded apps with two surfaces mounted at once (omg's Computer view behind
1082
+ Settings) no longer lose all their styling when you close one of them.
1083
+
1084
+ ## August 2, 2026 - Text-to-speech removed (v0.1.204)
1085
+
1086
+ - Spoken replies are gone: audio mode, the floating audio player, the "speak
1087
+ this session" action hidden behind the agent avatar, and the text-to-speech
1088
+ provider setting have all been removed.
1089
+ - "Audio mode · auto-play replies" had been silently broken for some time. The
1090
+ hook that fed replies to speech only existed on the older streaming transport,
1091
+ so on the default one nothing was ever spoken — while the session was still
1092
+ told to keep its answers short and speakable. Turning it on made replies worse
1093
+ and produced no audio. (The v0.1.201 note that audio mode "works exactly as
1094
+ before" was written before this was discovered.)
1095
+ - Dictation is untouched: the mic button, voice messages, and the speech-to-text
1096
+ provider setting all work exactly as before. The Voice settings section now
1097
+ covers just voice input.
1098
+ - Note for self-hosters: \`TTS_UPSTREAM\`, \`TTS_TOKEN\`, and the ElevenLabs/OpenAI
1099
+ TTS overrides are no longer read and can be removed from \`.env\`. The GPU TTS
1100
+ engines, the TTS failover timer, and the Modal voice app went with them; the
1101
+ Sakana egress proxy in \`deploy/modal\` stays.
1102
+
1103
+ ## August 2, 2026 - Embedded chrome survives a settings visit (v0.1.203)
1104
+
1105
+ - A host that mounts both surfaces no longer has its full app corrupted by
1106
+ opening a settings page. "Renders inside the host's chrome" was a single
1107
+ process-wide flag, so a settings page set it once and every later full-app
1108
+ render lost its header, gutter and header inset until a hard reload. Each
1109
+ mounted tree declares its own now.
1110
+
1111
+ ## August 2, 2026 - Faster session create and fork (v0.1.202)
1112
+
1113
+ - Starting a session no longer waits on a fetch from GitHub. Provisioning its
1114
+ worktree refreshed \`origin/main\` every single time — a network round trip on
1115
+ the critical path that also froze the server for its duration, so every other
1116
+ session's live updates stalled with it. It now refreshes at most once a minute
1117
+ per repository, and gives up rather than hanging if the remote is slow.
1118
+ - Forking a session no longer rebuilds the whole session list just to look up
1119
+ the session you are forking from.
1120
+ - Together: creating a session is about 37% faster and forking about 48% faster
1121
+ on the server side, and neither one stalls the sessions you already have open.
1122
+ - Settings > Computer no longer renders with a missing header and collapsed
1123
+ gutter after you visit Settings. Two surfaces can now be open at once without
1124
+ one describing the other.
1125
+ ## August 2, 2026 - Phone call and voice orb removed (v0.1.201)
1126
+
1127
+ - The LiveKit phone-call screen and the voice orb are gone. The call UI had
1128
+ already been unreachable — nothing could open it — while still shipping about
1129
+ 8 MB of 3D and realtime-audio libraries to every visitor. Audio mode, which
1130
+ speaks the current session, already covers what the call was for.
1131
+ - The web bundle is roughly 8 MB smaller as a result.
1132
+ - Dictation, spoken replies, audio mode, the voice provider settings, and the
1133
+ deep-think advisor behind "ask a question" all work exactly as before.
1134
+ - Setting a voice API key now tells you which half you just enabled ("Voice
1135
+ messages are ready" / "Spoken replies are ready") instead of claiming all of
1136
+ voice is ready when only one provider was configured.
1137
+ - Note for self-hosters: the GPU voice stacks under \`deploy/\` were only ever
1138
+ reachable through the call path, so \`TTS_UPSTREAM\` / \`STT_UPSTREAM\` are no
1139
+ longer read. Their READMEs now say so, and the TTS failover timer no longer
1140
+ affects anything.
1141
+
1142
+ ## August 2, 2026 - Mounted settings pages sit in the host's column (v0.1.200)
1143
+
1144
+ - A settings page mounted inside another product now fills that product's
1145
+ column instead of centring a narrower one inside it. Every card previously
1146
+ sat inset from the host's own cards, and the mount read as a panel dropped
1147
+ into the page rather than part of it.
1148
+
1149
+ ## August 2, 2026 - One number per account on the campfire (v0.1.199)
1150
+
1151
+ - A Claude account on the campfire no longer shows its number twice. The label
1152
+ under the icon already reads "Claude 1", so the numbered badge stamped on the
1153
+ icon was a duplicate; renamed accounts keep the badge, since their label
1154
+ doesn't say which login it is.
1155
+ - The chat composer's one-line controls are centered.
1156
+
1157
+ ## August 2, 2026 - Session creation feedback stays in its lane (v0.1.198)
1158
+
1159
+ - The shimmering session-creation state now covers only the rounded input card,
1160
+ leaving project, attachment, and action controls visible while LFG starts the
1161
+ session.
1162
+
1163
+ ## August 2, 2026 - Every Claude account's usage, and a chip you can see (v0.1.197)
1164
+
1165
+ - A Claude account whose access token had gone stale now reports its usage
1166
+ again. Claude Code refreshes that token whenever it runs; LFG read the same
1167
+ file without running the CLI, so an account that hadn't started a session in
1168
+ the last few hours looked like it had no usage at all. LFG now refreshes the
1169
+ token itself before asking.
1170
+ - The selected agent chip in the composer is actually visible in dark mode. It
1171
+ was a #2c2c2e circle on a #1c1c1e sheet — sixteen levels of grey apart, which
1172
+ on a phone reads as nothing being selected at all.
1173
+
1174
+ ## August 2, 2026 - Reconnects stop waiting on settings (v0.1.196)
1175
+
1176
+ - Reopening LFG no longer freezes every request while it boots five agent CLIs
1177
+ to inspect MCP setup. Those checks now run only on the Coding agents page,
1178
+ run together without blocking live sockets or the API, and finish roughly
1179
+ three times faster when that page is opened.
1180
+ - The startup payload no longer carries the entire skill catalog before the
1181
+ user asks for a skill. On this instance that removes about 106 KB over the
1182
+ wire on every cold load; slash-skill suggestions still fetch it on demand.
1183
+ - The changelog moved out of the startup JavaScript and into its own on-demand
1184
+ chunk, trimming another 32 KB of Brotli-compressed code from the cold path.
1185
+
1186
+ ## August 2, 2026 - Session creation no longer looks stuck (v0.1.195)
1187
+
1188
+ - Starting a session now replaces the composer with a clear, shimmering
1189
+ "Creating session…" status while LFG prepares the worktree and starts the
1190
+ agent. The mobile composer and desktop new-session drawer both stay visibly
1191
+ busy instead of clearing or disappearing with no feedback.
1192
+ - The creating state blocks accidental duplicate launches. If startup fails,
1193
+ the overlay clears and the original prompt returns so it can be retried.
1194
+
1195
+ ## August 2, 2026 - The mic responds on the first tap (v0.1.194)
1196
+
1197
+ - Tapping the mic now opens it immediately. Every tap used to wait on a network
1198
+ round trip before the microphone was even requested, so on a slow connection
1199
+ the browser's permission prompt could appear ten seconds late — and on iOS and
1200
+ installed PWAs that wait often broke the request outright, which is why so
1201
+ many taps did nothing at all.
1202
+ - The mic button shows a spinner the moment you tap it, so it can never look
1203
+ dead while the mic is opening. Tapping again backs out instead of doing
1204
+ nothing, and Escape, the cancel X, and slide-to-cancel all work during that
1205
+ window too.
1206
+ - A mic that can't start now says why — blocked permission, no microphone
1207
+ found, or the device being held by another app — instead of failing silently.
1208
+ - Opening the mic can no longer hang indefinitely, and cancelling takes effect
1209
+ the instant you tap rather than after the timeout.
1210
+ - Dictation no longer leaves the microphone held open (OS mic indicator lit)
1211
+ when a take is abandoned partway through.
1212
+ - Dictation now asks for echo cancellation, noise suppression, and automatic
1213
+ gain control, matching what voice calls already did.
1214
+
1215
+ ## August 2, 2026 - Claude accounts you can actually see (v0.1.193)
1216
+
1217
+ - Picking "Claude · Auto" in the agent picker now highlights it. The Auto entry
1218
+ was the one option that never lit up, so the composer looked like nothing was
1219
+ selected — and swiping to cycle agents or tapping to collapse the row didn't
1220
+ work from Auto either.
1221
+ - The campfire no longer hides a Claude account it couldn't read. An account
1222
+ whose usage lookup fails — expired sign-in, rate limit — keeps its place on
1223
+ the arc, dimmed, with the reason underneath, instead of silently disappearing
1224
+ and leaving you to wonder where the account went.
1225
+ - The composer's agent icon is centered when the composer is a single line.
1226
+
1227
+ ## August 2, 2026 - A roomier "new version" prompt (v0.1.192)
1228
+
1229
+ - The post-deploy "New version available" screen no longer borrows the crash
1230
+ layout. It gets a centered icon, a title you can read, a line explaining that
1231
+ the app updated while your tab was open, and a full-width Reload button — no
1232
+ longer a tiny cluster of controls stranded on an empty black screen.
1233
+
1234
+ ## August 2, 2026 - Sent images are their own view (v0.1.191)
1235
+
1236
+ - An attached image is no longer boxed inside the message bubble. The picture
1237
+ gets its own frame and the words keep theirs, stacked — the way every
1238
+ messaging client does it. Sharing a screenshot with a caption no longer reads
1239
+ as one cramped card.
1240
+ - Attach an image and type nothing and the picture is the whole message, with
1241
+ no empty bubble under it. A lone image renders larger; several tile.
1242
+ - Attachments with nothing to show inline (a PDF, or an image whose bytes are
1243
+ gone) now read as a proper file card rather than a tag inside a bubble.
1244
+
1245
+ ## August 2, 2026 - Attached images show up as images (v0.1.190)
1246
+
1247
+ - Screenshots you attach now render as thumbnails inside your own message
1248
+ instead of a wall of \`/tmp/lfg-uploads/...\` paths. Sending six images used to
1249
+ fill the transcript with six file paths and nothing you could actually look
1250
+ at. Tap one to open the full-size viewer.
1251
+ - A lone image widens to the bubble; several tile side by side. Attachments
1252
+ with nothing to show inline — a PDF, or an image whose bytes were cleared
1253
+ when the box rebooted — appear as a named file chip rather than a broken
1254
+ image.
1255
+ - What the agent receives is unchanged: the absolute paths still travel with
1256
+ the message, so a coding agent can read the files exactly as before. Only the
1257
+ rendering changed.
1258
+
1259
+ ## August 2, 2026 - Host-mounted settings behave like pages (v0.1.189)
1260
+
1261
+ - A product embedding LFG's settings pages no longer has them replaced by the
1262
+ "Connect a coding agent" prompt. That gate exists for a framed full app,
1263
+ which cannot run a session without an agent; a host that mounted a single
1264
+ settings page was shown onboarding where its settings should have been, with
1265
+ no way to reach the page at all.
1266
+ - Embedded settings pages can now be routed by the host. \`LfgSettingsSurface\`
1267
+ reports its own navigation through \`onNavigate\` and accepts \`page\` as a
1268
+ controlled prop, so Coding agents, Schedules, Storage and More become real
1269
+ destinations in the host's URL — linkable, and with a back button that goes
1270
+ up one page instead of leaving the surface.
1271
+ - A host-mounted page now shows its own shape while the machine is still
1272
+ answering, instead of painting an empty ping, "0 working" and "—" storage as
1273
+ if they were facts about the box.
1274
+
1275
+ ## August 2, 2026 - SDK sessions survive restarts (v0.1.188)
1276
+
1277
+ - AI-SDK, Codex SDK, OpenCode, and Pi sessions now run as direct managed
1278
+ processes instead of using tmux as an otherwise-unused lifecycle wrapper.
1279
+ LFG journals their boot ownership, adopts them across service restarts, and
1280
+ safely reopens interrupted conversations after a host reboot without
1281
+ replaying an unfinished prompt.
1282
+ - Resuming a conversation now keeps its provider/model identity together,
1283
+ repairs stale cross-provider cache rows, and ignores dead managed entries so
1284
+ a stopped harness cannot masquerade as an already-live session.
1285
+
1286
+ ## August 2, 2026 - Claude capacity routes itself (v0.1.187)
1287
+
1288
+ - New and forked Claude sessions now default to \`Claude · Auto\`, choosing the
1289
+ connected account with the most room in its tightest usage window and pinning
1290
+ that concrete account for the session's lifetime. Explicit numbered-account
1291
+ choices remain available, while unknown capacity stays a fallback ahead of an
1292
+ account known to be exhausted.
1293
+
1294
+ ## August 1, 2026 - Embedded terminals use their host transport (v0.1.186)
1295
+
1296
+ - Terminals mounted inside another product now open their WebSocket through
1297
+ the same authenticated host transport as HTTP and live transcript traffic.
1298
+ They previously inferred the socket from the embedding page URL, so OMG
1299
+ cloud Computers tried to connect to the dashboard itself and immediately
1300
+ closed instead of reaching the Computer's LFG runtime.
1301
+
1302
+ ## August 1, 2026 - Archive wording everywhere (v0.1.185)
1303
+
1304
+ - Session swipe actions, keyboard confirmations, and Smart clear now consistently
1305
+ say Archive instead of Delete or End. Confirmations also make clear that an
1306
+ archived session leaves the live view but remains available to resume later
1307
+ from Recent sessions.
1308
+
1309
+ ## August 1, 2026 - Cloud workspaces can update themselves again (v0.1.184)
1310
+
1311
+ - LFG running in an OMG cloud workspace can now take updates. It restarts
1312
+ itself there by exiting into the loop OMG keeps it alive with, but it was
1313
+ looking for that loop at a path OMG no longer uses, so it concluded no
1314
+ restart was possible and turned down every update before downloading it —
1315
+ leaving each workspace pinned to whatever version it was created with. The
1316
+ four free-tier workspaces we checked were sixteen releases behind, which
1317
+ means none of the recent memory and reliability work had ever reached them.
1318
+ Update now works from the Settings page as it does everywhere else.
1319
+
1320
+ ## August 1, 2026 - One MCP server for the whole box (v0.1.183)
1321
+
1322
+ - Running several Claude sessions at once no longer costs a duplicate
1323
+ background process each. LFG registered itself with Claude as a stdio MCP
1324
+ server, so every session started its own copy of \`lfg mcp\` — around 38 MB
1325
+ apiece, and a box with 14 sessions was carrying 14 identical ones (~540 MB)
1326
+ whose only job was to forward calls to the LFG server already running beside
1327
+ them. The server now answers MCP directly at \`/mcp\`, and Claude is pointed
1328
+ there over HTTP, so sessions share one endpoint. Existing installs migrate
1329
+ the next time MCP setup runs; Codex, OpenCode, Grok and Cursor keep working
1330
+ exactly as before.
1331
+
1332
+ ## August 1, 2026 - Security patches for the graph we actually ship (v0.1.182)
1333
+
1334
+ - Patched the vulnerable transitive dependencies in the bundle: \`fast-uri\`,
1335
+ \`hono\`, \`body-parser\`, \`protobufjs\`, \`brace-expansion\`, and \`@hono/node-server\`
1336
+ (unblocked by moving \`@modelcontextprotocol/sdk\` to 1.30.x, which widens its
1337
+ own range rather than forcing a major on a package that never agreed to one).
1338
+ - Removed three stale \`package-lock.json\` files. Nothing installed from them —
1339
+ every path here uses bun — but \`npm ci\` would have quietly built a mid-July
1340
+ dependency graph, and they were the only thing Dependabot could see, so its 20
1341
+ alerts described a tree nobody ships.
1342
+ - Added a \`bun audit\` workflow on push, PR, and a weekly schedule, so the real
1343
+ lockfile is watched and new high-severity advisories fail the build. Accepted
1344
+ exceptions are explicit and the full report is always printed.
1345
+
1346
+ ## August 1, 2026 - Mounted settings sit flush with their host (v0.1.181)
1347
+
1348
+ - A settings page mounted in another product no longer carries LFG's own page
1349
+ layout with it. It was still applying a side gutter, a top inset reserving
1350
+ space for the header bare mode had already removed, and an absolutely
1351
+ positioned scroll box — all of which exist to accommodate LFG's chrome. The
1352
+ visible result was cards sitting inset from the host's own cards on the same
1353
+ page, with a gap above them.
1354
+
1355
+
1356
+ ## August 1, 2026 - One tick in the project picker (v0.1.180)
1357
+
1358
+ - The Projects sheet no longer shows a green tick next to "All projects" and a
1359
+ named project at the same time. Each row decided its own tick from a separate
1360
+ piece of state, and the composer legitimately holds both — with the live view
1361
+ unfiltered it still has to pick a concrete folder for the next session — so
1362
+ the single-choice list ended up with two answers. The tick now always follows
1363
+ the project your agent will actually work in, and "All projects" claims it
1364
+ only when no specific folder is on the hook.
1365
+
1366
+ ## August 1, 2026 - Terminal keyboard fixes (v0.1.179)
1367
+
1368
+ - The pulled-up session terminal no longer jumps around when the on-screen
1369
+ keyboard opens. It was sized against the full screen height, which iOS does
1370
+ not shrink for the keyboard — it shrinks the visible area and scrolls the page
1371
+ instead — so the sheet got shoved under the keyboard and dragged along by that
1372
+ scroll. It now sits in the real visible area, and takes the whole of it while
1373
+ you're typing so you get more terminal rather than a squeezed one.
1374
+ - The terminal stops flickering during that keyboard animation. It was
1375
+ re-fitting the grid and repainting the pane on every viewport sample, most of
1376
+ which report the same size; identical sizes are now ignored.
1377
+ - The mobile new-session composer no longer rides the keyboard up and down
1378
+ behind the terminal sheet — it's hidden while a terminal is up, the same way
1379
+ it already hides behind the artifact viewer.
1380
+ - Typing in the terminal no longer auto-capitalises. Mobile keyboards treated
1381
+ Ghostty's input as prose and sentence-cased it, turning \`git status\` into
1382
+ \`Git status\`. Autocorrect, predictions and spellcheck are off too: it types
1383
+ lowercase and Shift means Shift.
1384
+
1385
+ ## August 1, 2026 - Per-session terminals and a vi key menu (v0.1.178)
1386
+
1387
+ - Every session now has its own terminal. Press \`t\` on the focused session (or
1388
+ pick Terminal from its ⋮ menu) to pull up a real shell already sitting in that
1389
+ session's worktree — no \`cd\`, no hunting for the path. It's a persistent tmux
1390
+ session per agent session, so it survives deploys and reconnects with your
1391
+ scrollback and any long-running command intact.
1392
+ - The terminal is full-bleed now. The permanent on-screen key toolbar (about
1393
+ 110px of chrome that sat there whether or not you needed it) is gone; all that
1394
+ remains is one slim status strip.
1395
+ - The extra keys moved into a vi-style menu you summon with ⌃⇧K, the Keys
1396
+ button, or a swipe up from the bottom edge. It's modal like vi: \`h j k l\` for
1397
+ arrows, \`e\` Esc, \`t\` Tab, \`r\` ⏎, \`c\` ^C, \`d\` ^D, \`p\`/\`n\` for history, \`0\`/\`$\`
1398
+ for line ends, \`g\`/\`G\`, \`u\`/\`f\` to page, \`i\` to hand focus back to the shell,
1399
+ \`P\` to paste, \`.\` to repeat the last key, \`:\` to type any key spec (\`ctrl+p\`,
1400
+ \`f5\`, \`alt+.\`), \`s\` to stick the menu open, \`q\` to close. Every key is also a
1401
+ tap target with its hint shown, so phones just tap.
1402
+
1403
+ ## August 1, 2026 - A much smaller server (v0.1.177)
1404
+
1405
+ - The server now starts about 130 MB lighter. Image encoding (sharp) and the
1406
+ browser engine (playwright) used to be loaded the moment the server booted,
1407
+ even though most servers never encode an image or drive a browser. They are
1408
+ loaded the first time they are actually needed instead, which takes a fresh
1409
+ server from roughly 306 MB to 176 MB of memory.
1410
+ - Small machines benefit most. On a 512 MiB free-plan Cloud Computer the old
1411
+ footprint left too little room to run a coding agent beside LFG, and agents
1412
+ could be killed by the guest shortly after launch. There is now room for both.
1413
+ - Nothing about image previews, shipped-post media or saved browser logins
1414
+ changes — the first use of each pays the load once and then reuses it.
1415
+
1416
+ ## August 1, 2026 - Voice composers that stay in place (v0.1.176)
1417
+
1418
+ - The home and live-session chat composers now share the same growing textarea
1419
+ and maximum height. Long prompts scroll inside the field instead of expanding
1420
+ the whole home composer, so the agent and microphone controls stay anchored.
1421
+ - Live voice transcription now follows the newest spoken line in both
1422
+ composers. Manual edits in the middle of a long draft keep their position and
1423
+ are not pulled back to the bottom.
1424
+
1425
+ ## August 1, 2026 - Settings that a host can mount (v0.1.175)
1426
+
1427
+ - Hosts embedding LFG can mount a settings page on its own now, and it renders
1428
+ as sections only — no LFG header, brand mark, identity block or bottom nav.
1429
+ Mounted inside a product that already has its own header and account, the
1430
+ surface used to draw a second one of each, which is the duplication that
1431
+ mounting a shared surface is meant to remove in the first place.
1432
+ - \`?bare=1\` renders that same hosted layout in a plain browser, so it can be
1433
+ checked without building the package and mounting it in a host.
1434
+
1435
+
1436
+ ## August 1, 2026 - Faster, steadier image previews (v0.1.174)
1437
+
1438
+ - Image messages now carry their orientation-correct width and height from the
1439
+ display tool through storage and the transcript API. Image cards reserve that
1440
+ exact aspect ratio while loading instead of jumping from a generic placeholder
1441
+ to the finished preview.
1442
+ - Transcript images load a lighter WebP capped to 1080px on both axes, so tall
1443
+ screenshots no longer download thousands of invisible pixels. Opening an
1444
+ image still fetches the untouched original at full resolution.
1445
+
1446
+ ## August 1, 2026 - Smoother sessions and agent setup (v0.1.173)
1447
+
1448
+ - Installed PWAs now notify you when a coding session finishes a turn, with the
1449
+ session's latest response and a direct link back to it. Notifications stay
1450
+ quiet while that session is already open on screen.
1451
+ - Grok and Pi now show only the thinking levels their own CLIs accept. Stored
1452
+ higher levels are safely clamped instead of killing a Grok launch or being
1453
+ silently ignored by Pi, and Pi gains its native Off and Minimal choices.
1454
+ - The skills catalog now includes installed plugin commands, including nested
1455
+ commands, so command-only plugins are discoverable in the same place as
1456
+ skills.
1457
+ - Tall desktop dialogs keep their footers and action buttons inside the popup;
1458
+ long folder lists remain scrollable instead of pushing their buttons out of
1459
+ reach.
1460
+ - Session landing and credential tests are now portable and safe on macOS:
1461
+ landing uses the platform's available file locker, and tests never read or
1462
+ print a developer's real Claude Keychain token.
1463
+
1464
+ ## August 1, 2026 - Settings, regrouped (v0.1.172)
1465
+
1466
+ - Settings is a one-pager now. It used to be seventeen sections in a single
1467
+ scroll that mixed your account, this machine and this browser with no
1468
+ ordering, so finding anything meant reading all of it. It now goes account,
1469
+ connection, **Computer** (Coding agents · Schedules · Storage & performance),
1470
+ agent capacity, updates, More.
1471
+ - **Storage & performance** is a new page. Disk capacity was already being
1472
+ reported, but only as a fourth gauge row buried in settings; it is now a
1473
+ headline read — how much of the disk is gone, how much is left — above CPU,
1474
+ agent-slice and host memory. Four live gauges no longer greet you on the
1475
+ settings root.
1476
+ - **More** holds the long tail: provider limits, terminal, browser profiles,
1477
+ voice, extensions, install, and the browser-local preferences (dark mode,
1478
+ push, sound, haptics, audio mode) grouped under "This device" and labelled
1479
+ as not synced — because they never were.
1480
+ - **Auto agents are now Schedules**, with a proper page title, and the timezone
1481
+ control moved onto that page. Schedules are the only thing it affects, so it
1482
+ had no business sitting on its own in settings.
1483
+ - Hosts embedding LFG can now mount these settings pages directly via
1484
+ \`LfgSettingsSurface\` from \`@lfg-dev/app\`, underneath their own account and
1485
+ plan UI, instead of reimplementing them and drifting.
1486
+
1487
+ ## August 1, 2026 - A calmer session rail (v0.1.171)
1488
+
1489
+ - The Claude account number now sits bottom-right on every agent icon in the
1490
+ app, matching the agent pickers and the usage campfire, so it is always in
1491
+ the same place.
1492
+ - Session avatars no longer carry a green "idle" dot. Idle is the resting state
1493
+ of nearly every row, so the dots were a wall of green marking that nothing was
1494
+ happening — the rail's groups and counts already show the shape of the fleet.
1495
+ Only a session that is working right now gets a mark, and it moved to the
1496
+ top-right corner so it never competes with the account number.
1497
+
1498
+ ## August 1, 2026 - Claude account numbers on every session (v0.1.170)
1499
+
1500
+ - A session pinned to a numbered Claude account now wears that number on its
1501
+ agent mark everywhere the mark appears: the rail rows, the session card and
1502
+ detail headers (the top-left icon), and the session picker. Telling which
1503
+ login a session is running on no longer means opening it.
1504
+ - The number only appears once a second account is connected — with one login
1505
+ there is nothing to disambiguate — and sits opposite the busy/idle dot so
1506
+ neither signal covers the other.
1507
+ - Fixed returning to LFG from another app sometimes leaving the UI packed into
1508
+ the top slice of the screen with dead space below, until a pinch or rotate
1509
+ forced a relayout. A shrunken viewport now only counts as a soft keyboard when
1510
+ something is actually focused, and the shell re-samples instead of latching a
1511
+ mid-animation reading from iOS.
1512
+
1513
+ ## August 1, 2026 - Usage follows your Claude accounts (v0.1.169)
1514
+
1515
+ - Usage now reports one entry per connected Claude account. The campfire view
1516
+ (Shift, or long-press the composer rings) shows a numbered node per account,
1517
+ and Settings → Usage lists each account's own 5-hour and 7-day windows instead
1518
+ of collapsing every login into a single "Claude" row.
1519
+ - Picking an account on the campfire arc starts the next session on that
1520
+ account, rather than on whichever one the composer was last left on.
1521
+ - The composer's activity rings show the selected account's limits and re-read
1522
+ them when you switch accounts — previously they always showed the first
1523
+ account's numbers.
1524
+ - Each usage source is now fetched independently instead of through one combined
1525
+ request. Surfaces that need a single ring make a single request (~135ms rather
1526
+ than ~300ms+ on this box), the campfire fills in agent by agent as each source
1527
+ answers instead of waiting on the slowest, and one account's refresh no longer
1528
+ re-walks the Codex sessions tree or re-hits Grok's billing API.
1529
+ - A crowded arc now sizes and spaces its nodes to fit, so six or more agents
1530
+ (which multiple Claude accounts make routine) no longer overlap on a phone.
1531
+
1532
+ ## July 31, 2026 - Multiple Claude accounts (v0.1.168)
1533
+
1534
+ - Connect multiple Claude subscriptions from Coding agents settings. Each login
1535
+ is isolated, numbered, and can be reconnected or removed independently.
1536
+ - The new-session and fork agent pickers now show one Claude icon per connected
1537
+ account, with a small account number at the bottom-right of each icon.
1538
+ - Claude sessions stay pinned to the account they started with, including after
1539
+ a restart or resume, so switching the target for a new session never changes
1540
+ the identity of work already in progress.
1541
+
1542
+ ## July 31, 2026 - Anonymous OpenCode models are truly anonymous (v0.1.167)
1543
+
1544
+ - Skipping provider setup now limits OpenCode's picker to discovered
1545
+ \`opencode/*-free\` models. Models from credentialed providers are no longer
1546
+ shown merely because the OpenCode CLI knows their names; connecting a
1547
+ user-owned model account restores the broader discovered catalog.
1548
+
1549
+ ## July 31, 2026 - Hosted Computer identity no longer depends on email (v0.1.166)
1550
+
1551
+ - An omg hosted Computer with no local user roster no longer rejects session
1552
+ creation or resume when the embedded browser remembers an account email.
1553
+ Hosted access remains owned by omg's stable account id; LFG's email field is
1554
+ treated only as optional presentation metadata.
1555
+ - The embedded client now sends an owner only when it exists in the Computer's
1556
+ current roster. A changed or stale email can no longer strand create, resume,
1557
+ continue, fork, finding-reply, or session-management flows.
1558
+
1559
+ ## July 31, 2026 - OpenCode's safe default everywhere (v0.1.165)
1560
+
1561
+ - New and resumed OpenCode sessions now resolve their default from the same
1562
+ live catalog shown in the picker. The server can no longer bypass the picker
1563
+ and silently launch the removed \`opencode-go\` provider when no model was
1564
+ supplied.
1565
+
1566
+ ## July 31, 2026 - Hosted model choices that actually run (v0.1.164)
1567
+
1568
+ - Skipping account setup in an omg hosted Computer now leaves one honest
1569
+ choice: OpenCode. Claude, Codex, and other account-backed agents appear only
1570
+ after that user-owned account is connected, rather than being unlocked by
1571
+ platform proxy credentials.
1572
+ - OpenCode's live model list is now authoritative. Removed providers such as
1573
+ \`opencode-go\` can no longer leak back into the picker from an old built-in
1574
+ catalog; before discovery completes, LFG offers the verified anonymous
1575
+ DeepSeek Flash model as its safe fallback.
1576
+ ## July 31, 2026 - Continue in a clean session (v0.1.163)
1577
+
1578
+ - Session menus now have a Continue action beside Fork. It opens a fresh agent
1579
+ with the current transcript as context, then archives the session it replaces.
1580
+ - The replacement is created first, so a launch failure leaves the current
1581
+ session live instead of losing the place you were continuing from.
1582
+
1583
+ ## July 31, 2026 - Resuming a session whose worktree was cleaned up (v0.1.162)
1584
+
1585
+ - Resuming certain sessions started and then immediately stopped, with nothing
1586
+ in the transcript to explain it. Affected sessions were ones whose per-session
1587
+ worktree had since been reclaimed by the automatic cleanup sweep.
1588
+ - Claude files each conversation under a folder named after the directory the
1589
+ session ran in, and finds it again the same way. Once that directory was
1590
+ swept, LFG correctly fell back to the repo root — but the conversation was
1591
+ still filed under the deleted path, so Claude reported no such conversation
1592
+ and quit before the session ever came up.
1593
+ - LFG now re-files the conversation under the directory it is resuming into, so
1594
+ the session comes back with its history intact. Nothing is moved or deleted;
1595
+ the original transcript stays where it was.
1596
+ - If no stored conversation can be found at all, the resume now starts a fresh
1597
+ one and says so in the log, instead of failing silently.
1598
+
1599
+ ## July 31, 2026 - Logo weight matched to the original (v0.1.161)
1600
+
1601
+ - The vector wordmark now sits at the same size and weight the mark had before
1602
+ it was redrawn. Converting it to vector had also made it noticeably larger and
1603
+ heavier than the logo people were used to; it reads as the familiar mark again,
1604
+ just sharp.
1605
+
1606
+ ## July 31, 2026 - A genuinely sharp logo, and updates that actually arrive (v0.1.160)
1607
+
1608
+ - The LFG mark is now real vector artwork, so it is sharp at every size. It had
1609
+ been a small bitmap dressed up as an SVG since June, which no amount of
1610
+ rendering work could rescue at the 24px the header draws it at. Same wordmark,
1611
+ same colours — just drawn as outlines instead of pixels.
1612
+ - Reopening the app now picks up the newest version on its own. An installed app
1613
+ is suspended rather than closed, so it could keep running one old build across
1614
+ many updates while a "Reload to get the latest" prompt waited in a screen you
1615
+ were not looking at. Resuming the app adopts a pending update instead; while
1616
+ you are actively using it, LFG still asks first.
1617
+
1618
+ ## July 31, 2026 - The LFG logo is sharp again (v0.1.159)
1619
+
1620
+ - The mark in the top-left header renders crisply on iPhone and iPad again. It
1621
+ had looked soft and low-resolution since late June — long enough that it read
1622
+ as "the logo is just low-res now" rather than as a bug.
1623
+ - The artwork was never the problem and has not changed. The header's frosted
1624
+ pill carried the blur on the same element that wrapped the logo, and iOS
1625
+ folds an SVG into a blurred ancestor's layer and redraws it there, softening
1626
+ it. The blur now sits on its own layer behind the pill, so the mark is drawn
1627
+ at full resolution. The frosted chrome looks exactly the same.
1628
+
1629
+ ## July 31, 2026 - Resuming a session no longer replays your old messages (v0.1.158)
1630
+
1631
+ - Resuming a session after a crash or restart could re-send your entire message
1632
+ history back to the agent as if you had just typed it. The old messages
1633
+ arrived stamped with the current time, so they piled up at the bottom of the
1634
+ transcript as the "newest" thing, with the real conversation stranded above
1635
+ them — and the agent would start answering questions you asked hours ago.
1636
+ - The cause was a cursor that counted the command log in bytes but compared it
1637
+ in characters. Any non-ASCII character — a "—", an "…", an arrow, an emoji,
1638
+ the smart punctuation dictated messages are full of — made the two disagree,
1639
+ which read as "the file was truncated" and rewound the cursor to the start.
1640
+ A single accented character was enough to trigger it.
1641
+ - On this machine 8 of 33 live sessions were primed to do exactly that, 379
1642
+ replayed messages in total, the worst holding 247. All four agent backends
1643
+ shared the bug; all four are fixed and covered by tests.
1644
+ - Sessions now remember how far they got. Messages you send while the server is
1645
+ down or restarting are delivered when it comes back, instead of being silently
1646
+ dropped — previously the only protection against replay was to skip everything
1647
+ that arrived while the session was away.
1648
+
1649
+ ## July 31, 2026 - Dismiss a question you're not going to answer (v0.1.157)
1650
+
1651
+ - "Needs you" questions in the Notification Center can now be dismissed. The
1652
+ X on each card was there but invisible — hidden behind a hover state that
1653
+ desktop overrode and phones can't trigger at all — so the only way to clear
1654
+ a question was to answer it, while it kept the badge lit.
1655
+ - The dismiss button is always visible now, with a proper tap target, and a
1656
+ "Dismiss all" clears a stack of them at once. Bulk dismissal asks for a
1657
+ second tap to confirm, since every waiting agent moves on.
1658
+ - Answering or dismissing a question also takes down its phone notification.
1659
+ Those banners are sticky by design, so they used to linger on the lock
1660
+ screen long after the question was handled.
1661
+
1662
+ ## July 31, 2026 - A folder picker you can actually scroll (v0.1.156)
1663
+
1664
+ - The Projects sheet shows far more at a glance. The list was boxed into a
1665
+ window barely two rows tall; it now opens to roughly eight, so most people
1666
+ see every project without scrolling at all.
1667
+ - Folder paths are hidden by default behind a "Paths" toggle in the sheet
1668
+ header. The project name is usually all you need, and dropping the second
1669
+ line makes each row about a third shorter. Your choice is remembered.
1670
+ - Swiping the list scrolls the list. Before, a flick inside that short window
1671
+ usually grabbed the sheet instead and dragged it closed.
1672
+ - With more than seven projects the sheet adds a search box, so a long list is
1673
+ a quick type instead of a long scroll.
1674
+
1675
+ ## July 31, 2026 - Sign in to Grok from the browser (v0.1.155)
1676
+
1677
+ - Connecting Grok no longer needs the terminal. Login on the Grok row now opens
1678
+ the x.ai approval page directly, shows the one-time code, and detects approval
1679
+ on its own — the same flow Claude and Codex already use.
1680
+ - The approval page opens with the code already filled in, so there is nothing
1681
+ to copy across; just check it matches what LFG shows.
1682
+ - Grok now reports "connected" only when a sign-in token is actually saved.
1683
+ Before, it counted the \`~/.grok\` folder as proof, so it could claim you were
1684
+ signed in when you were not.
1685
+
1686
+ ## July 31, 2026 - One notification inbox (v0.1.154)
1687
+
1688
+ - Questions from agents now appear at the top of Notifications and are answered
1689
+ right there — tap a suggested option or type a reply. The separate Ask page is
1690
+ gone; \`/ask\` opens Notifications.
1691
+ - Notifications are far more compact: one row per item with a small media
1692
+ thumbnail instead of a full-width gallery, grouped under Today / Yesterday.
1693
+ About three times as many fit on a phone screen.
1694
+ - The "Follow up" button is gone from notification cards. Opening a notification
1695
+ takes you to the session, where forking already lives.
1696
+ - The feed loads faster and lighter: images download at thumbnail size rather
1697
+ than full resolution, the list only sends what it shows, and a backgrounded
1698
+ tab stops polling.
1699
+
1700
+ ## July 31, 2026 - Jump to latest stays reachable (v0.1.153)
1701
+
1702
+ - The scroll-to-latest pill no longer disappears behind the "files changed /
1703
+ Review" bar. When a session has diffs, the pill stacks just above the diff
1704
+ bar so you can always jump back to the newest activity.
1705
+
1706
+ ## July 31, 2026 - Hosted composers send to the selected Computer (v0.1.152)
1707
+
1708
+ - Fixes the embedded text composer sending messages to the host dashboard
1709
+ instead of the selected LFG Computer. Hosted and custom-connected Computers
1710
+ now send through the same authenticated transport as every other session
1711
+ action.
1712
+
1713
+ ## July 31, 2026 - See what each session is using (v0.1.151)
1714
+
1715
+ - Restores Token usage to the session menu, opening a focused inspector for
1716
+ current context consumption and cumulative model traffic.
1717
+ - Breaks usage down into input, output, cache, reasoning, tools, skills, system
1718
+ prompt, and message categories, while clearly distinguishing provider-reported
1719
+ totals from estimated attribution.
1720
+ - Reads live Codex and Claude session counters when they are available and
1721
+ degrades to an explicit unavailable state for agents without token telemetry.
1722
+
1723
+ ## July 30, 2026 - A real notification center (v0.1.150)
1724
+
1725
+ - Rebrands the Shipped page as Notifications, with a canonical
1726
+ \`/notifications\` route while preserving old Shipped links.
1727
+ - Shipped results now appear as a notification type with per-profile unread
1728
+ state. Opening one marks that item read, and Mark all read clears every unread
1729
+ marker plus the PWA app-icon badge without deleting notification history.
1730
+ - Stops silently clearing the PWA badge when the app merely returns to the
1731
+ foreground; acknowledgement now happens explicitly inside Notifications.
1732
+
1733
+ ## July 30, 2026 - Notification dots that know when you are back (v0.1.149)
1734
+
1735
+ - The PWA notification dot now clears automatically when LFG opens or returns
1736
+ to the foreground, including when a push arrives while the app is already in
1737
+ use. Questions, findings, and shipped results remain in their normal in-app
1738
+ surfaces until handled.
1739
+ - Removes the manual notification-dot control from Settings; clearing the OS
1740
+ alert is now part of reviewing the app rather than a maintenance task.
1741
+
1742
+ ## July 30, 2026 - Send and move on (v0.1.148)
1743
+
1744
+ - Sending from either mobile composer now dismisses the field focus so the
1745
+ on-screen keyboard closes instead of staying in the way.
1746
+ - Settings now includes a one-tap way to clear the installed PWA's notification
1747
+ dot and mark its visible notifications as handled.
1748
+
1749
+ ## July 30, 2026 - The app appears before it connects (v0.1.147)
1750
+
1751
+ - Replaces the full-screen startup spinner with the real LFG interface. While
1752
+ bootstrap data is connecting, controls are visibly and semantically disabled;
1753
+ they become interactive automatically as soon as the app is ready.
1754
+
1755
+ ## July 30, 2026 - Shipped notifications open the work (v0.1.146)
1756
+
1757
+ - Shipping a result now sends the session owner a push notification with the
1758
+ result title and summary. Tapping it opens that exact session for review,
1759
+ including when the LFG app is already open.
1760
+ - Installed PWAs show a badge for visible LFG notifications and clear it once
1761
+ the notifications are handled on platforms that support app badging.
1762
+
1763
+ ## July 30, 2026 - Cleaner navigation islands (v0.1.145)
1764
+
1765
+ - Moves Settings into the Pages menu and removes the separate gear from the
1766
+ mobile right island and desktop session rail, keeping all page destinations
1767
+ in one predictable dropdown without exposing host-owned settings in embeds.
1768
+
1769
+ ## July 30, 2026 - One project chip on hosted mobile, not two (v0.1.144)
1770
+
1771
+ - Removes the project chip from the top-right of the hosted mobile header. The
1772
+ composer at the bottom already carries one, both are wired to the same state,
1773
+ and on a phone-width header that meant the same folder name printed twice.
1774
+ This also brings hosted in line with the plain mobile header, which has never
1775
+ shown the chip.
1776
+ - Keeps "All projects" reachable: it was never part of the mobile swipe cycle,
1777
+ so the project menu used to be the only way back to it. The composer's own
1778
+ project sheet now offers it, the same row the desktop rail's sheet has.
1779
+
1780
+ ## July 30, 2026 - Fixes the hosted home-screen crash (v0.1.143)
1781
+
1782
+ - Fixes the crash that replaced the whole app with an error screen on the hosted
1783
+ surface. The recent-shipped list spread the response of \`/api/shipped\`
1784
+ directly during render, so a proxied workspace answering 2xx without a posts
1785
+ array — an error envelope, an empty body, or a wake response while it was
1786
+ still asleep — took the entire app down with "Spread syntax requires
1787
+ ...iterable not be null or undefined".
1788
+ - Hardens the Shipped feed and Artifacts gallery against the same class of
1789
+ response, so a workspace that answers oddly shows an empty list instead of
1790
+ losing the whole page.
1791
+
1792
+ ## July 30, 2026 - A real crash screen, and crashes that report themselves (v0.1.142)
1793
+
1794
+ - Replaces the raw error strip a render crash used to fall through to — a bare
1795
+ "Something went wrong!" headline over a red monospace box — with a proper
1796
+ screen: what broke, Retry, Reload, a one-tap Copy of the full details, and the
1797
+ stack tucked behind a disclosure instead of shouted at you.
1798
+ - A crash caused by a stale build now says so ("New version available") and
1799
+ leads with Reload, because that is the actual fix.
1800
+ - Render crashes are reported again. The app's own router boundary was catching
1801
+ them before any error boundary could, so nothing was recorded — a crash could
1802
+ hit a hosted user and leave no trace anywhere. It now files the report itself,
1803
+ and only claims "Reported to lfg" when a report really went out.
1804
+ - Embedded surfaces can be given a central error sink by their host, so a crash
1805
+ still gets recorded when the workspace behind the connection is asleep.
1806
+
1807
+ ## July 30, 2026 - PWA icon cache refresh (v0.1.141)
1808
+
1809
+ - Forces one safe service-worker takeover to remove the stale app shell that
1810
+ could leave an installed iOS PWA or controlled browser tab rendering the old
1811
+ fragmented header icon even after v0.1.138 was deployed.
1812
+ - Gives the crisp small icon an explicit versioned URL, so Safari, the PWA
1813
+ worker, and the HTTP cache cannot reuse older artwork under the same key.
1814
+ Later releases return to the normal user-approved update flow.
1815
+
1816
+ ## July 30, 2026 - Theme-aware artifacts (v0.1.140)
1817
+
1818
+ - HTML artifacts can now use LFG's semantic palette for backgrounds, surfaces,
1819
+ text, borders, accents, muted content, and code, so the same artifact follows
1820
+ the app's light or dark appearance.
1821
+ - Native Shadow DOM artifacts inherit the live host theme, while interactive
1822
+ artifacts receive the same palette inside their isolated sandbox.
1823
+ - Deliberately authored colors still take precedence, preserving branded and
1824
+ self-styled artifacts instead of forcibly recoloring them.
1825
+
1826
+ ## July 30, 2026 - Quieter error reporting (v0.1.139)
1827
+
1828
+ - ResizeObserver delivery notices no longer appear as high-severity findings,
1829
+ send push notifications, or claim an auto-fix agent was dispatched. The
1830
+ browser and server now share one noise policy, while real observer-related
1831
+ application errors remain reportable.
1832
+ - Session transcript choices now live under the clearer **Display** menu
1833
+ without the outdated Experimental badge.
1834
+
1835
+ ## July 30, 2026 - Crisp LFG mark at small sizes (v0.1.138)
1836
+
1837
+ - Keeps the original pixel-dissolve icon while giving 24–40px UI placements
1838
+ their own explicit small-size vector. iOS can no longer choose the detailed
1839
+ large artwork and shrink its dissolve pixels into unreadable horizontal
1840
+ fragments.
1841
+ - The app header, onboarding, connect gate, and install prompt now use that
1842
+ deterministic small mark; large icons and splash artwork stay unchanged.
1843
+
1844
+ ## July 30, 2026 - Hosts get a slot in the desktop rail (v0.1.137)
1845
+
1846
+ - Adds a \`rail-footer\` host slot at the bottom of the hosted desktop rail. A
1847
+ host embedding LFG as its entire desktop surface had nowhere to put its own
1848
+ top-level navigation, because that layout suppresses the app header and the
1849
+ rail's top row is already full.
1850
+ - The slot is a real node the host portals into, so it moves with the rail
1851
+ instead of floating over it and having to track its width, collapse
1852
+ animation and position. It carries the collapsed flag so the host can stack
1853
+ vertically in the 56px rail.
1854
+ - Unfilled slots collapse to nothing, so standalone LFG and hosts that ignore
1855
+ the slot are unaffected.
1856
+
1857
+ ## July 30, 2026 - Hosts can reserve the top-right corner (v0.1.136)
1858
+
1859
+ - Adds \`--lfg-host-top-inset\`, the top-right counterpart to the existing
1860
+ \`--lfg-host-bottom-inset\`. The embedded mobile header now pads its right
1861
+ gutter by that amount, so a host floating its own nav island in that corner
1862
+ slides our project picker out of the way instead of colliding with it.
1863
+ - Host-driven rather than hardcoded: it defaults to \`0px\`, so standalone LFG
1864
+ and any host that floats nothing up there reserve nothing, and the host sets
1865
+ the real width on its own surface wrapper.
1866
+
1867
+ ## July 30, 2026 - Original LFG icon restored (v0.1.135)
1868
+
1869
+ - Restores the distinctive pixel-dissolve LFG mark across the app, PWA, touch
1870
+ icon, and README after the smoother replacement lost too much of its identity.
1871
+ - Keeps the shared icon generator and asset checks, so the restored artwork
1872
+ remains consistent at every required published size.
1873
+
1874
+ ## July 30, 2026 - Shipped and Artifacts are reachable on desktop (v0.1.134)
1875
+
1876
+ - The desktop sidebar gains a pages menu, so Shipped and Artifacts can be opened
1877
+ from the rail in both its expanded and collapsed states. Artifacts previously
1878
+ had no desktop entry point at all.
1879
+ - The current page is marked in that menu, and extension tabs appear there too —
1880
+ they were previously only reachable through the Settings page.
1881
+ - Opening Shipped or Artifacts inside a hosted Computer no longer leaves the page
1882
+ with no navigation and no way back to Live.
1883
+ - Fixes hosted sessions briefly showing LFG's own account chrome and profile
1884
+ picker after switching pages.
1885
+
1886
+ ## July 30, 2026 - Crisp LFG icon (v0.1.133)
1887
+
1888
+ - The LFG mark now uses smooth vector lettering instead of a coarse pixel grid,
1889
+ so it stays clean in the mobile header, onboarding, browser chrome, and larger
1890
+ installed-app surfaces.
1891
+ - PWA, maskable, Apple touch, and README icons are generated from the same
1892
+ vector sources to keep every published size consistent.
1893
+
1894
+ ## July 30, 2026 - Managed transcript recovery (v0.1.132)
1895
+
1896
+ - Managed Claude sessions no longer show "session transcript not found" when a
1897
+ task mentions flags such as \`tsc -p\` or \`claude --print\`.
1898
+ - Existing affected sessions automatically reconnect to their intact native
1899
+ transcript after LFG updates, without losing conversation history.
1900
+
1901
+ ## July 30, 2026 - Live upload progress restored (v0.1.131)
1902
+
1903
+ - File attachments once again show smooth, real byte-by-byte upload percentages
1904
+ and progress bars instead of sitting at 0% and jumping to complete.
1905
+ - Embedded omg.dev uploads keep their authenticated runtime routing while
1906
+ reporting progress, including safe token refreshes during an upload.
1907
+
1908
+ ## July 30, 2026 - Unified mobile session rows (v0.1.130)
1909
+
1910
+ - Regular mobile session cards now match the taller Recently shipped row height
1911
+ for a more consistent, easier-to-scan feed.
1912
+ - Recently shipped rows show their source session title instead of repeating
1913
+ the project already selected for the page.
1914
+
1915
+ ## July 30, 2026 - Interactive artifacts run on open (v0.1.129)
1916
+
1917
+ - Artifacts that draw themselves with scripts now run immediately in an isolated
1918
+ sandbox instead of waiting for an Interactive button, so a live dashboard or
1919
+ clickable prototype is interactive the moment you open it.
1920
+ - Static artifacts keep rendering as real DOM, so they still share the app's
1921
+ scroll, text selection and layout, and cost no separate document.
1922
+ - Gallery tiles stay lightweight previews and mark scripted artifacts with an
1923
+ Interactive badge rather than showing a half-drawn chart.
1924
+ - Fixes a ResizeObserver warning that could surface as an error toast under
1925
+ artifact embeds.
1926
+
1927
+ ## July 30, 2026 - Tighter mobile composer (v0.1.128)
1928
+
1929
+ - The mobile new-session composer now sits closer to the feed, removing the
1930
+ oversized empty band while preserving side spacing, touch comfort, and the
1931
+ device safe area.
1932
+
1933
+ ## July 30, 2026 - Native artifact rendering (v0.1.127)
1934
+
1935
+ - HTML artifacts now render as real DOM in a shadow root instead of a sandboxed
1936
+ iframe, so the Shipped feed, the Artifacts gallery, transcript embeds and the
1937
+ full-page viewer all share the app's own scroll, text selection and layout.
1938
+ - Artifact styles stay contained in both directions, and embeds size themselves
1939
+ to their real content height — the polling height reporter is gone.
1940
+ - Artifacts that contain scripts show an Interactive control that runs them in
1941
+ an isolated sandbox on request; artifact JavaScript never runs in the app.
1942
+ - The Shipped feed shows a real preview of each HTML artifact instead of a
1943
+ filename row, and pulls far less to paint: image tiles use generated previews
1944
+ instead of full-size originals, and videos load when played rather than on
1945
+ first paint.
1946
+ - Feed and gallery refreshes now poll a single page instead of re-downloading
1947
+ everything already loaded.
1948
+
1949
+ ## July 30, 2026 - Inline expired-login recovery (v0.1.126)
1950
+
1951
+ - Sessions whose Claude or Codex login expires now show the provider sign-in
1952
+ flow directly above the failed turn instead of leaving a dead authentication
1953
+ error in the transcript.
1954
+ - Browser approval, one-time codes, and successful reconnect guidance reuse the
1955
+ existing account flow so users can sign back in and retry without leaving the
1956
+ session.
1957
+
1958
+ ## July 30, 2026 - Recently shipped on mobile (v0.1.125)
1959
+
1960
+ - Mobile Live now shows the five most recent shipped sessions in a compact
1961
+ section below active work, scoped to the selected project.
1962
+ - Finished sessions open in the normal transcript view, and a View all shortcut
1963
+ jumps directly to the complete Shipped feed.
1964
+
1965
+ ## July 30, 2026 - Dynamic free OpenCode models (v0.1.124)
1966
+
1967
+ - OpenCode's live \`opencode/*-free\` catalog entries now remain available in
1968
+ model pickers instead of being dropped by LFG's curated catalog.
1969
+ - Computers without a connected Claude or Codex account automatically select
1970
+ a currently available free OpenCode model; connected accounts keep the
1971
+ authenticated default.
1972
+
1973
+ ## July 30, 2026 - Focused agent updates (v0.1.123)
1974
+
1975
+ - Session menus now offer an experimental global **User + LFG output** view
1976
+ that keeps user turns and agent-delivered updates readable while hiding
1977
+ internal reasoning, routine tool calls, and ordinary assistant chatter.
1978
+ - Images, videos, and live dashboards remain visible in the focused view, and
1979
+ the selection follows the shared LFG settings across sessions and devices.
1980
+
1981
+ ## July 30, 2026 - Smart mobile bottom fade (v0.1.122)
1982
+
1983
+ - The mobile composer wash now disappears at the end of the page and eases back
1984
+ in over the preceding 24px, keeping the final session card fully clear.
1985
+
1986
+ ## July 29, 2026 - Safer session actions (v0.1.121)
1987
+
1988
+ - Idle sessions no longer show a Stop action that cannot do anything.
1989
+ - Ending a live session is now labeled Archive session and confirms with a
1990
+ second animated click inside the menu instead of opening a dialog.
1991
+
1992
+ ## July 29, 2026 - Remembered project folders (v0.1.120)
1993
+
1994
+ - Hosted LFG workspaces now reopen on the last selected project instead of
1995
+ resetting to All projects and showing sessions from every folder.
1996
+
1997
+ ## July 29, 2026 - Crisp mobile LFG mark (v0.1.119)
1998
+
1999
+ - The self-hosted mobile header now keeps its LFG logo outside the backdrop-blur
2000
+ layer, preserving the pixel-art mark's sharp edges on iOS.
2001
+
2002
+ ## July 29, 2026 - Safer self-hosting and Claude skills (v0.1.118)
2003
+
2004
+ - Containerized LFG clients now dial wildcard-bound local servers through the
2005
+ correct loopback address, including IPv6-safe URL handling.
2006
+ - Release self-updates now work with the BSD tar shipped by macOS, and injected
2007
+ platform checks correctly recognize the OMG supervisor restart path.
2008
+ - Skills installed by Claude Code plugins now appear in the skills catalog with
2009
+ stable plugin-qualified names.
2010
+ - Cloud deployment docs now make clear that the shared Dockerfile builds the
2011
+ checked-out source directly and does not require a release bundle first.
2012
+
2013
+ ## July 29, 2026 - Deterministic rename settling (v0.1.117)
2014
+
2015
+ - Session renames now remain stable through delayed live-status snapshots,
2016
+ even when slow browser networks deliver updates out of order.
2017
+
2018
+ ## July 29, 2026 - Instant session renaming (v0.1.116)
2019
+
2020
+ - Mobile session names now edit directly in the card or session header instead
2021
+ of opening a separate drawer.
2022
+ - Renames appear immediately and stay stable while slow requests, background
2023
+ polls, and live status updates finish, without flashing the previous name.
2024
+
2025
+ ## July 29, 2026 - Balanced mobile fade heights (v0.1.115)
2026
+
2027
+ - The mobile composer fade now matches the compact 20px header fade, removing
2028
+ the oversized dark wash above the message field.
2029
+
2030
+ ## July 29, 2026 - Hosted galleries (v0.1.114)
2031
+
2032
+ - Hosted LFG surfaces now keep Shipped and Artifacts navigation available on
2033
+ mobile and restore shipped shortcuts on desktop.
2034
+
2035
+ ## July 29, 2026 - Scroll-aware mobile header fade (v0.1.113)
2036
+
2037
+ - The mobile header wash now stays transparent at the top of the page so section
2038
+ labels remain crisp, then eases in across the first 24px of scrolling.
2039
+
2040
+ ## July 29, 2026 - Shorter mobile edge fades (v0.1.112)
2041
+
2042
+ - Mobile Live content now stays clearer near the floating header and composer,
2043
+ with a 20px top wash and the restored 64px bottom fade.
2044
+
2045
+ ## July 29, 2026 - Balanced mobile chat edges (v0.1.111)
2046
+
2047
+ - Mobile Live pages keep their side gutter for card corners and shadows while
2048
+ removing the oversized blank bands above the list and behind the composer
2049
+ fade.
2050
+
2051
+ ## July 29, 2026 - Installable release bundles (v0.1.110)
2052
+
2053
+ - Hosted Computer template builds can install LFG release bundles again; the
2054
+ bundle now carries a runtime-only manifest and matching production lockfile
2055
+ instead of referencing source workspaces that are intentionally not shipped.
2056
+
2057
+ ## July 29, 2026 - Full-width mobile chat (v0.1.109)
2058
+
2059
+ - The mobile Live chat page now uses the full available width without an extra
2060
+ outer gutter, while gallery-style pages keep their existing spacing.
2061
+
2062
+ ## July 29, 2026 - Authenticated embedded artifacts (v0.1.108)
2063
+
2064
+ - HTML dashboards and videos in hosted Computer sessions now load through the
2065
+ authenticated session transport, so transcript cards, the Artifacts gallery,
2066
+ Shipped posts, and full-screen viewing render the artifact instead of the
2067
+ surrounding Vibes app.
2068
+
2069
+ ## July 29, 2026 - Embedded artifact images (v0.1.107)
2070
+
2071
+ - Artifact images in hosted Computer sessions now load through the authenticated
2072
+ session transport, so live transcripts, Shipped posts, zoom, and full-screen
2073
+ viewing no longer show broken image placeholders.
2074
+
2075
+ ## July 29, 2026 - Shipped review in Live (v0.1.106)
2076
+
2077
+ - Finished sessions now open inside the normal Live workspace on desktop and in
2078
+ the standard session sheet on mobile, while remaining read-only until the
2079
+ first message resumes them.
2080
+
2081
+ ## July 29, 2026 - Review-first shipped sessions (v0.1.105)
2082
+
2083
+ - Opening a finished session from Recently Shipped now shows its transcript
2084
+ without resuming it; sending a new message resumes the session automatically
2085
+ and delivers that message as the first follow-up.
2086
+
2087
+ ## July 29, 2026 - Unified project picker (v0.1.104)
2088
+
2089
+ - The desktop project control now uses the same polished folder pill and icon
2090
+ everywhere, while opening the richer project picker with all-projects,
2091
+ browse, and new-folder actions.
2092
+
2093
+ ## July 29, 2026 - Stable session selection and deploy checks (v0.1.103)
2094
+
2095
+ - Choosing a different live session after opening a recent Shipped item now
2096
+ stays put instead of jumping back during background session refreshes.
2097
+ - LFG now verifies both the built web assets and the exact entry bundle served
2098
+ after restart before reporting a local deployment as successful.
2099
+
2100
+ ## July 29, 2026 - Project-scoped shipped sessions (v0.1.102)
2101
+
2102
+ - Recent Shipped items from project-scoped sessions now open through the normal
2103
+ transcript route instead of being misread as folder identifiers.
2104
+
2105
+ ## July 29, 2026 - Reliable mobile layout and session completion (v0.1.101)
2106
+
2107
+ - Mobile lists now reserve the full header, banner, and hosted navigation space,
2108
+ keep cards clear of the floating composer, and restore consistent horizontal
2109
+ padding so content is no longer clipped or overlapped.
2110
+ - Agents now explicitly decide whether a Shipped result should close its source
2111
+ session, so quick chats and likely follow-ups can stay live.
2112
+ - Shipped results no longer imply production deployment, and sessions stay open
2113
+ when a requested deployment has not been verified.
2114
+
2115
+ ## July 29, 2026 - Recent shipped sessions (v0.1.100)
2116
+
2117
+ - The desktop sidebar now shows the five most recently shipped sessions for
2118
+ quick access without leaving the active workspace.
2119
+ - Repeated ship-post updates collapse to one entry per session, and selecting
2120
+ an item opens that exact shipped transcript ready for review or follow-up.
2121
+
2122
+ ## July 29, 2026 - Safe concurrent delivery (v0.1.99)
2123
+
2124
+ - Every LFG coding session now works in its own isolated checkout, including
2125
+ sessions changing LFG itself, so concurrent agents cannot overwrite one
2126
+ another in the live deployment tree.
2127
+ - Session changes land on current main through a repository-wide lock, then
2128
+ rebuild and restart the local service at that exact revision.
2129
+ - Shipped completion now stays open and reports what remains whenever work is
2130
+ uncommitted, missing from main, or not yet deployed locally.
2131
+
2132
+ ## July 29, 2026 - omg.dev hosted branding (v0.1.98)
2133
+
2134
+ - Hosted Computer sessions now replace the LFG mark with the coral omg mark
2135
+ and omg.dev wordmark on desktop, while mobile keeps a compact mark-only
2136
+ header.
2137
+ - The hosted desktop project selector now uses the same neutral outlined folder
2138
+ treatment as the mobile composer without changing standalone LFG branding.
2139
+
2140
+ ## July 29, 2026 - Shipped follow-ups (v0.1.97)
2141
+
2142
+ - Finished work in the Shipped feed now has a **Follow up** action that starts
2143
+ a separate session with the original transcript as context, preserving the
2144
+ completed source session while carrying the work forward.
2145
+ - The follow-up composer supports agent, model, reasoning, prompt, and file
2146
+ choices, then opens the newly created session directly in Live.
2147
+
2148
+ ## July 29, 2026 - Hosted attachment uploads (v0.1.96)
2149
+
2150
+ - File attachments now use the host application's authenticated LFG transport,
2151
+ so uploads from embedded Computer sessions reach the connected runtime
2152
+ instead of failing against the dashboard origin.
2153
+
2154
+ ## July 29, 2026 - Edge-to-edge mobile scrolling (v0.1.95)
2155
+
2156
+ - Every mobile page now scrolls edge-to-edge behind the floating navigation,
2157
+ with a soft blur and fade instead of a hard content boundary.
2158
+ - Live, Shipped, and Artifacts also scroll behind the persistent composer while
2159
+ matching top and bottom padding keeps every item fully reachable.
2160
+
2161
+ ## July 29, 2026 - Single app dependency (v0.1.94)
2162
+
2163
+ - \`@lfg-dev/app\` now exports its signed transport factory and public transport
2164
+ types, so React hosts install one application package instead of declaring
2165
+ the app's nested client dependency a second time.
2166
+
2167
+ ## July 29, 2026 - Full application package (v0.1.93)
2168
+
2169
+ - LFG now publishes its exact standalone application as \`@lfg-dev/app\`, so
2170
+ React hosts render the same desktop rail, mobile cards, session sheets, and
2171
+ composers without an iframe or a second visual implementation.
2172
+ - The full application accepts one host-owned signed transport for every HTTP
2173
+ request and live WebSocket, keeps its navigation in memory, and scopes its
2174
+ stylesheet to the mounted host surface.
2175
+ - Release packaging now produces the application tarball once and includes it
2176
+ alongside the protocol, client, and smaller React surface packages.
2177
+
2178
+ ## July 29, 2026 - Finished sessions (v0.1.92)
2179
+
2180
+ - Successful agent work now posts its final result, leaves the live fleet
2181
+ automatically, and remains available to resume whenever follow-up is needed.
2182
+ - Finished conversations now use the same transcript rendering as live
2183
+ sessions, with full history and a one-tap Resume action.
2184
+
2185
+ ## July 29, 2026 - Native session rail polish (v0.1.91)
2186
+
2187
+ - The native Computer session rail now swipes cleanly on mobile with subtle
2188
+ item snapping and no exposed browser scrollbar.
2189
+
2190
+ ## July 29, 2026 - Clean workspace builds (v0.1.90)
2191
+
2192
+ - Release runners now compile the shared workspace packages before the
2193
+ standalone frontend, so a clean checkout builds without cached output.
2194
+
2195
+ ## July 29, 2026 - Deterministic package releases (v0.1.89)
2196
+
2197
+ - Version tags now have one release publisher, preventing local and hosted
2198
+ release jobs from racing to write the same assets.
2199
+ - Package archives are cleaned before each build, so a release can contain
2200
+ only the protocol, client, and React packages for its own version.
2201
+
2202
+ ## July 29, 2026 - Native Computer surfaces (v0.1.88)
2203
+
2204
+ - LFG now ships versioned protocol, client, and React packages so trusted
2205
+ hosts can render sessions directly without booting the full app in an iframe.
2206
+ - The embeddable client owns one shared live connection with batched
2207
+ subscriptions and reconnect resume, while the standalone LFG app uses the
2208
+ same request transport.
2209
+ - A stable Computer shell and matching session, transcript, status, and
2210
+ composer surfaces are available immediately while runtime data loads.
2211
+
2212
+ ## July 29, 2026 - Session rail polish (v0.1.87)
2213
+
2214
+ - The desktop session list now fades softly at the top and bottom of its scroll
2215
+ view, making overflow feel intentional while keeping every row interactive.
2216
+
2217
+ ## July 29, 2026 - Connected Claude SDK sessions (v0.1.86)
2218
+
2219
+ - The default embedded Claude session now uses the connected Claude Code
2220
+ account, instead of allowing omg's built-in proxy variables to override it.
2221
+ - Computers without a connected Claude account continue using the existing
2222
+ platform runtime unchanged.
2223
+
2224
+ ## July 29, 2026 - Prompt Stash recovery (v0.1.85)
2225
+
2226
+ - Typed and dictated prompts are now saved automatically in a browser-local
2227
+ Stash, so refreshing, navigating away, or a failed send no longer loses the
2228
+ text.
2229
+ - Resume now combines Stash history and resumable sessions in a compact desktop
2230
+ dialog and a discoverable mobile drawer.
2231
+
2232
+ ## July 29, 2026 - Connected Claude sessions (v0.1.84)
2233
+
2234
+ - Hosted Computers now launch Claude Code with the user's connected Claude
2235
+ account instead of letting omg's built-in Anthropic proxy override it, so a
2236
+ successful sign-in can immediately start real sessions.
2237
+ - Computers without a connected Claude account keep using the existing
2238
+ platform runtime unchanged.
2239
+
2240
+ ## July 29, 2026 - Personal agent connections (v0.1.83)
2241
+
2242
+ - Hosted Computers now distinguish omg's built-in runtime access from a
2243
+ user's own Claude Code or Codex account, so every new user sees the connect
2244
+ step until they personally sign in.
2245
+ - A completed Claude Code sign-in is recognized on the next status check,
2246
+ letting the Computer open immediately without waiting for a credential cache.
2247
+
2248
+ ## July 28, 2026 - Embedded Computer agent connection (v0.1.82)
2249
+
2250
+ - A fresh hosted Computer now offers Claude Code and Codex sign-in directly
2251
+ inside LFG, using the existing provider login dialogs and without requiring
2252
+ iMessage or showing a provisioning progress bar.
2253
+ - Starting the first session sends one origin-checked event to the omg host so
2254
+ the $49 keep-your-Computer offer appears only after the Computer is useful.
2255
+
2256
+ ## July 28, 2026 - Hosted animations resume reliably (v0.1.81)
2257
+
2258
+ - Hosted Computer activity animations now resume after returning from another
2259
+ tab or window, without reloading or interrupting the live coding session.
2260
+
2261
+ ## July 28, 2026 - Merged branch badges (v0.1.80)
2262
+
2263
+ - Session change badges now switch from the neutral Review treatment to a
2264
+ green check and Merged label once the branch is merged.
2265
+ - New edits or commits made after a merge return the badge to Review, keeping
2266
+ the displayed branch state accurate.
2267
+
2268
+ ## July 28, 2026 - Transcript indexing no longer stalls serve (v0.1.79)
2269
+
2270
+ - Indexing a transcript message used to scan the entire search mirror, so a
2271
+ busy install would pin a CPU core and stop accepting connections — pages hung
2272
+ and the Computer looked disconnected while both services reported healthy.
2273
+ Indexing is now a constant-time lookup.
2274
+ - Upgrading rebuilds the search mirror once on first start, about 8 seconds per
2275
+ 200k indexed messages. Nothing is re-read from disk and no history is lost.
2276
+
2277
+ ## July 28, 2026 - Hosted desktop project switcher restored (v0.1.78)
2278
+
2279
+ - Hosted desktop workspaces once again show the folder/project selector in the
2280
+ session rail, while account and settings controls remain owned by the host.
2281
+
2282
+ ## July 28, 2026 - Durable sessions across every resume path (v0.1.77)
2283
+
2284
+ - Claude, Codex, OpenCode, and Pi retain their full indexed conversation when
2285
+ resumed, and Grok and Cursor sessions can now be resumed from their native
2286
+ histories in the same picker.
2287
+ - The live managed-session roster now stays in memory for fast reads while
2288
+ persisting every mutation atomically, so a serve crash or restart rehydrates
2289
+ the intact session list instead of losing or briefly emptying it.
2290
+
2291
+ ## July 28, 2026 - Codex resume history restored (v0.1.76)
2292
+
2293
+ - Resuming a file-backed Codex session now imports its conversation before the
2294
+ new agent starts, preventing successful resumes from opening as an empty chat.
2295
+
2296
+ ## July 28, 2026 - Desktop embed drops bottom host pad (v0.1.75)
2297
+
2298
+ - When framed in omg at desktop width (lg+), host bottom inset cancels so the
2299
+ composer no longer sits above a ghost empty band. Mobile embed still clears
2300
+ the bottom Computer/Settings pill.
2301
+
2302
+ ## July 28, 2026 - Local Computer conversation manager (v0.1.74)
2303
+
2304
+ - Connected Computers can now run lightweight conversation reasoning locally
2305
+ through a versioned manager protocol while the calling service retains
2306
+ privileged tool execution.
2307
+ - Retried manager rounds are deduplicated durably, preventing duplicate local
2308
+ model requests during relay reconnects or Computer wake-up.
2309
+
2310
+ ## July 28, 2026 - Reliable hosted session focus (v0.1.73)
2311
+
2312
+ - Hosted Computer links read their target session directly from the browser
2313
+ address during startup, so a slow router bootstrap cannot leave an older
2314
+ session open inside an otherwise-correct iframe URL.
2315
+
2316
+ ## July 28, 2026 - Stable hosted session deep links (v0.1.72)
2317
+
2318
+ - Hosted Computer sessions keep their session and embed address while focus is
2319
+ resolved, preventing a redundant navigation from returning the iframe to the
2320
+ generic LFG home or identity picker.
2321
+
2322
+ ## July 28, 2026 - Standalone device pad, cancel when embedded (v0.1.71)
2323
+
2324
+ - Standalone LFG restores the original home-indicator padding under Start.
2325
+ - When framed in omg, that device pad cancels out so only the host-pill inset
2326
+ remains — no double gap, no flush-to-edge composer.
2327
+
2328
+ ## July 28, 2026 - Tighten embed bottom pad on PWA (v0.1.70)
2329
+
2330
+ - When framed in omg, bottom safe padding is host-pill only (no stacked device
2331
+ home-indicator), and the home Start row no longer double-counts that band —
2332
+ so the large empty gap under the composer on the iOS PWA is gone while the
2333
+ session Message bar still clears the Computer/Settings pill.
2334
+
2335
+ ## July 28, 2026 - Global safe bottom for embed (v0.1.69)
2336
+
2337
+ - Session chat and every other bottom surface now pad with a global
2338
+ \`--lfg-safe-bottom\` token (device home-indicator + omg Computer host pill), so
2339
+ the Message composer no longer sits under the floating Computer/Settings
2340
+ controls when framed in omg.
2341
+
2342
+ ## July 28, 2026 - Reliable live-stream returns (v0.1.68)
2343
+
2344
+ - Returning to LFG after switching tabs or desktops now detects and replaces a
2345
+ half-dead live connection automatically, restoring transcript updates without
2346
+ requiring a page refresh.
2347
+
2348
+ ## July 28, 2026 - OpenCode permission recovery (v0.1.67)
2349
+
2350
+ - OpenCode sessions no longer remain stuck on Working when a tool needs
2351
+ permission: attached LFG uploads are approved once automatically, while other
2352
+ requests surface Allow once, Always allow, and Deny choices and time out
2353
+ safely when unattended.
2354
+
2355
+ ## July 27, 2026 - Embed host bottom inset (v0.1.66)
2356
+
2357
+ - When framed inside omg Computer, content lifts with a tight internal bottom
2358
+ inset so the compact host nav no longer covers the composer, while LFG's
2359
+ background still paints full-bleed under the pill (no color mismatch).
2360
+
2361
+ ## July 27, 2026 - Embed mode for omg Computer (v0.1.65)
2362
+
2363
+ - When framed inside omg (or with \`?embed=1\`), LFG hides its own header,
2364
+ settings, user picker, and onboarding so the host product owns that chrome.
2365
+ - Embedded mode defaults to all sessions and does not overwrite standalone
2366
+ filter preferences.
2367
+ - Session deep-links (\`?session=\`) prioritize Live from first paint so the
2368
+ target session focuses faster.
2369
+
2370
+ ## July 27, 2026 - Dismissible agent questions (v0.1.64)
2371
+
2372
+ - Agent questions can now be dismissed without sending a reply, including when
2373
+ another action resolves the question at the same time.
2374
+ - The mobile question screen now opens directly on the question card without
2375
+ the redundant page header.
2376
+
2377
+ ## July 26, 2026 - Codex models in the OpenCode picker (v0.1.63)
2378
+
2379
+ - When OpenCode is signed in with a ChatGPT Plus/Pro account, the model picker
2380
+ now offers the latest Codex models (gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna,
2381
+ gpt-5.5, and friends) for OpenCode sessions and auto agents, and newly
2382
+ released gpt models appear automatically after the daily catalog refresh.
2383
+
2384
+ ## July 26, 2026 - Clean OpenCode streaming (v0.1.62)
2385
+
2386
+ - OpenCode sessions no longer echo the initial user prompt as temporary
2387
+ assistant output while a response is streaming.
2388
+
2389
+ ## July 26, 2026 - Warm feeds and native groundwork (v0.1.61)
2390
+
2391
+ - Shipped, Artifacts, and the session list no longer cold-reload on every tab
2392
+ switch. List data is cached client-side (stale-while-revalidate, same idea as
2393
+ transcripts), those pages stay warm in the background after the first visit so
2394
+ gallery iframes don't reboot, and the feeds are prefetched during idle so the
2395
+ first open can paint from cache too.
2396
+ - Auto findings can now be copied as a structured reference for use in an
2397
+ existing session, with that handoff recorded alongside reply, execute, and
2398
+ dismiss actions.
2399
+ - Recurring auto findings are escalated instead of being silently treated as
2400
+ duplicates.
2401
+ - Usage Campfire agents now fly naturally onto their arc and handle touch
2402
+ selection without accidental overlay dismissal.
2403
+ - A documented Expo SDK 57 mobile prototype now establishes the native
2404
+ toolchain, navigation, persistence, glass experiments, and TestFlight path.
2405
+
2406
+ ## July 26, 2026 - Reproducible motion release (v0.1.60)
2407
+
2408
+ - Release installs now include the complete Number Flow dependency lock data,
2409
+ so the organic activity and motion update builds reliably from a clean
2410
+ checkout.
2411
+
2412
+ ## July 26, 2026 - Organic activity and smoother motion (v0.1.59)
2413
+
2414
+ - Pending user messages and live agent tool calls now share a layered organic
2415
+ colour wash, halo and crisp edge instead of a mechanical gradient sweep.
2416
+ When activity finishes, the effect fades away smoothly rather than vanishing.
2417
+ - Newly sent messages now spring from the composer's actual on-screen position,
2418
+ staying spatially correct with the soft keyboard, attachments, multiline
2419
+ prompts and multi-column sessions.
2420
+ - Dialogs, dropdowns, context menus and alerts now use one consistent motion
2421
+ scale, with reduced-motion fallbacks throughout.
2422
+ - Live reasoning labels remain readable while their highlight moves, rather
2423
+ than fading toward invisible at the ends of the shimmer.
2424
+ - The Usage Campfire's "next restore" now counts down to the second, with each
2425
+ unit rolling on its own instead of the whole line swapping once a second.
2426
+ - Agent marks in the campfire are larger again.
2427
+ - On touch, tapping an agent now highlights it and retargets the readout; a
2428
+ second tap on the same agent starts the session. Previously a single tap fired
2429
+ straight into the composer, before you could read anything.
2430
+
2431
+ ## July 25, 2026 - Start a session from the campfire (v0.1.58)
2432
+
2433
+ - Clicking an agent in the Usage Campfire now picks that agent in the composer
2434
+ and opens it, so the campfire is a launcher as well as a readout. It resolves
2435
+ to whichever variant of that agent this box actually has configured.
2436
+ - The agent logo leads each node at roughly double its old size, with the usage
2437
+ meter shrunk to a compact ring beside its own percentage underneath.
2438
+ - Agent marks now cast a shape-tracing glow rather than a rectangular shadow,
2439
+ which was drawing a box behind the transparent logos.
2440
+
2441
+ ## July 25, 2026 - Clean session pins (v0.1.57)
2442
+
2443
+ - Deleted sessions are now removed from browser-local pinned state instead of
2444
+ lingering in the frontend and resurfacing as stale UI.
2445
+ - Closing a pinned session also dismisses its open mobile detail sheet, while
2446
+ pins in other project or owner filters remain intact.
2447
+
2448
+ ## July 25, 2026 - Campfire, cleaned up (v0.1.56)
2449
+
2450
+ - The Usage Campfire now only shows agents that actually report usage —
2451
+ unconfigured providers no longer sit on the arc as greyed-out placeholders
2452
+ that read as broken.
2453
+ - Hovering (or tapping) an agent retargets the centre readout to that agent's
2454
+ own next restore. If an agent doesn't report a reset time, the centre shows
2455
+ how much of its window is spent instead, so a hover always answers something.
2456
+ - Loading is a real state now: ember arcs spin in place on the arc while limits
2457
+ are read, instead of an ellipsis and a static dash.
2458
+ - Dropped the glass cards. Each agent is just its meter, name and percentage on
2459
+ the ember background, and the hovered one lifts while the rest recede.
2460
+ - Ring colour now tracks each window's own utilization on a shared scale, so a
2461
+ ring means the same thing as the number beneath it. The previous colours were
2462
+ assigned by position and encoded nothing.
2463
+ - The green/amber/red utilization scale was re-picked for colour-vision
2464
+ deficiency — the old green and amber were nearly indistinguishable to deutan
2465
+ viewers (ΔE 6.6, well under the safe floor).
2466
+ - Fixed: on narrow phones the outermost agents were clipped off both edges. The
2467
+ arc is now sized from the space actually available.
2468
+
2469
+ ## July 25, 2026 - Instant transcripts and a calmer workspace (v0.1.55)
2470
+
2471
+ - Opening a session is now instant. The transcript pane used to clear itself
2472
+ and refetch every time you opened a session — even one you had open seconds
2473
+ earlier — so it always waited on a full network round trip. Transcripts are
2474
+ now cached and repainted immediately, and the sessions you are most likely to
2475
+ open next are warmed in the background. On a slow connection this took
2476
+ session opens from roughly 1.7s to under 0.3s.
2477
+ - The Shipped and Artifacts galleries load much faster. The artifact index is
2478
+ cached instead of rebuilt per request, and gallery tiles no longer boot a
2479
+ live iframe apiece just to render a thumbnail.
2480
+ - The composer is now one shared component everywhere it appears, so the
2481
+ session view, the new-session bar, and mobile all behave identically —
2482
+ along with a single consistent status dot.
2483
+ - The chat input grows with what you type, the focused stage column is easier
2484
+ to pick out at a glance, and the desktop rail has a right-click context menu.
2485
+ Long session subtitles in the rail are clamped to two lines.
2486
+ - New keyboard shortcuts for opening Settings and toggling the sidebar.
2487
+ - Idle sessions can be cleared in bulk directly from the sessions list.
2488
+ - Agent-facing MCP payloads are slimmer and use short session ids, so agents
2489
+ spend less of their context on session bookkeeping.
2490
+ - Fixed: the OpenCode backend now streams real tool arguments and results
2491
+ instead of placeholders, and no longer collides on port 4096.
2492
+ - Usage Campfire: press bare **Shift** to toggle a full-screen arc of every
2493
+ agent's rate limits around a live "next restore" countdown (press Shift again,
2494
+ Esc, or click outside to close). On mobile, long-press the composer activity
2495
+ rings.
2496
+ - \`lfg agents auto\` can now create and manage auto agents over their full
2497
+ lifecycle from the CLI.
2498
+ - Fixed: the image annotator now renders above the composer dialog instead of
2499
+ behind it.
2500
+
2501
+ ## July 25, 2026 - Quieter mobile starts and reliable ask replies (v0.1.54)
2502
+
2503
+ - The empty mobile live view is now a quiet, unboxed status marker instead of
2504
+ a large card that duplicated the persistent new-session composer. The
2505
+ redundant button, obsolete v2 instructions, and visible versioned startup
2506
+ copy are gone.
2507
+ - Ask prompts now expire cleanly when their session is no longer waiting, and
2508
+ pivoting to a different task no longer gets mistaken for answering the old
2509
+ question.
2510
+
2511
+ ## July 24, 2026 - Opus 5 voice advisor and a two-verb agent channel (v0.1.53)
2512
+
2513
+ - The voice advisor now runs on Claude Opus 5, falling back to Sonnet 5, and
2514
+ is fixed for how those models think. It used to share the voice brain's small
2515
+ reply budget; because the new models reason before answering and that
2516
+ reasoning draws on the same budget, hard questions would have come back
2517
+ truncated or silent. The advisor now has its own, much larger budget while
2518
+ the brain keeps its fast one. Consults that act on the fleet mid-answer also
2519
+ no longer fail partway through.
2520
+ - Agents talk to you through two verbs instead of a scattered set of tools:
2521
+ one for telling you things (running narration in the thread, evidence and
2522
+ reports inside the session, finished work on the Shipped feed) and one for
2523
+ asking (a question for you, or a consult with the advisor). Agents are now
2524
+ expected to narrate as they work rather than going quiet for long stretches,
2525
+ and to make the reasonable call themselves instead of stopping to check in.
2526
+ Existing tools keep working.
2527
+ - Ended and historical sessions are searchable again — find past sessions by
2528
+ id, owner, project, text, or when they were last active.
2529
+
2530
+ ## July 24, 2026 - Real page URLs and relayed live views (v0.1.52)
2531
+
2532
+ - Every page now has its own URL. The dashboard uses real paths
2533
+ (\`/settings\`, \`/usage\`, \`/coding-agents\`, and so on), so the browser
2534
+ back/forward buttons work across pages, any page is directly shareable, and
2535
+ a page survives a hard refresh.
2536
+ - Session deep links (\`/?session=<id>\`) now reliably open the linked session —
2537
+ including on mobile, on a first-run browser still behind the profile picker,
2538
+ and when the session belongs to another profile — and say so clearly when the
2539
+ session has already ended instead of silently doing nothing.
2540
+ - The live session view — streaming transcript and live status — now works for
2541
+ sessions opened through a connected relay, not just the local dashboard, by
2542
+ tunneling the session's live WebSocket and SSE streams over the relay's
2543
+ existing outbound socket.
2544
+ - Auto-agent findings and ask-user questions now reach relay-connected surfaces.
2545
+ - Newly created session cards show a "started" badge so fresh sessions are easy
2546
+ to spot in the live view.
2547
+ - Fixed a chat issue that could spin the transcript in a scroll/update loop.
2548
+
2549
+ ## July 23, 2026 - Origin channel delivery (v0.1.51)
2550
+
2551
+ - Agents can now intentionally send text, screenshots, and videos back to the
2552
+ channel that launched their session through the channel-neutral
2553
+ \`lfg_send_to_origin\` MCP tool.
2554
+ - Deliveries stay bound to their owning session, while phone numbers and
2555
+ transport credentials remain exclusively with the channel adapter.
2556
+
2557
+ ## July 23, 2026 - Reliable mobile bundle (v0.1.50)
2558
+
2559
+ - Restored the mobile bottom-edge gesture guard to the published source so
2560
+ the web UI builds cleanly while protecting iOS Home and app-switching
2561
+ gestures.
2562
+
2563
+ ## July 23, 2026 - Connected session links (v0.1.49)
2564
+
2565
+ - Connected computers can now advertise their public URL with
2566
+ \`lfg connect --url\`, or through \`LFG_PUBLIC_URL\`, so relays can preserve
2567
+ exact links back to individual sessions.
2568
+ - Session deep links and shipped-result media now flow through connected
2569
+ relays, making remote completion messages more useful outside the LFG
2570
+ dashboard.
2571
+
2572
+ ## July 22, 2026 - Faster, clearer session workflows (v0.1.48)
2573
+
2574
+ - Attachments now start uploading as soon as they are selected, and large files
2575
+ transfer in resilient 8 MB chunks so sending a message rarely waits on file
2576
+ bytes and oversized requests are less fragile.
2577
+ - Desktop session actions are clearer and more dependable: Fork dialogs stay
2578
+ bright above their backdrop, sent messages remain right-aligned, and session
2579
+ references can be copied directly from the action menu.
2580
+ - Settings now reports host disk usage alongside CPU and memory, including a
2581
+ capacity bar that calls out elevated utilization.
2582
+ - Voice handoffs use natural conversational holds without exposing internal
2583
+ advisor, model, or session terminology.
2584
+ - Optional \`lfg connect\` lifecycle notifications now ignore subagents and
2585
+ short-lived top-level sessions, keeping remote completion alerts focused on
2586
+ meaningful work.
2587
+
2588
+ ## July 20, 2026 - Visible mobile selection (v0.1.47)
2589
+
2590
+ - Selecting text from a sent-message bubble now keeps the native highlight and
2591
+ selection handles above the glass card instead of clipping them underneath it.
2592
+
2593
+ ## July 20, 2026 - Faster message sharing (v0.1.46)
2594
+
2595
+ - Every user and assistant message now has a one-tap copy action. On mobile,
2596
+ long-pressing message text opens quick Copy and Select text actions, so people
2597
+ can either grab the whole response immediately or use native selection handles.
2598
+ - \`lfg connect\` can now optionally forward session completed/needs-attention
2599
+ events to the relay it's paired with (\`LFG_CONNECT_EVENTS=1\`, off by
2600
+ default — session titles leave the box when enabled). See the "Session
2601
+ lifecycle events" section in the README's \`lfg connect\` docs.
2602
+
2603
+ ## July 20, 2026 - Smart session cleanup (v0.1.45)
2604
+
2605
+ - Smart clear and other LFG-managed agents can now close sessions through the
2606
+ supported MCP surface after resolving an exact session id.
2607
+ - Session closing refuses self-termination, and capability guidance now reports
2608
+ a refresh only for genuinely stale sessions instead of masking missing tools.
2609
+
2610
+ ## July 20, 2026 - Responsive chat and resilient indexing (v0.1.44)
2611
+
2612
+ - Session and bootstrap requests no longer fan out eager transcript-page reads
2613
+ across the fleet, eliminating the load amplification that stalled chat,
2614
+ artifacts, voice, and the connection ping together.
2615
+ - Message delivery now resolves sessions through the shared live cache, avoiding
2616
+ a full process and tmux discovery pass on every send.
2617
+ - Artifact refreshes fail fast and retry their SQLite mirror when another writer
2618
+ is active; scheduled refreshes can no longer crash or freeze the LFG server,
2619
+ and durable manifests reconcile automatically after restart.
2620
+ - Transcript write transactions acquire the SQLite writer lock up front, trace
2621
+ pages are sampled with seven-day retention, and database planner/search
2622
+ metadata is repaired and optimized during rollout.
2623
+
2624
+ ## July 19, 2026 - Consistent live media and connection health (v0.1.43)
2625
+
2626
+ - Settings now shows the real browser-to-server WebSocket ping, refreshed every
2627
+ five seconds with clear live, reconnecting, and offline states.
2628
+ - Transcript media now has one explicit, atomic placement and ordering path.
2629
+ Gallery and Shipped assets can no longer leak into chat, empty cards are
2630
+ suppressed, stable artifact ownership remains singular, and legacy orphaned
2631
+ or misclassified placements are repaired during migration.
2632
+ - Transcript reads no longer scan and rewrite artifact metadata or run one JSON
2633
+ poller per open pane, restoring millisecond artifact delivery and responsive
2634
+ local API requests on large indexes.
2635
+ - \`lfg connect\` — a new generic remote-access relay client. Lets a
2636
+ self-hosted box be reached through an operator-run relay without opening
2637
+ any inbound port: the box dials out over a WebSocket, authenticates with a
2638
+ one-time pairing code (then a persisted bearer token), and proxies HTTP
2639
+ traffic onto its own local \`lfg serve\`. No relay implementation ships with
2640
+ LFG — \`LFG_RELAY_URL\` is a required, provider-agnostic setting (see the
2641
+ README's "lfg connect" section and the wire protocol documented in
2642
+ \`src/commands/connect.ts\`).
2643
+
2644
+ ## July 18, 2026 - Transferable live dashboards (v0.1.42)
2645
+
2646
+ - Re-publishing a stable HTML artifact id from a later session now updates the
2647
+ same dashboard, transfers ownership and refresh control, and continues its
2648
+ existing revision history.
2649
+
2650
+ ## July 18, 2026 - Correct Pi and Copilot icons (v0.1.41)
2651
+
2652
+ - Pi now uses its official block logo instead of a generic pi glyph, with a
2653
+ fresh cache version so the corrected artwork appears immediately.
2654
+ - Pi and GitHub Copilot icons are now served by the production static-asset
2655
+ route, fixing missing icons outside the development server.
2656
+
2657
+ ## July 18, 2026 - Custom agent profiles (v0.1.40)
2658
+
2659
+ - Agents can now load a custom profile from a directory (\`LFG_PI_PROFILE_DIR\`):
2660
+ extra system-prompt text, a skills directory, and a display name — injected
2661
+ via pi's native \`--append-system-prompt\`/\`--skill\` flags. Lets operators
2662
+ brand and specialize managed pi sessions without forking LFG.
2663
+
2664
+ ## July 18, 2026 - More agents and reliable mobile layers (v0.1.39)
2665
+
2666
+ - Pi and GitHub Copilot are now first-class coding-agent choices across setup,
2667
+ session creation, model selection, and managed launches.
2668
+ - Agents receive the LFG presentation workflow automatically, including visual
2669
+ verification, live artifact publishing, and shipped-work showcases.
2670
+ - Script-backed artifacts can be refreshed manually, and desktop trackpad
2671
+ gestures can cycle the active project without leaving the live view.
2672
+ - Mobile nested surfaces now stack correctly: Fork stays above an open chat,
2673
+ and the model selector drawer fully covers its originating control pop-up.
2674
+
2675
+ ### Added
2676
+
2677
+ - **GitHub Copilot CLI** (\`@github/copilot\`, binary \`copilot\`) as an 8th supported coding agent:
2678
+ - Settings → Coding agents tile with binary + auth status checks. Auth precedence: \`COPILOT_GITHUB_TOKEN\` > \`GH_TOKEN\` > \`GITHUB_TOKEN\`, falling back to a real login artifact (\`~/.copilot/hosts.yml\`, \`config.json\`, or \`session-state/\`) rather than a bare \`~/.copilot/\` directory.
2679
+ - Tmux-transport session launcher \`spawnManagedCopilotSession\` wired through \`serve.ts\` so \`agent=copilot\` requests dispatch to Copilot instead of falling back to Claude. Launches interactively via Copilot's supported \`-i, --interactive <prompt>\` flag, which starts a long-lived TUI and auto-executes the initial prompt (no \`-p\` one-shot, no send-keys polling).
2680
+ - \`--allow-all-tools\` is opt-in through \`LFG_COPILOT_ALLOW_ALL_TOOLS=1\`. Off by default because LFG's agent slice is resource containment, not a filesystem/network sandbox.
2681
+ - Curated model catalog: \`claude-sonnet-4.5\` (default), \`claude-sonnet-4\`, \`gpt-5\`.
2682
+ - \`scripts/setup.sh\` installs \`@github/copilot\` when \`LFG_INSTALL_COPILOT=1\` (requires Node 22+), pinned to \`LFG_COPILOT_VERSION\` (default \`1.0.71\`) for reproducibility and to avoid GHSA-g8r9-g2v8-jv6f (\`<=0.0.422\`, prompt-injection RCE via shell parameter expansion) and GHSA-9ccr-r5hg-74gf (\`<=1.0.42\`, \`core.fsmonitor\` RCE via nested bare repo).
2683
+ - New \`LFG_COPILOT_PATH\`, \`LFG_COPILOT_ALLOW_ALL_TOOLS\`, and \`LFG_COPILOT_VERSION\` env overrides.
2684
+
2685
+ ## July 16, 2026 - Shipped feed and live artifacts (v0.1.37)
2686
+
2687
+ - New Shipped channel: a feed of agent-published work, available as a virtual
2688
+ page in the project menu with kind filters (all/html/image/video), live HTML
2689
+ previews, load-more paging, tweet-style posts with real agent-kind bylines,
2690
+ and \`?tab=\` deep links.
2691
+ - HTML artifacts are now updatable: a persisted script refresh runner (also
2692
+ exposed over MCP) re-renders them on demand, with visible refresh state,
2693
+ stable revisions across data refreshes, clean cancellation, and deletion.
2694
+ - Added a native full-page artifact viewer and a dedicated all-artifacts
2695
+ gallery; tapping a post opens the session that shipped it.
2696
+ - Mobile swipe polish: no more composer-bar or mid-swipe flashes when changing
2697
+ project pages, and the right nav island stays identical across swipe pages.
2698
+ - Subagents launched inside a slice are now bound to their transcript via
2699
+ cgroup, fixing misattributed output; agent swarms get bounded memory and
2700
+ concurrency.
2701
+
2702
+ ## July 15, 2026 - Durable sessions and faster image viewing (v0.1.36)
2703
+
2704
+ - Session worktrees now live under a persistent LFG-managed root instead of a
2705
+ temporary directory, and Claude and Codex resume flows show full history.
2706
+ - Image artifacts now use cached, size-bounded WebP previews in transcripts and
2707
+ the lightbox, reducing transfer and decode costs while preserving originals.
2708
+ - Image display retries no longer create duplicate transcript entries when the
2709
+ shared SQLite index is busy; durable artifacts succeed and reconcile into the
2710
+ ordered message stream, with a short idempotency window for agent retries.
2711
+ - Refined session-management and resume surfaces, including modal layering,
2712
+ keyboard handling, and responsive navigation behavior.
2713
+
2714
+ ## July 14, 2026 - Desktop polish and upload progress (v0.1.35)
2715
+
2716
+ - Refreshed the desktop navigation rail, header, and session stage to match the
2717
+ mobile visual language, with improved glass surfaces, spacing, and controls.
2718
+ - File attachments now show real per-file upload percentages and progress bars
2719
+ in both active-session and new-session composers, including concurrent files.
2720
+ - Fixed the desktop Manage Sessions menu trigger for Base UI compatibility.
2721
+
2722
+ ## July 14, 2026 - Installable app and resilient recovery (v0.1.34)
2723
+
2724
+ - Added a discoverable PWA install flow on desktop and mobile, including the
2725
+ native Chromium prompt, guided Apple installation steps, standalone detection,
2726
+ and proper platform, maskable, and Apple touch icons.
2727
+ - Managed SDK sessions now keep a durable resume record with their model,
2728
+ project, and assigned user, so closed or restarted sessions can be recovered
2729
+ reliably. OpenCode sessions also participate in the agent filters and model
2730
+ pickers throughout the web UI.
2731
+ - Theme choices now persist across reloads, and voice provider API keys can be
2732
+ configured securely from the setup dialog.
2733
+ - The Manage Sessions launcher now stays accessible in the appropriate desktop
2734
+ and mobile navigation positions, and the OMG badge points to the correct
2735
+ template page.
2736
+
2737
+ ## July 14, 2026 - Ready-by-default live sessions (v0.1.33)
2738
+
2739
+ - WebSocket live transcripts are now the default for the server and web client,
2740
+ so a standard install no longer needs \`LIVE_TRANSPORT=ws\`. Set it explicitly
2741
+ to \`sse\` only for compatibility with a proxy that cannot upgrade WebSockets.
2742
+
2743
+ ## July 14, 2026 - Sandbox-safe release updates (v0.1.32)
2744
+
2745
+ - Release setup and in-app updates now ignore host-injected tar defaults,
2746
+ replace the prior application bundle explicitly, and avoid restoring archive
2747
+ ownership, permissions, or timestamps that restricted sandbox filesystems can
2748
+ reject.
2749
+ - Existing folders initialized as new Git repositories can now launch their
2750
+ first coding-agent session before an initial commit exists. That first session
2751
+ runs in the selected folder; normal isolated worktrees resume after HEAD is
2752
+ created.
2753
+
2754
+ ## July 13, 2026 - Blank-project picker fixes (v0.1.31)
2755
+
2756
+ - Fresh installs now create their configured repository root when the project
2757
+ browser first opens, so a missing \`~/repos\` no longer blocks listing or
2758
+ creating a project.
2759
+ - The live composer project control now displays the selected project name, and
2760
+ newly browsed or created folders become the active composer project
2761
+ immediately.
2762
+
2763
+ ## July 13, 2026 - Live install logs during onboarding (v0.1.30)
2764
+
2765
+ - Onboarding now streams the real installer output in a single live log while a
2766
+ batch install runs, instead of painting the same synthetic progress bar on
2767
+ every selected agent. Each agent row shows a simple **Installing…** state and
2768
+ the shared log tells you exactly what setup is doing.
2769
+ - Backend captures stdout and stderr from the shared \`setup.sh\` run and exposes
2770
+ it at \`GET /api/coding-agents/setup/log\`.
2771
+
2772
+ ## July 13, 2026 - Reliable OMG onboarding installs (v0.1.29)
2773
+
2774
+ - Fixed the onboarding batch endpoint being shadowed by the generic per-agent
2775
+ route, which caused a correct multi-agent request to fail with
2776
+ **unknown coding agent**.
2777
+ - OMG template installs now record their release channel and repository, so
2778
+ Settings can check releases and enable supervisor-aware updates.
2779
+
2780
+ ## July 13, 2026 - Repeatable setup on OMG (v0.1.28)
2781
+
2782
+ - OMG agent-template installs now recognize their existing guest supervisor, so
2783
+ **Update & restart** can safely install a release and relaunch LFG.
2784
+ - Onboarding displays the exact LFG version being configured.
2785
+ - Settings now includes **Redo onboarding**, which reopens the full walkthrough
2786
+ without deleting existing profiles, repositories, or sessions.
2787
+
2788
+ ## July 13, 2026 - Batch agent installation (v0.1.27)
2789
+
2790
+ - Onboarding now lets users choose coding agents with individual checkboxes or
2791
+ Select all, then installs the complete selection in one setup run.
2792
+ - Selected agents share installation progress while already configured agents
2793
+ are left untouched.
2794
+
2795
+ ## July 13, 2026 - Ready-to-run local projects (v0.1.26)
2796
+
2797
+ - New projects now initialize a \`main\` branch and commit their starter README
2798
+ before appearing in the project picker, so the first session can always
2799
+ create its isolated Git worktree.
2800
+ - Local projects without an \`origin/main\` remote now correctly use their local
2801
+ \`main\` commit as the worktree base.
2802
+ - Failed project setup rolls back the new folder instead of leaving a partial
2803
+ project behind.
2804
+
2805
+ ## July 13, 2026 - UI sound & haptics, composer polish (v0.1.25)
2806
+
2807
+ - Added UI sound effects and haptic feedback across the app: a light press
2808
+ tick on buttons, distinct on/off tones on toggles, a send whoosh, tab-switch
2809
+ and agent-swipe cues, and success/error chimes on toasts. Sounds are
2810
+ synthesized (no assets) and both are toggleable in Settings → Feedback
2811
+ (default on); \`haptic()\` now respects the haptics setting everywhere.
2812
+ - Reworked the inline composer's controls into two animated mini-cards (agents,
2813
+ then model/thinking/project) emitted from the agent icon.
2814
+ - Polished the session assign menu with avatar chips matching the user filter.
2815
+ - Kept the terminal surface dark regardless of theme.
2816
+ - Extended the source updater to support release installs alongside Git installs.
2817
+
2818
+ ## July 13, 2026 - Source auto-update (v0.1.24)
2819
+
2820
+ - Added an update panel in Settings for Git/source installs that checks
2821
+ \`origin/main\`, reports available commits, and can update with one click.
2822
+ - Source updates require a clean \`main\` checkout, fast-forward safely, install
2823
+ locked dependencies, rebuild the web UI, and restart the managed systemd or
2824
+ launchd service before reconnecting the browser.
2825
+ - Added coverage for up-to-date, behind, dirty, and non-main checkout states.
2826
+ - Refreshed the web lockfile so frozen CI installs include the AI SDK packages
2827
+ already declared by the web app.
2828
+
2829
+ ## July 13, 2026 - Native project picker & clean MCP images (v0.1.23)
2830
+
2831
+ - Replaced the composer's native repo select with a mobile-friendly project
2832
+ sheet that lists project paths and makes browsing or creating a project a
2833
+ first-class action.
2834
+ - The inline composer now opens the same project sheet from its folder button,
2835
+ keeping project selection consistent across composer layouts.
2836
+ - Stopped MCP image results from emitting redundant Markdown URLs that could
2837
+ render as broken images; clients continue to receive the structured artifact.
2838
+
2839
+ ## July 12, 2026 - Fix agent-icon swipe gesture (v0.1.22)
2840
+
2841
+ Follow-up to v0.1.21: the swipe-to-switch gesture didn't actually fire.
2842
+
2843
+ - The agent icon \`<img>\` is draggable by default, so a press-drag started a
2844
+ native image drag and fired \`pointercancel\` after the first move — killing
2845
+ the swipe before it crossed threshold. The icon is now \`draggable={false}\` /
2846
+ \`pointer-events-none\`.
2847
+ - Reworked the gesture to pointer events (one path for mouse-drag, touch and
2848
+ pen) tracked on \`window\` so the drag survives the pointer leaving the 32px
2849
+ target, and Base UI's press-to-open is suppressed so a swipe never also opens
2850
+ the popover (tap still opens it). Verified end-to-end in a headless browser.
2851
+ - Note: the inline composer that hosts this icon is the mobile home screen
2852
+ (viewport ≤ 767px); on wider/desktop layouts the agent switcher is the
2853
+ button row inside the composer controls.
2854
+
2855
+ ## July 12, 2026 - Swipe-to-switch agent & cached agent icons (v0.1.21)
2856
+
2857
+ The composer's agent icon is now a quick gesture target, and agent icons stop
2858
+ re-downloading on a timer.
2859
+
2860
+ - Swipe up/down (or trackpad-scroll) on the inline composer's agent icon to step
2861
+ through the visible agents, with a slide+fade animation; tapping still opens
2862
+ the full agent/model popover.
2863
+ - Agent icons are now versioned (\`?v=…\`) and served \`immutable\` for a year, so
2864
+ they load once and never re-fetch on subsequent renders. Other static assets
2865
+ gained \`ETag\`/\`Last-Modified\` revalidation (cheap 304s) instead of a bare
2866
+ 5-minute \`max-age\` that forced full re-downloads.
2867
+ - Media artifacts are indexed into the transcript index so images obey the same
2868
+ pagination boundary as prose instead of appending to whichever page loaded.
2869
+ - Added "use this folder" / "create new folder" project onboarding (with
2870
+ \`git init\`) in the repo store.
2871
+ - Coding-agent setup reports progress, and Claude/Codex login commands use the
2872
+ device-auth / \`--claudeai\` flows.
2873
+
2874
+ ## July 11, 2026 - Auto-agent picker parity (v0.1.20)
2875
+
2876
+ Auto agents can use the same providers as new sessions, and the settings sheets
2877
+ use shorter copy.
2878
+
2879
+ - Auto-agent create/edit/finding sheets now offer Claude, Codex, Grok, Cursor,
2880
+ and OpenCode (filtered by coding-agent visibility), matching the session
2881
+ picker.
2882
+ - Added headless runners for Grok and Cursor auto agents.
2883
+ - Tightened auto-agent settings labels and placeholders.
2884
+ - Kept display images in transcript order, and improved cursor-agent busy
2885
+ detection plus the Grok session model fallback.
2886
+
2887
+ ## July 9, 2026 - Direct transcript indexing & a single chat state (v0.2.0)
2888
+
2889
+ Managed sessions no longer read or write transcript JSONL: all three SDK
2890
+ harnesses (Claude, Codex, OpenCode) index their message streams straight into
2891
+ SQLite, and the web chat pane now runs entirely on AI SDK \`useChat\`.
2892
+
2893
+ - Claude, Codex, and OpenCode managed sessions run on their official SDKs and
2894
+ index messages directly into SQLite under \`lfg://session/<id>\` keys — opening
2895
+ a chat is one ~2ms DB read, with no transcript files in the loop.
2896
+ - Migrated the web chat pane to \`@ai-sdk/react\` \`useChat\` as the single state
2897
+ system: history is fetched per open, live updates append through the shared
2898
+ WebSocket subscription, and duplicate handling lives in exactly one place.
2899
+ - Fixed live-view blindness after a serve restart: snapshot/gap/resumed frames
2900
+ are now authoritative resync points instead of being dropped by the stale-seq
2901
+ guard, so long-lived pages recover instead of going silent.
2902
+ - Fixed re-entered chats rendering history-less: message state now survives for
2903
+ every subscribed session (not just busy ones), and resume cursors are dropped
2904
+ with their subscriptions.
2905
+ - Fixed Codex sessions silently losing every reply after turn 1 (per-turn item
2906
+ id collisions), duplicated transcripts from rollout re-ingestion, and command
2907
+ replay storms after a harness restart.
2908
+ - Fixed tmux Codex transcript discovery: rollouts are inferred by prompt, cwd,
2909
+ and time, and the mapping is persisted so transcripts still resolve after the
2910
+ pane is gone.
2911
+ - Streaming drafts reset as each assistant message finalizes, so long
2912
+ multi-tool turns no longer accumulate into one duplicated blob.
2913
+ - Temporarily de-listed the Hermes agent from all pickers and spawn paths to
2914
+ focus on the core harnesses (\`agent=hermes\` now returns a clear error).
2915
+
2916
+ ## July 5, 2026 - Setup checks & steadier resumes
2917
+
2918
+ LFG now exposes setup checks for local MCP registration and keeps resumed
2919
+ sessions tied to the project they came from.
2920
+
2921
+ - Added an LFG MCP setup check in Settings -> Coding agents, including one-click
2922
+ registration for Claude and Codex when those CLIs are available.
2923
+ - Registers the LFG MCP server during setup by default for local Claude/Codex
2924
+ installs.
2925
+ - Preserves project labels across resumed and managed sessions, even when the
2926
+ underlying agent reports a stale cwd.
2927
+ - Makes resumed Claude sessions stay open for follow-up instructions when no
2928
+ prompt is provided.
2929
+ - Tightened recent-session close guards and fixed several mobile UI edge cases.
2930
+
2931
+ ## July 2, 2026 - Configurable session brain & refreshed UI edges
2932
+
2933
+ The session brain can now run on the model you choose, and the interface picks up a consistent gradient-glass edge across buttons, inputs, and surfaces.
2934
+
2935
+ - Added a per-config model for the session brain (classify/summarize), seeded from env and adjustable from the Session Brain view; defaults to Sonnet 5.
2936
+ - Introduced reusable gradient-border and gradient-edged form-field treatments, applied across buttons, inputs, and surfaces.
2937
+ - Gave the notepad its own bounded scroll area with a scroll-aware edge fade.
2938
+ - Let session resume carry a prompt and an agent-aware model.
2939
+ - Fixed live streaming for AI SDK sessions and versioned the service-worker shell cache.
2940
+
2941
+ ## June 29, 2026 - Safer installs
2942
+
2943
+ Fresh installs now leave existing Tailscale Serve settings alone unless you explicitly opt in.
2944
+
2945
+ - Skips Tailscale Serve setup by default so lfg does not claim HTTPS 443 on install.
2946
+ - Adds an opt-in path with \`LFG_TAILSCALE_SERVE=1\` for private tailnet exposure.
2947
+ - Protects existing Serve routes from accidental overwrite unless \`LFG_TAILSCALE_SERVE_OVERWRITE=1\` is set.
2948
+
2949
+ ## June 29, 2026 - Project-focused live view
2950
+
2951
+ Sessions now group cleanly by repo project, with steadier filters and fewer stale worktree entries.
2952
+
2953
+ - Collapsed session worktrees into project names for simpler scanning.
2954
+ - Kept resumed worktrees during cleanup so active sessions do not disappear.
2955
+ - Removed the extra project-selector arrow for a tighter top bar.
2956
+
2957
+ ## June 2026 - Agent reliability
2958
+
2959
+ Codex and automation paths got stricter defaults and better failure handling.
2960
+
2961
+ - Fixed stateless Codex auto-agent runs.
2962
+ - Added install-channel awareness so update guidance matches source, release, and container installs.
2963
+ - Stabilized speech playback state to avoid repeated render loops.
2964
+
2965
+ ## June 2026 - Deployment options
2966
+
2967
+ Container deploys and hosted setup docs are now part of the project workflow.
2968
+
2969
+ - Added Docker-backed targets for Railway, Fly, Render, Koyeb, DigitalOcean, and Hetzner.
2970
+ - Published bundled-release flow for cloud installs.
2971
+ - Documented operational scripts for voice and GPU STT deployments.
2972
+ `;
2973
+ function o() {
2974
+ return /* @__PURE__ */ e("div", { className: "mx-auto max-w-xl space-y-5 pb-10", children: /* @__PURE__ */ e("article", { className: "markdown rounded-2xl border border-border bg-card/40 px-4 py-4", children: /* @__PURE__ */ e(n, { children: t }) }) });
2975
+ }
2976
+ export {
2977
+ o as default
2978
+ };