@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.
- package/LICENSE +21 -0
- package/dist-lib/BrowserProfiles-BKqSwtW3.js +650 -0
- package/dist-lib/ChangelogPage-DUF8wn1F.js +2978 -0
- package/dist-lib/File-BszRWhXA.js +5866 -0
- package/dist-lib/FileEditor-ByMnm-sa.js +6892 -0
- package/dist-lib/FileTreePane-BG2k7gTc.js +8422 -0
- package/dist-lib/FileViewer-DgjR_OJp.js +18 -0
- package/dist-lib/SessionFilesPanel-Brfp2niD.js +336 -0
- package/dist-lib/TermView-BNcp4mex.js +4000 -0
- package/dist-lib/__vite-browser-external-2447137e-DYxpcVy9.js +4 -0
- package/dist-lib/_commonjsHelpers-C6fGbg64.js +6 -0
- package/dist-lib/abap-Y8Dl9g_6.js +6 -0
- package/dist-lib/abnfDiagram-VRR7QNED-Chn1Z_p9.js +87 -0
- package/dist-lib/actionscript-3-DQVEcJUW.js +6 -0
- package/dist-lib/ada-vP6ak0IW.js +6 -0
- package/dist-lib/agent-claude.svg +1 -0
- package/dist-lib/agent-codex.svg +1 -0
- package/dist-lib/agent-copilot.svg +1 -0
- package/dist-lib/agent-cursor.svg +4 -0
- package/dist-lib/agent-grok.svg +1 -0
- package/dist-lib/agent-hermes.svg +9 -0
- package/dist-lib/agent-opencode.svg +1 -0
- package/dist-lib/agent-pi.svg +7 -0
- package/dist-lib/andromeeda-BbmzSJq1.js +4 -0
- package/dist-lib/angular-html-DPB4Rf0C.js +32 -0
- package/dist-lib/angular-ts-CTOR2ofC.js +21 -0
- package/dist-lib/apache-BUjz-sD2.js +6 -0
- package/dist-lib/apex-OyTfjCYK.js +6 -0
- package/dist-lib/apl-CjNiDgad.js +16 -0
- package/dist-lib/apple-touch-icon.png +0 -0
- package/dist-lib/applescript-BPx7YFFu.js +6 -0
- package/dist-lib/ara-Z2fSOxSw.js +6 -0
- package/dist-lib/arc-B652oHQ-.js +83 -0
- package/dist-lib/architectureDiagram-ZJ3FMSHR-CMatArpz.js +4762 -0
- package/dist-lib/asciidoc-C1T9ziH6.js +6 -0
- package/dist-lib/asm-BTWLY5ym.js +6 -0
- package/dist-lib/astro-CFFExE8Q.js +18 -0
- package/dist-lib/aurora-x-BwoVEUWZ.js +4 -0
- package/dist-lib/awk-Fb0P9dkn.js +6 -0
- package/dist-lib/ayu-dark-DJoqd4M9.js +4 -0
- package/dist-lib/ayu-light-BzXEJRJ-.js +4 -0
- package/dist-lib/ayu-mirage-BJ2oZGzi.js +4 -0
- package/dist-lib/badge-CgdKT4o8.js +46 -0
- package/dist-lib/ballerina-oZK-YekG.js +6 -0
- package/dist-lib/bat-0FvbqU9S.js +6 -0
- package/dist-lib/beancount-DqJEb89h.js +6 -0
- package/dist-lib/berry-DODBq_Ff.js +6 -0
- package/dist-lib/bibtex-EULQRLY5.js +6 -0
- package/dist-lib/bicep-BorU73w0.js +6 -0
- package/dist-lib/bird2-CIjBSNj3.js +6 -0
- package/dist-lib/blade-D0HyNvCw.js +20 -0
- package/dist-lib/blockDiagram-677ZJIJ3-CEOPfI9A.js +2429 -0
- package/dist-lib/bsl-NkNNwerW.js +8 -0
- package/dist-lib/c-eeMepfLm.js +6 -0
- package/dist-lib/c3-BY5XW5ym.js +6 -0
- package/dist-lib/c4Diagram-LMCZKHZV-DcUHrESL.js +1578 -0
- package/dist-lib/cadence-02UX7mW8.js +6 -0
- package/dist-lib/cairo-DM6WF2e3.js +8 -0
- package/dist-lib/catppuccin-frappe-D3cH2rXe.js +4 -0
- package/dist-lib/catppuccin-latte-C0LRGUW4.js +4 -0
- package/dist-lib/catppuccin-macchiato-c5wQ11TT.js +4 -0
- package/dist-lib/catppuccin-mocha-WMD6Qvya.js +4 -0
- package/dist-lib/channel-B5lJFbed.js +5 -0
- package/dist-lib/chat-engine-BeMpvOlJ.js +7272 -0
- package/dist-lib/chunk-2Q5K7J3B-Ex8Ly28R.js +15 -0
- package/dist-lib/chunk-32BRIVSS-IYmNSvH8.js +68 -0
- package/dist-lib/chunk-5VM5RSS4-DO2g-xIj.js +19 -0
- package/dist-lib/chunk-EX3LRPZG-N96wfks9.js +1421 -0
- package/dist-lib/chunk-JWPE2WC7-DFPBClX_.js +9 -0
- package/dist-lib/chunk-MOJQB5TN-dusfI9ob.js +664 -0
- package/dist-lib/chunk-RYQCIY6F-fkeERzIG.js +315 -0
- package/dist-lib/chunk-V7JOEXUC-DQwf2vkP.js +1534 -0
- package/dist-lib/chunk-VR4S4FIN-hOZG7eF3.js +20 -0
- package/dist-lib/chunk-XXDRQBXY-Ccv4aRcn.js +8 -0
- package/dist-lib/clarity-PKm5CwqM.js +6 -0
- package/dist-lib/classDiagram-OUVF2IWQ-DOn-rhuL.js +16 -0
- package/dist-lib/classDiagram-v2-EOCWNBFH-DOn-rhuL.js +16 -0
- package/dist-lib/clipboard-paste-Cq1hNjMN.js +17 -0
- package/dist-lib/clojure-CXJfHrL3.js +6 -0
- package/dist-lib/cmake-BJz8BOTU.js +6 -0
- package/dist-lib/cobol-HihOMwht.js +10 -0
- package/dist-lib/codeowners-Bt9yU6NX.js +6 -0
- package/dist-lib/codeql-DHkodjjI.js +6 -0
- package/dist-lib/coding-agents-page-7V7PKijy.js +209 -0
- package/dist-lib/coffee-DGBR_nr_.js +8 -0
- package/dist-lib/common-lisp-EVqT9Zhp.js +6 -0
- package/dist-lib/coq-B0L9upzn.js +6 -0
- package/dist-lib/cose-bilkent-JH36ORCC-C-tACTrT.js +2609 -0
- package/dist-lib/cpp-Cj177cuW.js +18 -0
- package/dist-lib/create-BrnHvSDE.js +306 -0
- package/dist-lib/crystal-CRJyc4G-.js +18 -0
- package/dist-lib/csharp-CCgA4A09.js +6 -0
- package/dist-lib/css-CECN5uSL.js +6 -0
- package/dist-lib/csv-CmYOceLb.js +6 -0
- package/dist-lib/cue-ZzumE7IT.js +6 -0
- package/dist-lib/cynefin-VYW2F7L2-DQXPWaog.js +23853 -0
- package/dist-lib/cynefinDiagram-TSTJHNR4-Be7CamD2.js +299 -0
- package/dist-lib/cypher-jpdmjtA6.js +6 -0
- package/dist-lib/cytoscape.esm-B0ledd6M.js +18786 -0
- package/dist-lib/d-CBagWSwH.js +6 -0
- package/dist-lib/dagre-VKFMJZFB-BhCjK7XQ.js +346 -0
- package/dist-lib/dark-plus-pUHDTVV0.js +4 -0
- package/dist-lib/dart-6ObCrKr9.js +6 -0
- package/dist-lib/dax-CcDT-8dH.js +6 -0
- package/dist-lib/defaultLocale-BgPVtth8.js +171 -0
- package/dist-lib/desktop-B93p9R9O.js +6 -0
- package/dist-lib/diagram-FQU43EPY-Jg12ow4Z.js +466 -0
- package/dist-lib/diagram-G47NLZAW-C3_z2t6T.js +530 -0
- package/dist-lib/diagram-NH7WQ7WH-DUdK08IT.js +143 -0
- package/dist-lib/diagram-OA4YK3LP-TUUyRYY3.js +353 -0
- package/dist-lib/diagram-WEI45ONY-D1kKPOc_.js +221 -0
- package/dist-lib/diff-BxzP2J8R.js +6 -0
- package/dist-lib/docker-CsHqm9tx.js +6 -0
- package/dist-lib/dotenv-BMjVjUL1.js +6 -0
- package/dist-lib/dracula-BtZx2Kac.js +4 -0
- package/dist-lib/dracula-soft-BKa-aqBv.js +4 -0
- package/dist-lib/dream-maker-PAx17jaB.js +6 -0
- package/dist-lib/ebnfDiagram-CCIWWBDH-BhQWrGMc.js +109 -0
- package/dist-lib/edge-BYQkOzbF.js +12 -0
- package/dist-lib/elixir-Dh036GMp.js +8 -0
- package/dist-lib/elm-BtNbw_Cd.js +8 -0
- package/dist-lib/emacs-lisp-Cfxdx5D-.js +6 -0
- package/dist-lib/embedded-DS7udW2I.js +41876 -0
- package/dist-lib/engine-compile-BeZvvx0I.js +10442 -0
- package/dist-lib/erDiagram-Q63AITRT-D2q6Nmwa.js +911 -0
- package/dist-lib/erb-ScVOXVpH.js +10 -0
- package/dist-lib/erlang-DNcDT8Hi.js +8 -0
- package/dist-lib/everforest-dark-DMCBqXCK.js +4 -0
- package/dist-lib/everforest-light-BbXl82Em.js +4 -0
- package/dist-lib/fennel-N4WcXuKx.js +6 -0
- package/dist-lib/fish-BTDEUgqH.js +6 -0
- package/dist-lib/flowDiagram-23GEKE2U-DU3S3biU.js +1645 -0
- package/dist-lib/fluent-BMXUxfv1.js +6 -0
- package/dist-lib/fortran-fixed-form-B67KFkXH.js +8 -0
- package/dist-lib/fortran-free-form-CwqYvCLJ.js +6 -0
- package/dist-lib/fsharp-CYOiIVNx.js +8 -0
- package/dist-lib/ganttDiagram-NO4QXBWP-C_Lj-cJB.js +2712 -0
- package/dist-lib/gdresource-CvCIUjhi.js +10 -0
- package/dist-lib/gdscript-DSAxJ_aS.js +6 -0
- package/dist-lib/gdshader-Bk8fF6yr.js +6 -0
- package/dist-lib/genie-DzUvd7U9.js +6 -0
- package/dist-lib/gherkin-DHRaV0YP.js +6 -0
- package/dist-lib/git-commit-Bd32YZ0K.js +8 -0
- package/dist-lib/git-rebase-ZWUFO_T4.js +8 -0
- package/dist-lib/gitGraphDiagram-IHSO6WYX-CvGu0XAR.js +828 -0
- package/dist-lib/github-dark-DenFmJkN.js +4 -0
- package/dist-lib/github-dark-default-BJPUVz4H.js +4 -0
- package/dist-lib/github-dark-dimmed-DUshB20C.js +4 -0
- package/dist-lib/github-dark-high-contrast-D3aGCnF8.js +4 -0
- package/dist-lib/github-light-JYsPkUQd.js +4 -0
- package/dist-lib/github-light-default-D99KPAby.js +4 -0
- package/dist-lib/github-light-high-contrast-BbmZE-Mp.js +4 -0
- package/dist-lib/gleam-Bv284lvN.js +6 -0
- package/dist-lib/glimmer-js-DkxNrfPT.js +14 -0
- package/dist-lib/glimmer-ts-D6YZEmK_.js +14 -0
- package/dist-lib/glsl-CkUcVZNK.js +8 -0
- package/dist-lib/gn-XtJxiLa4.js +6 -0
- package/dist-lib/gnuplot-yPG9-sE_.js +6 -0
- package/dist-lib/go-CvFNMTvu.js +6 -0
- package/dist-lib/graph-B68L3K2T.js +1545 -0
- package/dist-lib/graphql-CBu2ehBn.js +14 -0
- package/dist-lib/groovy-CJQTphOW.js +6 -0
- package/dist-lib/gruvbox-dark-hard-C5HOtKIh.js +4 -0
- package/dist-lib/gruvbox-dark-medium-FVgwJHuz.js +4 -0
- package/dist-lib/gruvbox-dark-soft-B46F314v.js +4 -0
- package/dist-lib/gruvbox-light-hard-CJD38wDZ.js +4 -0
- package/dist-lib/gruvbox-light-medium-BlIhMYTA.js +4 -0
- package/dist-lib/gruvbox-light-soft-DoPHyLVZ.js +4 -0
- package/dist-lib/hack-ItRNKiEb.js +10 -0
- package/dist-lib/haml-NZLVzu_R.js +10 -0
- package/dist-lib/handlebars-mxStpSE7.js +14 -0
- package/dist-lib/haskell-WeIwNIP6.js +6 -0
- package/dist-lib/haxe-TztHsm5T.js +6 -0
- package/dist-lib/hcl-D438OF-I.js +6 -0
- package/dist-lib/highlighted-body-OFNGDK62-B2IXPhCU.js +19 -0
- package/dist-lib/hjson-DYBUbqOl.js +6 -0
- package/dist-lib/hlsl-Bk8TCZNL.js +6 -0
- package/dist-lib/horizon-CJQ10nlf.js +4 -0
- package/dist-lib/horizon-bright-CdkBZOMB.js +4 -0
- package/dist-lib/houston-BDYrDoDW.js +4 -0
- package/dist-lib/html-B50bmoVb.js +10 -0
- package/dist-lib/html-derivative-C6bxFbFW.js +8 -0
- package/dist-lib/http-DLvAkeD-.js +14 -0
- package/dist-lib/hurl-CgkFN90t.js +12 -0
- package/dist-lib/hxml-GbqSQCLa.js +8 -0
- package/dist-lib/hy-Brt5EZ7-.js +6 -0
- package/dist-lib/icon-192.png +0 -0
- package/dist-lib/icon-512.png +0 -0
- package/dist-lib/icon-maskable-512.png +0 -0
- package/dist-lib/icon-maskable.svg +16 -0
- package/dist-lib/icon-small.svg +19 -0
- package/dist-lib/icon.svg +19 -0
- package/dist-lib/imba-CimUv-Uh.js +6 -0
- package/dist-lib/index-DhYD46ms.js +5062 -0
- package/dist-lib/index-JkCQXUYs.js +16566 -0
- package/dist-lib/index-npuLMlPS.js +746 -0
- package/dist-lib/index.d.ts +95 -0
- package/dist-lib/index.js +8 -0
- package/dist-lib/infoDiagram-FWYZ7A6U-BbUkT0KS.js +24 -0
- package/dist-lib/ini-BZIuRIvJ.js +6 -0
- package/dist-lib/init-DjUOC4st.js +16 -0
- package/dist-lib/ishikawaDiagram-FXEZZL3T-D_Y6Tuyb.js +622 -0
- package/dist-lib/java-DY6VlHhP.js +6 -0
- package/dist-lib/javascript-C25yR2R2.js +6 -0
- package/dist-lib/jinja-CFW5uAwY.js +11 -0
- package/dist-lib/jison-DdreslRX.js +8 -0
- package/dist-lib/journeyDiagram-5HDEW3XC-CgykmVSC.js +834 -0
- package/dist-lib/json-DxJze_jm.js +6 -0
- package/dist-lib/json5-BT4Fjg39.js +6 -0
- package/dist-lib/jsonc-CHjZD8gR.js +6 -0
- package/dist-lib/jsonl-BGuvDmy9.js +6 -0
- package/dist-lib/jsonnet-Bx2cfsXg.js +6 -0
- package/dist-lib/jssm-BcADi6EI.js +6 -0
- package/dist-lib/jsx-BtKADgXT.js +6 -0
- package/dist-lib/julia-CZiKXNNP.js +16 -0
- package/dist-lib/just-CEK2SJ_k.js +18 -0
- package/dist-lib/kanagawa-dragon-CiKur4Hl.js +4 -0
- package/dist-lib/kanagawa-lotus-BKu-smKu.js +4 -0
- package/dist-lib/kanagawa-wave-CQwozSzG.js +4 -0
- package/dist-lib/kanban-definition-HUTT4EX6-CPFLTskY.js +726 -0
- package/dist-lib/katex-jHfnQmlp.js +11682 -0
- package/dist-lib/kdl-BNOv9TC3.js +6 -0
- package/dist-lib/kotlin-ByBMgTeR.js +6 -0
- package/dist-lib/kusto-DH_XitHS.js +6 -0
- package/dist-lib/laserwave-6a00oqik.js +4 -0
- package/dist-lib/latex-B8Egmqc5.js +8 -0
- package/dist-lib/layout-BGrtsiRL.js +1519 -0
- package/dist-lib/lean-BnVxaZxY.js +6 -0
- package/dist-lib/less-B1GLI2Di.js +6 -0
- package/dist-lib/light-plus-CZuVqSLX.js +4 -0
- package/dist-lib/linear-B5ZSwawJ.js +259 -0
- package/dist-lib/liquid-CHzkx3jT.js +14 -0
- package/dist-lib/llvm-Bk2XctFf.js +6 -0
- package/dist-lib/log-Al8wyEFV.js +6 -0
- package/dist-lib/logo-DBa4JDzV.js +6 -0
- package/dist-lib/lua-Bp3IRv7I.js +8 -0
- package/dist-lib/luau-UQyhudEE.js +6 -0
- package/dist-lib/make-CsMclxtr.js +6 -0
- package/dist-lib/manifest.webmanifest +19 -0
- package/dist-lib/map-hbfFlSln.js +224 -0
- package/dist-lib/markdown-CrScaQ96.js +6 -0
- package/dist-lib/marko-CJBA24Ri.js +14 -0
- package/dist-lib/material-theme-D6KBX41T.js +4 -0
- package/dist-lib/material-theme-darker-CkRroheE.js +4 -0
- package/dist-lib/material-theme-lighter-BUBw43Yz.js +4 -0
- package/dist-lib/material-theme-ocean-ClGX14Ja.js +4 -0
- package/dist-lib/material-theme-palenight-C1RVm8K1.js +4 -0
- package/dist-lib/matlab-BOAaUVP0.js +6 -0
- package/dist-lib/mdc-C9YSUwVC.js +12 -0
- package/dist-lib/mdx-BOhZZUJ8.js +6 -0
- package/dist-lib/mermaid-C3rz4dYh.js +6 -0
- package/dist-lib/mermaid-GHXKKRXX-BepkNUDb.js +4 -0
- package/dist-lib/min-dark-C7ak0t6c.js +4 -0
- package/dist-lib/min-light-CKFxVcPp.js +4 -0
- package/dist-lib/mindmap-definition-LN4V7U3C-CfhfeEht.js +831 -0
- package/dist-lib/mipsasm-CTx18fBl.js +6 -0
- package/dist-lib/mojo-EIZIZRTQ.js +6 -0
- package/dist-lib/monokai-C1KBYcO0.js +4 -0
- package/dist-lib/moonbit-B1TV0fG3.js +6 -0
- package/dist-lib/move-Db4ltDq1.js +6 -0
- package/dist-lib/narrat-DmhDCBs-.js +6 -0
- package/dist-lib/nextflow-47kAzSl1.js +8 -0
- package/dist-lib/nextflow-groovy-Drz_2V0j.js +6 -0
- package/dist-lib/nginx-D7O4WoB1.js +8 -0
- package/dist-lib/night-owl-Bm2rzalh.js +4 -0
- package/dist-lib/night-owl-light-CBI5u5kw.js +4 -0
- package/dist-lib/nim-QAjRdh9w.js +20 -0
- package/dist-lib/nix-fTRXMGic.js +9 -0
- package/dist-lib/nord-CC5OiUXg.js +4 -0
- package/dist-lib/nushell-BGCPRlV5.js +6 -0
- package/dist-lib/objective-c-Itk8tzmv.js +6 -0
- package/dist-lib/objective-cpp-DGt5UKRO.js +6 -0
- package/dist-lib/ocaml-eSVK32Eg.js +6 -0
- package/dist-lib/odin-BItnF517.js +6 -0
- package/dist-lib/one-dark-pro-DTA3VF0_.js +4 -0
- package/dist-lib/one-light-LkMrt1Cf.js +4 -0
- package/dist-lib/openscad-Sp5uZ6f2.js +6 -0
- package/dist-lib/ordinal-DfAQgscy.js +61 -0
- package/dist-lib/pascal-xy8pJNns.js +6 -0
- package/dist-lib/pegDiagram-2B236MQR-CYDAJHPF.js +95 -0
- package/dist-lib/perl-DkVrgJBg.js +16 -0
- package/dist-lib/php-BIzsF_5x.js +18 -0
- package/dist-lib/pieDiagram-ENE6RG2P-udKxQm4p.js +209 -0
- package/dist-lib/pierre-dark-D52vmD1t.js +4 -0
- package/dist-lib/pierre-dark-protanopia-deuteranopia-Coza2ydH.js +4 -0
- package/dist-lib/pierre-dark-soft-D0o08Lfm.js +4 -0
- package/dist-lib/pierre-dark-tritanopia-BP-A_WyN.js +4 -0
- package/dist-lib/pierre-dark-vibrant-BjUzbiGn.js +4 -0
- package/dist-lib/pierre-light-CzM3AfLn.js +4 -0
- package/dist-lib/pierre-light-protanopia-deuteranopia-DFclCKch.js +4 -0
- package/dist-lib/pierre-light-soft-m3tr_5b6.js +4 -0
- package/dist-lib/pierre-light-tritanopia-Dh0MAsTp.js +4 -0
- package/dist-lib/pierre-light-vibrant-BZSORskK.js +4 -0
- package/dist-lib/pkl-C-zSNmaA.js +6 -0
- package/dist-lib/plastic-CSTz3KZp.js +4 -0
- package/dist-lib/plsql-pVbGZfOv.js +6 -0
- package/dist-lib/po-BNfHvqmm.js +6 -0
- package/dist-lib/poimandres-C-VADXHD.js +4 -0
- package/dist-lib/polar-CAZahv3u.js +6 -0
- package/dist-lib/postcss-05aHdL-n.js +6 -0
- package/dist-lib/powerquery-DI9HkTvs.js +6 -0
- package/dist-lib/powershell-Clc4ydu-.js +6 -0
- package/dist-lib/prisma-FZjmVtSl.js +6 -0
- package/dist-lib/prolog-C5-yg4TO.js +6 -0
- package/dist-lib/proto-C7QgialS.js +6 -0
- package/dist-lib/pug-XOw9Q1Ho.js +12 -0
- package/dist-lib/puppet-CUJHmnxV.js +6 -0
- package/dist-lib/purescript-rUfGld-4.js +6 -0
- package/dist-lib/python-BFNSHbwJ.js +6 -0
- package/dist-lib/qml-rTNXsquU.js +8 -0
- package/dist-lib/qmldir-BInDYbpo.js +6 -0
- package/dist-lib/qss-AeJTysr_.js +6 -0
- package/dist-lib/quadrantDiagram-ABIIQ3AL-BmDmLczk.js +1025 -0
- package/dist-lib/r-CSmzDPi7.js +6 -0
- package/dist-lib/racket-B83wSAja.js +6 -0
- package/dist-lib/railroadDiagram-RFXS5EU6-q0Svkmuy.js +77 -0
- package/dist-lib/raku-nEQ4ZJJ7.js +6 -0
- package/dist-lib/razor-Ci8D0dQK.js +10 -0
- package/dist-lib/red-7y8PH7HH.js +4 -0
- package/dist-lib/reg-m_s_Kiip.js +6 -0
- package/dist-lib/regexp-BazyLpPg.js +6 -0
- package/dist-lib/rel-BcRfyd6Q.js +6 -0
- package/dist-lib/requirementDiagram-TGXJPOKE-tNxRI1gc.js +884 -0
- package/dist-lib/resume-session-sheet-YCOfKuXl.js +316 -0
- package/dist-lib/riscv-Ce8MAQLP.js +6 -0
- package/dist-lib/ron-DCEEQypA.js +6 -0
- package/dist-lib/rose-pine-BKc3yVeu.js +4 -0
- package/dist-lib/rose-pine-dawn-BulJcPZT.js +4 -0
- package/dist-lib/rose-pine-moon-j6jiXKV8.js +4 -0
- package/dist-lib/rosmsg-Cz0w1km8.js +6 -0
- package/dist-lib/rst-DM32Wy3O.js +22 -0
- package/dist-lib/ruby-BeqCs27h.js +30 -0
- package/dist-lib/rust-CLzF9zIN.js +6 -0
- package/dist-lib/sankeyDiagram-HTMAVEWB-B9Bl7f2P.js +847 -0
- package/dist-lib/sas-fpEvgATw.js +8 -0
- package/dist-lib/sass-DxHp5rTx.js +6 -0
- package/dist-lib/scala-D4grkFkl.js +6 -0
- package/dist-lib/scheme-BCRWuEm4.js +6 -0
- package/dist-lib/scss-B1FaCqwR.js +8 -0
- package/dist-lib/sdbl-B7T8abf4.js +6 -0
- package/dist-lib/sequenceDiagram-DBY2YBRQ-Dvl2_CXL.js +2898 -0
- package/dist-lib/session-token-usage-DIMXh6Pi.js +236 -0
- package/dist-lib/shaderlab-Cr62-Wb4.js +8 -0
- package/dist-lib/shadow-text-size-CBCTdbYU.js +39 -0
- package/dist-lib/shellscript-InADTalH.js +6 -0
- package/dist-lib/shellsession-DiDJNQdy.js +8 -0
- package/dist-lib/shipped-page-D51HiXpe.js +574 -0
- package/dist-lib/sizeCapture-X5ZJPWSS-B1EeO3N9.js +47 -0
- package/dist-lib/slack-dark-i7wN4OET.js +4 -0
- package/dist-lib/slack-ochin-ndHf0LoP.js +4 -0
- package/dist-lib/smalltalk-BlI1_OkM.js +6 -0
- package/dist-lib/snazzy-light-BlSJXAu4.js +4 -0
- package/dist-lib/solarized-dark-UTmkh7lw.js +4 -0
- package/dist-lib/solarized-light-BheCkDPT.js +4 -0
- package/dist-lib/solidity-DUWnFhS6.js +6 -0
- package/dist-lib/soy-C1-6njHa.js +8 -0
- package/dist-lib/sparql-B0KWFEri.js +8 -0
- package/dist-lib/splunk-CRXR8A9s.js +6 -0
- package/dist-lib/sql-Cn_v3PB0.js +6 -0
- package/dist-lib/ssh-config-DP-hNVbF.js +6 -0
- package/dist-lib/stata-B8c5fTjX.js +8 -0
- package/dist-lib/stateDiagram-2N3HPSRC-CnWB7HvU.js +263 -0
- package/dist-lib/stateDiagram-v2-6OUMAXLB-DnZ0UI2p.js +16 -0
- package/dist-lib/streamdown-response-DPrve_Vt.js +20929 -0
- package/dist-lib/styles.css +1 -0
- package/dist-lib/stylus-CyKEU1Ej.js +6 -0
- package/dist-lib/surrealql-CQi7GQN7.js +8 -0
- package/dist-lib/svelte-rYri41WT.js +14 -0
- package/dist-lib/sw.js +215 -0
- package/dist-lib/swift-DJpUqPLg.js +6 -0
- package/dist-lib/swimlanes-5IMT3BWC-CvqDJcS9.js +5353 -0
- package/dist-lib/swimlanesDiagram-G3AALYLV-CKyOeqF_.js +13 -0
- package/dist-lib/synthwave-84-NU3C_KFZ.js +4 -0
- package/dist-lib/system-verilog-BCm7smPJ.js +6 -0
- package/dist-lib/systemd-C-4qm6XH.js +6 -0
- package/dist-lib/talonscript-CFF3LF_O.js +6 -0
- package/dist-lib/tasl-Cg_WBUAe.js +6 -0
- package/dist-lib/tcl-DN7buRTF.js +6 -0
- package/dist-lib/templ-Crs9Ui8q.js +12 -0
- package/dist-lib/terraform-DGvcn9zM.js +6 -0
- package/dist-lib/tex-AHxmLTL0.js +8 -0
- package/dist-lib/timeline-definition-FHXFAJF6-b15X0Oru.js +1066 -0
- package/dist-lib/tokyo-night-DP4TmcQl.js +4 -0
- package/dist-lib/toml-DY62mUL_.js +6 -0
- package/dist-lib/ts-tags-ioVe2PKw.js +41 -0
- package/dist-lib/tsv-BtvSkaG0.js +6 -0
- package/dist-lib/tsx-B8rCNbgL.js +6 -0
- package/dist-lib/turtle-_H59FV7D.js +6 -0
- package/dist-lib/twig-DwV2Fi4L.js +18 -0
- package/dist-lib/types-BSXdE6DF.js +4 -0
- package/dist-lib/typescript-RycA9KXf.js +6 -0
- package/dist-lib/typespec-DWqp-kUU.js +6 -0
- package/dist-lib/typst-D_1QKWns.js +6 -0
- package/dist-lib/v-BPCNiyYe.js +6 -0
- package/dist-lib/vala-uxaPR7d1.js +6 -0
- package/dist-lib/vb-D8_c5-KN.js +6 -0
- package/dist-lib/vennDiagram-L72KCM5P-C4lh5m77.js +1585 -0
- package/dist-lib/verilog-B-bybjPF.js +6 -0
- package/dist-lib/vesper-BckBta1U.js +4 -0
- package/dist-lib/vhdl-CUlNa8ac.js +6 -0
- package/dist-lib/viml-DsfA-sWm.js +6 -0
- package/dist-lib/vitesse-black-BoGvW84i.js +4 -0
- package/dist-lib/vitesse-dark-Cym-eLtO.js +4 -0
- package/dist-lib/vitesse-light-CcmG315c.js +4 -0
- package/dist-lib/vue-DXEmyXn9.js +31 -0
- package/dist-lib/vue-html-j9xNEdu3.js +8 -0
- package/dist-lib/vue-vine-D41-N99t.js +18 -0
- package/dist-lib/vyper-CPQuu50u.js +6 -0
- package/dist-lib/wardleyDiagram-EHGQE667-Cev6fT_D.js +684 -0
- package/dist-lib/wasm-BBXxrAl7.js +6 -0
- package/dist-lib/wasm-DQxwEHae.js +7 -0
- package/dist-lib/wenyan-pbVjoM9_.js +6 -0
- package/dist-lib/wgsl-DY4iK1q1.js +6 -0
- package/dist-lib/wikitext-Z-MoUasO.js +6 -0
- package/dist-lib/wit-CQMQOlTg.js +6 -0
- package/dist-lib/wolfram-Dz4KXISs.js +6 -0
- package/dist-lib/xml-C2J0sS9M.js +8 -0
- package/dist-lib/xsl-BmSZphgC.js +8 -0
- package/dist-lib/xychartDiagram-FW5EYKEG-m3s7caPv.js +1385 -0
- package/dist-lib/yaml-DaO7k5B1.js +6 -0
- package/dist-lib/zenscript-CxBjpf9c.js +6 -0
- package/dist-lib/zig-Vm0PO9wB.js +6 -0
- 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
|
+
};
|