specrails-desktop 2.64.2 → 2.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1116) hide show
  1. package/README.md +1 -1
  2. package/cli/dist/status.js +3 -0
  3. package/client/dist/assets/ActivityFeedPage-ByVKYII-.js +1 -0
  4. package/client/dist/assets/AgentBrowserCapture-BGUTjhUr.js +1 -0
  5. package/client/dist/assets/AgentModeAnalyticsPane-CtOLDDjB.js +2 -0
  6. package/client/dist/assets/AgentModeCodePane-CDhUKarT.js +2 -0
  7. package/client/dist/assets/AgentModeJobsPane-BAa_oEHJ.js +1 -0
  8. package/client/dist/assets/AgentsPage-D32hG4Ve.js +120 -0
  9. package/client/dist/assets/AnalyticsPage-BU50zeG6.js +5 -0
  10. package/client/dist/assets/BudgetCard-DP_jxwaD.js +55 -0
  11. package/client/dist/assets/CodePage-jiYnKGpp.js +3 -0
  12. package/client/dist/assets/CostValue-Bvn8674q.js +1 -0
  13. package/client/dist/assets/DesktopAnalyticsPage-CF__H4e3.js +1 -0
  14. package/client/dist/assets/DocView-RrAp70zp.js +11 -0
  15. package/client/dist/assets/DocsDialog-DkqHU-JF.js +1 -0
  16. package/client/dist/assets/DocsPage-C6X089zC.js +1 -0
  17. package/client/dist/assets/ExportDropdown-C5-o8y3K.js +1 -0
  18. package/client/dist/assets/HelpHint-Crf9_uoR.js +1 -0
  19. package/client/dist/assets/IntegrationsPage-aflU3KHK.js +1 -0
  20. package/client/dist/assets/InteractiveJobComposer-CEMMhyyJ.js +19 -0
  21. package/client/dist/assets/JobDetailModal-BVJ6hyRs.js +1 -0
  22. package/client/dist/assets/JobDetailPage-DHzBUmox.js +1 -0
  23. package/client/dist/assets/JobsPage-o-LAqkwC.js +1 -0
  24. package/client/dist/assets/LoopBuilderPage-DbSVmXBM.js +1 -0
  25. package/client/dist/assets/LoopPreviewModal-DbJcVyN1.js +1 -0
  26. package/client/dist/assets/{LoopWindowSurface-DE0v2K1p.js → LoopWindowSurface-Co1ZK26V.js} +1 -1
  27. package/client/dist/assets/LoopsPage-C4lgkPXB.js +2 -0
  28. package/client/dist/assets/MinimizedChatsContext-742ypO8n.js +1 -0
  29. package/client/dist/assets/PluginsPage-Acks9ges.js +2 -0
  30. package/client/dist/assets/RailTrack-BfLmBzBh.js +1 -0
  31. package/client/dist/assets/{RepositoryScopeSelector-2eSqR9WK.js → RepositoryScopeSelector-DcxbKI9w.js} +1 -1
  32. package/client/dist/assets/ReviewPacketPage-CAVSIOAJ.js +7 -0
  33. package/client/dist/assets/TemplatePreviewModal-C23SYCTm.js +1 -0
  34. package/client/dist/assets/TicketDetailModalContext-B-Gtm6Ob.js +23 -0
  35. package/client/dist/assets/Trans-C6J0cLyh.js +1 -0
  36. package/client/dist/assets/a11y-prefs-BqoP5goK.js +1 -0
  37. package/client/dist/assets/activity-BBWfoUOG.js +1 -0
  38. package/client/dist/assets/activity-BM_skann.js +1 -0
  39. package/client/dist/assets/activity-Cevl82ke.js +1 -0
  40. package/client/dist/assets/activity-CmACk5W5.js +1 -0
  41. package/client/dist/assets/activity-D9LBw3PQ.js +1 -0
  42. package/client/dist/assets/activity-Dspbb9lz.js +1 -0
  43. package/client/dist/assets/activity-FPjYIjv9.js +1 -0
  44. package/client/dist/assets/activity-nLCKMUKt.js +1 -0
  45. package/client/dist/assets/addspec-BI4jDMhA.js +1 -0
  46. package/client/dist/assets/addspec-BldTv7Tl.js +1 -0
  47. package/client/dist/assets/addspec-Cdq-2EcC.js +1 -0
  48. package/client/dist/assets/addspec-DH5M16BQ.js +1 -0
  49. package/client/dist/assets/addspec-DOFo9pD5.js +1 -0
  50. package/client/dist/assets/addspec-DPkwhdmL.js +1 -0
  51. package/client/dist/assets/addspec-Dzy12Pv3.js +1 -0
  52. package/client/dist/assets/addspec-skTs6EEW.js +1 -0
  53. package/client/dist/assets/agent-B_UEUy7Y.js +1 -0
  54. package/client/dist/assets/agent-BarjlhTA.js +1 -0
  55. package/client/dist/assets/agent-BfqIITo5.js +1 -0
  56. package/client/dist/assets/agent-Bt9a7Kyj.js +1 -0
  57. package/client/dist/assets/agent-C3689RwP.js +1 -0
  58. package/client/dist/assets/agent-CrmboTAi.js +1 -0
  59. package/client/dist/assets/agent-DcsoTnuE.js +1 -0
  60. package/client/dist/assets/agent-GDZoYwd4.js +1 -0
  61. package/client/dist/assets/{agentRuntime-es2ymSl-.js → agentRuntime-BYH70bKY.js} +1 -1
  62. package/client/dist/assets/agentRuntime-BijLh8I9.js +1 -0
  63. package/client/dist/assets/{agentRuntime-BzuwQQgn.js → agentRuntime-BvyuETPe.js} +1 -1
  64. package/client/dist/assets/{agentRuntime-BDvbJMmS.js → agentRuntime-C2WI6HQh.js} +1 -1
  65. package/client/dist/assets/{agentRuntime-BKJfv5YD.js → agentRuntime-CZPIlQsr.js} +1 -1
  66. package/client/dist/assets/{agentRuntime-DiCldqGG.js → agentRuntime-D2dDvCyJ.js} +1 -1
  67. package/client/dist/assets/agentRuntime-DWZedEbn.js +1 -0
  68. package/client/dist/assets/agentRuntime-DkIruUNw.js +1 -0
  69. package/client/dist/assets/agents-35_PDKx9.js +1 -0
  70. package/client/dist/assets/agents-8fZnHhEQ.js +1 -0
  71. package/client/dist/assets/agents-Bgimtw8z.js +1 -0
  72. package/client/dist/assets/agents-C4P160Us.js +1 -0
  73. package/client/dist/assets/agents-Clg67zbp.js +1 -0
  74. package/client/dist/assets/agents-DJfF4o6G.js +1 -0
  75. package/client/dist/assets/agents-Dc9-Y5cw.js +1 -0
  76. package/client/dist/assets/agents-EN1Zl4YZ.js +1 -0
  77. package/client/dist/assets/agentstudio-Bm4-NYaG.js +1 -0
  78. package/client/dist/assets/agentstudio-CD1fuj2o.js +1 -0
  79. package/client/dist/assets/agentstudio-CQGWFSst.js +1 -0
  80. package/client/dist/assets/agentstudio-CqVSb65S.js +1 -0
  81. package/client/dist/assets/agentstudio-DIE_HjsX.js +1 -0
  82. package/client/dist/assets/agentstudio-D_OmQK-k.js +1 -0
  83. package/client/dist/assets/agentstudio-Djz9aUfb.js +1 -0
  84. package/client/dist/assets/agentstudio-Qa3v9o5J.js +1 -0
  85. package/client/dist/assets/{aiedit-DNXxq_Dr.js → aiedit-1VzLs37W.js} +1 -1
  86. package/client/dist/assets/{aiedit-DCjA7jLJ.js → aiedit-BNp6GSik.js} +1 -1
  87. package/client/dist/assets/{aiedit-BoG24nlg.js → aiedit-BOY5xRPi.js} +1 -1
  88. package/client/dist/assets/{aiedit-iIjz2_Qk.js → aiedit-BrqMZvbc.js} +1 -1
  89. package/client/dist/assets/{aiedit-CjlSRQVP.js → aiedit-CVgtl7hm.js} +1 -1
  90. package/client/dist/assets/{aiedit-DQ-0_pvE.js → aiedit-CrFW9Jd2.js} +1 -1
  91. package/client/dist/assets/{aiedit-olnv3QSt.js → aiedit-YE2lILp7.js} +1 -1
  92. package/client/dist/assets/{aiedit-B0KUbpB6.js → aiedit-iA_R1AVQ.js} +1 -1
  93. package/client/dist/assets/analytics-3w0t-4ic.js +1 -0
  94. package/client/dist/assets/analytics-BRi4KQD6.js +1 -0
  95. package/client/dist/assets/analytics-BtjAqzke.js +1 -0
  96. package/client/dist/assets/analytics-COSQ1h47.js +1 -0
  97. package/client/dist/assets/analytics-CP2HjESk.js +1 -0
  98. package/client/dist/assets/analytics-DY65TC62.js +1 -0
  99. package/client/dist/assets/analytics-Den_vvxn.js +1 -0
  100. package/client/dist/assets/analytics-LmBS96O8.js +1 -0
  101. package/client/dist/assets/api-DOGbyfTO.js +2 -0
  102. package/client/dist/assets/builder-BMVvSr4v.js +1 -0
  103. package/client/dist/assets/builder-BN-MuLZt.js +1 -0
  104. package/client/dist/assets/builder-BQOZi4CF.js +1 -0
  105. package/client/dist/assets/builder-BjUPjsyu.js +1 -0
  106. package/client/dist/assets/builder-BoBtN18T.js +1 -0
  107. package/client/dist/assets/builder-C5g5NhxL.js +1 -0
  108. package/client/dist/assets/builder-RUHXw3yx.js +1 -0
  109. package/client/dist/assets/builder-fyS_AiyC.js +1 -0
  110. package/client/dist/assets/button-CHPkroew.js +1 -0
  111. package/client/dist/assets/chat-C9L5T7KI.js +1 -0
  112. package/client/dist/assets/chevron-right-CwMAj0w_.js +1 -0
  113. package/client/dist/assets/chevron-up-BAMuP0XD.js +1 -0
  114. package/client/dist/assets/chunk-OB3PAWPO-BBaq6pUk.js +3 -0
  115. package/client/dist/assets/code-4le5IIbf.js +1 -0
  116. package/client/dist/assets/code-B-jCVIbm.js +1 -0
  117. package/client/dist/assets/code-BRfrn5ix.js +1 -0
  118. package/client/dist/assets/code-CC9NCrDM.js +1 -0
  119. package/client/dist/assets/code-CK6pm8wY.js +1 -0
  120. package/client/dist/assets/code-DDiOzd6c.js +1 -0
  121. package/client/dist/assets/code-tGifiyf5.js +1 -0
  122. package/client/dist/assets/code-xkn8kQTg.js +1 -0
  123. package/client/dist/assets/commands-Bv1QshHR.js +1 -0
  124. package/client/dist/assets/commands-BvxTxboW.js +1 -0
  125. package/client/dist/assets/commands-C5ORR0fO.js +1 -0
  126. package/client/dist/assets/commands-CBKMFSTV.js +1 -0
  127. package/client/dist/assets/commands-CFJIRsJv.js +1 -0
  128. package/client/dist/assets/commands-D9o3ZcXl.js +1 -0
  129. package/client/dist/assets/commands-DNox0Edk.js +1 -0
  130. package/client/dist/assets/commands-DmIUMLdV.js +1 -0
  131. package/client/dist/assets/common-5H4TkaoI.js +1 -0
  132. package/client/dist/assets/common-9S3OdPjx.js +1 -0
  133. package/client/dist/assets/common-BqnwIcjs.js +1 -0
  134. package/client/dist/assets/common-CQP3VafS.js +1 -0
  135. package/client/dist/assets/common-CZnAfkB2.js +1 -0
  136. package/client/dist/assets/common-D5sNttV4.js +1 -0
  137. package/client/dist/assets/common-k_qX9nlv.js +1 -0
  138. package/client/dist/assets/common-s4HIi9XI.js +1 -0
  139. package/client/dist/assets/compass-B7guwBlY.js +1 -0
  140. package/client/dist/assets/confirm-dialog-ChZdHL3Q.js +1 -0
  141. package/client/dist/assets/copy-DOPlLymH.js +1 -0
  142. package/client/dist/assets/core-BozBzB6Y.js +1 -0
  143. package/client/dist/assets/dashboard-6zGLGcEz.js +1 -0
  144. package/client/dist/assets/dashboard-8Gi0FBDq.js +1 -0
  145. package/client/dist/assets/dashboard-B7E5YrSy.js +1 -0
  146. package/client/dist/assets/dashboard-BhdKV8xK.js +1 -0
  147. package/client/dist/assets/dashboard-Bu3zzH_s.js +1 -0
  148. package/client/dist/assets/dashboard-Ce_6rELA.js +1 -0
  149. package/client/dist/assets/dashboard-DWY-oz8P.js +1 -0
  150. package/client/dist/assets/dashboard-gUzlWk0o.js +1 -0
  151. package/client/dist/assets/date-input-Cdlr8kHz.js +1 -0
  152. package/client/dist/assets/dialog-C23lB2iP.js +5 -0
  153. package/client/dist/assets/dist-Di-oOFkX.js +1 -0
  154. package/client/dist/assets/dist-js-CBmS6MsJ.js +1 -0
  155. package/client/dist/assets/{dist-js-Rlh4FLH5.js → dist-js-DaJmKapi.js} +1 -1
  156. package/client/dist/assets/dropdown-menu-Bfp2CK6H.js +1 -0
  157. package/client/dist/assets/empty-state-D5w9OWj-.js +1 -0
  158. package/client/dist/assets/es2015-DfnECntk.js +41 -0
  159. package/client/dist/assets/esm-BKF6CE7v.js +1 -0
  160. package/client/dist/assets/event-BEnMLqAi.js +1 -0
  161. package/client/dist/assets/explore--NOz9LCN.js +1 -0
  162. package/client/dist/assets/explore-B2ulH6dO.js +1 -0
  163. package/client/dist/assets/explore-BD-QiLdg.js +1 -0
  164. package/client/dist/assets/explore-BOqd4_1j.js +1 -0
  165. package/client/dist/assets/explore-Be_Zh5zu.js +1 -0
  166. package/client/dist/assets/explore-CLjzPSKo.js +1 -0
  167. package/client/dist/assets/explore-D_-vHm29.js +1 -0
  168. package/client/dist/assets/explore-yEQTF6ro.js +1 -0
  169. package/client/dist/assets/file-text-CNXzL3wj.js +1 -0
  170. package/client/dist/assets/format-BODoFIw6.js +1 -0
  171. package/client/dist/assets/formatDistanceToNow-DLMIOS0N.js +1 -0
  172. package/client/dist/assets/getTimezoneOffsetInMilliseconds-O61feXch.js +1 -0
  173. package/client/dist/assets/git-compare-arrows-Cu6tICCq.js +1 -0
  174. package/client/dist/assets/humanise-command-CB4ybLwq.js +1 -0
  175. package/client/dist/assets/inbox-BLZ8cm6_.js +1 -0
  176. package/client/dist/assets/inbox-BQ3VmNYY.js +1 -0
  177. package/client/dist/assets/inbox-BdcXWCuT.js +1 -0
  178. package/client/dist/assets/inbox-CF1PHjns.js +1 -0
  179. package/client/dist/assets/inbox-CFNPDhso.js +1 -0
  180. package/client/dist/assets/inbox-DIttK_NW.js +1 -0
  181. package/client/dist/assets/inbox-Dfdv1Ykl.js +1 -0
  182. package/client/dist/assets/inbox-JS1inmeO.js +1 -0
  183. package/client/dist/assets/index-4UWY7Xyz.css +2 -0
  184. package/client/dist/assets/index-DHzB0T26.js +120 -0
  185. package/client/dist/assets/integrations-BcKgzgPD.js +1 -0
  186. package/client/dist/assets/integrations-BmX_XyJq.js +1 -0
  187. package/client/dist/assets/integrations-CHpwMjlY.js +1 -0
  188. package/client/dist/assets/integrations-CT3kr8e-.js +1 -0
  189. package/client/dist/assets/integrations-C_5XAkgz.js +1 -0
  190. package/client/dist/assets/integrations-Ct9zLX7N.js +1 -0
  191. package/client/dist/assets/integrations-DEYemxUv.js +1 -0
  192. package/client/dist/assets/integrations-DWvsB_WB.js +1 -0
  193. package/client/dist/assets/{jira-Cq6yvN4q.js → jira-B_ERkFRv.js} +1 -1
  194. package/client/dist/assets/jira-Bn-A5lwD.js +1 -0
  195. package/client/dist/assets/jira-C71Ybnhp.js +1 -0
  196. package/client/dist/assets/jira-CkwjeJz6.js +1 -0
  197. package/client/dist/assets/jira-D9pSLXjI.js +1 -0
  198. package/client/dist/assets/jira-DBRS_lcp.js +1 -0
  199. package/client/dist/assets/jira-DHS6CsKh.js +1 -0
  200. package/client/dist/assets/jira-MInHRUb1.js +1 -0
  201. package/client/dist/assets/jira-api-DHme7Upx.js +1 -0
  202. package/client/dist/assets/jobs-BMLTDo63.js +1 -0
  203. package/client/dist/assets/jobs-BO8q4Mi1.js +1 -0
  204. package/client/dist/assets/jobs-Ck8uOWMM.js +1 -0
  205. package/client/dist/assets/jobs-CyFfPCpg.js +1 -0
  206. package/client/dist/assets/jobs-DT5s4fZ6.js +1 -0
  207. package/client/dist/assets/jobs-DZAgVPcD.js +1 -0
  208. package/client/dist/assets/jobs-b5gPYaKr.js +1 -0
  209. package/client/dist/assets/jobs-xsZK1440.js +1 -0
  210. package/client/dist/assets/launch-forecast-BTa-p3RP.js +1 -0
  211. package/client/dist/assets/{loop-layout-DtxX27Jz.css → loop-layout-DLioOiRN.css} +1 -1
  212. package/client/dist/assets/loop-layout-Sl9cfTvs.js +7 -0
  213. package/client/dist/assets/loops-BEEOVJDR.js +1 -0
  214. package/client/dist/assets/loops-BcrQ2vk7.js +1 -0
  215. package/client/dist/assets/loops-BjWxzJIZ.js +1 -0
  216. package/client/dist/assets/loops-BogV595N.js +1 -0
  217. package/client/dist/assets/loops-CU0BLZiz.js +1 -0
  218. package/client/dist/assets/loops-CrNBgi1G.js +1 -0
  219. package/client/dist/assets/loops-CwalwS_i.js +1 -0
  220. package/client/dist/assets/loops-_TDVN-fX.js +1 -0
  221. package/client/dist/assets/mcp-BNs8gxoL.js +1 -0
  222. package/client/dist/assets/mcp-BvRh_xO5.js +1 -0
  223. package/client/dist/assets/mcp-C2F1pghi.js +1 -0
  224. package/client/dist/assets/mcp-D9RLKAs2.js +1 -0
  225. package/client/dist/assets/mcp-DAghcsR0.js +1 -0
  226. package/client/dist/assets/mcp-DWWAPi1G.js +1 -0
  227. package/client/dist/assets/mcp-DbGSFC3f.js +1 -0
  228. package/client/dist/assets/mcp-FelCicrv.js +1 -0
  229. package/client/dist/assets/narration-C3NBkAR4.js +1 -0
  230. package/client/dist/assets/narration-CkoJq-Lf.js +1 -0
  231. package/client/dist/assets/narration-Cr0NeW9K.js +1 -0
  232. package/client/dist/assets/narration-DJUXOs-W.js +1 -0
  233. package/client/dist/assets/narration-DgL8TMvN.js +1 -0
  234. package/client/dist/assets/narration-DjBafgv0.js +1 -0
  235. package/client/dist/assets/narration-Dle6Iv0c.js +1 -0
  236. package/client/dist/assets/narration-MYlfktga.js +1 -0
  237. package/client/dist/assets/nav-BSQ8KW1c.js +1 -0
  238. package/client/dist/assets/nav-BauVof8Z.js +1 -0
  239. package/client/dist/assets/nav-BfOAH1se.js +1 -0
  240. package/client/dist/assets/nav-D3bOsipX.js +1 -0
  241. package/client/dist/assets/nav-DOMMhlLx.js +1 -0
  242. package/client/dist/assets/nav-DPzVlgZU.js +1 -0
  243. package/client/dist/assets/nav-DZJbFbah.js +1 -0
  244. package/client/dist/assets/nav-D_5aojd2.js +1 -0
  245. package/client/dist/assets/notify-error-BsWANx1T.js +1 -0
  246. package/client/dist/assets/onboarding-BdZQnNm3.js +1 -0
  247. package/client/dist/assets/onboarding-CJQEv1vp.js +1 -0
  248. package/client/dist/assets/onboarding-CWJGYUW3.js +1 -0
  249. package/client/dist/assets/onboarding-ChfYN7dA.js +1 -0
  250. package/client/dist/assets/onboarding-CjvDUR3V.js +1 -0
  251. package/client/dist/assets/onboarding-I6vS-zTB.js +1 -0
  252. package/client/dist/assets/onboarding-dgC_9dTB.js +1 -0
  253. package/client/dist/assets/onboarding-mlXSyKzX.js +1 -0
  254. package/client/dist/assets/origin-03nTuaOb.js +1 -0
  255. package/client/dist/assets/packet-BjpyRnZr.js +1 -0
  256. package/client/dist/assets/packet-BwgG5mBt.js +1 -0
  257. package/client/dist/assets/packet-C3eAUFkV.js +1 -0
  258. package/client/dist/assets/packet-C8wZuSld.js +1 -0
  259. package/client/dist/assets/packet-CNXEy_85.js +1 -0
  260. package/client/dist/assets/packet-DsV5Aa_8.js +1 -0
  261. package/client/dist/assets/packet-aasskOE7.js +1 -0
  262. package/client/dist/assets/packet-phxCc2gJ.js +1 -0
  263. package/client/dist/assets/page-header-BStSHkP8.js +1 -0
  264. package/client/dist/assets/project-repositories-DJPeAVBK.js +1 -0
  265. package/client/dist/assets/{provider-capabilities-lePfeT_Y.js → provider-capabilities-DtwcTme4.js} +1 -1
  266. package/client/dist/assets/recovery-BPDOsC92.js +1 -0
  267. package/client/dist/assets/recovery-BluNHoXM.js +1 -0
  268. package/client/dist/assets/recovery-CRvEmB0C.js +1 -0
  269. package/client/dist/assets/recovery-CeIoRnkR.js +1 -0
  270. package/client/dist/assets/recovery-DHCo8KGi.js +1 -0
  271. package/client/dist/assets/recovery-OxAIpbBF.js +1 -0
  272. package/client/dist/assets/recovery-XXexYGOJ.js +1 -0
  273. package/client/dist/assets/recovery-pITlc--v.js +1 -0
  274. package/client/dist/assets/refresh-cw-DfyTkbsf.js +1 -0
  275. package/client/dist/assets/select-xA3pSmqE.js +1 -0
  276. package/client/dist/assets/settings--yzDbX9r.js +1 -0
  277. package/client/dist/assets/settings-5_heTv8s.js +1 -0
  278. package/client/dist/assets/settings-BSf27MDg.js +1 -0
  279. package/client/dist/assets/settings-BSj6FakR.js +1 -0
  280. package/client/dist/assets/settings-BZDo_8Nn.js +1 -0
  281. package/client/dist/assets/settings-BdWgmNc0.js +1 -0
  282. package/client/dist/assets/settings-DRouxKqb.js +1 -0
  283. package/client/dist/assets/settings-DnWFoY-F.js +1 -0
  284. package/client/dist/assets/setup-BJWy62ri.js +1 -0
  285. package/client/dist/assets/setup-BgKOIuzc.js +1 -0
  286. package/client/dist/assets/setup-BvVIyUlz.js +1 -0
  287. package/client/dist/assets/setup-BxCk2pe1.js +1 -0
  288. package/client/dist/assets/setup-C-xQTL7R.js +1 -0
  289. package/client/dist/assets/setup-CbaVoiwV.js +1 -0
  290. package/client/dist/assets/setup-DxTBkX3P.js +1 -0
  291. package/client/dist/assets/setup-oGoVAzOD.js +1 -0
  292. package/client/dist/assets/specs-7tAb4IKr.js +1 -0
  293. package/client/dist/assets/specs-BUcY4s5v.js +1 -0
  294. package/client/dist/assets/specs-Bk5LeBAA.js +1 -0
  295. package/client/dist/assets/specs-CAA4Lrlg.js +1 -0
  296. package/client/dist/assets/specs-CS091AnA.js +1 -0
  297. package/client/dist/assets/specs-DJ6gmFcK.js +1 -0
  298. package/client/dist/assets/specs-GfCcrBSC.js +1 -0
  299. package/client/dist/assets/specs-xQgyc7WL.js +1 -0
  300. package/client/dist/assets/spending-CVH8VREb.js +1 -0
  301. package/client/dist/assets/square-Co6h5vZg.js +1 -0
  302. package/client/dist/assets/tauri-shell-43ixPGfa.js +2 -0
  303. package/client/dist/assets/terminal-0v9sBylD.js +1 -0
  304. package/client/dist/assets/terminal-AbUAmCxE.js +1 -0
  305. package/client/dist/assets/terminal-BJayIbIP.js +1 -0
  306. package/client/dist/assets/terminal-C2RUlXyi.js +1 -0
  307. package/client/dist/assets/terminal-CMmSb_Nj.js +1 -0
  308. package/client/dist/assets/terminal-DKWjj7HJ.js +1 -0
  309. package/client/dist/assets/terminal-KlFu7_pV.js +1 -0
  310. package/client/dist/assets/terminal-i99yqFvm.js +1 -0
  311. package/client/dist/assets/tickets-846Oq3i3.js +1 -0
  312. package/client/dist/assets/tickets-B5LJTe_b.js +1 -0
  313. package/client/dist/assets/tickets-Bfo2GGmH.js +1 -0
  314. package/client/dist/assets/tickets-BhdZ1yY2.js +1 -0
  315. package/client/dist/assets/tickets-CgjWJHAW.js +1 -0
  316. package/client/dist/assets/tickets-Ct9DbDUR.js +1 -0
  317. package/client/dist/assets/tickets-rptLEJB1.js +1 -0
  318. package/client/dist/assets/tickets-xQ6DpYdu.js +1 -0
  319. package/client/dist/assets/trending-up-BGvb4zZt.js +1 -0
  320. package/client/dist/assets/undo-6zuS4-sL.js +1 -0
  321. package/client/dist/assets/undo-BeM4gDOP.js +1 -0
  322. package/client/dist/assets/undo-BeppX8xS.js +1 -0
  323. package/client/dist/assets/undo-BqvNZ5MG.js +1 -0
  324. package/client/dist/assets/undo-BzwEPf_k.js +1 -0
  325. package/client/dist/assets/undo-CJ9Cu1NN.js +1 -0
  326. package/client/dist/assets/undo-ds8nMFbX.js +1 -0
  327. package/client/dist/assets/undo-x_gA-knG.js +1 -0
  328. package/client/dist/assets/useDesktop-BuOp2-MR.js +1 -0
  329. package/client/dist/assets/useRuntimeRuns-BRS6ncnO.js +1 -0
  330. package/client/dist/assets/utils-ELimjS2Y.js +1 -0
  331. package/client/dist/assets/wrench-Br2n1Lxd.js +1 -0
  332. package/client/dist/index.html +75 -60
  333. package/docs/ci-cd.md +29 -1
  334. package/docs/cli.md +10 -31
  335. package/docs/codex.md +1 -1
  336. package/docs/creating-specs.md +15 -12
  337. package/docs/customizing.md +16 -13
  338. package/docs/getting-started.md +12 -11
  339. package/docs/guide/de/agents/1-meet-the-agents.md +1 -1
  340. package/docs/guide/de/getting-started/2-installing-and-first-run.md +2 -0
  341. package/docs/guide/de/getting-started/3-try-the-sample-project.md +35 -0
  342. package/docs/guide/de/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  343. package/docs/guide/de/getting-started/6-universal-search.md +34 -0
  344. package/docs/guide/de/insights/1-analytics-and-cost-tracking.md +20 -6
  345. package/docs/guide/de/insights/2-the-integrated-terminal.md +1 -1
  346. package/docs/guide/de/insights/3-code-explorer.md +1 -1
  347. package/docs/guide/de/integrations/1-ai-providers.md +1 -1
  348. package/docs/guide/de/integrations/2-plugins.md +1 -1
  349. package/docs/guide/de/integrations/3-jira-integration.md +3 -3
  350. package/docs/guide/de/integrations/4-mobile-companion.md +1 -1
  351. package/docs/guide/de/integrations/5-mcp-server.md +1 -1
  352. package/docs/guide/de/integrations/6-agent-chat.md +12 -5
  353. package/docs/guide/de/integrations/8-flow-mode.md +69 -0
  354. package/docs/guide/de/pipeline/1-rails-and-jobs.md +21 -1
  355. package/docs/guide/de/pipeline/2-the-job-detail-view.md +12 -0
  356. package/docs/guide/de/pipeline/3-reviewing-a-delivery.md +43 -0
  357. package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +2 -2
  358. package/docs/guide/de/pipeline/5-the-loop-builder.md +1 -1
  359. package/docs/guide/de/settings/1-themes.md +1 -1
  360. package/docs/guide/de/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  361. package/docs/guide/de/settings/5-project-environment.md +1 -1
  362. package/docs/guide/de/settings/6-updates.md +24 -0
  363. package/docs/guide/de/settings/7-existing-projects.md +33 -0
  364. package/docs/guide/de/settings/8-accessibility.md +23 -0
  365. package/docs/guide/de/specs/1-specs-and-the-backlog.md +41 -3
  366. package/docs/guide/de/specs/2-add-spec-quick-mode.md +1 -1
  367. package/docs/guide/de/specs/3-add-spec-explore-mode.md +1 -1
  368. package/docs/guide/en/agents/1-meet-the-agents.md +1 -1
  369. package/docs/guide/en/getting-started/1-what-is-specrails.md +1 -1
  370. package/docs/guide/en/getting-started/2-installing-and-first-run.md +2 -0
  371. package/docs/guide/en/getting-started/3-try-the-sample-project.md +35 -0
  372. package/docs/guide/en/getting-started/5-the-dashboard-tour.md +52 -0
  373. package/docs/guide/en/getting-started/6-universal-search.md +34 -0
  374. package/docs/guide/en/insights/1-analytics-and-cost-tracking.md +24 -10
  375. package/docs/guide/en/insights/2-the-integrated-terminal.md +1 -1
  376. package/docs/guide/en/insights/3-code-explorer.md +5 -5
  377. package/docs/guide/en/integrations/1-ai-providers.md +1 -1
  378. package/docs/guide/en/integrations/2-plugins.md +1 -1
  379. package/docs/guide/en/integrations/3-jira-integration.md +4 -4
  380. package/docs/guide/en/integrations/4-mobile-companion.md +1 -1
  381. package/docs/guide/en/integrations/5-mcp-server.md +4 -4
  382. package/docs/guide/en/integrations/6-agent-chat.md +12 -5
  383. package/docs/guide/en/integrations/8-flow-mode.md +69 -0
  384. package/docs/guide/en/pipeline/1-rails-and-jobs.md +22 -3
  385. package/docs/guide/en/pipeline/2-the-job-detail-view.md +19 -7
  386. package/docs/guide/en/pipeline/3-reviewing-a-delivery.md +43 -0
  387. package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +2 -2
  388. package/docs/guide/en/pipeline/5-the-loop-builder.md +2 -2
  389. package/docs/guide/en/settings/1-themes.md +1 -1
  390. package/docs/guide/en/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  391. package/docs/guide/en/settings/5-project-environment.md +1 -1
  392. package/docs/guide/en/settings/6-updates.md +24 -0
  393. package/docs/guide/en/settings/7-existing-projects.md +33 -0
  394. package/docs/guide/en/settings/8-accessibility.md +23 -0
  395. package/docs/guide/en/specs/1-specs-and-the-backlog.md +42 -6
  396. package/docs/guide/en/specs/2-add-spec-quick-mode.md +1 -1
  397. package/docs/guide/en/specs/3-add-spec-explore-mode.md +2 -2
  398. package/docs/guide/es/agents/1-meet-the-agents.md +1 -1
  399. package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +1 -1
  400. package/docs/guide/es/agents/3-customizing-models-per-agent.md +2 -2
  401. package/docs/guide/es/agents/4-custom-agents-catalog.md +1 -1
  402. package/docs/guide/es/getting-started/1-what-is-specrails.md +3 -3
  403. package/docs/guide/es/getting-started/2-installing-and-first-run.md +2 -0
  404. package/docs/guide/es/getting-started/3-try-the-sample-project.md +35 -0
  405. package/docs/guide/es/getting-started/5-the-dashboard-tour.md +52 -0
  406. package/docs/guide/es/getting-started/6-universal-search.md +34 -0
  407. package/docs/guide/es/insights/1-analytics-and-cost-tracking.md +26 -12
  408. package/docs/guide/es/insights/2-the-integrated-terminal.md +1 -1
  409. package/docs/guide/es/insights/3-code-explorer.md +5 -5
  410. package/docs/guide/es/integrations/1-ai-providers.md +1 -1
  411. package/docs/guide/es/integrations/2-plugins.md +1 -1
  412. package/docs/guide/es/integrations/3-jira-integration.md +4 -4
  413. package/docs/guide/es/integrations/4-mobile-companion.md +1 -1
  414. package/docs/guide/es/integrations/5-mcp-server.md +4 -4
  415. package/docs/guide/es/integrations/6-agent-chat.md +14 -7
  416. package/docs/guide/es/integrations/7-local-engines.md +1 -1
  417. package/docs/guide/es/integrations/8-flow-mode.md +69 -0
  418. package/docs/guide/es/pipeline/1-rails-and-jobs.md +33 -13
  419. package/docs/guide/es/pipeline/2-the-job-detail-view.md +38 -26
  420. package/docs/guide/es/pipeline/3-reviewing-a-delivery.md +43 -0
  421. package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +2 -2
  422. package/docs/guide/es/pipeline/5-the-loop-builder.md +4 -4
  423. package/docs/guide/es/settings/1-themes.md +1 -1
  424. package/docs/guide/es/settings/3-pipeline-telemetry-and-diagnostics.md +10 -10
  425. package/docs/guide/es/settings/5-project-environment.md +1 -1
  426. package/docs/guide/es/settings/6-updates.md +24 -0
  427. package/docs/guide/es/settings/7-existing-projects.md +33 -0
  428. package/docs/guide/es/settings/8-accessibility.md +23 -0
  429. package/docs/guide/es/specs/1-specs-and-the-backlog.md +43 -7
  430. package/docs/guide/es/specs/2-add-spec-quick-mode.md +1 -1
  431. package/docs/guide/es/specs/3-add-spec-explore-mode.md +3 -3
  432. package/docs/guide/fr/agents/1-meet-the-agents.md +1 -1
  433. package/docs/guide/fr/getting-started/2-installing-and-first-run.md +2 -0
  434. package/docs/guide/fr/getting-started/3-try-the-sample-project.md +35 -0
  435. package/docs/guide/fr/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  436. package/docs/guide/fr/getting-started/6-universal-search.md +34 -0
  437. package/docs/guide/fr/insights/1-analytics-and-cost-tracking.md +18 -4
  438. package/docs/guide/fr/insights/2-the-integrated-terminal.md +1 -1
  439. package/docs/guide/fr/insights/3-code-explorer.md +1 -1
  440. package/docs/guide/fr/integrations/1-ai-providers.md +1 -1
  441. package/docs/guide/fr/integrations/2-plugins.md +1 -1
  442. package/docs/guide/fr/integrations/3-jira-integration.md +3 -3
  443. package/docs/guide/fr/integrations/4-mobile-companion.md +1 -1
  444. package/docs/guide/fr/integrations/5-mcp-server.md +1 -1
  445. package/docs/guide/fr/integrations/6-agent-chat.md +11 -4
  446. package/docs/guide/fr/integrations/8-flow-mode.md +69 -0
  447. package/docs/guide/fr/pipeline/1-rails-and-jobs.md +21 -1
  448. package/docs/guide/fr/pipeline/2-the-job-detail-view.md +12 -0
  449. package/docs/guide/fr/pipeline/3-reviewing-a-delivery.md +43 -0
  450. package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +2 -2
  451. package/docs/guide/fr/pipeline/5-the-loop-builder.md +1 -1
  452. package/docs/guide/fr/settings/1-themes.md +1 -1
  453. package/docs/guide/fr/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  454. package/docs/guide/fr/settings/5-project-environment.md +1 -1
  455. package/docs/guide/fr/settings/6-updates.md +24 -0
  456. package/docs/guide/fr/settings/7-existing-projects.md +33 -0
  457. package/docs/guide/fr/settings/8-accessibility.md +23 -0
  458. package/docs/guide/fr/specs/1-specs-and-the-backlog.md +41 -3
  459. package/docs/guide/fr/specs/2-add-spec-quick-mode.md +1 -1
  460. package/docs/guide/fr/specs/3-add-spec-explore-mode.md +1 -1
  461. package/docs/guide/it/agents/1-meet-the-agents.md +1 -1
  462. package/docs/guide/it/getting-started/2-installing-and-first-run.md +2 -0
  463. package/docs/guide/it/getting-started/3-try-the-sample-project.md +35 -0
  464. package/docs/guide/it/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  465. package/docs/guide/it/getting-started/6-universal-search.md +34 -0
  466. package/docs/guide/it/insights/1-analytics-and-cost-tracking.md +18 -4
  467. package/docs/guide/it/insights/2-the-integrated-terminal.md +1 -1
  468. package/docs/guide/it/insights/3-code-explorer.md +1 -1
  469. package/docs/guide/it/integrations/1-ai-providers.md +1 -1
  470. package/docs/guide/it/integrations/2-plugins.md +1 -1
  471. package/docs/guide/it/integrations/3-jira-integration.md +3 -3
  472. package/docs/guide/it/integrations/4-mobile-companion.md +1 -1
  473. package/docs/guide/it/integrations/5-mcp-server.md +1 -1
  474. package/docs/guide/it/integrations/6-agent-chat.md +11 -4
  475. package/docs/guide/it/integrations/8-flow-mode.md +69 -0
  476. package/docs/guide/it/pipeline/1-rails-and-jobs.md +21 -1
  477. package/docs/guide/it/pipeline/2-the-job-detail-view.md +12 -0
  478. package/docs/guide/it/pipeline/3-reviewing-a-delivery.md +43 -0
  479. package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +2 -2
  480. package/docs/guide/it/pipeline/5-the-loop-builder.md +1 -1
  481. package/docs/guide/it/settings/1-themes.md +1 -1
  482. package/docs/guide/it/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  483. package/docs/guide/it/settings/5-project-environment.md +1 -1
  484. package/docs/guide/it/settings/6-updates.md +24 -0
  485. package/docs/guide/it/settings/7-existing-projects.md +33 -0
  486. package/docs/guide/it/settings/8-accessibility.md +23 -0
  487. package/docs/guide/it/specs/1-specs-and-the-backlog.md +41 -3
  488. package/docs/guide/it/specs/2-add-spec-quick-mode.md +1 -1
  489. package/docs/guide/it/specs/3-add-spec-explore-mode.md +1 -1
  490. package/docs/guide/ja/agents/1-meet-the-agents.md +1 -1
  491. package/docs/guide/ja/getting-started/2-installing-and-first-run.md +2 -0
  492. package/docs/guide/ja/getting-started/3-try-the-sample-project.md +35 -0
  493. package/docs/guide/ja/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  494. package/docs/guide/ja/getting-started/6-universal-search.md +34 -0
  495. package/docs/guide/ja/insights/1-analytics-and-cost-tracking.md +18 -4
  496. package/docs/guide/ja/insights/2-the-integrated-terminal.md +1 -1
  497. package/docs/guide/ja/insights/3-code-explorer.md +1 -1
  498. package/docs/guide/ja/integrations/1-ai-providers.md +1 -1
  499. package/docs/guide/ja/integrations/2-plugins.md +1 -1
  500. package/docs/guide/ja/integrations/3-jira-integration.md +3 -3
  501. package/docs/guide/ja/integrations/4-mobile-companion.md +1 -1
  502. package/docs/guide/ja/integrations/5-mcp-server.md +1 -1
  503. package/docs/guide/ja/integrations/6-agent-chat.md +11 -4
  504. package/docs/guide/ja/integrations/8-flow-mode.md +69 -0
  505. package/docs/guide/ja/pipeline/1-rails-and-jobs.md +21 -1
  506. package/docs/guide/ja/pipeline/2-the-job-detail-view.md +12 -0
  507. package/docs/guide/ja/pipeline/3-reviewing-a-delivery.md +43 -0
  508. package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +2 -2
  509. package/docs/guide/ja/pipeline/5-the-loop-builder.md +1 -1
  510. package/docs/guide/ja/settings/1-themes.md +1 -1
  511. package/docs/guide/ja/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  512. package/docs/guide/ja/settings/5-project-environment.md +1 -1
  513. package/docs/guide/ja/settings/6-updates.md +24 -0
  514. package/docs/guide/ja/settings/7-existing-projects.md +33 -0
  515. package/docs/guide/ja/settings/8-accessibility.md +23 -0
  516. package/docs/guide/ja/specs/1-specs-and-the-backlog.md +41 -3
  517. package/docs/guide/ja/specs/2-add-spec-quick-mode.md +1 -1
  518. package/docs/guide/ja/specs/3-add-spec-explore-mode.md +1 -1
  519. package/docs/guide/pt/agents/1-meet-the-agents.md +1 -1
  520. package/docs/guide/pt/getting-started/2-installing-and-first-run.md +2 -0
  521. package/docs/guide/pt/getting-started/3-try-the-sample-project.md +35 -0
  522. package/docs/guide/pt/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  523. package/docs/guide/pt/getting-started/6-universal-search.md +34 -0
  524. package/docs/guide/pt/insights/1-analytics-and-cost-tracking.md +18 -4
  525. package/docs/guide/pt/insights/2-the-integrated-terminal.md +1 -1
  526. package/docs/guide/pt/insights/3-code-explorer.md +1 -1
  527. package/docs/guide/pt/integrations/1-ai-providers.md +1 -1
  528. package/docs/guide/pt/integrations/2-plugins.md +1 -1
  529. package/docs/guide/pt/integrations/3-jira-integration.md +3 -3
  530. package/docs/guide/pt/integrations/4-mobile-companion.md +1 -1
  531. package/docs/guide/pt/integrations/5-mcp-server.md +1 -1
  532. package/docs/guide/pt/integrations/6-agent-chat.md +12 -5
  533. package/docs/guide/pt/integrations/8-flow-mode.md +69 -0
  534. package/docs/guide/pt/pipeline/1-rails-and-jobs.md +21 -1
  535. package/docs/guide/pt/pipeline/2-the-job-detail-view.md +12 -0
  536. package/docs/guide/pt/pipeline/3-reviewing-a-delivery.md +43 -0
  537. package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +2 -2
  538. package/docs/guide/pt/pipeline/5-the-loop-builder.md +1 -1
  539. package/docs/guide/pt/settings/1-themes.md +1 -1
  540. package/docs/guide/pt/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  541. package/docs/guide/pt/settings/5-project-environment.md +1 -1
  542. package/docs/guide/pt/settings/6-updates.md +24 -0
  543. package/docs/guide/pt/settings/7-existing-projects.md +33 -0
  544. package/docs/guide/pt/settings/8-accessibility.md +23 -0
  545. package/docs/guide/pt/specs/1-specs-and-the-backlog.md +41 -3
  546. package/docs/guide/pt/specs/2-add-spec-quick-mode.md +1 -1
  547. package/docs/guide/pt/specs/3-add-spec-explore-mode.md +1 -1
  548. package/docs/guide/zh/agents/1-meet-the-agents.md +1 -1
  549. package/docs/guide/zh/getting-started/2-installing-and-first-run.md +2 -0
  550. package/docs/guide/zh/getting-started/3-try-the-sample-project.md +35 -0
  551. package/docs/guide/zh/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  552. package/docs/guide/zh/getting-started/6-universal-search.md +34 -0
  553. package/docs/guide/zh/insights/1-analytics-and-cost-tracking.md +18 -4
  554. package/docs/guide/zh/insights/2-the-integrated-terminal.md +1 -1
  555. package/docs/guide/zh/insights/3-code-explorer.md +1 -1
  556. package/docs/guide/zh/integrations/1-ai-providers.md +1 -1
  557. package/docs/guide/zh/integrations/2-plugins.md +1 -1
  558. package/docs/guide/zh/integrations/3-jira-integration.md +3 -3
  559. package/docs/guide/zh/integrations/4-mobile-companion.md +1 -1
  560. package/docs/guide/zh/integrations/5-mcp-server.md +1 -1
  561. package/docs/guide/zh/integrations/6-agent-chat.md +11 -4
  562. package/docs/guide/zh/integrations/8-flow-mode.md +69 -0
  563. package/docs/guide/zh/pipeline/1-rails-and-jobs.md +21 -1
  564. package/docs/guide/zh/pipeline/2-the-job-detail-view.md +12 -0
  565. package/docs/guide/zh/pipeline/3-reviewing-a-delivery.md +43 -0
  566. package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +2 -2
  567. package/docs/guide/zh/pipeline/5-the-loop-builder.md +1 -1
  568. package/docs/guide/zh/settings/1-themes.md +1 -1
  569. package/docs/guide/zh/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  570. package/docs/guide/zh/settings/5-project-environment.md +1 -1
  571. package/docs/guide/zh/settings/6-updates.md +24 -0
  572. package/docs/guide/zh/settings/7-existing-projects.md +33 -0
  573. package/docs/guide/zh/settings/8-accessibility.md +23 -0
  574. package/docs/guide/zh/specs/1-specs-and-the-backlog.md +41 -3
  575. package/docs/guide/zh/specs/2-add-spec-quick-mode.md +1 -1
  576. package/docs/guide/zh/specs/3-add-spec-explore-mode.md +1 -1
  577. package/docs/internals/README.md +8 -0
  578. package/docs/internals/adding-a-provider.md +19 -2
  579. package/docs/internals/agent-actions-audit.md +101 -0
  580. package/docs/internals/agent-sessions.md +36 -1
  581. package/docs/internals/api-reference.md +190 -45
  582. package/docs/internals/architecture.md +53 -47
  583. package/docs/internals/companion-inbox-decisions.md +42 -0
  584. package/docs/internals/companion-rails-as-loops-contract.md +17 -6
  585. package/docs/internals/configuration.md +140 -9
  586. package/docs/internals/core-runtime-updates.md +4 -4
  587. package/docs/internals/existing-project-anchoring.md +168 -0
  588. package/docs/internals/flow-mode.md +668 -0
  589. package/docs/internals/legacy-implementation-notes.md +13 -0
  590. package/docs/internals/local-testing-feedback-2026-10.md +210 -0
  591. package/docs/internals/mcp-mission-audit.md +4 -0
  592. package/docs/internals/mission-rail-cards.md +10 -5
  593. package/docs/internals/mission-read-only-policy.md +152 -0
  594. package/docs/internals/modal-standard.md +181 -0
  595. package/docs/internals/openspec-workflow.md +32 -0
  596. package/docs/internals/operations-runbook.md +30 -0
  597. package/docs/internals/profiles.md +6 -3
  598. package/docs/internals/programmatic-agent-runtime.md +8 -0
  599. package/docs/internals/project-builder.md +1 -1
  600. package/docs/internals/review-packet.md +161 -9
  601. package/docs/internals/safe-pr-review-flow.md +135 -6
  602. package/docs/internals/source-map.md +413 -18
  603. package/docs/internals/spec-addenda.md +10 -0
  604. package/docs/internals/spec-triage.md +140 -0
  605. package/docs/internals/visual-design-audit.md +15 -2
  606. package/docs/local-providers.md +3 -0
  607. package/docs/mcp.md +21 -3
  608. package/docs/platforms/macos.md +1 -1
  609. package/docs/platforms/windows.md +2 -2
  610. package/docs/running-pipelines.md +22 -6
  611. package/docs/tracking-cost.md +54 -10
  612. package/local-runner/dist/specrails-local-runner.js +3851 -1178
  613. package/mcp-bridge/dist/specrails-mcp.js +3864 -1143
  614. package/package.json +10 -9
  615. package/server/dist/agent-mcp-config.js +37 -1
  616. package/server/dist/api-version.js +19 -0
  617. package/server/dist/command-resolver.js +4 -2
  618. package/server/dist/core-compat.js +1 -1
  619. package/server/dist/core-execution.js +2 -1
  620. package/server/dist/core-update-manager.js +71 -13
  621. package/server/dist/db/job-search.js +248 -0
  622. package/server/dist/db/jobs.js +6 -0
  623. package/server/dist/db/migrations.js +239 -0
  624. package/server/dist/db.js +9 -2
  625. package/server/dist/desktop-db.js +99 -5
  626. package/server/dist/desktop-router.js +126 -13
  627. package/server/dist/docs-router.js +67 -1
  628. package/server/dist/feature-flags.js +22 -0
  629. package/server/dist/index.js +30 -15
  630. package/server/dist/jira/jira-adf.js +13 -1
  631. package/server/dist/jira/jira-clarifications.js +146 -0
  632. package/server/dist/jira/jira-client.js +8 -1
  633. package/server/dist/jira/jira-db.js +41 -0
  634. package/server/dist/jira/jira-sync-manager.js +328 -25
  635. package/server/dist/mcp/guide.js +17 -7
  636. package/server/dist/mcp/tools/agents.js +1 -1
  637. package/server/dist/mcp/tools/analytics.js +15 -3
  638. package/server/dist/mcp/tools/app-settings.js +14 -1
  639. package/server/dist/mcp/tools/chat.js +1 -1
  640. package/server/dist/mcp/tools/env.js +4 -2
  641. package/server/dist/mcp/tools/jobs.js +96 -7
  642. package/server/dist/mcp/tools/loops.js +1 -1
  643. package/server/dist/mcp/tools/meta.js +10 -13
  644. package/server/dist/mcp/tools/rails.js +15 -1
  645. package/server/dist/mcp/tools/setup.js +1 -1
  646. package/server/dist/mcp/tools/specs.js +8 -5
  647. package/server/dist/mcp/tools/support.js +6 -3
  648. package/server/dist/mcp/tools/types.js +38 -1
  649. package/server/dist/mobile/mobile-admin-router.js +0 -16
  650. package/server/dist/mobile/mobile-gateway.js +0 -18
  651. package/server/dist/mobile/mobile-inbox.js +240 -0
  652. package/server/dist/mobile/mobile-missions.js +6 -8
  653. package/server/dist/mobile/mobile-router.js +9 -9
  654. package/server/dist/mobile/mobile-webrtc-peer.js +4 -54
  655. package/server/dist/mobile/mobile-ws.js +27 -4
  656. package/server/dist/modules/accounting/runtime/ai-invocations.js +4 -0
  657. package/server/dist/modules/accounting/runtime/decision-times.js +102 -0
  658. package/server/dist/modules/accounting/runtime/loop-economics.js +284 -0
  659. package/server/dist/modules/accounting/runtime/spending.js +7 -2
  660. package/server/dist/modules/accounting/runtime/what-if.js +87 -0
  661. package/server/dist/modules/agent-runtime/runtime/agent-runtime-bridge.js +86 -5
  662. package/server/dist/modules/agent-runtime/runtime/agent-runtime-controls.js +28 -2
  663. package/server/dist/modules/agent-runtime/runtime/agent-runtime-metrics.js +15 -2
  664. package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings-router.js +21 -2
  665. package/server/dist/modules/agent-runtime/runtime/core-capabilities.js +55 -0
  666. package/server/dist/modules/agent-sessions/adapters/host-process.js +1 -1
  667. package/server/dist/modules/agent-sessions/domain/availability.js +16 -0
  668. package/server/dist/modules/agent-sessions/domain/protocol.js +8 -1
  669. package/server/dist/modules/agent-sessions/index.js +3 -1
  670. package/server/dist/modules/agent-sessions/runtime/core-sessions-availability.js +16 -0
  671. package/server/dist/modules/agents/runtime/agent-refine-manager.js +3 -1
  672. package/server/dist/modules/agents/runtime/agent-store.js +60 -73
  673. package/server/dist/modules/audit/adapters/http.js +66 -0
  674. package/server/dist/modules/audit/adapters/runtime.js +60 -0
  675. package/server/dist/modules/audit/adapters/sqlite.js +73 -0
  676. package/server/dist/modules/audit/application.js +190 -0
  677. package/server/dist/modules/audit/domain.js +434 -0
  678. package/server/dist/modules/audit/index.js +27 -0
  679. package/server/dist/modules/audit/ports.js +2 -0
  680. package/server/dist/modules/browser/runtime/browser-capture-manager.js +18 -141
  681. package/server/dist/modules/browser/runtime/browser-capture-types.js +1 -10
  682. package/server/dist/modules/browser/runtime/browser-playwright.js +0 -19
  683. package/server/dist/modules/code/runtime/file-provenance.js +23 -0
  684. package/server/dist/modules/conversations/runtime/chat-manager.js +5 -2
  685. package/server/dist/modules/delivery/adapters/decisions/chains.js +1 -0
  686. package/server/dist/modules/delivery/adapters/decisions/create.js +19 -1
  687. package/server/dist/modules/delivery/adapters/decisions/discard.js +2 -0
  688. package/server/dist/modules/delivery/adapters/decisions/local-changes.js +427 -0
  689. package/server/dist/modules/delivery/adapters/decisions/merge-local.js +80 -6
  690. package/server/dist/modules/delivery/adapters/decisions/observations.js +5 -0
  691. package/server/dist/modules/delivery/adapters/decisions/ownership.js +2 -1
  692. package/server/dist/modules/delivery/adapters/decisions/transitions.js +9 -0
  693. package/server/dist/modules/delivery/adapters/review-wip-store.js +37 -0
  694. package/server/dist/modules/delivery/domain/review-wip.js +71 -0
  695. package/server/dist/modules/delivery/index.js +9 -1
  696. package/server/dist/modules/delivery/runtime/delivery-changes.js +355 -0
  697. package/server/dist/modules/delivery/runtime/delivery-evidence.js +249 -8
  698. package/server/dist/modules/delivery/runtime/flow-review-legacy.js +99 -0
  699. package/server/dist/modules/delivery/runtime/flow-review-outcome.js +107 -0
  700. package/server/dist/modules/delivery/runtime/flow-worktree-handoff.js +32 -0
  701. package/server/dist/modules/delivery/runtime/flow-worktree-return.js +87 -0
  702. package/server/dist/modules/delivery/runtime/isolated-worktree.js +380 -0
  703. package/server/dist/modules/delivery/runtime/local-restore-branch.js +325 -0
  704. package/server/dist/modules/delivery/runtime/local-restore-resolver.js +48 -0
  705. package/server/dist/modules/delivery/runtime/local-stash.js +423 -0
  706. package/server/dist/modules/delivery/runtime/multi-repo-execution.js +27 -1
  707. package/server/dist/modules/delivery/runtime/phase3-harvest.js +40 -0
  708. package/server/dist/modules/delivery/runtime/pr-body.js +50 -0
  709. package/server/dist/modules/delivery/runtime/rail-isolated-launch.js +169 -166
  710. package/server/dist/modules/delivery/runtime/rail-launch-parser.js +5 -2
  711. package/server/dist/modules/delivery/runtime/rail-pr-decision.js +7 -1
  712. package/server/dist/modules/delivery/runtime/rail-pr-store.js +193 -12
  713. package/server/dist/modules/delivery/runtime/rails-router.js +267 -5
  714. package/server/dist/modules/delivery/runtime/review-brief.js +208 -0
  715. package/server/dist/modules/delivery/runtime/review-packet.js +41 -2
  716. package/server/dist/modules/delivery/runtime/review-wip-gate.js +67 -0
  717. package/server/dist/modules/delivery/runtime/run-records.js +267 -0
  718. package/server/dist/modules/delivery/runtime/run-review-diagnosis.js +102 -0
  719. package/server/dist/modules/execution/adapters/budget-storage.js +76 -0
  720. package/server/dist/modules/execution/application/enforce-budget.js +17 -2
  721. package/server/dist/modules/execution/domain/agent-env.js +98 -0
  722. package/server/dist/modules/execution/domain/daily-budget.js +36 -0
  723. package/server/dist/modules/execution/domain/spend-caps.js +166 -0
  724. package/server/dist/modules/execution/index.js +34 -1
  725. package/server/dist/modules/execution/runtime/budget-overview.js +76 -0
  726. package/server/dist/modules/execution/runtime/daily-budget-gate.js +86 -0
  727. package/server/dist/modules/execution/runtime/interactive-job-session.js +8 -0
  728. package/server/dist/modules/execution/runtime/launch-forecast.js +33 -0
  729. package/server/dist/modules/execution/runtime/queue-manager.js +54 -15
  730. package/server/dist/modules/execution/runtime/run-duration-stats.js +31 -13
  731. package/server/dist/modules/flow/adapters/bindings.js +1089 -0
  732. package/server/dist/modules/flow/adapters/http.js +147 -0
  733. package/server/dist/modules/flow/adapters/sqlite.js +121 -0
  734. package/server/dist/modules/flow/application.js +805 -0
  735. package/server/dist/modules/flow/domain.js +790 -0
  736. package/server/dist/modules/flow/index.js +34 -0
  737. package/server/dist/modules/flow/ports.js +2 -0
  738. package/server/dist/modules/inbox/adapters/http.js +21 -0
  739. package/server/dist/modules/inbox/adapters/project-source.js +233 -0
  740. package/server/dist/modules/inbox/application.js +28 -0
  741. package/server/dist/modules/inbox/domain.js +43 -0
  742. package/server/dist/modules/inbox/index.js +10 -0
  743. package/server/dist/modules/inbox/ports.js +2 -0
  744. package/server/dist/modules/loops/runtime/loop-definition-run.js +9 -0
  745. package/server/dist/modules/loops/runtime/loop-definition.js +5 -2
  746. package/server/dist/modules/loops/runtime/loop-executors.js +90 -9
  747. package/server/dist/modules/loops/runtime/loop-factory.js +30 -2
  748. package/server/dist/modules/loops/runtime/loop-flow-spec-recipe.js +166 -0
  749. package/server/dist/modules/loops/runtime/loop-graph.js +1 -1
  750. package/server/dist/modules/loops/runtime/loop-role-engines.js +4 -1
  751. package/server/dist/modules/loops/runtime/loop-run-manager.js +267 -10
  752. package/server/dist/modules/loops/runtime/loop-runs-store.js +21 -5
  753. package/server/dist/modules/loops/runtime/loop-templates.js +55 -12
  754. package/server/dist/modules/missions/runtime/agent-chat-manager.js +283 -20
  755. package/server/dist/modules/missions/runtime/agent-chat-router.js +96 -21
  756. package/server/dist/modules/missions/runtime/agent-failure-briefing.js +11 -3
  757. package/server/dist/modules/missions/runtime/agent-fence-promotion.js +9 -1
  758. package/server/dist/modules/missions/runtime/agent-flow-prompt.js +64 -0
  759. package/server/dist/modules/missions/runtime/agent-input-store.js +9 -4
  760. package/server/dist/modules/missions/runtime/agent-operator-prompt.js +100 -14
  761. package/server/dist/modules/missions/runtime/agent-session-store.js +88 -27
  762. package/server/dist/modules/missions/runtime/core-session-runner.js +89 -9
  763. package/server/dist/modules/missions/runtime/flow-turn-context.js +17 -0
  764. package/server/dist/modules/missions/runtime/mission-core-sessions.js +295 -55
  765. package/server/dist/modules/missions/runtime/mission-run-notify.js +2 -0
  766. package/server/dist/modules/missions/runtime/mission-session-projector.js +56 -19
  767. package/server/dist/modules/missions/runtime/mission-tool-policy.js +47 -0
  768. package/server/dist/modules/onboarding/adapters/http.js +78 -0
  769. package/server/dist/modules/onboarding/adapters/providers.js +41 -0
  770. package/server/dist/modules/onboarding/adapters/runtime.js +130 -0
  771. package/server/dist/modules/onboarding/application.js +133 -0
  772. package/server/dist/modules/onboarding/catalog.js +217 -0
  773. package/server/dist/modules/onboarding/domain.js +102 -0
  774. package/server/dist/modules/onboarding/index.js +20 -0
  775. package/server/dist/modules/onboarding/ports.js +2 -0
  776. package/server/dist/modules/project-rules/adapters/http.js +91 -0
  777. package/server/dist/modules/project-rules/domain.js +122 -0
  778. package/server/dist/modules/project-rules/runtime/rules-inventory-runs.js +97 -0
  779. package/server/dist/modules/project-rules/runtime/rules-store.js +109 -0
  780. package/server/dist/modules/project-settings/adapters/http.js +13 -0
  781. package/server/dist/modules/project-settings/adapters/sqlite.js +78 -8
  782. package/server/dist/modules/project-settings/domain.js +47 -1
  783. package/server/dist/modules/project-settings/index.js +7 -1
  784. package/server/dist/modules/recovery/adapters/sqlite.js +28 -0
  785. package/server/dist/modules/recovery/domain.js +162 -0
  786. package/server/dist/modules/recovery/index.js +16 -0
  787. package/server/dist/modules/specs/adapters/timeline-http.js +101 -0
  788. package/server/dist/modules/specs/domain/handoff-labels.js +371 -0
  789. package/server/dist/modules/specs/domain/handoff.js +260 -0
  790. package/server/dist/modules/specs/domain/non-goals.js +101 -0
  791. package/server/dist/modules/specs/domain/timeline.js +164 -0
  792. package/server/dist/modules/specs/domain/triage.js +320 -0
  793. package/server/dist/modules/specs/runtime/contract-refine-runner.js +3 -2
  794. package/server/dist/modules/specs/runtime/generated-spec-parser.js +75 -0
  795. package/server/dist/modules/specs/runtime/proposal-manager.js +4 -3
  796. package/server/dist/modules/specs/runtime/smash-runner.js +2 -1
  797. package/server/dist/modules/specs/runtime/spec-addenda.js +31 -0
  798. package/server/dist/modules/specs/runtime/spec-draft-parser.js +6 -1
  799. package/server/dist/modules/specs/runtime/spec-generation.js +431 -0
  800. package/server/dist/modules/specs/runtime/spec-handoff.js +103 -0
  801. package/server/dist/modules/specs/runtime/spec-history.js +376 -0
  802. package/server/dist/modules/specs/runtime/spec-launcher-manager.js +4 -3
  803. package/server/dist/modules/specs/runtime/spec-search.js +117 -0
  804. package/server/dist/modules/specs/runtime/ticket-store.js +47 -2
  805. package/server/dist/modules/specs/runtime/ticket-trash-service.js +62 -0
  806. package/server/dist/modules/specs/runtime/ticket-trash.js +193 -0
  807. package/server/dist/modules/specs/runtime/triage-runner.js +171 -0
  808. package/server/dist/modules/specs/runtime/triage.js +365 -0
  809. package/server/dist/modules/terminals/domain/app-urls.js +96 -0
  810. package/server/dist/modules/terminals/runtime/app-urls.js +77 -0
  811. package/server/dist/modules/terminals/runtime/background-process-service.js +25 -28
  812. package/server/dist/project-env.js +60 -0
  813. package/server/dist/project-git.js +65 -0
  814. package/server/dist/project-registry.js +264 -27
  815. package/server/dist/project-router-background-processes.js +27 -3
  816. package/server/dist/project-router-git.js +30 -0
  817. package/server/dist/project-router-helpers.js +5 -30
  818. package/server/dist/project-router-jobs.js +49 -1
  819. package/server/dist/project-router-loop-runs.js +72 -2
  820. package/server/dist/project-router-rules.js +54 -0
  821. package/server/dist/project-router-search.js +52 -0
  822. package/server/dist/project-router-settings.js +6 -0
  823. package/server/dist/project-router-setup.js +1 -1
  824. package/server/dist/project-router-spending.js +138 -0
  825. package/server/dist/project-router-tickets.js +246 -427
  826. package/server/dist/project-router.js +7 -0
  827. package/server/dist/providers/claude-adapter.js +25 -3
  828. package/server/dist/providers/codex-adapter.js +9 -1
  829. package/server/dist/providers/gemini-adapter.js +6 -1
  830. package/server/dist/providers/kimi-adapter.js +2 -0
  831. package/server/dist/providers/local-adapter.js +2 -0
  832. package/server/dist/providers/runtime.js +8 -0
  833. package/server/dist/schemas/agent-runtime.schema.json +3 -1
  834. package/server/dist/schemas/workflow-definition.schema.json +1 -0
  835. package/server/dist/setup-manager.js +19 -1
  836. package/server/dist/transient-children.js +25 -8
  837. package/server/dist/update-channel.js +21 -0
  838. package/server/dist/util/search-snippet.js +74 -0
  839. package/server/dist/worktree-manager.js +19 -8
  840. package/client/dist/assets/ActivityFeedPage-Dtp7EyHc.js +0 -1
  841. package/client/dist/assets/AgentBrowserCapture-CLqlEFw8.js +0 -1
  842. package/client/dist/assets/AgentModeAnalyticsPane-B8_hM3Tw.js +0 -2
  843. package/client/dist/assets/AgentModeCodePane-CNF8ZNjE.js +0 -2
  844. package/client/dist/assets/AgentModeJobsPane-CJpJbO9m.js +0 -1
  845. package/client/dist/assets/AgentsPage-BC8XSR79.js +0 -120
  846. package/client/dist/assets/AnalyticsPage-Cdv4jLtW.js +0 -1
  847. package/client/dist/assets/BarChart-BDMqVFJy.js +0 -55
  848. package/client/dist/assets/CodePage-DI1kegAr.js +0 -3
  849. package/client/dist/assets/DesktopAnalyticsPage-Bdp8E8U6.js +0 -1
  850. package/client/dist/assets/DocsDialog-Bm4RS7FX.js +0 -11
  851. package/client/dist/assets/DocsPage-DihYcU8r.js +0 -11
  852. package/client/dist/assets/ExportDropdown-Bb1lHx3r.js +0 -1
  853. package/client/dist/assets/IntegrationsPage-EAipiDWm.js +0 -1
  854. package/client/dist/assets/InteractiveJobComposer-BO6ASN-2.js +0 -19
  855. package/client/dist/assets/JobDetailModal-CuPYq7tP.js +0 -1
  856. package/client/dist/assets/JobDetailPage-BusMjJi9.js +0 -1
  857. package/client/dist/assets/JobsPage-C0QbsF2d.js +0 -1
  858. package/client/dist/assets/LoopBuilderPage-B7TlU4iS.js +0 -1
  859. package/client/dist/assets/LoopPreviewModal-BRWtXOD2.js +0 -1
  860. package/client/dist/assets/LoopsPage-C4q1DmCE.js +0 -2
  861. package/client/dist/assets/MinimizedChatsContext-DHfigjHS.js +0 -1
  862. package/client/dist/assets/PluginsPage-Z1JHSMdR.js +0 -2
  863. package/client/dist/assets/ProjectSettingsDialog-BUNj0tvN.js +0 -1
  864. package/client/dist/assets/RepositoryDeliveries-B4ybHOyB.js +0 -5
  865. package/client/dist/assets/ReviewPacketPage-hwfPNjyy.js +0 -4
  866. package/client/dist/assets/TemplatePreviewModal-V7FpMWuw.js +0 -1
  867. package/client/dist/assets/TicketDetailModalContext-Dkwo2cDs.js +0 -16
  868. package/client/dist/assets/Trans-BbFxRFtR.js +0 -1
  869. package/client/dist/assets/activity-B-rp4h_v.js +0 -1
  870. package/client/dist/assets/activity-C6kJpm9q.js +0 -1
  871. package/client/dist/assets/activity-CGx4kb_j.js +0 -1
  872. package/client/dist/assets/activity-CnoX2bH7.js +0 -1
  873. package/client/dist/assets/activity-DAyekdlt.js +0 -1
  874. package/client/dist/assets/activity-DCxtpT7j.js +0 -1
  875. package/client/dist/assets/activity-DiyjsgQV.js +0 -1
  876. package/client/dist/assets/activity-JzwRaWPD.js +0 -1
  877. package/client/dist/assets/addspec-BOvgmcgk.js +0 -1
  878. package/client/dist/assets/addspec-Clmyfn_R.js +0 -1
  879. package/client/dist/assets/addspec-CsNaBpHp.js +0 -1
  880. package/client/dist/assets/addspec-D2tvWmmV.js +0 -1
  881. package/client/dist/assets/addspec-D3nFwvD0.js +0 -1
  882. package/client/dist/assets/addspec-DVLEhK3w.js +0 -1
  883. package/client/dist/assets/addspec-DXbK-tb0.js +0 -1
  884. package/client/dist/assets/addspec-OHG8DFEn.js +0 -1
  885. package/client/dist/assets/agent-5bSixVzz.js +0 -1
  886. package/client/dist/assets/agent-BR4EHfhq.js +0 -1
  887. package/client/dist/assets/agent-C0IKkJP8.js +0 -1
  888. package/client/dist/assets/agent-C7li9ayC.js +0 -1
  889. package/client/dist/assets/agent-D0dRmEen.js +0 -1
  890. package/client/dist/assets/agent-DZVGHm7H.js +0 -1
  891. package/client/dist/assets/agent-Dip4h2YE.js +0 -1
  892. package/client/dist/assets/agent-Pp-P-n1p.js +0 -1
  893. package/client/dist/assets/agentRuntime-BxF81z52.js +0 -1
  894. package/client/dist/assets/agentRuntime-BxYS5V7u.js +0 -1
  895. package/client/dist/assets/agentRuntime-Dc9HG3BA.js +0 -1
  896. package/client/dist/assets/agents-B6ZsnARo.js +0 -1
  897. package/client/dist/assets/agents-BORdhe0K.js +0 -1
  898. package/client/dist/assets/agents-C6aq9Oqs.js +0 -1
  899. package/client/dist/assets/agents-Cbsc4bcX.js +0 -1
  900. package/client/dist/assets/agents-D0uYR6hq.js +0 -1
  901. package/client/dist/assets/agents-Doe1sHY5.js +0 -1
  902. package/client/dist/assets/agents-DyNi_I9m.js +0 -1
  903. package/client/dist/assets/agents-StKxiTg0.js +0 -1
  904. package/client/dist/assets/agentstudio-7cYCXn-L.js +0 -1
  905. package/client/dist/assets/agentstudio-BHWQh8G3.js +0 -1
  906. package/client/dist/assets/agentstudio-BjnWHyRs.js +0 -1
  907. package/client/dist/assets/agentstudio-BkV8vcK4.js +0 -1
  908. package/client/dist/assets/agentstudio-BzugqB_N.js +0 -1
  909. package/client/dist/assets/agentstudio-CWbp7KvH.js +0 -1
  910. package/client/dist/assets/agentstudio-DG6plf5o.js +0 -1
  911. package/client/dist/assets/agentstudio-DkZVF-Cc.js +0 -1
  912. package/client/dist/assets/analytics-B1DIQd4m.js +0 -1
  913. package/client/dist/assets/analytics-BAIZ9vE_.js +0 -1
  914. package/client/dist/assets/analytics-BTqgmgBd.js +0 -1
  915. package/client/dist/assets/analytics-BWynXPEm.js +0 -1
  916. package/client/dist/assets/analytics-DGcUsQ44.js +0 -1
  917. package/client/dist/assets/analytics-GnSnpJ4W.js +0 -1
  918. package/client/dist/assets/analytics-TWgYaoO0.js +0 -1
  919. package/client/dist/assets/analytics-kJy6Tuko.js +0 -1
  920. package/client/dist/assets/atom-one-dark-qiGhVQxg.js +0 -1
  921. package/client/dist/assets/builder-B9gorTnT.js +0 -1
  922. package/client/dist/assets/builder-Bvw5s3Mi.js +0 -1
  923. package/client/dist/assets/builder-CL5l4dU3.js +0 -1
  924. package/client/dist/assets/builder-CVDTVrQX.js +0 -1
  925. package/client/dist/assets/builder-CpS9liE9.js +0 -1
  926. package/client/dist/assets/builder-DNctIL9Q.js +0 -1
  927. package/client/dist/assets/builder-De2NxX6o.js +0 -1
  928. package/client/dist/assets/builder-DeYT7Y-m.js +0 -1
  929. package/client/dist/assets/button-4FS1ZDTp.js +0 -1
  930. package/client/dist/assets/chat-D_I7nU5K.js +0 -1
  931. package/client/dist/assets/chevron-up-6EFqEHBj.js +0 -1
  932. package/client/dist/assets/chunk-OB3PAWPO-B1EMk45A.js +0 -3
  933. package/client/dist/assets/clsx-CjueKrWZ.js +0 -1
  934. package/client/dist/assets/code-B37GRg9C.js +0 -1
  935. package/client/dist/assets/code-BBOEZbf9.js +0 -1
  936. package/client/dist/assets/code-BRm-jcyx.js +0 -1
  937. package/client/dist/assets/code-CF7w62CR.js +0 -1
  938. package/client/dist/assets/code-CLuvJt2r.js +0 -1
  939. package/client/dist/assets/code-D0RCm59f.js +0 -1
  940. package/client/dist/assets/code-DaZ-ZwCT.js +0 -1
  941. package/client/dist/assets/code-iIHkGaCL.js +0 -1
  942. package/client/dist/assets/commands-0XjAftla.js +0 -1
  943. package/client/dist/assets/commands-BAWSYHjQ.js +0 -1
  944. package/client/dist/assets/commands-BBwowgiE.js +0 -1
  945. package/client/dist/assets/commands-BacjIZLN.js +0 -1
  946. package/client/dist/assets/commands-Bs62IAZ3.js +0 -1
  947. package/client/dist/assets/commands-CLPdh-Hh.js +0 -1
  948. package/client/dist/assets/commands-DlbFzgrp.js +0 -1
  949. package/client/dist/assets/commands-LjPSsi5F.js +0 -1
  950. package/client/dist/assets/common-Bdi0qN4S.js +0 -1
  951. package/client/dist/assets/common-Bhb9zN1P.js +0 -1
  952. package/client/dist/assets/common-BykKlZg1.js +0 -1
  953. package/client/dist/assets/common-CvnNNSJA.js +0 -1
  954. package/client/dist/assets/common-D5zk_mqq.js +0 -1
  955. package/client/dist/assets/common-DQNO_al5.js +0 -1
  956. package/client/dist/assets/common-Dax30Vmp.js +0 -1
  957. package/client/dist/assets/common-DkllpVSb.js +0 -1
  958. package/client/dist/assets/core-B3mKBIh5.js +0 -1
  959. package/client/dist/assets/dashboard-B1ndRHuC.js +0 -1
  960. package/client/dist/assets/dashboard-BX7KXiqA.js +0 -1
  961. package/client/dist/assets/dashboard-B_BSNxcN.js +0 -1
  962. package/client/dist/assets/dashboard-CCeFN7-V.js +0 -1
  963. package/client/dist/assets/dashboard-CRl0WtFJ.js +0 -1
  964. package/client/dist/assets/dashboard-XGdQ5mjw.js +0 -1
  965. package/client/dist/assets/dashboard-_oltA6Jd.js +0 -1
  966. package/client/dist/assets/dashboard-bAuf5KVk.js +0 -1
  967. package/client/dist/assets/dialog-DtdR05v1.js +0 -45
  968. package/client/dist/assets/dist-js-CJ_2XX1Y.js +0 -1
  969. package/client/dist/assets/event-Bt7f3wXe.js +0 -1
  970. package/client/dist/assets/explore-BG99VGpL.js +0 -1
  971. package/client/dist/assets/explore-C0TjprJW.js +0 -1
  972. package/client/dist/assets/explore-C2dgEo7q.js +0 -1
  973. package/client/dist/assets/explore-C8NDHbob.js +0 -1
  974. package/client/dist/assets/explore-CWWgzQGR.js +0 -1
  975. package/client/dist/assets/explore-CcQXpdtS.js +0 -1
  976. package/client/dist/assets/explore-DgBACn39.js +0 -1
  977. package/client/dist/assets/explore-DsXAgnmJ.js +0 -1
  978. package/client/dist/assets/file-text-C0blZHLh.js +0 -1
  979. package/client/dist/assets/formatDistanceToNow-NjPHBLfB.js +0 -1
  980. package/client/dist/assets/getTimezoneOffsetInMilliseconds-vJ7qUoqN.js +0 -1
  981. package/client/dist/assets/git-branch-yf6LE1Bw.js +0 -1
  982. package/client/dist/assets/index-BgbCbIua.css +0 -2
  983. package/client/dist/assets/index-Ce4yZtKf.js +0 -83
  984. package/client/dist/assets/integrations-BkpRUbvp.js +0 -1
  985. package/client/dist/assets/integrations-Bo8qbJf4.js +0 -1
  986. package/client/dist/assets/integrations-CmSrKzZb.js +0 -1
  987. package/client/dist/assets/integrations-DGtq26Rr.js +0 -1
  988. package/client/dist/assets/integrations-De38GFnQ.js +0 -1
  989. package/client/dist/assets/integrations-Dw6zdtb-.js +0 -1
  990. package/client/dist/assets/integrations-Dwl9KQp0.js +0 -1
  991. package/client/dist/assets/integrations-Refg_d2I.js +0 -1
  992. package/client/dist/assets/jira-B6OYw4CJ.js +0 -1
  993. package/client/dist/assets/jira-BTF6RaOe.js +0 -1
  994. package/client/dist/assets/jira-CEetIB2q.js +0 -1
  995. package/client/dist/assets/jira-CIzsZLw5.js +0 -1
  996. package/client/dist/assets/jira-Daw9tmpI.js +0 -1
  997. package/client/dist/assets/jira-FXr7u2lh.js +0 -1
  998. package/client/dist/assets/jira-LaNQn7yl.js +0 -1
  999. package/client/dist/assets/jira-api-Cabj-H0J.js +0 -1
  1000. package/client/dist/assets/job-time-BCL7wee9.js +0 -1
  1001. package/client/dist/assets/jobs-ARwD85B9.js +0 -1
  1002. package/client/dist/assets/jobs-BMF1w4WT.js +0 -1
  1003. package/client/dist/assets/jobs-CBfzGLwm.js +0 -1
  1004. package/client/dist/assets/jobs-CPjiluBY.js +0 -1
  1005. package/client/dist/assets/jobs-CQQd58pY.js +0 -1
  1006. package/client/dist/assets/jobs-De3EqaO0.js +0 -1
  1007. package/client/dist/assets/jobs-Du9-Ei9a.js +0 -1
  1008. package/client/dist/assets/jobs-qMHbnxwC.js +0 -1
  1009. package/client/dist/assets/layers-BCLTgHXO.js +0 -1
  1010. package/client/dist/assets/loader-circle-BqV9xYGf.js +0 -1
  1011. package/client/dist/assets/loop-layout-CyXj9223.js +0 -7
  1012. package/client/dist/assets/loops-B2PhQLKR.js +0 -1
  1013. package/client/dist/assets/loops-BqbF46st.js +0 -1
  1014. package/client/dist/assets/loops-CINnHbfI.js +0 -1
  1015. package/client/dist/assets/loops-D-3XhH04.js +0 -1
  1016. package/client/dist/assets/loops-DKkEEjZ_.js +0 -1
  1017. package/client/dist/assets/loops-DzWR5-v6.js +0 -1
  1018. package/client/dist/assets/loops-WyWDkhok.js +0 -1
  1019. package/client/dist/assets/loops-scD5fIBf.js +0 -1
  1020. package/client/dist/assets/mcp-6rMoZfEO.js +0 -1
  1021. package/client/dist/assets/mcp-BD8sL5mP.js +0 -1
  1022. package/client/dist/assets/mcp-BkcA3I5s.js +0 -1
  1023. package/client/dist/assets/mcp-CCpSelOh.js +0 -1
  1024. package/client/dist/assets/mcp-CUAN6ORK.js +0 -1
  1025. package/client/dist/assets/mcp-CqbRxRTE.js +0 -1
  1026. package/client/dist/assets/mcp-DP2YfVhO.js +0 -1
  1027. package/client/dist/assets/mcp-DUVQamDz.js +0 -1
  1028. package/client/dist/assets/narration-BEKMVxGm.js +0 -1
  1029. package/client/dist/assets/narration-CjLwGKap.js +0 -1
  1030. package/client/dist/assets/narration-DANWuGsW.js +0 -1
  1031. package/client/dist/assets/narration-DGeEDWiT.js +0 -1
  1032. package/client/dist/assets/narration-DJgpGwIP.js +0 -1
  1033. package/client/dist/assets/narration-DbHnz0qV.js +0 -1
  1034. package/client/dist/assets/narration-bZSsTZG8.js +0 -1
  1035. package/client/dist/assets/narration-i6aKJKEc.js +0 -1
  1036. package/client/dist/assets/nav--u7iPYlS.js +0 -1
  1037. package/client/dist/assets/nav-C5Jgfaby.js +0 -1
  1038. package/client/dist/assets/nav-CAna_Wpt.js +0 -1
  1039. package/client/dist/assets/nav-CCLqeyHo.js +0 -1
  1040. package/client/dist/assets/nav-Cf3c90Jk.js +0 -1
  1041. package/client/dist/assets/nav-DMYQaQjR.js +0 -1
  1042. package/client/dist/assets/nav-Df_PkZ9F.js +0 -1
  1043. package/client/dist/assets/nav-VyNGBJwj.js +0 -1
  1044. package/client/dist/assets/packet-8nn9RsU7.js +0 -1
  1045. package/client/dist/assets/packet-B0H15elv.js +0 -1
  1046. package/client/dist/assets/packet-BQvBgrwh.js +0 -1
  1047. package/client/dist/assets/packet-BR7mO0-a.js +0 -1
  1048. package/client/dist/assets/packet-BgcQ6q_K.js +0 -1
  1049. package/client/dist/assets/packet-D2s92Jnn.js +0 -1
  1050. package/client/dist/assets/packet-YbtcD1HS.js +0 -1
  1051. package/client/dist/assets/packet-c0Qj_9eX.js +0 -1
  1052. package/client/dist/assets/project-repositories-Cnnuj9Ia.js +0 -1
  1053. package/client/dist/assets/rotate-ccw-DalJAQQX.js +0 -1
  1054. package/client/dist/assets/settings-B1NV8Ow9.js +0 -1
  1055. package/client/dist/assets/settings-BQ8XFZeE.js +0 -1
  1056. package/client/dist/assets/settings-BRkxfBbO.js +0 -1
  1057. package/client/dist/assets/settings-C_CcU1dP.js +0 -1
  1058. package/client/dist/assets/settings-Cto9n0eL.js +0 -1
  1059. package/client/dist/assets/settings-Pyw8uYtL.js +0 -1
  1060. package/client/dist/assets/settings-b3HVCNNd.js +0 -1
  1061. package/client/dist/assets/settings-hdive4u6.js +0 -1
  1062. package/client/dist/assets/setup-Be485n2u.js +0 -1
  1063. package/client/dist/assets/setup-CKGUxKr-.js +0 -1
  1064. package/client/dist/assets/setup-Ck1Uwd7_.js +0 -1
  1065. package/client/dist/assets/setup-Cm774a6v.js +0 -1
  1066. package/client/dist/assets/setup-DIqMQpxt.js +0 -1
  1067. package/client/dist/assets/setup-DfCsoNFL.js +0 -1
  1068. package/client/dist/assets/setup-DkeE8mP0.js +0 -1
  1069. package/client/dist/assets/setup-xVntVaz1.js +0 -1
  1070. package/client/dist/assets/specs-Bqvtz2kz.js +0 -1
  1071. package/client/dist/assets/specs-CKes-kz6.js +0 -1
  1072. package/client/dist/assets/specs-CfXxPDNB.js +0 -1
  1073. package/client/dist/assets/specs-CyF9HuTI.js +0 -1
  1074. package/client/dist/assets/specs-DMj035Mt.js +0 -1
  1075. package/client/dist/assets/specs-DfIdoU5L.js +0 -1
  1076. package/client/dist/assets/specs-j5pGLQeU.js +0 -1
  1077. package/client/dist/assets/specs-xW5pkkB7.js +0 -1
  1078. package/client/dist/assets/spending-CQnrWiR3.js +0 -1
  1079. package/client/dist/assets/square-D0JTbRSR.js +0 -1
  1080. package/client/dist/assets/tauri-shell-DE6LfGPw.js +0 -2
  1081. package/client/dist/assets/terminal-BAzpHtpY.js +0 -1
  1082. package/client/dist/assets/terminal-C7dHeR3x.js +0 -1
  1083. package/client/dist/assets/terminal-CMla5Qsz.js +0 -1
  1084. package/client/dist/assets/terminal-CdNXH-n9.js +0 -1
  1085. package/client/dist/assets/terminal-Cw5bZsmV.js +0 -1
  1086. package/client/dist/assets/terminal-DFUP4eNv.js +0 -1
  1087. package/client/dist/assets/terminal-DGqljeK_.js +0 -1
  1088. package/client/dist/assets/terminal-cU70NodO.js +0 -1
  1089. package/client/dist/assets/tickets--tiSOCcn.js +0 -1
  1090. package/client/dist/assets/tickets-BUJ3DMWU.js +0 -1
  1091. package/client/dist/assets/tickets-C1WNPODq.js +0 -1
  1092. package/client/dist/assets/tickets-CDjhWmiE.js +0 -1
  1093. package/client/dist/assets/tickets-CLgPC3uO.js +0 -1
  1094. package/client/dist/assets/tickets-D41ZMQpf.js +0 -1
  1095. package/client/dist/assets/tickets-DEaQC06P.js +0 -1
  1096. package/client/dist/assets/tickets-kcMzbLCp.js +0 -1
  1097. package/client/dist/assets/trash-D8zYUmTg.js +0 -1
  1098. package/client/dist/assets/useDesktop-BjLT0_EE.js +0 -1
  1099. package/client/dist/assets/useRuntimeRuns-C97qEqMg.js +0 -1
  1100. package/client/dist/assets/useSharedWebSocket-Bj4LMp7b.js +0 -2
  1101. package/client/dist/assets/utils-BC4DHlz2.js +0 -1
  1102. package/docs/guide/en/getting-started/4-the-dashboard-tour.md +0 -48
  1103. package/docs/guide/es/getting-started/4-the-dashboard-tour.md +0 -48
  1104. package/server/dist/mobile/mobile-preview-channel.js +0 -179
  1105. package/server/dist/mobile/mobile-preview.js +0 -366
  1106. package/server/dist/modules/browser/domain/preview-origins.js +0 -117
  1107. package/server/dist/modules/browser/runtime/preview-targets.js +0 -80
  1108. /package/client/dist/assets/{atom-one-dark-B-oHczHB.css → DocView-B-oHczHB.css} +0 -0
  1109. /package/docs/guide/de/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1110. /package/docs/guide/en/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1111. /package/docs/guide/es/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1112. /package/docs/guide/fr/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1113. /package/docs/guide/it/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1114. /package/docs/guide/ja/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1115. /package/docs/guide/pt/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1116. /package/docs/guide/zh/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
@@ -0,0 +1,69 @@
1
+ # Flow: prima costruisci, poi la spec {#flow-mode}
2
+
3
+ Flow è un modo di costruire con un agente quando non sai ancora esattamente cosa vuoi. Parli con l’agente nella tua missione, lui scrive ed esegue codice reale sul suo branch del Flow (una copia separata del tuo progetto) e, quando il risultato è quello giusto, premi **Affida**: un rail prende le tue modifiche, ricava la spec ed esegue la verifica, la revisione e la consegna di sempre.
4
+
5
+ Implement serve a delegare un lavoro che sai già descrivere. Flow serve a scoprirlo.
6
+
7
+ ## Come inizia un Flow
8
+
9
+ Non devi mai chiedere Flow per nome. Quando descrivi qualcosa di esplorativo o visivo («voglio provare…», «non so come dovrebbe apparire»), la missione mostra una scheda con due strade:
10
+
11
+ - **Flow**: costruirlo insieme ora; la spec arriva alla fine.
12
+ - **Spec + Implement**: concordare prima una spec, poi delegarla a un rail.
13
+
14
+ Le due strade hanno lo stesso peso e compaiono sempre nello stesso ordine: nessuna è consigliata, scegli tu. In **Perché l’agente lo chiede** l’agente spiega in una frase cosa lo ha spinto a chiedere, e non insisterà qualunque strada tu scelga o se premi **Non ora**.
15
+
16
+ Scegliendo Flow si apre una conferma: Specrails crea una copia separata del progetto su un branch del Flow tutto suo, dove l’agente può scrivere codice, e il tuo branch principale non viene toccato. Premi **Avvia Flow**. Sulla board compare una spec provvisoria con l’etichetta **In Flow** (cliccala per tornare alla missione).
17
+
18
+ Se il tuo Specrails Core non può ancora eseguire Flow, Avvia è disattivato e la scheda elenca cosa manca. Di solito basta aggiornare Specrails Core.
19
+
20
+ ## Avviare un Flow da una spec esistente
21
+
22
+ Qualsiasi spec si può costruire in Flow, non solo una nuova idea. Flow e Implement restano due modi equivalenti di lavorarci:
23
+
24
+ - nella board, fai clic destro su una spec e scegli **Avvia in Flow** (accanto al trascinarla su un rail); nel dettaglio della spec, **Avvia in Flow** è accanto a **Sposta su rail**;
25
+ - in una missione, quando chiedi di implementare una spec senza nominare un rail, l’agente mostra la stessa scheda a due percorsi per quella spec: **Flow** ci lavora con te, **Spec + Implement** la avvia su un rail;
26
+ - una scheda di avvio su rail per una sola spec offre anche **Avvia in Flow** accanto al suo avvio.
27
+
28
+ La spec stessa diventa **In Flow**: non viene creata nessuna spec segnaposto e il primo turno dell’agente riceve la spec (criteri di accettazione, Contract Layer, esclusioni e addenda aperti). Avviato dalla board, il Flow si apre nella missione della spec oppure in una nuova missione con il nome della spec. In un progetto con più repository Git, quando la spec non ne indica esattamente uno, una piccola finestra chiede prima dove eseguire il Flow: sono elencati solo i repository Git, è preselezionato il repository della spec (altrimenti il principale) e le frecce cambiano la scelta. **Avvia in Flow** è disattivato, con il motivo al passaggio del mouse, quando la spec è già in Flow, completata o annullata, si trova su un rail o Flow non è disponibile.
29
+
30
+ **Scarta** restituisce la spec esattamente com’era, con il suo stato precedente: la tua spec non viene mai eliminata. Alla consegna del Flow, la spec viene riscritta da ciò che è stato costruito e prima il suo testo originale resta come commento, **Original spec before Flow**, così non si perde nulla. Una spec già collegata a Jira aggiorna lo stesso issue e lo porta allo stato associato alla revisione; non viene creato un secondo issue.
31
+
32
+ ## Durante il Flow
33
+
34
+ La modalità Flow è nominata dove guardi, con il suo colore di Flow: il compositore mostra un chip **Flow** accanto a quello dell’autonomia e il suggerimento *Di’ all’agente cosa cambiare in questo Flow…*; il titolo della missione indica **In Flow**, così come la sua riga nell’elenco delle missioni. La conversazione segna dove sei entrato e uscito da Flow, e le risposte dell’agente scritte in Flow hanno un piccolo segno **Flow** accanto all’ora.
35
+
36
+ La striscia subito sopra il compositore mostra il Flow in una riga breve: il suo stato, **Flow · 7 file**, **Sospendi Flow** e l’azione principale, **Affida**. Quando un’azione non è disponibile (il Flow sta ancora salvando, è in corso un’altra azione), passandoci sopra si legge perché. Apri la riga con la sua freccia, come qualsiasi altra esecuzione, per vedere il resto:
37
+
38
+ - il **branch** (clic per copiarne il nome), le **modifiche** con le righe aggiunte e rimosse (clic per elencare ogni file modificato con il suo stato e i +/−) e il **costo finora** come fatturato dal provider. Mostra `—` finché un turno non ha un costo comunicato, mai una stima; un `*` segnala un totale che esclude turni senza prezzo, con una nota che dice quanti;
39
+ - **Anteprima** mentre l’app del Flow è in esecuzione (vedi sotto);
40
+ - **Scarta**, in disparte, elimina le modifiche del Flow, il suo branch e la spec provvisoria. La conferma elenca cosa perdi: i file modificati con i loro +/−, il branch e la spec.
41
+
42
+ **Sospendi Flow** ferma l’agente e conserva le tue modifiche e la spec. La riga mostra quindi **Riprendi Flow**.
43
+
44
+ Puoi scrivere mentre l’agente lavora: in Flow il tuo messaggio **interrompe** il passo in corso (il pulsante di invio diventa un fulmine) e l’agente prosegue subito con le nuove informazioni. Finché il Flow è aperto, la striscia git sotto il compositore si fa da parte: il pannello del Flow mostra già il suo branch.
45
+
46
+ ## Prova l’app
47
+
48
+ L’agente di Flow esegue da solo il typecheck e i test per controllare il suo lavoro. Quando c’è qualcosa da provare, chiede con tre scelte: **Start the app**, **Start and expose on the local network** o **Not now**. Esporla ti permette di aprire l’app da un telefono sulla stessa Wi-Fi o VPN, e chiunque su quella rete può raggiungerla.
49
+
50
+ Quando l’app è in ascolto, l’agente ti dà i suoi indirizzi come link e il pannello del Flow mostra **Anteprima** con un punto verde: apre l’app nel browser. Il suo menu ha l’indirizzo di rete e **Arresta app**. L’app gira dalla copia del Flow, mai dal tuo checkout principale, e Specrails la arresta quando metti in pausa, scarti o consegni il Flow.
51
+
52
+ ## Affida {#flow-hand-off}
53
+
54
+ Quando il risultato ti convince, premi **Affida**. La riga indica **Pronto a diventare una PR** e apre una sola riga sopra: *Rail 2 trasformerà i tuoi 7 file modificati in una PR revisionata. Se fallisce, il tuo lavoro è al sicuro.* Premi **Lancia**, oppure **Non ancora** per tornare al Flow; **Esc** equivale a **Non ancora**; un clic altrove si limita a ripiegare la riga, che resta su **Pronto a diventare una PR** con **Lancia**. Se il motore della conversazione non può eseguire l’affidamento su questo computer, una nota subito sotto la riga lo dice e si usa il motore predefinito del rail.
55
+
56
+ Rail, motore, modello e sforzo sono già scelti per te (un rail libero e il motore della tua conversazione). Per cambiarli, apri **Cambia impostazioni**; lì vedi anche cosa è cambiato. Il costo finora è sulla riga principale. Le tue scelte restano se premi **Non ancora** e affidi di nuovo più tardi. Durante l’avvio la striscia mostra il lancio senza vuoti e poi segue l’esecuzione passo per passo. Se si raggiunge il limite di revisione o un budget, la riga lo dice e non parte nulla. Se l’esecuzione non compare entro 45 secondi, la striscia smette di girare e mostra **Affidamento a Rail 2 ancora in corso…** con **Aggiorna**, che ricontrolla e continua ad attendere finché l’esecuzione non compare.
57
+
58
+ Il rail ricava la spec e la sua modifica della spec da ciò che hai costruito, la verifica e la revisiona, e la scheda di consegna compare nella missione come per qualsiasi esecuzione.
59
+
60
+ Se l’esecuzione fallisce per un motivo tecnico, il lavoro torna da solo in questo Flow, intatto: la scheda dice con parole semplici cosa è fallito (i codici restano in **Dettagli tecnici**) e l’agente riceve l’errore e lo spiega. Se la revisione chiede modifiche, la scheda offre **Torna in Flow** o **Rilancia**. Quando la consegna si conclude, la missione chiude il Flow con un riepilogo: la pull request, la spec riscritta da ciò che hai costruito, la modifica della spec archiviata e il ticket Jira, se c’è.
61
+
62
+ ## Buono a sapersi
63
+
64
+ - Flow scrive solo sul suo branch. Fuori da Flow le missioni restano in sola lettura.
65
+ - Un Flow per missione alla volta. La pausa sopravvive al riavvio dell’app.
66
+ - Se la copia del progetto del Flow scompare, il Flow viene segnato come **va controllato** (per informazione, niente da decidere) e non si cancella nulla.
67
+ - La striscia non cambia mai l’esecuzione che stai guardando. Se un’altra inizia ad aver bisogno di te nel frattempo, il suo nome nel selettore della striscia dice **ti aspetta**.
68
+ - Jira non riceve nulla mentre sei in Flow né se lo scarti.
69
+ - Il costo di Flow compare in Analisi come superficie a sé, **Flow**, e nel blocco delle missioni dell’agente.
@@ -38,13 +38,14 @@ Tutto qui. Il rail avvia un processo CLI AI nel contesto di esecuzione corretto
38
38
  | **Selettore engine** | Quale provider esegue il rail — Claude o Codex. |
39
39
  | **▶ Play / ■ Stop** | Avvia o annulla. |
40
40
 
41
- ### Cosa esegue un rail: i Loop
41
+ ### Cosa esegue un rail: i Loop {#rail-loops}
42
42
 
43
43
  Un rail esegue un **Loop** — la ricetta del lavoro. Due loop sono **integrati** e coprono i casi più comuni:
44
44
 
45
45
  | Loop integrato | Comando | Cosa fa |
46
46
  |------|---------|--------------|
47
47
  | **Implement** | `/specrails:implement` | Un unico job che copre tutte le spec sul rail. Esegue l'intera pipeline Architect → Developer → Reviewer → Ship. L'impostazione predefinita di tutti i giorni. |
48
+ | **Freestyle** | Freestyle | Il provider del rail implementa ogni spec in autonomia, **saltando** la pipeline; poi la verifica e il Loop Decider la rifiniscono finché tutto è verde. Un'esecuzione indipendente per spec. Funziona con Claude, Codex, Gemini, Kimi e gli engine locali; la chat interattiva nel job è solo per Claude. |
48
49
 
49
50
  Per eseguire più spec, metti quelle correlate (fino a 3) su un unico rail — `Implement` le esegue come un solo job aggregato — oppure distribuisci le spec indipendenti su più rail: ogni rail con git gira in parallelo nel proprio worktree isolato.
50
51
 
@@ -86,6 +87,25 @@ Se qualcosa sembra non andare:
86
87
  - **Pausa automatica sul budget** — imposta un budget giornaliero e la coda si mette in pausa da sola quando la spesa della giornata raggiunge il limite.
87
88
  - **Tutto** — chiudi l'app desktop, oppure esegui `specrails-desktop stop`.
88
89
 
90
+ ## Integrare in locale con modifiche non committate
91
+
92
+ **Integra in locale** unisce una consegna approvata nel tuo branch di integrazione (ad esempio `main`) su questo computer, senza PR. Non serve un checkout pulito:
93
+
94
+ - Le modifiche non committate che non toccano i file consegnati restano dove sono.
95
+ - Se le tue modifiche toccano gli stessi file, Specrails le salva in un git stash chiamato `specrails: before integrating #N (…)`, integra e le rimette al loro posto. La notifica dice *Ho salvato le tue modifiche locali, integrato #N e le ho ripristinate.*
96
+ - Se rimetterle va in conflitto con il codice integrato, Specrails lascia il branch esattamente come integrato e **conserva lo stash**: non si perde nulla. La scheda mostra *Le tue modifiche locali sono salvate in uno stash* con i file in conflitto, **Ripristina le mie modifiche** (nuovo tentativo, ad esempio dopo aver cambiato il codice) e il nome dello stash da copiare. Poi Specrails le ripristina da solo su un nuovo branch `specrails/restore-local-<id>` in un worktree separato: se lì si applicano senza conflitti, fa commit; altrimenti un risolutore di conflitti IA lavora solo dentro quel worktree, mantenendo la tua intenzione e il codice integrato, e Specrails fa commit del risultato. La scheda elenca i file ripristinati; **Riportale su <branch>** le porta sul tuo branch (solo allora lo stash viene eliminato) e **Scarta il branch ripristinato** rimuove il branch e conserva lo stash. Una missione viene solo informata; non deve mai eseguire nulla. Le skill e i comandi OpenSpec generati da Specrails (ad esempio `.claude/skills/openspec-*/SKILL.md`) non contano come tue modifiche: in caso di conflitto mantengono la versione integrata.
97
+ - I file ignorati non vengono mai messi nello stash: se uno di essi entra in conflitto con la consegna, Specrails ti chiede di spostarlo prima.
98
+ - Se l'app si ferma tra il salvataggio e il ripristino, ripristina le tue modifiche alla successiva apertura del progetto (solo se è ancora attivo lo stesso branch).
99
+
100
+ ## Previsione di tempo e costo {#launch-forecast}
101
+
102
+ Prima di premere Avvia, un rail può mostrare quanto durano di solito le esecuzioni come questa e, quando ha senso, quanto costano di solito, ad esempio *Di solito 6–9 min · $2–4 per esecuzioni come questa*.
103
+
104
+ L’intervallo è la metà centrale della tua cronologia: dal 25º al 75º percentile delle esecuzioni completate in questo progetto con lo stesso loop o comando e lo stesso motore. Servono almeno 5 esecuzioni confrontabili. Fino ad allora la riga dice *Cronologia ancora insufficiente* invece di tirare a indovinare. Contano solo i costi comunicati dal provider; i costi stimati restano fuori. È una stima, mai un addebito.
105
+
106
+ L’importo in dollari compare solo quando si sa che il motore fattura a consumo (per esempio con una chiave API). Con un piano in abbonamento, o finché la modalità di fatturazione non è nota, compare solo il tempo. Se il rail contiene più spec, l’intervallo vale per una spec e lo dice con *(per spec)*. Se la spesa di oggi più il limite alto dell’intervallo potesse raggiungere il tuo budget giornaliero, la riga aggiunge *Potrebbe fermarsi al budget* con un link alle impostazioni del budget. Se il budget di oggi è già esaurito, Avvia chiede prima una conferma, perché l’esecuzione resterebbe in pausa fino al ripristino.
107
+
108
+
89
109
  ## Dove andare ora
90
110
 
91
111
  - [Il Loop Builder](the-loop-builder) — cosa esegue un rail e come costruire i tuoi loop.
@@ -107,6 +107,18 @@ Se la [telemetria](../settings/customizing) era abilitata per il job, nell'intes
107
107
 
108
108
  Comodo per condividere un'esecuzione con un collega, o per inviare una segnalazione di bug precisa.
109
109
 
110
+ ## Quando un'esecuzione fallisce
111
+
112
+ Quando un job fallisce, si ferma o è bloccato, lo stato finale inizia con una **scheda di diagnosi** che dice in parole semplici cos'è successo, per esempio *I test sono falliti nella fase Reviewer dopo 4 giri di correzioni*, e perché quando l'app lo sa:
113
+
114
+ - **Test falliti**: i controlli continuano a fallire dopo i giri di correzioni.
115
+ - **Limite del provider**: è stato raggiunto il limite d'uso del provider IA. La scheda riporta quando si azzera, con le parole del provider.
116
+ - **Ambiente**: la macchina non riesce a eseguire i controlli (credenziali, uno strumento mancante, un comando di preparazione che fallisce). *Sistema l'ambiente* mostra esattamente cosa eseguire o cambiare.
117
+ - **Bloccata**, **senza tempo**, **in silenzio** e **fermata all'improvviso** indicano il limite o il processo che ha fermato l'esecuzione.
118
+ - **Causa sconosciuta**: l'app non tira a indovinare. Mostra la fine del log perché lo legga tu.
119
+
120
+ Sotto la diagnosi ci sono fino a tre rimedi in ordine, e solo quelli che qui possono funzionare: **Riprendi da** la fase che si è fermata, **Esegui di nuovo**, **Modifica la spec e rilancia** (gli addendum della spec portano la tua modifica all'esecuzione successiva), **Sistema l'ambiente** e **Apri il log al punto del guasto**. La stessa causa compare come etichetta di una riga nella [elenco Da gestire](../getting-started/the-dashboard-tour), e la scheda di esecuzione della missione mostra la stessa scheda.
121
+
110
122
  ## Dove andare ora
111
123
 
112
124
  - [Rail e job](rails-and-jobs) — avvio e accodamento.
@@ -0,0 +1,43 @@
1
+ <!-- guide-revision: mission-first-v1 -->
2
+
3
+ # Rivedi una consegna nell'app {#review-a-delivery}
4
+
5
+ Una consegna pronta per la revisione ha due viste: **Panoramica** (il verdetto, le prove e i pulsanti di decisione) e **Modifiche** (ciò che la consegna ha davvero cambiato). Apri la revisione dal pulsante **Rivedi** della consegna e scegli **Modifiche**.
6
+
7
+ ## Leggi le modifiche
8
+
9
+ L'elenco dei file a sinistra mostra ogni file modificato con il suo stato (aggiunto, modificato, eliminato, rinominato), i conteggi di righe `+` e `−` e un segno quando lo contrassegni come visto. Il diff a destra carica un file alla volta, quindi anche una modifica grande resta fluida. Passa tra i layout **Unificato** e **Affiancato**; Specrails ricorda la tua scelta. Un file molto grande mostra le prime righe con **Carica il diff completo del file**; un file binario è indicato come binario.
10
+
11
+ Le modifiche sono misurate dal punto in cui la consegna si è staccata dal branch di base, quindi ciò che è arrivato sulla base dopo non compare. Se la consegna non ha ancora un branch combinato, puoi scegliere il branch di quale spec leggere.
12
+
13
+ ## Note del revisore sul codice
14
+
15
+ I rilievi del revisore, i rischi segnalati e i commenti di revisione che l'esecuzione doveva risolvere compaiono sotto la riga a cui si riferiscono. Le note che non indicano file né riga sono elencate sopra l'elenco dei file, quindi nulla resta nascosto. Le consegne più vecchie, e i revisori che non hanno indicato un punto, mostrano i rilievi in quell'elenco.
16
+
17
+ ## Chiedi all'agente di cambiare qualcosa
18
+
19
+ Seleziona le righe cliccando sui loro numeri (Maiusc-clic estende l'intervallo), scegli **Chiedi una modifica all'agente** e descrivi la modifica. Specrails la salva come feedback di revisione sulla spec, con il file, l'intervallo di righe e il codice selezionato, e mostra un messaggio con un link alla spec. La prossima esecuzione su quella spec lo riceverà. Per avviarla subito usa **Chiedi modifiche** nella Panoramica. Qui non ci sono thread di commenti tra persone; confrontati con il tuo team su GitHub.
20
+
21
+ ## Aprilo nel tuo editor
22
+
23
+ **Apri nell'editor** apre il file, alla riga selezionata, in VS Code, Cursor o in un IDE JetBrains. Scegli l'editor in **Impostazioni → Codice → Editor**. Il file si apre dalla tua copia del progetto, dove il branch della revisione potrebbe non essere attivo.
24
+
25
+ ## Scegliere cosa succede a una consegna {#pr-decision}
26
+
27
+ Un'esecuzione conclusa ti chiede una sola cosa: cosa fare del risultato. La scheda mostra un pulsante principale per il passo successivo (creare la PR, pubblicarla o verificarla) e, accanto, **Rivedi**, che apre il pacchetto di revisione in linguaggio semplice. Tutto il resto è sotto **Altre azioni**:
28
+
29
+ - **Passa al branch** porta il branch nella cartella del progetto così puoi provarlo.
30
+ - **Integra in locale** unisce il risultato al branch di base su questo computer. Non serve GitHub e confermi prima.
31
+ - **Scarta** elimina il risultato e il suo branch. Confermi prima.
32
+
33
+ Se un'azione fallisce, l'avviso dice cosa non è andato a buon fine e offre **Riprova**.
34
+
35
+ ## Tastiera
36
+
37
+ | Tasto | Azione |
38
+ | --- | --- |
39
+ | `j` / `k` | File modificato successivo / precedente |
40
+ | `n` / `p` | Nota del revisore successiva / precedente |
41
+ | `v` | Segna il file come visto |
42
+
43
+ I tasti sono ignorati mentre scrivi in un campo. Segnare un file come visto è privato: se il file cambia in una revisione successiva mostra **Modificato da quando l'hai visto** e torna a contare come non visto.
@@ -1,4 +1,4 @@
1
- # Scegliere un engine per ogni rail
1
+ # Scegliere un engine per ogni rail {#provider-capabilities}
2
2
 
3
3
  ## Quando compare il selettore
4
4
 
@@ -19,7 +19,7 @@ Tutti e quattro eseguono **Implement**:
19
19
  | Engine | Scegli questo quando… | Note |
20
20
  |--------|--------------------|-------|
21
21
  | **Claude** | Servono costi nativi, interazione persistente o tool policy rigorose. | Profili, Freestyle e transform strutturati. |
22
- | **Codex** | Preferisci la CLI Codex di OpenAI o vuoi confrontare le implementazioni tra provider diversi. | `codex` ≥ 0.128.0. Nessuna reportistica nativa dei costi — l'app ricava il costo dalla sua tabella prezzi. I profili non si applicano. |
22
+ | **Codex** | Preferisci la CLI Codex di OpenAI o vuoi confrontare le implementazioni tra provider diversi. | `codex` ≥ 0.128.0. Nessuna reportistica nativa dei costi — l'app ricava il costo dalla sua tabella prezzi. I profili non si applicano. Freestyle funziona, senza chat interattiva. |
23
23
 
24
24
  ## Un flusso di lavoro pratico
25
25
 
@@ -1,4 +1,4 @@
1
- # Il Loop Builder
1
+ # Il Loop Builder {#loop-builder}
2
2
 
3
3
  ## Workflow Core
4
4
 
@@ -1,4 +1,4 @@
1
- # Temi
1
+ # Temi {#themes}
2
2
 
3
3
  Dai a Specrails l'aspetto che preferisci. L'app include cinque temi rifiniti a mano tra cui passare all'istante — senza riavvii, senza ricompilazioni, senza niente da configurare.
4
4
 
@@ -1,4 +1,4 @@
1
- # Telemetria della pipeline e diagnostica
1
+ # Telemetria della pipeline e diagnostica {#telemetry}
2
2
 
3
3
  La telemetria registra i dati diagnostici della pipeline in locale. È **attivata per impostazione predefinita** nei progetti senza una preferenza salvata. Puoi disattivarla per progetto; le scelte salvate esplicitamente vengono rispettate.
4
4
 
@@ -20,7 +20,7 @@ Da quel momento in poi, i job della pipeline in quel progetto registrano la tele
20
20
 
21
21
  ### Cosa viene coperto
22
22
 
23
- La telemetria si applica ai **job della pipeline** (le esecuzioni dei rail Architect → Developer → Reviewer → Ship messi in coda). Le sessioni interattive come la chat e il wizard di setup sono lasciate fuori di proposito — la telemetria è pensata per le esecuzioni ripetibili e ispezionabili della pipeline, non per le conversazioni occasionali.
23
+ La telemetria si applica ai job che passano dalla **coda dei job** del progetto: le esecuzioni della pipeline della CLI (i rail quando i Loop sono disattivati e i comandi `implement` inviati dalla CLI `specrails-desktop`). Le esecuzioni di loop — il modo predefinito in cui girano i rail — e le sessioni interattive come chat, Explore e missioni non vengono strumentate.
24
24
 
25
25
  ## Dove vivono i dati
26
26
 
@@ -1,4 +1,4 @@
1
- # Ambiente del progetto
1
+ # Ambiente del progetto {#project-environment}
2
2
 
3
3
  Alcuni progetti hanno bisogno di una credenziale durante l'esecuzione, come `NODE_AUTH_TOKEN` per i pacchetti npm privati. In **Impostazioni del progetto → Ambiente**, aggiungi i **nomi** delle variabili che servono ai tuoi rail e loop. Specrails salva solo i nomi, mai i valori.
4
4
 
@@ -0,0 +1,24 @@
1
+ # Aggiornamenti {#updates}
2
+
3
+ Specrails mantiene aggiornate due cose: l'app **Specrails Desktop** e il framework **specrails-core** usato dai tuoi progetti. Entrambe si trovano in **Impostazioni ▸ Aggiornamenti**.
4
+
5
+ ## Canale di aggiornamento
6
+
7
+ Scegli quanto in fretta ricevere le nuove versioni:
8
+
9
+ - **Ultima** (predefinito): ogni versione appena pubblicata. Ricevi per primo novità e correzioni.
10
+ - **Stabile**: solo versioni rimaste almeno una settimana su Ultima con CI verde e poi promosse dai maintainer. Sceglilo se il tuo team preferisce aggiornamenti meno frequenti e ben collaudati.
11
+
12
+ Il canale vale sia per l'app sia per specrails-core. Se specrails-core non ha ancora una versione stabile, Core segue Ultima e la scheda di Core te lo segnala.
13
+
14
+ Su Stabile, se nessuna versione è stata ancora promossa, **Cerca aggiornamenti** te lo dice invece di proporti una versione di Ultima.
15
+
16
+ ## Come arrivano gli aggiornamenti
17
+
18
+ - **Specrails Desktop** controlla all'avvio e ogni 6 ore. Quando c'è un aggiornamento compare una scheda da cui scaricare, installare e riavviare. Puoi anche fare clic su **Cerca aggiornamenti**.
19
+ - **specrails-core** non si aggiorna mai da solo. Fai clic su **Cerca aggiornamenti** nella scheda di Core e poi su **Aggiorna**. I tuoi progetti passano al nuovo framework senza riavviare l'app.
20
+
21
+ ## Da sapere
22
+
23
+ - Passare da Ultima a Stabile non ti riporta mai a una versione precedente. Resti sulla tua finché Stabile non la raggiunge.
24
+ - Ogni aggiornamento è firmato e verificato prima dell'installazione, su entrambi i canali.
@@ -0,0 +1,33 @@
1
+ # Lavorare in un progetto esistente {#existing-projects}
2
+
3
+ Queste funzioni aiutano i run a rispettare un progetto che esiste già: ciò che una spec lascia fuori, le domande dell'architetto prima di pianificare, quali requisiti un test dimostra davvero, come descrivere il codice esistente prima di cambiarlo e le regole che il tuo team ha già scritto. Ognuna richiede una versione di specrails-core che la supporti; nel frattempo il suo interruttore è disattivato con una nota per aggiornare Core.
4
+
5
+ ## Fuori ambito
6
+
7
+ Ogni spec può elencare ciò che volutamente **non** cambia. Quick ed Explore lo compilano per te; nella finestra della spec appare come **Fuori ambito** sotto la descrizione, un elemento per riga, e si modifica come qualsiasi altro campo. Gli agenti lo ricevono con la spec a ogni avvio.
8
+
9
+ ## Domande dell'architetto su Jira
10
+
11
+ In **Impostazioni ▸ Ancoraggio nei progetti esistenti**, attiva **Pubblica i chiarimenti dell'architetto su Jira**. Quando un run si ferma perché l'architetto ha bisogno di una risposta, o prosegue su ipotesi, Specrails le pubblica come un commento sull'issue Jira collegata. Rispondi a quel commento in Jira: la risposta viene aggiunta alla spec come chiarimento e il run successivo della spec la legge. Puoi comunque rispondere a un run in pausa dall'app.
12
+
13
+ ## Requisiti dimostrati
14
+
15
+ Quando un test nomina il requisito che dimostra (`[spec:<capability>/<requisito>]` nel titolo), la pagina di revisione mostra **Requisiti dimostrati X/Y**: quali requisiti dimostra un test riuscito, quali non ne hanno ancora uno e quali ha toccato la modifica stessa. Le analisi mostrano lo stesso per loop. Per far fallire la CI quando un requisito modificato non ha test, aggiungi `specrails-core pipeline trace --check --tests-passed` dopo i tuoi test.
16
+
17
+ La libreria dei loop offre anche **Controllo del drift**, un loop di sola lettura che confronta ciò che dice ogni spec con ciò che fa il codice ed elenca ogni contraddizione. Non modifica nulla.
18
+
19
+ ## Baseline al contatto
20
+
21
+ Attiva **Baseline al contatto** perché una modifica che raggiunge codice non descritto da nessuna spec cominci descrivendolo: test del comportamento attuale, dimostrati sul codice invariato, e una breve spec dell'esistente. La pagina di revisione mostra **Spec creata dove è passato il lavoro** con il modulo, i requisiti e i test, e il suo costo è mostrato a parte. Se quei test falliscono sul codice invariato, il run si ferma prima di modificare il modulo e lo segnala.
22
+
23
+ ## Regole del progetto {#project-rules}
24
+
25
+ **Impostazioni ▸ Regole del progetto** elenca i controlli che il tuo progetto esegue già (lint, tipi, test, CI) e ogni regola scritta in file come `CLAUDE.md` o `AGENTS.md`, suddivise in:
26
+
27
+ - **Applicata**: un controllo la garantisce già.
28
+ - **Automatizzabile**: un controllo potrebbe farlo. **Crea spec** la trasforma in spec con un clic.
29
+ - **Solo umana**: qualcuno deve guardarla. Compaiono in ogni pagina di revisione sotto **Serve un occhio umano**.
30
+
31
+ Le regole che Core non ha ancora potuto classificare (per esempio subito dopo aver aggiunto il progetto, quando l'inventario gira offline) compaiono come **Non classificata**; **Riesegui l'inventario** con un provider configurato le classifica.
32
+
33
+ **Riesegui l'inventario** aggiorna l'elenco. Quando un progetto non ha ancora comandi di verifica, le impostazioni dell'agent runtime propongono per primi questi controlli.
@@ -0,0 +1,23 @@
1
+ # Accessibilità e personalizzazione {#accessibility}
2
+
3
+ Specrails si adatta al tuo modo di lavorare. Tutto si trova in **Impostazioni ▸ Aspetto**, vale subito e viene salvato su questo computer.
4
+
5
+ ## Densità {#density}
6
+
7
+ **Comoda** mantiene schede e righe ariose. **Compatta** ne mostra di più: la bacheca delle spec parte con righe compatte, l'elenco dei job usa righe più strette e la storia del job stringe la sua linea del tempo. Una vista salvata della bacheca mantiene il proprio layout, quindi una vista salvata con schede post-it si apre ancora come schede post-it. Se la bacheca di questo progetto ha già una sua disposizione, **Usala anche per la bacheca**, sotto la scelta, le fa seguire di nuovo la densità.
8
+
9
+ ## Riduci movimento {#reduce-motion}
10
+
11
+ **Segui il sistema** rispetta il tuo sistema operativo. **Riduci** disattiva animazioni e transizioni dentro Specrails qualunque cosa dica il sistema: la pillola del rail resta ferma alla sua posizione, i punti live smettono di pulsare e l'alone del Builder e gli effetti del tema restano immobili. **Movimento completo** anima anche quando il sistema ne chiede meno.
12
+
13
+ ## Spostare una spec da tastiera {#keyboard-moves}
14
+
15
+ Porta il focus su una scheda spec nella bacheca (Tab o frecce) e premi **M**. Un piccolo selettore elenca gli stati e i rail; scegli con le frecce e **Invio**. Fa lo stesso che trascinarvi la scheda, comprese le spec collegate a Jira, che si spostano nel tuo workflow Jira. Se la scheda fa parte di una selezione multipla (**X** seleziona la scheda a fuoco), lo spostamento vale per tutte le spec selezionate. La palette dei comandi offre lo stesso come **Sposta la spec a fuoco…**. **M** non fa nulla mentre scrivi in un campo.
16
+
17
+ ## Annunci dei run per gli screen reader {#live-status}
18
+
19
+ Specrails annuncia i cambiamenti dei run tramite una regione live educata, per il progetto che stai guardando: un run avviato, in pausa, che ha bisogno di te, fallito, terminato o con la revisione pronta. Le raffiche vengono unite e le ripetizioni scartate, così un rail molto attivo non sommerge mai il lettore. Gli avvisi di annullamento si annunciano già da soli.
20
+
21
+ ## Focus da tastiera {#focus}
22
+
23
+ Ogni pulsante, link, voce di menu, scheda e riga di albero mostra un anello di focus visibile quando lo raggiungi da tastiera. Le informazioni che prima stavano solo in un tooltip, come il riferimento della spec sulla fascia di un rail, sono disponibili anche a chi usa tastiera e screen reader.
@@ -1,4 +1,4 @@
1
- # Le spec e il backlog
1
+ # Le spec e il backlog {#specs-backlog}
2
2
 
3
3
  Una **spec** è l'unità di lavoro che la pipeline AI realizza. Puoi immaginarla come un ticket: un titolo, una descrizione di ciò che vuoi ottenere, una priorità ed eventuali etichette. Quando avvii la pipeline, gli agenti AI leggono la spec e agiscono su di essa — quindi una spec chiara è di gran lunga l'input più importante per ottenere un buon risultato.
4
4
 
@@ -13,7 +13,27 @@ La board ha due modalità di visualizzazione, che si alternano con un toggle nel
13
13
  - **Vista post-it** (quella predefinita) — riquadri in stile card con brevi riepiloghi.
14
14
  - **Vista elenco** — righe compatte su una sola riga.
15
15
 
16
- Il **selettore di stati** della toolbar mostra ogni stato come chip dedicato con un conteggio in tempo reale — più due gruppi intelligenti: **Attive** (il predefinito — tutto ciò che è ancora in movimento: bozze, da fare, in corso e in revisione) e **Tutti** (tutto, con Completato fissato in fondo). La scelta viene ricordata per progetto e riflessa nell'URL, così un refresh o un link condiviso ripristina esattamente la stessa vista. Nei progetti collegati a Jira compare in più un menu a tendina **stato Jira**, che elenca gli stati *reali* del workflow della board (i nomi grezzi, es. "Code Review", ciascuno con il proprio conteggio in tempo reale) raggruppati sotto lo stato a cui mappano — si combina con i chip di stato. Puoi anche filtrare per **etichetta**, oltre a ordinare per **Predefinito**, **Ticket #** o **Priorità** (ciascuno con un toggle crescente/decrescente).
16
+ La toolbar delle Spec ha due righe. La prima contiene un campo di **ricerca** (premi `/` per raggiungerlo; cerca per titolo, `#numero`, etichetta o chiave Jira), un unico pulsante **Filtri**, i controlli di ordinamento e vista, e **Nuova spec**. La seconda riga è il **selettore di stati**: ogni stato come segmento dedicato con un conteggio in tempo reale, più due gruppi intelligenti, **Attive** (il predefinito: tutto ciò che è ancora in movimento, cioè bozze, da fare, in corso e in revisione) e **Tutti** (tutto, con Completato fissato in fondo). Quando la colonna è stretta, gli stati meno usati si raccolgono in un menu **Altro**, e lo stato scelto resta sempre visibile. La scelta viene ricordata per progetto e riflessa nell'URL, così un refresh o un link condiviso ripristina esattamente la stessa vista. **Filtri** apre un unico pannello con una sezione per dimensione: **etichette** (selezione multipla) e, nei progetti collegati a Jira, **epic**, **sprint** e **stato Jira** (gli stati *reali* del workflow della board, es. "Code Review", raggruppati sotto lo stato a cui mappano e combinati con il selettore di stati). Finché una ricerca o un filtro restringe la board, una terza riga mostra ciascuno come chip rimovibile, indica "x di y" spec e offre **Cancella tutto** (che mantiene lo stato scelto). Ordina per **Predefinito**, **Ticket #** o **Priorità**, ciascuno con un toggle crescente/decrescente.
17
+
18
+ ### Selezionare più spec
19
+
20
+ Fai la triage in blocco invece di una spec alla volta. Premi `x` su una scheda a fuoco, fai clic su una scheda con `Ctrl`/`⌘`, oppure fai clic con `Maiusc` per selezionare un intervallo (un intervallo resta dentro una colonna: le spec attive o il gruppo Completate). `Ctrl`/`⌘`+`A` seleziona l'intera colonna in cui ti trovi e `Esc` deseleziona tutto. Ogni scheda mostra una casella al passaggio del mouse o quando ha il fuoco, e quelle selezionate hanno il bordo evidenziato. Nessuno di questi tasti agisce mentre scrivi nel campo di ricerca.
21
+
22
+ Appena una spec è selezionata, in basso nella board compare una barra mobile con il conteggio e le azioni:
23
+
24
+ - **Sposta in** cambia lo stato. Le spec locali ricevono gli stati locali; quelle che arrivano da Jira ricevono i veri stati del workflow della board Jira e passano dalla stessa coda Jira di uno spostamento singolo.
25
+ - **Etichetta** aggiunge un'etichetta alla selezione, oppure ne rimuove una presente nelle spec.
26
+ - **Priorità** imposta la stessa priorità per tutte.
27
+ - **Aggiungi a un rail** mette la selezione su un rail.
28
+ - **Avvia tutto** assegna a ogni spec selezionata un rail libero tutto suo e le avvia in parallelo, dopo la stessa conferma e lo stesso controllo del budget giornaliero di *Avvia tutto* dei rail. Le spec che non possono ancora partire (per esempio in revisione senza PR aperta) o che non trovano un rail libero vengono saltate e contate nel riepilogo.
29
+ - **Elimina** le sposta in *Eliminate di recente*.
30
+ - **Deseleziona** (o `Esc`) scarta la selezione.
31
+
32
+ Eliminazione e modifiche di stato, etichette o priorità si annullano in un solo passaggio: un unico avviso *Annulla* (o `⌘Z`) ripristina ogni spec modificata. Se alcune falliscono, un solo avviso indica quante sono riuscite e quante no. La selezione contiene solo spec visibili: un filtro che nasconde una spec selezionata la toglie dalla selezione.
33
+
34
+ ### Viste salvate
35
+
36
+ Il pulsante **Viste**, accanto a **Filtri**, salva la board così com'è ora: il selettore di stato, i filtri, l'ordinamento e la densità (non il testo di ricerca). Scegli **Salva la vista attuale…**, dalle un nome («Pronte da avviare», «Sprint 42», «Fallite questa settimana») e scegliila poi dallo stesso menu. **Gestisci le viste…** rinomina una vista, la aggiorna con la board attuale, ne copia il link o la elimina. Le viste appartengono al progetto. Un link copiato (`?view=…`) applica la vista quando viene aperto in questa app, e la palette dei comandi (`⌘K`) può salvare la vista attuale o passare a un'altra.
17
37
 
18
38
  ## Stati
19
39
 
@@ -38,7 +58,7 @@ Le bozze sono l'unica eccezione: una bozza può non avere *alcuna* priorità, pe
38
58
 
39
59
  ## Creare una spec
40
60
 
41
- Per creare una spec, clicca su **Aggiungi** (il pulsante Più nella toolbar della SpecsBoard). Si apre il dialog **Aggiungi spec**, con diversi modi di lavorare:
61
+ Per creare una spec, clicca su **Nuova spec** (il pulsante Più nella toolbar della SpecsBoard). Si apre il dialog **Aggiungi spec**, con diversi modi di lavorare:
42
62
 
43
63
  - **Modalità Quick** — descrivi ciò che vuoi e l'AI scrive la spec completa in un colpo solo. Vedi [Aggiungi spec — Modalità Quick](add-spec-quick-mode.md).
44
64
  - **Modalità Explore** — conversi con l'AI, che ti aiuta a dare forma alla spec turno dopo turno. Vedi [Aggiungi spec — Modalità Explore](add-spec-explore-mode.md).
@@ -50,6 +70,24 @@ Quale scegliere dipende da quanto è già chiara l'idea. Sai esattamente cosa vu
50
70
 
51
71
  Quando una spec ha già del lavoro alle spalle — una PR in revisione, una funzionalità già unita — e vuoi *di più*, non riscriverne la descrizione: snatura la spec (e sincronizza la deriva su Jira) e costringe l'esecuzione successiva a ripianificare tutto. Apri la spec e aggiungi invece un **addendum**: una breve nota con un tipo (richiesta di modifica, feedback di revisione, chiarimento, vincolo) e le tue parole. Gli addenda aperti viaggiano automaticamente con il prossimo lancio di quella spec su qualsiasi loop — Implement, SDD Quick, Freestyle — così l'esecuzione cambia solo ciò che hai chiesto, e il pacchetto di revisione riporta ciascuno come applicato, parzialmente applicato o bloccato. Se l'esecuzione fallisce o scarti la consegna, tornano da soli ad **Aperto**. L'agente di missione può aggiungerli per te quando gli chiedi di cambiare qualcosa in una spec esistente.
52
72
 
73
+ ## Rivedere una consegna: cosa guardare per primo
74
+
75
+ Quando un'esecuzione termina, il suo pacchetto di revisione si apre con **Cosa guardare**: la breve nota del revisore IA che elenca prima i punti più rischiosi (alto, poi medio, poi basso, ciascuno con file e riga), il comportamento che cambia, le regole su cui la modifica si appoggia, i percorsi di codice che nessun test esercita e i controlli che solo una persona può fare. Gli stessi rischi, percorsi senza test e controlli compaiono in un breve blocco in cima alla pull request, e la scheda della missione mostra il rischio principale in una riga. La nota aiuta la revisione, non è un risultato di verifica: non blocca mai Accetta. Le esecuzioni fatte con uno Specrails Core precedente non hanno la nota e il loro pacchetto resta come prima.
76
+
77
+ ## Annulla e Eliminati di recente {#recently-deleted}
78
+
79
+ Eliminare una spec, spostarla in un altro stato, cambiarne le etichette o toglierla da un rail avviene subito: nessun "Sei sicuro?" prima. Al suo posto, una notifica offre **Annulla** per circa otto secondi, e **⌘Z** (**Ctrl+Z** su Windows e Linux) fa lo stesso finché non stai scrivendo in un campo. Annulla vale per progetto: cambiando progetto la finestra si chiude.
80
+
81
+ Una spec eliminata (e una missione eliminata) non sparisce. Va in **Impostazioni → Eliminati di recente**, nelle impostazioni del progetto, dove puoi **Ripristinarla** per 30 giorni o **Eliminarla definitivamente**, che chiede prima conferma. Dopo 30 giorni viene rimossa per sempre. Scartare lavoro non pushato, chiudere con la forza una pull request e rimuovere un progetto chiedono ancora conferma, perché non si possono annullare. Una spec collegata a Jira si sposta ancora con **Sposta in** invece di essere eliminata.
82
+
83
+ ## La cronologia della spec e il passaggio di consegne {#spec-timeline}
84
+
85
+ Apri una spec e passa alla scheda **Cronologia** per leggere tutta la sua storia in un unico posto: le modifiche e gli addenda, le missioni che l’hanno toccata, ogni esecuzione con le sue fasi e le azioni dell’agente, gli eventi della pull request e il verdetto del revisore con i suoi rilievi. Le voci sono raggruppate per giorno, i chip filtrano per tipo e ogni voce rimanda alla missione, all’esecuzione o alla revisione da cui proviene. I gruppi lunghi (fasi, azioni dell’agente, turni di missione) sono compressi con un contatore e si espandono sul posto.
86
+
87
+ Il costo compare accanto alla voce che lo ha generato, con i due tipi tenuti separati: una cifra riportata dal provider e una stimata dalla tabella prezzi locale (segnata «stim.»). Se un provider è fatturato tramite abbonamento, la cronologia e le esportazioni mostrano i turni, mai i dollari; un’esecuzione che non ha riportato costo semplicemente non ne mostra.
88
+
89
+ **Esporta passaggio di consegne** (il menu accanto alle schede, o ⌘K → *Esporta passaggio di #N*) scrive un file Markdown o una pagina HTML autonoma con il riepilogo, le decisioni (addenda, chiarimenti, verdetti del revisore), le statistiche del diff, il costo e ciò che resta aperto (addenda aperti e rilievi di revisione non risolti). **Copia come descrizione della PR** (anche in ⌘K) mette negli appunti una versione più breve in Markdown. Le intestazioni seguono la lingua dell’app. Tutto passa per la stessa oscuratura dei segreti usata dall’audit delle azioni dell’agente, e la notifica ti dice quando qualcosa è stato oscurato.
90
+
53
91
  ## Dove andare adesso
54
92
 
55
93
  - [Aggiungi spec — Modalità Quick](add-spec-quick-mode.md) — il modo più rapido per trasformare un'idea in una spec.
@@ -6,7 +6,7 @@ La modalità Quick è pensata per quando sai già cosa vuoi. Scrivi la tua idea,
6
6
 
7
7
  Per creare rapidamente una spec:
8
8
 
9
- 1. Nella Dashboard, clicca su **Aggiungi** (il pulsante Più nella toolbar della SpecsBoard).
9
+ 1. Nella Dashboard, clicca su **Nuova spec** (il pulsante Più nella toolbar della SpecsBoard).
10
10
  2. Scegli la modalità **Quick**.
11
11
  3. Scrivi la tua idea nel campo di testo — una frase o un paragrafo, qualunque cosa la descriva.
12
12
  4. Clicca per generare.
@@ -22,7 +22,7 @@ Mentre converssi, un pannello mostra la bozza così com'è in quel momento — t
22
22
 
23
23
  Questo è il cuore della modalità Explore: non ti trovi mai davanti a un form vuoto. Stai sempre guardando una spec reale, in evoluzione.
24
24
 
25
- ## Quanto vede l'AI: lo slider del contesto
25
+ ## Quanto vede l'AI: lo slider del contesto {#context-scope}
26
26
 
27
27
  Prima che l'AI risponda, decidi tu quanto del tuo progetto può vedere. Uno slider di preset di contesto ti permette di scambiare velocità con profondità:
28
28
 
@@ -1,4 +1,4 @@
1
- # エージェントの紹介
1
+ # エージェントの紹介 {#agents}
2
2
 
3
3
  **Implement** レールを起動するとき、Specrails はあなたのスペックを1つの AI に丸投げして結果を祈る、ということはしません。それぞれ1つの役割だけを担う小さな専門 *エージェント* チームを、意図された順番で動かします。このページでは、そのチームのメンバーと、それぞれが何をするのかを紹介します。
4
4
 
@@ -39,3 +39,5 @@ specrails を初めて開くと、すっきりした **ウェルカム画面**
39
39
  オンボーディングはこれだけ。アカウント作成もサインアップもありません。specrails はすべてあなたのマシン上で動作します。
40
40
 
41
41
  **最初のプロジェクトを追加** をクリックして、[Adding your first project](adding-your-first-project) へ進みましょう。
42
+
43
+ または、[サンプルプロジェクト](try-the-sample-project)から始めましょう。小さなゲームと用意済みの3つのスペックで、費用は事前に示されます。
@@ -0,0 +1,35 @@
1
+ # サンプルプロジェクトを試す
2
+
3
+ 自分のコードに specrails を向ける前に、スペックがレビュー済みの変更になる様子を見てみたいですか?**サンプルプロジェクト**は、3つの用意済みスペックが付いた小さな○×ゲームの Web アプリです。数分で終わり、本物の**レビューパケット**にたどり着きます。
4
+
5
+ ## 始める
6
+
7
+ ウェルカム画面で**サンプルプロジェクトで試す**(**最初のプロジェクトを追加**の隣)をクリックします。何かが起きる前に、ダイアログが次を伝えます。
8
+
9
+ - **作成されるもの**:専用の git リポジトリに入った小さな Web ゲームと、ボードに並ぶ3つのスペック。
10
+ - **作成場所**:既定ではホームフォルダ内の `~/Specrails Samples/tic-tac-toe`。フォルダは変更できます。既存のフォルダが上書きされることはありません。
11
+ - **実行にかかる費用**:「≈ $0.30–$1 · 約 3–5 分」のような見積もり。プロバイダーが従量課金の場合にのみドルで表示されます。サブスクリプションプランでは追加料金なし、ローカルエンジンでは API 料金なしと表示されます。
12
+
13
+ サンプルの作成は無料で、何も実行しません。**サンプルプロジェクトを作成**をクリックすると、ボードに移動します。
14
+
15
+ ## 3つのステップ
16
+
17
+ 小さなガイドカードが、実際のボードを1ステップずつ指し示します。いつでも閉じることができ、**サンプルプロジェクト**のピルに折りたたまれます。**ガイドを表示**で元に戻せます。
18
+
19
+ 1. **スペック。** 3つのスペックはあらかじめ書かれています。それぞれ、何を作るか、何をもって完了とするかが書かれています。
20
+ 2. **レール。** **最初のスペックを実行**をクリックします。サンプルは低コストで上限付きに設定されています。クイックモード、利用可能な最も安いモデル、実行ごとのソフト上限($1 を超える前に一時停止して確認)です。ローカルエンジンを設定している場合は、API 料金なしでそちらを選べます。
21
+ 3. **レビュー。** 何も勝手にマージされません。実行が終わると、**レビューパケット**が変更内容を示し、承認か破棄を選べます。
22
+
23
+ ## 使える AI プロバイダーがない場合
24
+
25
+ 実行を提示する前に、specrails はプロバイダーがインストールされ、サインインしているかを確認します。準備できていない場合は、代わりに**録画された実行を見る**が表示されます。完了した実行をレビューパケットまで再生するものです。録画であることが明示され、何も実行されず、課金もされません。プロバイダーをインストールまたはサインインしてから**再確認**を選ぶと、実際の実行に切り替わります。
26
+
27
+ ## そして、自分のプロジェクトへ
28
+
29
+ ガイドは**自分のプロジェクトを追加**で終わります。サンプルが不要になったら、**サンプルを削除**でワンクリックで登録解除できます。**サンプルのフォルダも削除する**にチェックを入れない限り、フォルダはディスクに残ります。この削除は元に戻せません。
30
+
31
+ ## プラットフォームツアーをもう一度見る
32
+
33
+ ツアーはウェルカム画面から移動しました。**ドキュメント**を開いて**ツアーをもう一度見る**を選ぶか、コマンドパレットを開いて「ツアーをもう一度見る」と入力します。**設定 ▸ 外観**にもあります。
34
+
35
+ 次へ:[最初のプロジェクトを追加する](adding-your-first-project)。
@@ -37,11 +37,15 @@
37
37
  - **合計支出**(右) — これまでの支出の累計です。コストが常にひと目で分かります。
38
38
  - **ターミナル切り替え**(いちばん右) — 内蔵のターミナルパネルを開きます。**Cmd+J**(macOS)または **Ctrl+J**(Windows/Linux)でいつでも開閉できます。プロジェクトフォルダで開く、本格的なシェルです。
39
39
 
40
- ## 便利なショートカット
40
+ ## 便利なショートカット {#shortcuts}
41
41
 
42
- - **Cmd/Ctrl+B** — サイドバーをピン留め/折りたたみます。
42
+ - **Cmd/Ctrl+B** — 左サイドバーをピン留め/折りたたみます。**Option+Cmd+B**(**Ctrl+Alt+B**)は右サイドバーに同じ操作をします。
43
43
  - **Cmd/Ctrl+J** — ターミナルパネルを開閉します。
44
- - **Cmd/Ctrl+K** — 検索を開きます。
44
+ - **Cmd/Ctrl+K** — コマンドパレット。ミッション、プロジェクト、ジョブを検索し、**アクションを実行**できます。動詞(「新規」「起動」「移動」「切り替え」など)を入力するか、**>** で始めるとアクションが一覧表示されます。新しい Spec(探索モードも可)、Spec の起動・移動、そのレビューを開く、Flow の引き継ぎ・一時停止、新しいミッション、テーマの切り替え、ミッションモードとボードモードの切り替え、アプリ設定・プロジェクト設定を特定のセクションで開く、ループの実行、サイドバーの切り替え、戻る・進む、直前の変更を元に戻す、最近削除した項目、などです。選択が必要なアクション(Rail、ステータス、テーマ、セクション)は 2 ページ目を開きます。検索欄が空のときに **Backspace** を押すと戻ります。各アクションにはキーボードショートカットが表示されるので、パレットがキーを教えてくれます。今いる場所で使えるものだけが表示され、ボタンと同じルールに従います(起動できない Spec は表示されません)。検索欄が空のときは、**最近のアクション**と**最近の場所**が表示されます。
45
+ - **Cmd+[ / Cmd+]**(Windows/Linux では **Alt+← / Alt+→**)、タイトルバーの **← →** ボタン、またはマウスの戻る/進むボタン — 訪れた場所(スペック、ミッション、ジョブ、プロジェクト、全画面パネル)を戻ったり進んだりします。ボタンを右クリック(または長押し)すると最近の場所が表示されます。
46
+ - **Cmd+Shift+I**(Windows と Linux では **Ctrl+Alt+I**)またはタイトルバーの**対応待ち**ボタン — **対応待ち**リスト:すべてのプロジェクトであなたを待っているものを、プロジェクトごとにまとめた 1 つのリストで表示します。判断できるレビュー、エージェントが待っている質問、失敗またはブロックされた実行、1 日の予算で一時停止した実行、同期できなかった Jira の更新を集めます。各行にはその場で使える主な操作(**レビューを開く**、**回答**、**再開**、**再試行**)に加え、**後で通知**(1 時間または明日まで)と**完了**があります。後回しにした項目や完了した項目は、状態が変わると自動的に戻ります。ボタンには待機中の件数が表示され、プロバイダーの上限通知からもリストを開けます。このリストはリンク(`?inbox=1`)でもあり、コマンドパレットの操作でもあります。
47
+ - **M** — ボード上でスペックカードにフォーカスしているときに、ステータスやレールへ移動する選択画面を開きます。ドラッグ&ドロップのキーボード版で、複数選択にも使え、パレットでは**フォーカス中のスペックを移動…**として表示されます。
48
+ - **?** — ショートカットの一覧。検索ボックスに入力すると、ショートカットを絞り込めるほか、このガイドの該当するページやセクションも見つかり、画面を離れずにガイドで開けます。設定、レール、Flow、コンテキストスライダー、予算の横にある小さな **ⓘ** アイコンや**詳しく見る**リンクも、同じ方法で対応するセクションを開きます。
45
49
 
46
50
  ## 次に向かう先
47
51
 
@@ -0,0 +1,34 @@
1
+ # ユニバーサル検索(⌘K)
2
+
3
+ **⌘K**(Windows と Linux では **Ctrl+K**)を押すと、ミッション、スペック、ジョブログ、ファイル、設定、このガイドなど、Specrails のほぼすべてを 1 か所から検索できます。通常の検索語を入力すると、これまでどおりミッション、プロジェクト、スペック、最近のジョブを検索します。**プレフィックス**で始めると、1 つの対象だけを検索します。
4
+
5
+ ## プレフィックス
6
+
7
+ | 入力 | 検索対象 | Enter で開くもの |
8
+ | --- | --- | --- |
9
+ | `#` | スペック:タイトル、概要、説明、ラベル、対象外メモ、追記、コメント。`#12` は 12 番のスペックを見つけます。 | そのスペック |
10
+ | `@` | ミッション:タイトルと会話の内容。 | そのミッション |
11
+ | `/` | 設定(Desktop とプロジェクト)。名前や呼び方で探せます。 | 該当ブロックにスクロールしてフォーカスした設定画面 |
12
+ | `f:` | プロジェクトのファイル(名前またはパス)。 | コードエクスプローラーでそのファイル |
13
+ | `log:` | ジョブログ:コマンド、ループ名、フェーズ名、失敗の診断。 | そのジョブ |
14
+ | `?` | このガイド:ページ名と見出し。 | ガイドのその見出し |
15
+
16
+ プレフィックスを入力すると検索ボックス内の**チップ**になり、ボックスには検索語だけが残ります。ボックスが空のときに **Backspace**(またはチップの × をクリック)で範囲を解除できます。ボックスが空のときは、パレットがボックスの下にプレフィックスを一覧表示します。クリックして開始できます。`>` は従来どおりアクションを一覧表示します。
17
+
18
+ ## ハイライト
19
+
20
+ 結果には最初の一致箇所の前後の短い抜粋が表示され、一致した部分が強調されます。検索では大文字小文字とアクセントを区別しないため、`revision` で「Révision」が見つかります。
21
+
22
+ ## 設定
23
+
24
+ `/` は、テーマ、言語、エディタ、予算、通知、Webhook、アップデート、ブランチ、環境、テレメトリ、ルールなど、主要な設定ブロックをお使いの言語で把握しています。プロジェクト設定は、プロジェクトを開いているときに表示されます。選ぶと、該当ブロックで正しい画面が開きます。プレフィックスなしでも、強い一致(3 文字以上)があれば、通常の結果に設定が最大 3 件追加されます。`/budget` は予算パネル(上限・予測・もしも)も見つけます。週間・月間の上限はそこにあります。`/implement` のようなスラッシュコマンドは設定の下に専用のグループで表示されるため、`/` プレフィックスで隠れることはありません。
25
+
26
+ ## ジョブログ
27
+
28
+ `log:` は、実行の生の出力ではなく、コンパクトなインデックスを検索します。コマンド、ループ名、フェーズ名、失敗・ブロック・停止した実行の短い診断が対象です。トークンストリームやツール出力は保存しないため、小さく高速なままです。プロジェクトごとに保持され、最新の実行を含みます。
29
+
30
+ ## 知っておくと便利なこと
31
+
32
+ - `#`、`f:`、`log:` はアクティブなプロジェクトを検索します。先にプロジェクトを開いてください。
33
+ - ファイルの範囲は、コードエクスプローラーの除外ルールに従います。
34
+ - 各グループには上位の結果だけが表示されます。検索語を絞り込んでください。
@@ -6,15 +6,17 @@ Specrails があなたの代わりに AI CLI を実行するたびに — パイ
6
6
 
7
7
  ## 何が「支出」としてカウントされるのか
8
8
 
9
- Specrails は 5 種類の AI アクティビティを追跡しており、これらを*サーフェス*と呼びます。それぞれのサーフェスは、すべてのチャートで一貫して色分けされているので、ひと目で見分けられます。
9
+ Specrails はすべての AI 実行に*サーフェス*(その支出を発生させたアプリ内の場所)のタグを付けます。主要なサーフェスにはそれぞれ固定の色と専用のフィルターチップがあるので、ひと目で見分けられます。
10
10
 
11
- - **ジョブ** — Architect → Developer → Reviewer → Ship を実行するパイプラインのレール。
11
+ - **ジョブ** — キューに入ったパイプラインジョブ(Architect → Developer → Reviewer → Ship)。Freestyle の実行も含みます。
12
+ - **ループ** — ループ実行の各 AI ステップ。レールはデフォルトでループとして実行されるため、レールの支出の大半はここに計上されます。
12
13
  - **クイックスペック** — 高速な Add Spec から生成したスペック。
13
14
  - **Explore スペック** — 会話を通じてスペックを形にする Explore セッション。
14
15
  - **AI リファイン** — エージェントやファイルに対する AI 支援のリファイン。
15
- - **ファイル要約** — Code エクスプローラーを支える、平易な言葉による要約。
16
+ - **SMASH** — エピックのスペックを小さなスペックに分割する処理。
17
+ - **ファイル要約** — Code エクスプローラーを支える、平易な言葉の要約とファイルストーリー。
16
18
 
17
- 意図的に*追跡しない*ものもいくつかあります。チャットサイドバーとセットアップウィザードはどちらも AI CLI を起動しますが、これらは支出には一切表れません。そのおかげで、ダッシュボードには付随的なやり取りではなく、実際の、繰り返し行われる作業だけが反映されます。
19
+ 専用のチップはありませんが、小さなサーフェスも記録されます。チャットサイドバー、OpenSpec のスペックランチャー、スペック提案、Agent Studio、旧来のセットアップチャットです。プロジェクトにピン留めされたミッションも、そのプロジェクトの支出に含まれます。AI CLI を実行するものは何ひとつ除外されないため、合計はプロジェクトのすべての AI アクティビティを反映します。
18
20
 
19
21
  ## ダッシュボードの読み方
20
22
 
@@ -76,3 +78,15 @@ Specrails は 5 種類の AI アクティビティを追跡しており、これ
76
78
  ## 常にライブ
77
79
 
78
80
  更新(リフレッシュ)の必要はありません。プロジェクト内のどこかで新しい呼び出しが記録されると、開いているダッシュボードが少し後で静かに再取得を行うので、作業が完了するのに合わせてバーンメーターが追従し続けます。
81
+
82
+ ## 1 日の予算 {#daily-budget}
83
+
84
+ 1 日の予算を設定すると、1 日にかけられる費用に上限を設けられます。すべての上限(日次・週間・月間・実行ごと)は 1 か所、**分析 → 予算** で編集します。**設定 → 詳細設定** と **プロジェクト設定 → 予算** には現在の日次上限だけが表示され、**予算を開く** ボタンでそこへ移動できます。
85
+
86
+ その日に記録された支出が予算に達すると、キューは自動で一時停止し、レールとループの実行は*1 日の予算に達しました*と表示されて起動しません。実行中のループはステップの合間で止まり、予算のため一時停止になります。予算を引き上げるか解除するか、毎日のリセットを待ってから再開してください。
87
+
88
+ プロジェクトの予算はローカルの 1 日、アプリ全体の予算は UTC の 1 日で数えます。ジョブごとの費用アラートは別の設定です。
89
+
90
+ **週間・月間・実行ごとの上限.** より長い期間の上限も同じように動作します。**分析 → 予算**で、プロジェクトごと、およびアプリ全体の**週間**上限と**月間**上限、そして**実行ごとのソフト上限**(*$X で一時停止して確認*)を設定できます。週は月曜日、月は 1 日に始まり、ローカル時間で数えます。週間・月間の上限は 1 日の予算とまったく同じように、キューを一時停止し、起動を拒否し、実行中のループを一時停止します。そこで引き上げるか解除するか、リセットを待ってください。実行自身が報告したコストが実行ごとの上限に達すると一時停止し、**再開**では上限なしで続行するか引き上げるかを確認します。いずれかの上限に達すると、受信トレイにも**上限を引き上げる**項目が追加されます。
91
+
92
+ 予算パネルには、今日・今週・今月が各上限と並べて表示されます。月末の**予測**は見積もりです(直近 14 日分の完了した日の平均に残り日数を掛け、これまでの支出を加えたもの)。請求済みの支出には加算されません。**もしも**は、記録された過去 30 日のトークン使用量をアプリの料金表で別のモデルとして再計算し、料金のないモデルには*料金がありません*と表示します。サブスクリプションのプランでは利用ごとのドル費用がないため、パネルはドルの代わりにターン数とプランの利用枠を表示します。
@@ -1,4 +1,4 @@
1
- # 統合ターミナル
1
+ # 統合ターミナル {#integrated-terminal}
2
2
 
3
3
  Specrails には本物のターミナルが組み込まれています — ウィンドウの下からせり上がってくる、あの VS Code や Cursor とまったく同じ感覚のパネルです。実際のシェルを、実際のプロジェクトディレクトリで動かすので、アプリを離れることなく `git`、`npm`、テスト、その他なんでも実行できます。
4
4