Skip to content

Commit a318976

Browse files
committed
Merge remote-tracking branch 'origin/feat/tui-design-refresh' into fix/web-icons-and-agent-context
# Conflicts: # apps/pythinker-code/dist-web/.web-bundle-manifest.json # apps/pythinker-code/dist-web/assets/CodeBlockNode-Di9jWY33.js # apps/pythinker-code/dist-web/assets/CodeBlockNode-DoVnw33D.js # apps/pythinker-code/dist-web/assets/CodeBlockNode-iM35AGEM.js # apps/pythinker-code/dist-web/assets/DesignSystemView-CEgHnNfE.js # apps/pythinker-code/dist-web/assets/DesignSystemView-D9l3kSFu.js # apps/pythinker-code/dist-web/assets/DesignSystemView-DQkLs4v3.js # apps/pythinker-code/dist-web/assets/Tooltip-BvBSuG3h.js # apps/pythinker-code/dist-web/assets/Tooltip-Un-sdUDf.js # apps/pythinker-code/dist-web/assets/Tooltip-aeub6uqW.js # apps/pythinker-code/dist-web/assets/abnfDiagram-VCTEODGH-BaFFjvU7.js # apps/pythinker-code/dist-web/assets/abnfDiagram-VCTEODGH-DvuMcdsX.js # apps/pythinker-code/dist-web/assets/abnfDiagram-VCTEODGH-lXl6MMW4.js # apps/pythinker-code/dist-web/assets/arc-BSptfmk1.js # apps/pythinker-code/dist-web/assets/arc-BkxV2hDm.js # apps/pythinker-code/dist-web/assets/arc-DdybW257.js # apps/pythinker-code/dist-web/assets/architectureDiagram-5GKGNRK7-BuONUxqp.js # apps/pythinker-code/dist-web/assets/architectureDiagram-5GKGNRK7-CG55fe0P.js # apps/pythinker-code/dist-web/assets/architectureDiagram-5GKGNRK7-CzpPSMgx.js # apps/pythinker-code/dist-web/assets/blockDiagram-NRAW4CY4-6OGxmRQx.js # apps/pythinker-code/dist-web/assets/blockDiagram-NRAW4CY4-CuE20oFY.js # apps/pythinker-code/dist-web/assets/blockDiagram-NRAW4CY4-D5lfhGp0.js # apps/pythinker-code/dist-web/assets/c4Diagram-UCG6FXSJ-CyrEjNRj.js # apps/pythinker-code/dist-web/assets/c4Diagram-UCG6FXSJ-D9HAgeC8.js # apps/pythinker-code/dist-web/assets/c4Diagram-UCG6FXSJ-Dlq0AE6a.js # apps/pythinker-code/dist-web/assets/chunk-2Q5K7J3B-BA50oZdj.js # apps/pythinker-code/dist-web/assets/chunk-2Q5K7J3B-CFA-Mk3V.js # apps/pythinker-code/dist-web/assets/chunk-2Q5K7J3B-DhnrhO_h.js # apps/pythinker-code/dist-web/assets/chunk-5VM5RSS4-CIdK01Yv.js # apps/pythinker-code/dist-web/assets/chunk-5VM5RSS4-COXEZVxd.js # apps/pythinker-code/dist-web/assets/chunk-5VM5RSS4-Cafhm_Fg.js # apps/pythinker-code/dist-web/assets/chunk-F27PBJKO-BKkzLPCG.js # apps/pythinker-code/dist-web/assets/chunk-F27PBJKO-BdKYqgBT.js # apps/pythinker-code/dist-web/assets/chunk-F27PBJKO-DJMM0g8P.js # apps/pythinker-code/dist-web/assets/chunk-G27WJ6UU-CYEzNn1f.js # apps/pythinker-code/dist-web/assets/chunk-G27WJ6UU-CqlQI3C1.js # apps/pythinker-code/dist-web/assets/chunk-G27WJ6UU-DMomRSQt.js # apps/pythinker-code/dist-web/assets/chunk-JWPE2WC7-BLUT8H2f.js # apps/pythinker-code/dist-web/assets/chunk-JWPE2WC7-D-t_IEfW.js # apps/pythinker-code/dist-web/assets/chunk-JWPE2WC7-fxA35p4R.js # apps/pythinker-code/dist-web/assets/chunk-LCL6LL3I-CypXaxtp.js # apps/pythinker-code/dist-web/assets/chunk-LCL6LL3I-SZiGl_Gn.js # apps/pythinker-code/dist-web/assets/chunk-LCL6LL3I-cMKh9i6p.js # apps/pythinker-code/dist-web/assets/chunk-POPQ4Y6H-C2pzBLWI.js # apps/pythinker-code/dist-web/assets/chunk-POPQ4Y6H-DZudYXdU.js # apps/pythinker-code/dist-web/assets/chunk-POPQ4Y6H-uNQbSPC-.js # apps/pythinker-code/dist-web/assets/chunk-SVP7TREG-BJDDkk7R.js # apps/pythinker-code/dist-web/assets/chunk-SVP7TREG-Dvyvb2oM.js # apps/pythinker-code/dist-web/assets/chunk-SVP7TREG-xZr6A6J7.js # apps/pythinker-code/dist-web/assets/chunk-XXDRQBXY-B7QV24vQ.js # apps/pythinker-code/dist-web/assets/chunk-XXDRQBXY-BScrxKrK.js # apps/pythinker-code/dist-web/assets/chunk-XXDRQBXY-D1CrfEM6.js # apps/pythinker-code/dist-web/assets/cose-bilkent-JH36ORCC-B93OAS8e.js # apps/pythinker-code/dist-web/assets/cose-bilkent-JH36ORCC-C9SyEz5N.js # apps/pythinker-code/dist-web/assets/cose-bilkent-JH36ORCC-hfwRyG98.js # apps/pythinker-code/dist-web/assets/cssMode-BtkTJu0U.js # apps/pythinker-code/dist-web/assets/cssMode-D68TIPed.js # apps/pythinker-code/dist-web/assets/cssMode-DrYUW_Z8.js # apps/pythinker-code/dist-web/assets/cynefin-OW5HDTMX-BVnNUROA.js # apps/pythinker-code/dist-web/assets/cynefin-OW5HDTMX-CAFgpwUj.js # apps/pythinker-code/dist-web/assets/cynefin-OW5HDTMX-DUSOyG8A.js # apps/pythinker-code/dist-web/assets/cynefinDiagram-5FMLGOSQ-B6VMdZJs.js # apps/pythinker-code/dist-web/assets/cynefinDiagram-5FMLGOSQ-B_Rf2KKE.js # apps/pythinker-code/dist-web/assets/cynefinDiagram-5FMLGOSQ-DfT8MGeB.js # apps/pythinker-code/dist-web/assets/dagre-3AP2YEHR-BJRAyfAD.js # apps/pythinker-code/dist-web/assets/dagre-3AP2YEHR-BWLqTWq0.js # apps/pythinker-code/dist-web/assets/dagre-3AP2YEHR-KzWM63yH.js # apps/pythinker-code/dist-web/assets/diagram-S7CK7UJ4-C9mDYxvd.js # apps/pythinker-code/dist-web/assets/diagram-S7CK7UJ4-Dqwz_DiU.js # apps/pythinker-code/dist-web/assets/diagram-S7CK7UJ4-g08T558B.js # apps/pythinker-code/dist-web/assets/diagram-UQ7AKVKN--qfpazzd.js # apps/pythinker-code/dist-web/assets/diagram-UQ7AKVKN-Bo-uN1N8.js # apps/pythinker-code/dist-web/assets/diagram-UQ7AKVKN-VzzoKm5f.js # apps/pythinker-code/dist-web/assets/diagram-VSXAHHWV-BNrTYIrv.js # apps/pythinker-code/dist-web/assets/diagram-VSXAHHWV-CRD1mHjs.js # apps/pythinker-code/dist-web/assets/diagram-VSXAHHWV-OhgOo2WX.js # apps/pythinker-code/dist-web/assets/diagram-VX7I27RA-CBeT5JqD.js # apps/pythinker-code/dist-web/assets/diagram-VX7I27RA-DZEuMb7R.js # apps/pythinker-code/dist-web/assets/diagram-VX7I27RA-Dl0oK5yW.js # apps/pythinker-code/dist-web/assets/diagram-Z3DM3KII-Bfs0Eme3.js # apps/pythinker-code/dist-web/assets/diagram-Z3DM3KII-Bqjvy4AO.js # apps/pythinker-code/dist-web/assets/diagram-Z3DM3KII-DuxicPyC.js # apps/pythinker-code/dist-web/assets/ebnfDiagram-PWID7BFC-BFWPl5u2.js # apps/pythinker-code/dist-web/assets/ebnfDiagram-PWID7BFC-BdCVLKrb.js # apps/pythinker-code/dist-web/assets/ebnfDiagram-PWID7BFC-CfdRQQs4.js # apps/pythinker-code/dist-web/assets/editor.main-CtsmSxdV.js # apps/pythinker-code/dist-web/assets/editor.main-DhKJEJSk.js # apps/pythinker-code/dist-web/assets/editor.main-DhgoSJMd.js # apps/pythinker-code/dist-web/assets/erDiagram-SSCWMZ5O-BQGYL7G6.js # apps/pythinker-code/dist-web/assets/erDiagram-SSCWMZ5O-BX7pK_4-.js # apps/pythinker-code/dist-web/assets/erDiagram-SSCWMZ5O-C57tKbV1.js # apps/pythinker-code/dist-web/assets/flowDiagram-A5DVABFB-1eYW6SGl.js # apps/pythinker-code/dist-web/assets/flowDiagram-A5DVABFB-BnMR0nvn.js # apps/pythinker-code/dist-web/assets/flowDiagram-A5DVABFB-D9yKcDNQ.js # apps/pythinker-code/dist-web/assets/freemarker2-BXMl_kBL.js # apps/pythinker-code/dist-web/assets/freemarker2-BhvSTxDe.js # apps/pythinker-code/dist-web/assets/freemarker2-BlmbyWbz.js # apps/pythinker-code/dist-web/assets/ganttDiagram-EL5Y4UJY-CZ631nBr.js # apps/pythinker-code/dist-web/assets/ganttDiagram-EL5Y4UJY-D7OwpYSF.js # apps/pythinker-code/dist-web/assets/ganttDiagram-EL5Y4UJY-__HwStIS.js # apps/pythinker-code/dist-web/assets/gitGraphDiagram-WWUBYQGX-DSvi-1sD.js # apps/pythinker-code/dist-web/assets/gitGraphDiagram-WWUBYQGX-DUce3Nxk.js # apps/pythinker-code/dist-web/assets/gitGraphDiagram-WWUBYQGX-MRaNbBW-.js # apps/pythinker-code/dist-web/assets/handlebars-3UABA72Y.js # apps/pythinker-code/dist-web/assets/handlebars-DInnBxs4.js # apps/pythinker-code/dist-web/assets/handlebars-DTA0iiAx.js # apps/pythinker-code/dist-web/assets/html-770rgf8W.js # apps/pythinker-code/dist-web/assets/html-DhriK8rF.js # apps/pythinker-code/dist-web/assets/html-DjVE8Egv.js # apps/pythinker-code/dist-web/assets/htmlMode-BLUJ1bPd.js # apps/pythinker-code/dist-web/assets/htmlMode-CKNpTCjI.js # apps/pythinker-code/dist-web/assets/htmlMode-zJmqMktO.js # apps/pythinker-code/dist-web/assets/index-6pBMsNHE.js # apps/pythinker-code/dist-web/assets/index-72yOhhJB.js # apps/pythinker-code/dist-web/assets/index-BTxvEfM2.js # apps/pythinker-code/dist-web/assets/index-BeVI6x2j.js # apps/pythinker-code/dist-web/assets/index-BxGA9OBN.js # apps/pythinker-code/dist-web/assets/index-CxKpPF0a.js # apps/pythinker-code/dist-web/assets/index-D4vOK3t_.js # apps/pythinker-code/dist-web/assets/index-DE3HZA6x.js # apps/pythinker-code/dist-web/assets/index-DfNbHCox.js # apps/pythinker-code/dist-web/assets/index-STiREeA9.js # apps/pythinker-code/dist-web/assets/index-dURacuqT.js # apps/pythinker-code/dist-web/assets/index-wqHWNzr_.js # apps/pythinker-code/dist-web/assets/index10-Cl71cRMD.js # apps/pythinker-code/dist-web/assets/index10-DFzVsEz_.js # apps/pythinker-code/dist-web/assets/index10-OSlXYlm5.js # apps/pythinker-code/dist-web/assets/index11-CRPgvybM.js # apps/pythinker-code/dist-web/assets/index11-DL24TDzN.js # apps/pythinker-code/dist-web/assets/index11-E8iifFnR.js # apps/pythinker-code/dist-web/assets/index5-ByBFzTUK.js # apps/pythinker-code/dist-web/assets/index5-CkCuyTA2.js # apps/pythinker-code/dist-web/assets/index5-DofH0y2j.js # apps/pythinker-code/dist-web/assets/index6-Bg2nIoWF.js # apps/pythinker-code/dist-web/assets/index6-Cpc-HKn_.js # apps/pythinker-code/dist-web/assets/index6-iVuSJ4hs.js # apps/pythinker-code/dist-web/assets/index7-B86iY7tB.js # apps/pythinker-code/dist-web/assets/index7-Bhh_KpRN.js # apps/pythinker-code/dist-web/assets/index7-C4Rqs51G.js # apps/pythinker-code/dist-web/assets/index8-BZLigb0G.js # apps/pythinker-code/dist-web/assets/index8-B_4V8-nk.js # apps/pythinker-code/dist-web/assets/index8-CaBL1tXL.js # apps/pythinker-code/dist-web/assets/infoDiagram-RXCK75RN-3USBmDph.js # apps/pythinker-code/dist-web/assets/infoDiagram-RXCK75RN-CNKWWciy.js # apps/pythinker-code/dist-web/assets/infoDiagram-RXCK75RN-ZAvWgG4E.js # apps/pythinker-code/dist-web/assets/ishikawaDiagram-5VMMS53U-B7Ny282g.js # apps/pythinker-code/dist-web/assets/ishikawaDiagram-5VMMS53U-CCVABP4r.js # apps/pythinker-code/dist-web/assets/ishikawaDiagram-5VMMS53U-DDzPqBTi.js # apps/pythinker-code/dist-web/assets/javascript-BphtRpNI.js # apps/pythinker-code/dist-web/assets/javascript-CqOKYVP5.js # apps/pythinker-code/dist-web/assets/javascript-DNFzhqZP.js # apps/pythinker-code/dist-web/assets/journeyDiagram-EYS64GPL-BB1wVCR_.js # apps/pythinker-code/dist-web/assets/journeyDiagram-EYS64GPL-CF6a_NdV.js # apps/pythinker-code/dist-web/assets/journeyDiagram-EYS64GPL-CK3l2LwC.js # apps/pythinker-code/dist-web/assets/jsonMode-CzlroTSu.js # apps/pythinker-code/dist-web/assets/jsonMode-Dbujxe6y.js # apps/pythinker-code/dist-web/assets/jsonMode-cT5TtDxn.js # apps/pythinker-code/dist-web/assets/kanban-definition-3QL26DDD-C3EXcp22.js # apps/pythinker-code/dist-web/assets/kanban-definition-3QL26DDD-C3ZJiSrL.js # apps/pythinker-code/dist-web/assets/kanban-definition-3QL26DDD-uCMClg8f.js # apps/pythinker-code/dist-web/assets/layout-B8VgDf9W.js # apps/pythinker-code/dist-web/assets/layout-CWIwUKB8.js # apps/pythinker-code/dist-web/assets/layout-toIEcUBu.js # apps/pythinker-code/dist-web/assets/linear-DWVgRueU.js # apps/pythinker-code/dist-web/assets/linear-UFWxZmXu.js # apps/pythinker-code/dist-web/assets/linear-plM1kN8P.js # apps/pythinker-code/dist-web/assets/liquid-B1_4mGy0.js # apps/pythinker-code/dist-web/assets/liquid-CP1_ZRcz.js # apps/pythinker-code/dist-web/assets/liquid-DP2cntnL.js # apps/pythinker-code/dist-web/assets/lspLanguageFeatures-CF3WlXmy.js # apps/pythinker-code/dist-web/assets/lspLanguageFeatures-tp_S83Ul.js # apps/pythinker-code/dist-web/assets/lspLanguageFeatures-wBe1gi3f.js # apps/pythinker-code/dist-web/assets/mdx-C3qW5Q0n.js # apps/pythinker-code/dist-web/assets/mdx-DVGJDd1h.js # apps/pythinker-code/dist-web/assets/mdx-Dn-aJVc8.js # apps/pythinker-code/dist-web/assets/mermaid.core-CbQEj9Db.js # apps/pythinker-code/dist-web/assets/mermaid.core-CbrrT9Xe.js # apps/pythinker-code/dist-web/assets/mermaid.core-Dvq61X9q.js # apps/pythinker-code/dist-web/assets/mindmap-definition-FBJOCRG2-BYBbvGBs.js # apps/pythinker-code/dist-web/assets/mindmap-definition-FBJOCRG2-f7eIdLXz.js # apps/pythinker-code/dist-web/assets/mindmap-definition-FBJOCRG2-y256_Aju.js # apps/pythinker-code/dist-web/assets/pegDiagram-XKGWAZYB-BtUw4dWR.js # apps/pythinker-code/dist-web/assets/pegDiagram-XKGWAZYB-DKnKZlau.js # apps/pythinker-code/dist-web/assets/pegDiagram-XKGWAZYB-NgGaBqf2.js # apps/pythinker-code/dist-web/assets/pieDiagram-E7YTZNPT-DgSKCwnw.js # apps/pythinker-code/dist-web/assets/pieDiagram-E7YTZNPT-LoE_T7c9.js # apps/pythinker-code/dist-web/assets/pieDiagram-E7YTZNPT-rS53f0jH.js # apps/pythinker-code/dist-web/assets/python-Bvf7C3qg.js # apps/pythinker-code/dist-web/assets/python-DlAC08RG.js # apps/pythinker-code/dist-web/assets/python-TrrpWNPJ.js # apps/pythinker-code/dist-web/assets/quadrantDiagram-AXDQQJYC-BwwFRAg1.js # apps/pythinker-code/dist-web/assets/quadrantDiagram-AXDQQJYC-CDWYTFDM.js # apps/pythinker-code/dist-web/assets/quadrantDiagram-AXDQQJYC-COwndgQx.js # apps/pythinker-code/dist-web/assets/railroadDiagram-O6MQD6OU-Bz53uKmy.js # apps/pythinker-code/dist-web/assets/railroadDiagram-O6MQD6OU-DuuPZ0ov.js # apps/pythinker-code/dist-web/assets/railroadDiagram-O6MQD6OU-KR3ca6PS.js # apps/pythinker-code/dist-web/assets/razor-AH99AreZ.js # apps/pythinker-code/dist-web/assets/razor-CyMkHBbR.js # apps/pythinker-code/dist-web/assets/razor-DxThsjgU.js # apps/pythinker-code/dist-web/assets/requirementDiagram-EFPCY7ZU-32_nWMyz.js # apps/pythinker-code/dist-web/assets/requirementDiagram-EFPCY7ZU-B0IW44FJ.js # apps/pythinker-code/dist-web/assets/requirementDiagram-EFPCY7ZU-CydD8U2M.js # apps/pythinker-code/dist-web/assets/sankeyDiagram-P5KCCOFB-Baz080In.js # apps/pythinker-code/dist-web/assets/sankeyDiagram-P5KCCOFB-DJYPzks0.js # apps/pythinker-code/dist-web/assets/sankeyDiagram-P5KCCOFB-Dzuyjnkk.js # apps/pythinker-code/dist-web/assets/sequenceDiagram-WJ2MYXX4-BOQ9yZ4C.js # apps/pythinker-code/dist-web/assets/sequenceDiagram-WJ2MYXX4-BXJdFSBV.js # apps/pythinker-code/dist-web/assets/sequenceDiagram-WJ2MYXX4-BmvrEApT.js # apps/pythinker-code/dist-web/assets/sizeCapture-X5ZJPWSS-B9XONvrQ.js # apps/pythinker-code/dist-web/assets/sizeCapture-X5ZJPWSS-DUmkNT6E.js # apps/pythinker-code/dist-web/assets/sizeCapture-X5ZJPWSS-DwpDfzZU.js # apps/pythinker-code/dist-web/assets/stateDiagram-HBIQ2CUA-A1VYL_r3.js # apps/pythinker-code/dist-web/assets/stateDiagram-HBIQ2CUA-BL6YX7Zu.js # apps/pythinker-code/dist-web/assets/stateDiagram-HBIQ2CUA-BiaHfHc9.js # apps/pythinker-code/dist-web/assets/swimlanes-XN3QIQJK-CkDNmKAL.js # apps/pythinker-code/dist-web/assets/swimlanes-XN3QIQJK-DLXBH5G1.js # apps/pythinker-code/dist-web/assets/swimlanes-XN3QIQJK-IOyaxPQz.js # apps/pythinker-code/dist-web/assets/timeline-definition-24CTP7MA-BygdZNbj.js # apps/pythinker-code/dist-web/assets/timeline-definition-24CTP7MA-Cgyu868E.js # apps/pythinker-code/dist-web/assets/timeline-definition-24CTP7MA-D_85GgPu.js # apps/pythinker-code/dist-web/assets/tsMode-BkBx90_Z.js # apps/pythinker-code/dist-web/assets/tsMode-CzvGRnvc.js # apps/pythinker-code/dist-web/assets/tsMode-DUBlUabv.js # apps/pythinker-code/dist-web/assets/typescript-C5DSj9AA.js # apps/pythinker-code/dist-web/assets/typescript-mP6EGURE.js # apps/pythinker-code/dist-web/assets/typescript-nVQLT1z-.js # apps/pythinker-code/dist-web/assets/vennDiagram-4TSXK5OY-7DxEjjkP.js # apps/pythinker-code/dist-web/assets/vennDiagram-4TSXK5OY-C-7XvDDK.js # apps/pythinker-code/dist-web/assets/vennDiagram-4TSXK5OY-lT5aQRrb.js # apps/pythinker-code/dist-web/assets/vue.runtime.esm-bundler-BhJWwbw8.js # apps/pythinker-code/dist-web/assets/vue.runtime.esm-bundler-Cv6d1Y36.js # apps/pythinker-code/dist-web/assets/vue.runtime.esm-bundler-Dy0SmIGw.js # apps/pythinker-code/dist-web/assets/wardleyDiagram-VM6X3IG4-7XHC57XS.js # apps/pythinker-code/dist-web/assets/wardleyDiagram-VM6X3IG4-Cfdu0udp.js # apps/pythinker-code/dist-web/assets/wardleyDiagram-VM6X3IG4-CujaqY_5.js # apps/pythinker-code/dist-web/assets/xml-BJ0yttf-.js # apps/pythinker-code/dist-web/assets/xml-DX0eP1s0.js # apps/pythinker-code/dist-web/assets/xml-DghPOn3M.js # apps/pythinker-code/dist-web/assets/xychartDiagram-S5SC5T6Z-Bss3Z_p2.js # apps/pythinker-code/dist-web/assets/xychartDiagram-S5SC5T6Z-DuYC3aXg.js # apps/pythinker-code/dist-web/assets/xychartDiagram-S5SC5T6Z-Z0frvchO.js # apps/pythinker-code/dist-web/assets/yaml-CIHVrM2G.js # apps/pythinker-code/dist-web/assets/yaml-D1ljG-HU.js # apps/pythinker-code/dist-web/assets/yaml-DHQKE70A.js # apps/pythinker-code/dist-web/index.html
2 parents 1917626 + dbe1f09 commit a318976

150 files changed

Lines changed: 1893 additions & 599 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agents/skills/write-tui/DESIGN.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,13 @@
8383
Select a model (type to search)
8484
Tab toggle provider · ↑↓ navigate · Enter select · Esc cancel ← hint 首项即 Tab 切换
8585
← 空行
86-
All Pythinker Code openai ← tab 条:激活项填充背景(primary 底 + text 字 + bold),其余 textMuted
86+
All Pythinker Code openai ← tab bar: active uses selectionBg + inverseText + bold; others use textMuted
8787
← 空行
8888
❯ ...
8989
```
9090

9191
- tab 条位置:**在 hint 行下方**,且**上下各一空行**(与 hint、与列表都隔开)。
92-
- 激活 tab`chalk.bgHex(colors.primary).hex(colors.text).bold(\` ${label} \`)`;非激活:`chalk.hex(colors.textMuted)`。两者可见宽度一致,切换不抖动。
92+
- Active tab: `chalk.bgHex(colors.selectionBg).hex(colors.inverseText).bold(\` ${label} \`)`; inactive tab: `chalk.hex(colors.textMuted)`. Both have the same visible width.
9393
- 第一个 tab 恒为 `All`(聚合所有 provider);**默认停在 `All`**。仅当显式传 `initialTabId`(如 `/provider` 新增完跳转)才停在指定 provider tab。
9494
- `Tab` / `Shift+Tab` 循环切换;hint 行首项即 `Tab toggle provider`
9595
- 当前模型在所在 tab 内仍以 `` + ` ← current` 标记,切 tab 不丢失定位。

.changeset/calm-doctors-check.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": patch
3+
---
4+
5+
Make `pythinker doctor` validate `config.toml` with the current schema in every engine mode.

.changeset/refresh-cli-tui.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": patch
3+
---
4+
5+
Update the terminal interface colors, transcript hierarchy, welcome panel, and workflow progress states.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": minor
3+
---
4+
5+
Add a sidebar Explorer for browsing and opening workspace files.

.github/workflows/nix-build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
4949
- name: Post or update PR comment
5050
if: steps.check.outputs.SYNC_OK == 'false' && github.event_name == 'pull_request'
51-
uses: actions/github-script@v7
51+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9
5252
env:
5353
COMMENT_BODY: ${{ steps.missing.outputs.body }}
5454
with:
@@ -151,7 +151,7 @@ jobs:
151151
152152
- name: Post or update PR comment
153153
if: steps.build.outputs.BUILD_FAILED == 'true' && github.event_name == 'pull_request'
154-
uses: actions/github-script@v7
154+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9
155155
env:
156156
COMMENT_BODY: ${{ steps.error.outputs.body }}
157157
with:

.github/workflows/release.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,13 @@ jobs:
160160

161161
- name: Mint release-bot token
162162
id: release-bot
163-
uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # pinned from v2
163+
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # pinned from v3.2.0
164164
with:
165165
app-id: ${{ vars.RELEASE_BOT_APP_ID }}
166166
private-key: ${{ secrets.RELEASE_BOT_PRIVATE_KEY }}
167+
permission-contents: write
168+
permission-pull-requests: write
169+
permission-issues: write
167170

168171
- name: Create Release Pull Request or Publish to npm
169172
id: changesets
@@ -507,7 +510,7 @@ jobs:
507510
# Cloning and pushing the tap needs contents and nothing else.
508511
- name: Mint tap token
509512
id: tap-token
510-
uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # pinned from v2
513+
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # pinned from v3.2.0
511514
with:
512515
app-id: ${{ vars.RELEASE_BOT_APP_ID }}
513516
private-key: ${{ secrets.RELEASE_BOT_PRIVATE_KEY }}

.github/workflows/update-flake-lock.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
uses: DeterminateSystems/nix-installer-action@1d87d45818068401a10cf16bdc5f00b24994a83f # pinned from main
2828

2929
- name: Update flake.lock and open PR
30-
uses: DeterminateSystems/update-flake-lock@5ba4a20ae344a5edd7b97ed3002219974f4d20d7 # pinned from main
30+
uses: DeterminateSystems/update-flake-lock@f21d5f4a9e57815a4941a2e7c3860f4664cb3a96 # pinned from main
3131
with:
3232
pr-title: "chore(nix): monthly flake.lock update"
3333
pr-labels: dependencies
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"sourceHash": "6feedf2795147eb2c676a9def294ec5136bc145517b6c6908928977fada8a518",
3-
"sourceFileCount": 409
2+
"sourceHash": "09c4da42042f6a0112a3baa1aecd6062c9f46f6e848edab9c077c2076bfdf819",
3+
"sourceFileCount": 411
44
}

apps/pythinker-code/dist-web/assets/CodeBlockNode-Di9jWY33.js renamed to apps/pythinker-code/dist-web/assets/CodeBlockNode-12vFvmM_.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/pythinker-code/dist-web/assets/DesignSystemView-DQkLs4v3.js renamed to apps/pythinker-code/dist-web/assets/DesignSystemView-CN_ao3CW.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)