specrails-desktop 2.64.1 → 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.
- package/README.md +1 -1
- package/cli/dist/status.js +3 -0
- package/client/dist/assets/ActivityFeedPage-ByVKYII-.js +1 -0
- package/client/dist/assets/AgentBrowserCapture-BGUTjhUr.js +1 -0
- package/client/dist/assets/AgentModeAnalyticsPane-CtOLDDjB.js +2 -0
- package/client/dist/assets/AgentModeCodePane-CDhUKarT.js +2 -0
- package/client/dist/assets/AgentModeJobsPane-BAa_oEHJ.js +1 -0
- package/client/dist/assets/AgentsPage-D32hG4Ve.js +120 -0
- package/client/dist/assets/AnalyticsPage-BU50zeG6.js +5 -0
- package/client/dist/assets/BudgetCard-DP_jxwaD.js +55 -0
- package/client/dist/assets/CodePage-jiYnKGpp.js +3 -0
- package/client/dist/assets/CostValue-Bvn8674q.js +1 -0
- package/client/dist/assets/DesktopAnalyticsPage-CF__H4e3.js +1 -0
- package/client/dist/assets/DocView-RrAp70zp.js +11 -0
- package/client/dist/assets/DocsDialog-DkqHU-JF.js +1 -0
- package/client/dist/assets/DocsPage-C6X089zC.js +1 -0
- package/client/dist/assets/ExportDropdown-C5-o8y3K.js +1 -0
- package/client/dist/assets/HelpHint-Crf9_uoR.js +1 -0
- package/client/dist/assets/IntegrationsPage-aflU3KHK.js +1 -0
- package/client/dist/assets/InteractiveJobComposer-CEMMhyyJ.js +19 -0
- package/client/dist/assets/JobDetailModal-BVJ6hyRs.js +1 -0
- package/client/dist/assets/JobDetailPage-DHzBUmox.js +1 -0
- package/client/dist/assets/JobsPage-o-LAqkwC.js +1 -0
- package/client/dist/assets/LoopBuilderPage-DbSVmXBM.js +1 -0
- package/client/dist/assets/LoopPreviewModal-DbJcVyN1.js +1 -0
- package/client/dist/assets/{LoopWindowSurface-DE0v2K1p.js → LoopWindowSurface-Co1ZK26V.js} +1 -1
- package/client/dist/assets/LoopsPage-C4lgkPXB.js +2 -0
- package/client/dist/assets/MinimizedChatsContext-742ypO8n.js +1 -0
- package/client/dist/assets/PluginsPage-Acks9ges.js +2 -0
- package/client/dist/assets/RailTrack-BfLmBzBh.js +1 -0
- package/client/dist/assets/{RepositoryScopeSelector-2eSqR9WK.js → RepositoryScopeSelector-DcxbKI9w.js} +1 -1
- package/client/dist/assets/ReviewPacketPage-CAVSIOAJ.js +7 -0
- package/client/dist/assets/TemplatePreviewModal-C23SYCTm.js +1 -0
- package/client/dist/assets/TicketDetailModalContext-B-Gtm6Ob.js +23 -0
- package/client/dist/assets/Trans-C6J0cLyh.js +1 -0
- package/client/dist/assets/a11y-prefs-BqoP5goK.js +1 -0
- package/client/dist/assets/activity-BBWfoUOG.js +1 -0
- package/client/dist/assets/activity-BM_skann.js +1 -0
- package/client/dist/assets/activity-Cevl82ke.js +1 -0
- package/client/dist/assets/activity-CmACk5W5.js +1 -0
- package/client/dist/assets/activity-D9LBw3PQ.js +1 -0
- package/client/dist/assets/activity-Dspbb9lz.js +1 -0
- package/client/dist/assets/activity-FPjYIjv9.js +1 -0
- package/client/dist/assets/activity-nLCKMUKt.js +1 -0
- package/client/dist/assets/addspec-BI4jDMhA.js +1 -0
- package/client/dist/assets/addspec-BldTv7Tl.js +1 -0
- package/client/dist/assets/addspec-Cdq-2EcC.js +1 -0
- package/client/dist/assets/addspec-DH5M16BQ.js +1 -0
- package/client/dist/assets/addspec-DOFo9pD5.js +1 -0
- package/client/dist/assets/addspec-DPkwhdmL.js +1 -0
- package/client/dist/assets/addspec-Dzy12Pv3.js +1 -0
- package/client/dist/assets/addspec-skTs6EEW.js +1 -0
- package/client/dist/assets/agent-B_UEUy7Y.js +1 -0
- package/client/dist/assets/agent-BarjlhTA.js +1 -0
- package/client/dist/assets/agent-BfqIITo5.js +1 -0
- package/client/dist/assets/agent-Bt9a7Kyj.js +1 -0
- package/client/dist/assets/agent-C3689RwP.js +1 -0
- package/client/dist/assets/agent-CrmboTAi.js +1 -0
- package/client/dist/assets/agent-DcsoTnuE.js +1 -0
- package/client/dist/assets/agent-GDZoYwd4.js +1 -0
- package/client/dist/assets/{agentRuntime-es2ymSl-.js → agentRuntime-BYH70bKY.js} +1 -1
- package/client/dist/assets/agentRuntime-BijLh8I9.js +1 -0
- package/client/dist/assets/{agentRuntime-BzuwQQgn.js → agentRuntime-BvyuETPe.js} +1 -1
- package/client/dist/assets/{agentRuntime-BDvbJMmS.js → agentRuntime-C2WI6HQh.js} +1 -1
- package/client/dist/assets/{agentRuntime-BKJfv5YD.js → agentRuntime-CZPIlQsr.js} +1 -1
- package/client/dist/assets/{agentRuntime-DiCldqGG.js → agentRuntime-D2dDvCyJ.js} +1 -1
- package/client/dist/assets/agentRuntime-DWZedEbn.js +1 -0
- package/client/dist/assets/agentRuntime-DkIruUNw.js +1 -0
- package/client/dist/assets/agents-35_PDKx9.js +1 -0
- package/client/dist/assets/agents-8fZnHhEQ.js +1 -0
- package/client/dist/assets/agents-Bgimtw8z.js +1 -0
- package/client/dist/assets/agents-C4P160Us.js +1 -0
- package/client/dist/assets/agents-Clg67zbp.js +1 -0
- package/client/dist/assets/agents-DJfF4o6G.js +1 -0
- package/client/dist/assets/agents-Dc9-Y5cw.js +1 -0
- package/client/dist/assets/agents-EN1Zl4YZ.js +1 -0
- package/client/dist/assets/agentstudio-Bm4-NYaG.js +1 -0
- package/client/dist/assets/agentstudio-CD1fuj2o.js +1 -0
- package/client/dist/assets/agentstudio-CQGWFSst.js +1 -0
- package/client/dist/assets/agentstudio-CqVSb65S.js +1 -0
- package/client/dist/assets/agentstudio-DIE_HjsX.js +1 -0
- package/client/dist/assets/agentstudio-D_OmQK-k.js +1 -0
- package/client/dist/assets/agentstudio-Djz9aUfb.js +1 -0
- package/client/dist/assets/agentstudio-Qa3v9o5J.js +1 -0
- package/client/dist/assets/{aiedit-DNXxq_Dr.js → aiedit-1VzLs37W.js} +1 -1
- package/client/dist/assets/{aiedit-DCjA7jLJ.js → aiedit-BNp6GSik.js} +1 -1
- package/client/dist/assets/{aiedit-BoG24nlg.js → aiedit-BOY5xRPi.js} +1 -1
- package/client/dist/assets/{aiedit-iIjz2_Qk.js → aiedit-BrqMZvbc.js} +1 -1
- package/client/dist/assets/{aiedit-CjlSRQVP.js → aiedit-CVgtl7hm.js} +1 -1
- package/client/dist/assets/{aiedit-DQ-0_pvE.js → aiedit-CrFW9Jd2.js} +1 -1
- package/client/dist/assets/{aiedit-olnv3QSt.js → aiedit-YE2lILp7.js} +1 -1
- package/client/dist/assets/{aiedit-B0KUbpB6.js → aiedit-iA_R1AVQ.js} +1 -1
- package/client/dist/assets/analytics-3w0t-4ic.js +1 -0
- package/client/dist/assets/analytics-BRi4KQD6.js +1 -0
- package/client/dist/assets/analytics-BtjAqzke.js +1 -0
- package/client/dist/assets/analytics-COSQ1h47.js +1 -0
- package/client/dist/assets/analytics-CP2HjESk.js +1 -0
- package/client/dist/assets/analytics-DY65TC62.js +1 -0
- package/client/dist/assets/analytics-Den_vvxn.js +1 -0
- package/client/dist/assets/analytics-LmBS96O8.js +1 -0
- package/client/dist/assets/api-DOGbyfTO.js +2 -0
- package/client/dist/assets/builder-BMVvSr4v.js +1 -0
- package/client/dist/assets/builder-BN-MuLZt.js +1 -0
- package/client/dist/assets/builder-BQOZi4CF.js +1 -0
- package/client/dist/assets/builder-BjUPjsyu.js +1 -0
- package/client/dist/assets/builder-BoBtN18T.js +1 -0
- package/client/dist/assets/builder-C5g5NhxL.js +1 -0
- package/client/dist/assets/builder-RUHXw3yx.js +1 -0
- package/client/dist/assets/builder-fyS_AiyC.js +1 -0
- package/client/dist/assets/button-CHPkroew.js +1 -0
- package/client/dist/assets/chat-C9L5T7KI.js +1 -0
- package/client/dist/assets/chevron-right-CwMAj0w_.js +1 -0
- package/client/dist/assets/chevron-up-BAMuP0XD.js +1 -0
- package/client/dist/assets/chunk-OB3PAWPO-BBaq6pUk.js +3 -0
- package/client/dist/assets/code-4le5IIbf.js +1 -0
- package/client/dist/assets/code-B-jCVIbm.js +1 -0
- package/client/dist/assets/code-BRfrn5ix.js +1 -0
- package/client/dist/assets/code-CC9NCrDM.js +1 -0
- package/client/dist/assets/code-CK6pm8wY.js +1 -0
- package/client/dist/assets/code-DDiOzd6c.js +1 -0
- package/client/dist/assets/code-tGifiyf5.js +1 -0
- package/client/dist/assets/code-xkn8kQTg.js +1 -0
- package/client/dist/assets/commands-Bv1QshHR.js +1 -0
- package/client/dist/assets/commands-BvxTxboW.js +1 -0
- package/client/dist/assets/commands-C5ORR0fO.js +1 -0
- package/client/dist/assets/commands-CBKMFSTV.js +1 -0
- package/client/dist/assets/commands-CFJIRsJv.js +1 -0
- package/client/dist/assets/commands-D9o3ZcXl.js +1 -0
- package/client/dist/assets/commands-DNox0Edk.js +1 -0
- package/client/dist/assets/commands-DmIUMLdV.js +1 -0
- package/client/dist/assets/common-5H4TkaoI.js +1 -0
- package/client/dist/assets/common-9S3OdPjx.js +1 -0
- package/client/dist/assets/common-BqnwIcjs.js +1 -0
- package/client/dist/assets/common-CQP3VafS.js +1 -0
- package/client/dist/assets/common-CZnAfkB2.js +1 -0
- package/client/dist/assets/common-D5sNttV4.js +1 -0
- package/client/dist/assets/common-k_qX9nlv.js +1 -0
- package/client/dist/assets/common-s4HIi9XI.js +1 -0
- package/client/dist/assets/compass-B7guwBlY.js +1 -0
- package/client/dist/assets/confirm-dialog-ChZdHL3Q.js +1 -0
- package/client/dist/assets/copy-DOPlLymH.js +1 -0
- package/client/dist/assets/core-BozBzB6Y.js +1 -0
- package/client/dist/assets/dashboard-6zGLGcEz.js +1 -0
- package/client/dist/assets/dashboard-8Gi0FBDq.js +1 -0
- package/client/dist/assets/dashboard-B7E5YrSy.js +1 -0
- package/client/dist/assets/dashboard-BhdKV8xK.js +1 -0
- package/client/dist/assets/dashboard-Bu3zzH_s.js +1 -0
- package/client/dist/assets/dashboard-Ce_6rELA.js +1 -0
- package/client/dist/assets/dashboard-DWY-oz8P.js +1 -0
- package/client/dist/assets/dashboard-gUzlWk0o.js +1 -0
- package/client/dist/assets/date-input-Cdlr8kHz.js +1 -0
- package/client/dist/assets/dialog-C23lB2iP.js +5 -0
- package/client/dist/assets/dist-Di-oOFkX.js +1 -0
- package/client/dist/assets/dist-js-CBmS6MsJ.js +1 -0
- package/client/dist/assets/{dist-js-Rlh4FLH5.js → dist-js-DaJmKapi.js} +1 -1
- package/client/dist/assets/dropdown-menu-Bfp2CK6H.js +1 -0
- package/client/dist/assets/empty-state-D5w9OWj-.js +1 -0
- package/client/dist/assets/es2015-DfnECntk.js +41 -0
- package/client/dist/assets/esm-BKF6CE7v.js +1 -0
- package/client/dist/assets/event-BEnMLqAi.js +1 -0
- package/client/dist/assets/explore--NOz9LCN.js +1 -0
- package/client/dist/assets/explore-B2ulH6dO.js +1 -0
- package/client/dist/assets/explore-BD-QiLdg.js +1 -0
- package/client/dist/assets/explore-BOqd4_1j.js +1 -0
- package/client/dist/assets/explore-Be_Zh5zu.js +1 -0
- package/client/dist/assets/explore-CLjzPSKo.js +1 -0
- package/client/dist/assets/explore-D_-vHm29.js +1 -0
- package/client/dist/assets/explore-yEQTF6ro.js +1 -0
- package/client/dist/assets/file-text-CNXzL3wj.js +1 -0
- package/client/dist/assets/format-BODoFIw6.js +1 -0
- package/client/dist/assets/formatDistanceToNow-DLMIOS0N.js +1 -0
- package/client/dist/assets/getTimezoneOffsetInMilliseconds-O61feXch.js +1 -0
- package/client/dist/assets/git-compare-arrows-Cu6tICCq.js +1 -0
- package/client/dist/assets/humanise-command-CB4ybLwq.js +1 -0
- package/client/dist/assets/inbox-BLZ8cm6_.js +1 -0
- package/client/dist/assets/inbox-BQ3VmNYY.js +1 -0
- package/client/dist/assets/inbox-BdcXWCuT.js +1 -0
- package/client/dist/assets/inbox-CF1PHjns.js +1 -0
- package/client/dist/assets/inbox-CFNPDhso.js +1 -0
- package/client/dist/assets/inbox-DIttK_NW.js +1 -0
- package/client/dist/assets/inbox-Dfdv1Ykl.js +1 -0
- package/client/dist/assets/inbox-JS1inmeO.js +1 -0
- package/client/dist/assets/index-4UWY7Xyz.css +2 -0
- package/client/dist/assets/index-DHzB0T26.js +120 -0
- package/client/dist/assets/integrations-BcKgzgPD.js +1 -0
- package/client/dist/assets/integrations-BmX_XyJq.js +1 -0
- package/client/dist/assets/integrations-CHpwMjlY.js +1 -0
- package/client/dist/assets/integrations-CT3kr8e-.js +1 -0
- package/client/dist/assets/integrations-C_5XAkgz.js +1 -0
- package/client/dist/assets/integrations-Ct9zLX7N.js +1 -0
- package/client/dist/assets/integrations-DEYemxUv.js +1 -0
- package/client/dist/assets/integrations-DWvsB_WB.js +1 -0
- package/client/dist/assets/{jira-Cq6yvN4q.js → jira-B_ERkFRv.js} +1 -1
- package/client/dist/assets/jira-Bn-A5lwD.js +1 -0
- package/client/dist/assets/jira-C71Ybnhp.js +1 -0
- package/client/dist/assets/jira-CkwjeJz6.js +1 -0
- package/client/dist/assets/jira-D9pSLXjI.js +1 -0
- package/client/dist/assets/jira-DBRS_lcp.js +1 -0
- package/client/dist/assets/jira-DHS6CsKh.js +1 -0
- package/client/dist/assets/jira-MInHRUb1.js +1 -0
- package/client/dist/assets/jira-api-DHme7Upx.js +1 -0
- package/client/dist/assets/jobs-BMLTDo63.js +1 -0
- package/client/dist/assets/jobs-BO8q4Mi1.js +1 -0
- package/client/dist/assets/jobs-Ck8uOWMM.js +1 -0
- package/client/dist/assets/jobs-CyFfPCpg.js +1 -0
- package/client/dist/assets/jobs-DT5s4fZ6.js +1 -0
- package/client/dist/assets/jobs-DZAgVPcD.js +1 -0
- package/client/dist/assets/jobs-b5gPYaKr.js +1 -0
- package/client/dist/assets/jobs-xsZK1440.js +1 -0
- package/client/dist/assets/launch-forecast-BTa-p3RP.js +1 -0
- package/client/dist/assets/{loop-layout-DtxX27Jz.css → loop-layout-DLioOiRN.css} +1 -1
- package/client/dist/assets/loop-layout-Sl9cfTvs.js +7 -0
- package/client/dist/assets/loops-BEEOVJDR.js +1 -0
- package/client/dist/assets/loops-BcrQ2vk7.js +1 -0
- package/client/dist/assets/loops-BjWxzJIZ.js +1 -0
- package/client/dist/assets/loops-BogV595N.js +1 -0
- package/client/dist/assets/loops-CU0BLZiz.js +1 -0
- package/client/dist/assets/loops-CrNBgi1G.js +1 -0
- package/client/dist/assets/loops-CwalwS_i.js +1 -0
- package/client/dist/assets/loops-_TDVN-fX.js +1 -0
- package/client/dist/assets/mcp-BNs8gxoL.js +1 -0
- package/client/dist/assets/mcp-BvRh_xO5.js +1 -0
- package/client/dist/assets/mcp-C2F1pghi.js +1 -0
- package/client/dist/assets/mcp-D9RLKAs2.js +1 -0
- package/client/dist/assets/mcp-DAghcsR0.js +1 -0
- package/client/dist/assets/mcp-DWWAPi1G.js +1 -0
- package/client/dist/assets/mcp-DbGSFC3f.js +1 -0
- package/client/dist/assets/mcp-FelCicrv.js +1 -0
- package/client/dist/assets/narration-C3NBkAR4.js +1 -0
- package/client/dist/assets/narration-CkoJq-Lf.js +1 -0
- package/client/dist/assets/narration-Cr0NeW9K.js +1 -0
- package/client/dist/assets/narration-DJUXOs-W.js +1 -0
- package/client/dist/assets/narration-DgL8TMvN.js +1 -0
- package/client/dist/assets/narration-DjBafgv0.js +1 -0
- package/client/dist/assets/narration-Dle6Iv0c.js +1 -0
- package/client/dist/assets/narration-MYlfktga.js +1 -0
- package/client/dist/assets/nav-BSQ8KW1c.js +1 -0
- package/client/dist/assets/nav-BauVof8Z.js +1 -0
- package/client/dist/assets/nav-BfOAH1se.js +1 -0
- package/client/dist/assets/nav-D3bOsipX.js +1 -0
- package/client/dist/assets/nav-DOMMhlLx.js +1 -0
- package/client/dist/assets/nav-DPzVlgZU.js +1 -0
- package/client/dist/assets/nav-DZJbFbah.js +1 -0
- package/client/dist/assets/nav-D_5aojd2.js +1 -0
- package/client/dist/assets/notify-error-BsWANx1T.js +1 -0
- package/client/dist/assets/onboarding-BdZQnNm3.js +1 -0
- package/client/dist/assets/onboarding-CJQEv1vp.js +1 -0
- package/client/dist/assets/onboarding-CWJGYUW3.js +1 -0
- package/client/dist/assets/onboarding-ChfYN7dA.js +1 -0
- package/client/dist/assets/onboarding-CjvDUR3V.js +1 -0
- package/client/dist/assets/onboarding-I6vS-zTB.js +1 -0
- package/client/dist/assets/onboarding-dgC_9dTB.js +1 -0
- package/client/dist/assets/onboarding-mlXSyKzX.js +1 -0
- package/client/dist/assets/origin-03nTuaOb.js +1 -0
- package/client/dist/assets/packet-BjpyRnZr.js +1 -0
- package/client/dist/assets/packet-BwgG5mBt.js +1 -0
- package/client/dist/assets/packet-C3eAUFkV.js +1 -0
- package/client/dist/assets/packet-C8wZuSld.js +1 -0
- package/client/dist/assets/packet-CNXEy_85.js +1 -0
- package/client/dist/assets/packet-DsV5Aa_8.js +1 -0
- package/client/dist/assets/packet-aasskOE7.js +1 -0
- package/client/dist/assets/packet-phxCc2gJ.js +1 -0
- package/client/dist/assets/page-header-BStSHkP8.js +1 -0
- package/client/dist/assets/project-repositories-DJPeAVBK.js +1 -0
- package/client/dist/assets/{provider-capabilities-lePfeT_Y.js → provider-capabilities-DtwcTme4.js} +1 -1
- package/client/dist/assets/recovery-BPDOsC92.js +1 -0
- package/client/dist/assets/recovery-BluNHoXM.js +1 -0
- package/client/dist/assets/recovery-CRvEmB0C.js +1 -0
- package/client/dist/assets/recovery-CeIoRnkR.js +1 -0
- package/client/dist/assets/recovery-DHCo8KGi.js +1 -0
- package/client/dist/assets/recovery-OxAIpbBF.js +1 -0
- package/client/dist/assets/recovery-XXexYGOJ.js +1 -0
- package/client/dist/assets/recovery-pITlc--v.js +1 -0
- package/client/dist/assets/refresh-cw-DfyTkbsf.js +1 -0
- package/client/dist/assets/select-xA3pSmqE.js +1 -0
- package/client/dist/assets/settings--yzDbX9r.js +1 -0
- package/client/dist/assets/settings-5_heTv8s.js +1 -0
- package/client/dist/assets/settings-BSf27MDg.js +1 -0
- package/client/dist/assets/settings-BSj6FakR.js +1 -0
- package/client/dist/assets/settings-BZDo_8Nn.js +1 -0
- package/client/dist/assets/settings-BdWgmNc0.js +1 -0
- package/client/dist/assets/settings-DRouxKqb.js +1 -0
- package/client/dist/assets/settings-DnWFoY-F.js +1 -0
- package/client/dist/assets/setup-BJWy62ri.js +1 -0
- package/client/dist/assets/setup-BgKOIuzc.js +1 -0
- package/client/dist/assets/setup-BvVIyUlz.js +1 -0
- package/client/dist/assets/setup-BxCk2pe1.js +1 -0
- package/client/dist/assets/setup-C-xQTL7R.js +1 -0
- package/client/dist/assets/setup-CbaVoiwV.js +1 -0
- package/client/dist/assets/setup-DxTBkX3P.js +1 -0
- package/client/dist/assets/setup-oGoVAzOD.js +1 -0
- package/client/dist/assets/specs-7tAb4IKr.js +1 -0
- package/client/dist/assets/specs-BUcY4s5v.js +1 -0
- package/client/dist/assets/specs-Bk5LeBAA.js +1 -0
- package/client/dist/assets/specs-CAA4Lrlg.js +1 -0
- package/client/dist/assets/specs-CS091AnA.js +1 -0
- package/client/dist/assets/specs-DJ6gmFcK.js +1 -0
- package/client/dist/assets/specs-GfCcrBSC.js +1 -0
- package/client/dist/assets/specs-xQgyc7WL.js +1 -0
- package/client/dist/assets/spending-CVH8VREb.js +1 -0
- package/client/dist/assets/square-Co6h5vZg.js +1 -0
- package/client/dist/assets/tauri-shell-43ixPGfa.js +2 -0
- package/client/dist/assets/terminal-0v9sBylD.js +1 -0
- package/client/dist/assets/terminal-AbUAmCxE.js +1 -0
- package/client/dist/assets/terminal-BJayIbIP.js +1 -0
- package/client/dist/assets/terminal-C2RUlXyi.js +1 -0
- package/client/dist/assets/terminal-CMmSb_Nj.js +1 -0
- package/client/dist/assets/terminal-DKWjj7HJ.js +1 -0
- package/client/dist/assets/terminal-KlFu7_pV.js +1 -0
- package/client/dist/assets/terminal-i99yqFvm.js +1 -0
- package/client/dist/assets/tickets-846Oq3i3.js +1 -0
- package/client/dist/assets/tickets-B5LJTe_b.js +1 -0
- package/client/dist/assets/tickets-Bfo2GGmH.js +1 -0
- package/client/dist/assets/tickets-BhdZ1yY2.js +1 -0
- package/client/dist/assets/tickets-CgjWJHAW.js +1 -0
- package/client/dist/assets/tickets-Ct9DbDUR.js +1 -0
- package/client/dist/assets/tickets-rptLEJB1.js +1 -0
- package/client/dist/assets/tickets-xQ6DpYdu.js +1 -0
- package/client/dist/assets/trending-up-BGvb4zZt.js +1 -0
- package/client/dist/assets/undo-6zuS4-sL.js +1 -0
- package/client/dist/assets/undo-BeM4gDOP.js +1 -0
- package/client/dist/assets/undo-BeppX8xS.js +1 -0
- package/client/dist/assets/undo-BqvNZ5MG.js +1 -0
- package/client/dist/assets/undo-BzwEPf_k.js +1 -0
- package/client/dist/assets/undo-CJ9Cu1NN.js +1 -0
- package/client/dist/assets/undo-ds8nMFbX.js +1 -0
- package/client/dist/assets/undo-x_gA-knG.js +1 -0
- package/client/dist/assets/useDesktop-BuOp2-MR.js +1 -0
- package/client/dist/assets/useRuntimeRuns-BRS6ncnO.js +1 -0
- package/client/dist/assets/utils-ELimjS2Y.js +1 -0
- package/client/dist/assets/wrench-Br2n1Lxd.js +1 -0
- package/client/dist/index.html +75 -60
- package/docs/ci-cd.md +29 -1
- package/docs/cli.md +10 -31
- package/docs/codex.md +1 -1
- package/docs/creating-specs.md +15 -12
- package/docs/customizing.md +16 -13
- package/docs/getting-started.md +12 -11
- package/docs/guide/de/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/de/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/de/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/de/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/de/getting-started/6-universal-search.md +34 -0
- package/docs/guide/de/insights/1-analytics-and-cost-tracking.md +20 -6
- package/docs/guide/de/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/de/insights/3-code-explorer.md +1 -1
- package/docs/guide/de/integrations/1-ai-providers.md +1 -1
- package/docs/guide/de/integrations/2-plugins.md +1 -1
- package/docs/guide/de/integrations/3-jira-integration.md +3 -3
- package/docs/guide/de/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/de/integrations/5-mcp-server.md +1 -1
- package/docs/guide/de/integrations/6-agent-chat.md +12 -5
- package/docs/guide/de/integrations/8-flow-mode.md +69 -0
- package/docs/guide/de/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/de/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/de/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/de/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/de/settings/1-themes.md +1 -1
- package/docs/guide/de/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/de/settings/5-project-environment.md +1 -1
- package/docs/guide/de/settings/6-updates.md +24 -0
- package/docs/guide/de/settings/7-existing-projects.md +33 -0
- package/docs/guide/de/settings/8-accessibility.md +23 -0
- package/docs/guide/de/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/de/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/de/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/en/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/en/getting-started/1-what-is-specrails.md +1 -1
- package/docs/guide/en/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/en/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/en/getting-started/5-the-dashboard-tour.md +52 -0
- package/docs/guide/en/getting-started/6-universal-search.md +34 -0
- package/docs/guide/en/insights/1-analytics-and-cost-tracking.md +24 -10
- package/docs/guide/en/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/en/insights/3-code-explorer.md +5 -5
- package/docs/guide/en/integrations/1-ai-providers.md +1 -1
- package/docs/guide/en/integrations/2-plugins.md +1 -1
- package/docs/guide/en/integrations/3-jira-integration.md +4 -4
- package/docs/guide/en/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/en/integrations/5-mcp-server.md +4 -4
- package/docs/guide/en/integrations/6-agent-chat.md +12 -5
- package/docs/guide/en/integrations/8-flow-mode.md +69 -0
- package/docs/guide/en/pipeline/1-rails-and-jobs.md +22 -3
- package/docs/guide/en/pipeline/2-the-job-detail-view.md +19 -7
- package/docs/guide/en/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/en/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/en/settings/1-themes.md +1 -1
- package/docs/guide/en/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/en/settings/5-project-environment.md +1 -1
- package/docs/guide/en/settings/6-updates.md +24 -0
- package/docs/guide/en/settings/7-existing-projects.md +33 -0
- package/docs/guide/en/settings/8-accessibility.md +23 -0
- package/docs/guide/en/specs/1-specs-and-the-backlog.md +42 -6
- package/docs/guide/en/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/en/specs/3-add-spec-explore-mode.md +2 -2
- package/docs/guide/es/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/es/agents/3-customizing-models-per-agent.md +2 -2
- package/docs/guide/es/agents/4-custom-agents-catalog.md +1 -1
- package/docs/guide/es/getting-started/1-what-is-specrails.md +3 -3
- package/docs/guide/es/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/es/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/es/getting-started/5-the-dashboard-tour.md +52 -0
- package/docs/guide/es/getting-started/6-universal-search.md +34 -0
- package/docs/guide/es/insights/1-analytics-and-cost-tracking.md +26 -12
- package/docs/guide/es/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/es/insights/3-code-explorer.md +5 -5
- package/docs/guide/es/integrations/1-ai-providers.md +1 -1
- package/docs/guide/es/integrations/2-plugins.md +1 -1
- package/docs/guide/es/integrations/3-jira-integration.md +4 -4
- package/docs/guide/es/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/es/integrations/5-mcp-server.md +4 -4
- package/docs/guide/es/integrations/6-agent-chat.md +14 -7
- package/docs/guide/es/integrations/7-local-engines.md +1 -1
- package/docs/guide/es/integrations/8-flow-mode.md +69 -0
- package/docs/guide/es/pipeline/1-rails-and-jobs.md +33 -13
- package/docs/guide/es/pipeline/2-the-job-detail-view.md +38 -26
- package/docs/guide/es/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/es/pipeline/5-the-loop-builder.md +4 -4
- package/docs/guide/es/settings/1-themes.md +1 -1
- package/docs/guide/es/settings/3-pipeline-telemetry-and-diagnostics.md +10 -10
- package/docs/guide/es/settings/5-project-environment.md +1 -1
- package/docs/guide/es/settings/6-updates.md +24 -0
- package/docs/guide/es/settings/7-existing-projects.md +33 -0
- package/docs/guide/es/settings/8-accessibility.md +23 -0
- package/docs/guide/es/specs/1-specs-and-the-backlog.md +43 -7
- package/docs/guide/es/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/es/specs/3-add-spec-explore-mode.md +3 -3
- package/docs/guide/fr/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/fr/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/fr/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/fr/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/fr/getting-started/6-universal-search.md +34 -0
- package/docs/guide/fr/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/fr/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/fr/insights/3-code-explorer.md +1 -1
- package/docs/guide/fr/integrations/1-ai-providers.md +1 -1
- package/docs/guide/fr/integrations/2-plugins.md +1 -1
- package/docs/guide/fr/integrations/3-jira-integration.md +3 -3
- package/docs/guide/fr/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/fr/integrations/5-mcp-server.md +1 -1
- package/docs/guide/fr/integrations/6-agent-chat.md +11 -4
- package/docs/guide/fr/integrations/8-flow-mode.md +69 -0
- package/docs/guide/fr/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/fr/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/fr/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/fr/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/fr/settings/1-themes.md +1 -1
- package/docs/guide/fr/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/fr/settings/5-project-environment.md +1 -1
- package/docs/guide/fr/settings/6-updates.md +24 -0
- package/docs/guide/fr/settings/7-existing-projects.md +33 -0
- package/docs/guide/fr/settings/8-accessibility.md +23 -0
- package/docs/guide/fr/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/fr/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/fr/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/it/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/it/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/it/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/it/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/it/getting-started/6-universal-search.md +34 -0
- package/docs/guide/it/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/it/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/it/insights/3-code-explorer.md +1 -1
- package/docs/guide/it/integrations/1-ai-providers.md +1 -1
- package/docs/guide/it/integrations/2-plugins.md +1 -1
- package/docs/guide/it/integrations/3-jira-integration.md +3 -3
- package/docs/guide/it/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/it/integrations/5-mcp-server.md +1 -1
- package/docs/guide/it/integrations/6-agent-chat.md +11 -4
- package/docs/guide/it/integrations/8-flow-mode.md +69 -0
- package/docs/guide/it/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/it/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/it/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/it/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/it/settings/1-themes.md +1 -1
- package/docs/guide/it/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/it/settings/5-project-environment.md +1 -1
- package/docs/guide/it/settings/6-updates.md +24 -0
- package/docs/guide/it/settings/7-existing-projects.md +33 -0
- package/docs/guide/it/settings/8-accessibility.md +23 -0
- package/docs/guide/it/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/it/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/it/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/ja/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/ja/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/ja/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/ja/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/ja/getting-started/6-universal-search.md +34 -0
- package/docs/guide/ja/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/ja/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/ja/insights/3-code-explorer.md +1 -1
- package/docs/guide/ja/integrations/1-ai-providers.md +1 -1
- package/docs/guide/ja/integrations/2-plugins.md +1 -1
- package/docs/guide/ja/integrations/3-jira-integration.md +3 -3
- package/docs/guide/ja/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/ja/integrations/5-mcp-server.md +1 -1
- package/docs/guide/ja/integrations/6-agent-chat.md +11 -4
- package/docs/guide/ja/integrations/8-flow-mode.md +69 -0
- package/docs/guide/ja/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/ja/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/ja/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/ja/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/ja/settings/1-themes.md +1 -1
- package/docs/guide/ja/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/ja/settings/5-project-environment.md +1 -1
- package/docs/guide/ja/settings/6-updates.md +24 -0
- package/docs/guide/ja/settings/7-existing-projects.md +33 -0
- package/docs/guide/ja/settings/8-accessibility.md +23 -0
- package/docs/guide/ja/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/ja/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/ja/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/pt/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/pt/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/pt/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/pt/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/pt/getting-started/6-universal-search.md +34 -0
- package/docs/guide/pt/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/pt/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/pt/insights/3-code-explorer.md +1 -1
- package/docs/guide/pt/integrations/1-ai-providers.md +1 -1
- package/docs/guide/pt/integrations/2-plugins.md +1 -1
- package/docs/guide/pt/integrations/3-jira-integration.md +3 -3
- package/docs/guide/pt/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/pt/integrations/5-mcp-server.md +1 -1
- package/docs/guide/pt/integrations/6-agent-chat.md +12 -5
- package/docs/guide/pt/integrations/8-flow-mode.md +69 -0
- package/docs/guide/pt/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/pt/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/pt/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/pt/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/pt/settings/1-themes.md +1 -1
- package/docs/guide/pt/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/pt/settings/5-project-environment.md +1 -1
- package/docs/guide/pt/settings/6-updates.md +24 -0
- package/docs/guide/pt/settings/7-existing-projects.md +33 -0
- package/docs/guide/pt/settings/8-accessibility.md +23 -0
- package/docs/guide/pt/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/pt/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/pt/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/zh/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/zh/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/zh/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/zh/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/zh/getting-started/6-universal-search.md +34 -0
- package/docs/guide/zh/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/zh/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/zh/insights/3-code-explorer.md +1 -1
- package/docs/guide/zh/integrations/1-ai-providers.md +1 -1
- package/docs/guide/zh/integrations/2-plugins.md +1 -1
- package/docs/guide/zh/integrations/3-jira-integration.md +3 -3
- package/docs/guide/zh/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/zh/integrations/5-mcp-server.md +1 -1
- package/docs/guide/zh/integrations/6-agent-chat.md +11 -4
- package/docs/guide/zh/integrations/8-flow-mode.md +69 -0
- package/docs/guide/zh/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/zh/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/zh/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/zh/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/zh/settings/1-themes.md +1 -1
- package/docs/guide/zh/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/zh/settings/5-project-environment.md +1 -1
- package/docs/guide/zh/settings/6-updates.md +24 -0
- package/docs/guide/zh/settings/7-existing-projects.md +33 -0
- package/docs/guide/zh/settings/8-accessibility.md +23 -0
- package/docs/guide/zh/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/zh/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/zh/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/internals/README.md +8 -0
- package/docs/internals/adding-a-provider.md +19 -2
- package/docs/internals/agent-actions-audit.md +101 -0
- package/docs/internals/agent-sessions.md +36 -1
- package/docs/internals/api-reference.md +190 -45
- package/docs/internals/architecture.md +53 -47
- package/docs/internals/companion-inbox-decisions.md +42 -0
- package/docs/internals/companion-rails-as-loops-contract.md +17 -6
- package/docs/internals/configuration.md +140 -9
- package/docs/internals/core-runtime-updates.md +4 -4
- package/docs/internals/existing-project-anchoring.md +168 -0
- package/docs/internals/flow-mode.md +668 -0
- package/docs/internals/legacy-implementation-notes.md +13 -0
- package/docs/internals/local-testing-feedback-2026-10.md +210 -0
- package/docs/internals/mcp-mission-audit.md +4 -0
- package/docs/internals/mission-rail-cards.md +10 -5
- package/docs/internals/mission-read-only-policy.md +152 -0
- package/docs/internals/modal-standard.md +181 -0
- package/docs/internals/openspec-workflow.md +32 -0
- package/docs/internals/operations-runbook.md +30 -0
- package/docs/internals/profiles.md +6 -3
- package/docs/internals/programmatic-agent-runtime.md +8 -0
- package/docs/internals/project-builder.md +1 -1
- package/docs/internals/review-packet.md +161 -9
- package/docs/internals/safe-pr-review-flow.md +135 -6
- package/docs/internals/source-map.md +413 -18
- package/docs/internals/spec-addenda.md +10 -0
- package/docs/internals/spec-triage.md +140 -0
- package/docs/internals/visual-design-audit.md +15 -2
- package/docs/local-providers.md +3 -0
- package/docs/mcp.md +21 -3
- package/docs/platforms/macos.md +1 -1
- package/docs/platforms/windows.md +2 -2
- package/docs/running-pipelines.md +22 -6
- package/docs/tracking-cost.md +54 -10
- package/local-runner/dist/specrails-local-runner.js +3851 -1178
- package/mcp-bridge/dist/specrails-mcp.js +3864 -1143
- package/package.json +10 -9
- package/server/dist/agent-mcp-config.js +37 -1
- package/server/dist/api-version.js +19 -0
- package/server/dist/command-resolver.js +4 -2
- package/server/dist/core-compat.js +1 -1
- package/server/dist/core-execution.js +2 -1
- package/server/dist/core-update-manager.js +71 -13
- package/server/dist/db/job-search.js +248 -0
- package/server/dist/db/jobs.js +6 -0
- package/server/dist/db/migrations.js +239 -0
- package/server/dist/db.js +9 -2
- package/server/dist/desktop-db.js +99 -5
- package/server/dist/desktop-router.js +126 -13
- package/server/dist/docs-router.js +67 -1
- package/server/dist/feature-flags.js +22 -0
- package/server/dist/index.js +30 -15
- package/server/dist/jira/jira-adf.js +13 -1
- package/server/dist/jira/jira-clarifications.js +146 -0
- package/server/dist/jira/jira-client.js +8 -1
- package/server/dist/jira/jira-db.js +41 -0
- package/server/dist/jira/jira-sync-manager.js +328 -25
- package/server/dist/mcp/guide.js +17 -7
- package/server/dist/mcp/tools/agents.js +1 -1
- package/server/dist/mcp/tools/analytics.js +15 -3
- package/server/dist/mcp/tools/app-settings.js +14 -1
- package/server/dist/mcp/tools/chat.js +1 -1
- package/server/dist/mcp/tools/env.js +4 -2
- package/server/dist/mcp/tools/jobs.js +96 -7
- package/server/dist/mcp/tools/loops.js +1 -1
- package/server/dist/mcp/tools/meta.js +10 -13
- package/server/dist/mcp/tools/rails.js +15 -1
- package/server/dist/mcp/tools/setup.js +1 -1
- package/server/dist/mcp/tools/specs.js +8 -5
- package/server/dist/mcp/tools/support.js +6 -3
- package/server/dist/mcp/tools/types.js +38 -1
- package/server/dist/mobile/mobile-admin-router.js +0 -16
- package/server/dist/mobile/mobile-gateway.js +0 -18
- package/server/dist/mobile/mobile-inbox.js +240 -0
- package/server/dist/mobile/mobile-missions.js +6 -8
- package/server/dist/mobile/mobile-router.js +9 -9
- package/server/dist/mobile/mobile-webrtc-peer.js +4 -54
- package/server/dist/mobile/mobile-ws.js +27 -4
- package/server/dist/modules/accounting/runtime/ai-invocations.js +4 -0
- package/server/dist/modules/accounting/runtime/decision-times.js +102 -0
- package/server/dist/modules/accounting/runtime/loop-economics.js +284 -0
- package/server/dist/modules/accounting/runtime/spending.js +7 -2
- package/server/dist/modules/accounting/runtime/what-if.js +87 -0
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-bridge.js +86 -5
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-controls.js +28 -2
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-metrics.js +15 -2
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings-router.js +21 -2
- package/server/dist/modules/agent-runtime/runtime/core-capabilities.js +55 -0
- package/server/dist/modules/agent-sessions/adapters/host-process.js +1 -1
- package/server/dist/modules/agent-sessions/domain/availability.js +16 -0
- package/server/dist/modules/agent-sessions/domain/protocol.js +8 -1
- package/server/dist/modules/agent-sessions/index.js +3 -1
- package/server/dist/modules/agent-sessions/runtime/core-sessions-availability.js +16 -0
- package/server/dist/modules/agents/runtime/agent-refine-manager.js +3 -1
- package/server/dist/modules/agents/runtime/agent-store.js +60 -73
- package/server/dist/modules/audit/adapters/http.js +66 -0
- package/server/dist/modules/audit/adapters/runtime.js +60 -0
- package/server/dist/modules/audit/adapters/sqlite.js +73 -0
- package/server/dist/modules/audit/application.js +190 -0
- package/server/dist/modules/audit/domain.js +434 -0
- package/server/dist/modules/audit/index.js +27 -0
- package/server/dist/modules/audit/ports.js +2 -0
- package/server/dist/modules/browser/runtime/browser-capture-manager.js +18 -141
- package/server/dist/modules/browser/runtime/browser-capture-types.js +1 -10
- package/server/dist/modules/browser/runtime/browser-playwright.js +0 -19
- package/server/dist/modules/code/runtime/file-provenance.js +23 -0
- package/server/dist/modules/conversations/runtime/chat-manager.js +5 -2
- package/server/dist/modules/delivery/adapters/decisions/chains.js +1 -0
- package/server/dist/modules/delivery/adapters/decisions/create.js +19 -1
- package/server/dist/modules/delivery/adapters/decisions/discard.js +2 -0
- package/server/dist/modules/delivery/adapters/decisions/local-changes.js +427 -0
- package/server/dist/modules/delivery/adapters/decisions/merge-local.js +80 -6
- package/server/dist/modules/delivery/adapters/decisions/observations.js +5 -0
- package/server/dist/modules/delivery/adapters/decisions/ownership.js +2 -1
- package/server/dist/modules/delivery/adapters/decisions/transitions.js +9 -0
- package/server/dist/modules/delivery/adapters/review-wip-store.js +37 -0
- package/server/dist/modules/delivery/domain/review-wip.js +71 -0
- package/server/dist/modules/delivery/index.js +9 -1
- package/server/dist/modules/delivery/runtime/delivery-changes.js +355 -0
- package/server/dist/modules/delivery/runtime/delivery-evidence.js +249 -8
- package/server/dist/modules/delivery/runtime/flow-review-legacy.js +99 -0
- package/server/dist/modules/delivery/runtime/flow-review-outcome.js +107 -0
- package/server/dist/modules/delivery/runtime/flow-worktree-handoff.js +32 -0
- package/server/dist/modules/delivery/runtime/flow-worktree-return.js +87 -0
- package/server/dist/modules/delivery/runtime/isolated-worktree.js +380 -0
- package/server/dist/modules/delivery/runtime/local-restore-branch.js +325 -0
- package/server/dist/modules/delivery/runtime/local-restore-resolver.js +48 -0
- package/server/dist/modules/delivery/runtime/local-stash.js +423 -0
- package/server/dist/modules/delivery/runtime/multi-repo-execution.js +27 -1
- package/server/dist/modules/delivery/runtime/phase3-harvest.js +40 -0
- package/server/dist/modules/delivery/runtime/pr-body.js +50 -0
- package/server/dist/modules/delivery/runtime/rail-isolated-launch.js +169 -166
- package/server/dist/modules/delivery/runtime/rail-launch-parser.js +5 -2
- package/server/dist/modules/delivery/runtime/rail-pr-decision.js +7 -1
- package/server/dist/modules/delivery/runtime/rail-pr-store.js +193 -12
- package/server/dist/modules/delivery/runtime/rails-router.js +267 -5
- package/server/dist/modules/delivery/runtime/review-brief.js +208 -0
- package/server/dist/modules/delivery/runtime/review-packet.js +41 -2
- package/server/dist/modules/delivery/runtime/review-wip-gate.js +67 -0
- package/server/dist/modules/delivery/runtime/run-records.js +267 -0
- package/server/dist/modules/delivery/runtime/run-review-diagnosis.js +102 -0
- package/server/dist/modules/execution/adapters/budget-storage.js +76 -0
- package/server/dist/modules/execution/application/enforce-budget.js +17 -2
- package/server/dist/modules/execution/domain/agent-env.js +98 -0
- package/server/dist/modules/execution/domain/daily-budget.js +36 -0
- package/server/dist/modules/execution/domain/spend-caps.js +166 -0
- package/server/dist/modules/execution/index.js +34 -1
- package/server/dist/modules/execution/runtime/budget-overview.js +76 -0
- package/server/dist/modules/execution/runtime/daily-budget-gate.js +86 -0
- package/server/dist/modules/execution/runtime/interactive-job-session.js +8 -0
- package/server/dist/modules/execution/runtime/launch-forecast.js +33 -0
- package/server/dist/modules/execution/runtime/queue-manager.js +54 -15
- package/server/dist/modules/execution/runtime/run-duration-stats.js +31 -13
- package/server/dist/modules/flow/adapters/bindings.js +1089 -0
- package/server/dist/modules/flow/adapters/http.js +147 -0
- package/server/dist/modules/flow/adapters/sqlite.js +121 -0
- package/server/dist/modules/flow/application.js +805 -0
- package/server/dist/modules/flow/domain.js +790 -0
- package/server/dist/modules/flow/index.js +34 -0
- package/server/dist/modules/flow/ports.js +2 -0
- package/server/dist/modules/inbox/adapters/http.js +21 -0
- package/server/dist/modules/inbox/adapters/project-source.js +233 -0
- package/server/dist/modules/inbox/application.js +28 -0
- package/server/dist/modules/inbox/domain.js +43 -0
- package/server/dist/modules/inbox/index.js +10 -0
- package/server/dist/modules/inbox/ports.js +2 -0
- package/server/dist/modules/loops/runtime/loop-definition-run.js +9 -0
- package/server/dist/modules/loops/runtime/loop-definition.js +5 -2
- package/server/dist/modules/loops/runtime/loop-executors.js +90 -9
- package/server/dist/modules/loops/runtime/loop-factory.js +30 -2
- package/server/dist/modules/loops/runtime/loop-flow-spec-recipe.js +166 -0
- package/server/dist/modules/loops/runtime/loop-graph.js +1 -1
- package/server/dist/modules/loops/runtime/loop-role-engines.js +4 -1
- package/server/dist/modules/loops/runtime/loop-run-manager.js +267 -10
- package/server/dist/modules/loops/runtime/loop-runs-store.js +21 -5
- package/server/dist/modules/loops/runtime/loop-templates.js +55 -12
- package/server/dist/modules/missions/runtime/agent-chat-manager.js +283 -20
- package/server/dist/modules/missions/runtime/agent-chat-router.js +96 -21
- package/server/dist/modules/missions/runtime/agent-failure-briefing.js +11 -3
- package/server/dist/modules/missions/runtime/agent-fence-promotion.js +9 -1
- package/server/dist/modules/missions/runtime/agent-flow-prompt.js +64 -0
- package/server/dist/modules/missions/runtime/agent-input-store.js +9 -4
- package/server/dist/modules/missions/runtime/agent-operator-prompt.js +100 -14
- package/server/dist/modules/missions/runtime/agent-session-store.js +88 -27
- package/server/dist/modules/missions/runtime/core-session-runner.js +89 -9
- package/server/dist/modules/missions/runtime/flow-turn-context.js +17 -0
- package/server/dist/modules/missions/runtime/mission-core-sessions.js +295 -55
- package/server/dist/modules/missions/runtime/mission-run-notify.js +2 -0
- package/server/dist/modules/missions/runtime/mission-session-projector.js +56 -19
- package/server/dist/modules/missions/runtime/mission-tool-policy.js +47 -0
- package/server/dist/modules/onboarding/adapters/http.js +78 -0
- package/server/dist/modules/onboarding/adapters/providers.js +41 -0
- package/server/dist/modules/onboarding/adapters/runtime.js +130 -0
- package/server/dist/modules/onboarding/application.js +133 -0
- package/server/dist/modules/onboarding/catalog.js +217 -0
- package/server/dist/modules/onboarding/domain.js +102 -0
- package/server/dist/modules/onboarding/index.js +20 -0
- package/server/dist/modules/onboarding/ports.js +2 -0
- package/server/dist/modules/project-rules/adapters/http.js +91 -0
- package/server/dist/modules/project-rules/domain.js +122 -0
- package/server/dist/modules/project-rules/runtime/rules-inventory-runs.js +97 -0
- package/server/dist/modules/project-rules/runtime/rules-store.js +109 -0
- package/server/dist/modules/project-settings/adapters/http.js +13 -0
- package/server/dist/modules/project-settings/adapters/sqlite.js +78 -8
- package/server/dist/modules/project-settings/domain.js +47 -1
- package/server/dist/modules/project-settings/index.js +7 -1
- package/server/dist/modules/recovery/adapters/sqlite.js +28 -0
- package/server/dist/modules/recovery/domain.js +162 -0
- package/server/dist/modules/recovery/index.js +16 -0
- package/server/dist/modules/specs/adapters/timeline-http.js +101 -0
- package/server/dist/modules/specs/domain/handoff-labels.js +371 -0
- package/server/dist/modules/specs/domain/handoff.js +260 -0
- package/server/dist/modules/specs/domain/non-goals.js +101 -0
- package/server/dist/modules/specs/domain/timeline.js +164 -0
- package/server/dist/modules/specs/domain/triage.js +320 -0
- package/server/dist/modules/specs/runtime/contract-refine-runner.js +3 -2
- package/server/dist/modules/specs/runtime/generated-spec-parser.js +75 -0
- package/server/dist/modules/specs/runtime/proposal-manager.js +4 -3
- package/server/dist/modules/specs/runtime/smash-runner.js +2 -1
- package/server/dist/modules/specs/runtime/spec-addenda.js +31 -0
- package/server/dist/modules/specs/runtime/spec-draft-parser.js +6 -1
- package/server/dist/modules/specs/runtime/spec-generation.js +431 -0
- package/server/dist/modules/specs/runtime/spec-handoff.js +103 -0
- package/server/dist/modules/specs/runtime/spec-history.js +376 -0
- package/server/dist/modules/specs/runtime/spec-launcher-manager.js +4 -3
- package/server/dist/modules/specs/runtime/spec-search.js +117 -0
- package/server/dist/modules/specs/runtime/ticket-store.js +47 -2
- package/server/dist/modules/specs/runtime/ticket-trash-service.js +62 -0
- package/server/dist/modules/specs/runtime/ticket-trash.js +193 -0
- package/server/dist/modules/specs/runtime/triage-runner.js +171 -0
- package/server/dist/modules/specs/runtime/triage.js +365 -0
- package/server/dist/modules/terminals/domain/app-urls.js +96 -0
- package/server/dist/modules/terminals/runtime/app-urls.js +77 -0
- package/server/dist/modules/terminals/runtime/background-process-service.js +25 -28
- package/server/dist/openspec-shim.js +1 -1
- package/server/dist/project-env.js +60 -0
- package/server/dist/project-git.js +65 -0
- package/server/dist/project-registry.js +264 -27
- package/server/dist/project-router-background-processes.js +27 -3
- package/server/dist/project-router-git.js +30 -0
- package/server/dist/project-router-helpers.js +5 -30
- package/server/dist/project-router-jobs.js +49 -1
- package/server/dist/project-router-loop-runs.js +72 -2
- package/server/dist/project-router-rules.js +54 -0
- package/server/dist/project-router-search.js +52 -0
- package/server/dist/project-router-settings.js +6 -0
- package/server/dist/project-router-setup.js +1 -1
- package/server/dist/project-router-spending.js +138 -0
- package/server/dist/project-router-tickets.js +246 -427
- package/server/dist/project-router.js +7 -0
- package/server/dist/providers/claude-adapter.js +25 -3
- package/server/dist/providers/codex-adapter.js +9 -1
- package/server/dist/providers/gemini-adapter.js +6 -1
- package/server/dist/providers/kimi-adapter.js +2 -0
- package/server/dist/providers/local-adapter.js +2 -0
- package/server/dist/providers/runtime.js +8 -0
- package/server/dist/schemas/agent-runtime.schema.json +3 -1
- package/server/dist/schemas/workflow-definition.schema.json +1 -0
- package/server/dist/setup-manager.js +19 -1
- package/server/dist/transient-children.js +25 -8
- package/server/dist/update-channel.js +21 -0
- package/server/dist/util/search-snippet.js +74 -0
- package/server/dist/worktree-manager.js +19 -8
- package/client/dist/assets/ActivityFeedPage-Dtp7EyHc.js +0 -1
- package/client/dist/assets/AgentBrowserCapture-CLqlEFw8.js +0 -1
- package/client/dist/assets/AgentModeAnalyticsPane-B8_hM3Tw.js +0 -2
- package/client/dist/assets/AgentModeCodePane-CNF8ZNjE.js +0 -2
- package/client/dist/assets/AgentModeJobsPane-CJpJbO9m.js +0 -1
- package/client/dist/assets/AgentsPage-BC8XSR79.js +0 -120
- package/client/dist/assets/AnalyticsPage-Cdv4jLtW.js +0 -1
- package/client/dist/assets/BarChart-BDMqVFJy.js +0 -55
- package/client/dist/assets/CodePage-DI1kegAr.js +0 -3
- package/client/dist/assets/DesktopAnalyticsPage-Bdp8E8U6.js +0 -1
- package/client/dist/assets/DocsDialog-Bm4RS7FX.js +0 -11
- package/client/dist/assets/DocsPage-DihYcU8r.js +0 -11
- package/client/dist/assets/ExportDropdown-Bb1lHx3r.js +0 -1
- package/client/dist/assets/IntegrationsPage-EAipiDWm.js +0 -1
- package/client/dist/assets/InteractiveJobComposer-BO6ASN-2.js +0 -19
- package/client/dist/assets/JobDetailModal-CuPYq7tP.js +0 -1
- package/client/dist/assets/JobDetailPage-BusMjJi9.js +0 -1
- package/client/dist/assets/JobsPage-C0QbsF2d.js +0 -1
- package/client/dist/assets/LoopBuilderPage-B7TlU4iS.js +0 -1
- package/client/dist/assets/LoopPreviewModal-BRWtXOD2.js +0 -1
- package/client/dist/assets/LoopsPage-C4q1DmCE.js +0 -2
- package/client/dist/assets/MinimizedChatsContext-DHfigjHS.js +0 -1
- package/client/dist/assets/PluginsPage-Z1JHSMdR.js +0 -2
- package/client/dist/assets/ProjectSettingsDialog-BUNj0tvN.js +0 -1
- package/client/dist/assets/RepositoryDeliveries-B4ybHOyB.js +0 -5
- package/client/dist/assets/ReviewPacketPage-hwfPNjyy.js +0 -4
- package/client/dist/assets/TemplatePreviewModal-V7FpMWuw.js +0 -1
- package/client/dist/assets/TicketDetailModalContext-Dkwo2cDs.js +0 -16
- package/client/dist/assets/Trans-BbFxRFtR.js +0 -1
- package/client/dist/assets/activity-B-rp4h_v.js +0 -1
- package/client/dist/assets/activity-C6kJpm9q.js +0 -1
- package/client/dist/assets/activity-CGx4kb_j.js +0 -1
- package/client/dist/assets/activity-CnoX2bH7.js +0 -1
- package/client/dist/assets/activity-DAyekdlt.js +0 -1
- package/client/dist/assets/activity-DCxtpT7j.js +0 -1
- package/client/dist/assets/activity-DiyjsgQV.js +0 -1
- package/client/dist/assets/activity-JzwRaWPD.js +0 -1
- package/client/dist/assets/addspec-BOvgmcgk.js +0 -1
- package/client/dist/assets/addspec-Clmyfn_R.js +0 -1
- package/client/dist/assets/addspec-CsNaBpHp.js +0 -1
- package/client/dist/assets/addspec-D2tvWmmV.js +0 -1
- package/client/dist/assets/addspec-D3nFwvD0.js +0 -1
- package/client/dist/assets/addspec-DVLEhK3w.js +0 -1
- package/client/dist/assets/addspec-DXbK-tb0.js +0 -1
- package/client/dist/assets/addspec-OHG8DFEn.js +0 -1
- package/client/dist/assets/agent-5bSixVzz.js +0 -1
- package/client/dist/assets/agent-BR4EHfhq.js +0 -1
- package/client/dist/assets/agent-C0IKkJP8.js +0 -1
- package/client/dist/assets/agent-C7li9ayC.js +0 -1
- package/client/dist/assets/agent-D0dRmEen.js +0 -1
- package/client/dist/assets/agent-DZVGHm7H.js +0 -1
- package/client/dist/assets/agent-Dip4h2YE.js +0 -1
- package/client/dist/assets/agent-Pp-P-n1p.js +0 -1
- package/client/dist/assets/agentRuntime-BxF81z52.js +0 -1
- package/client/dist/assets/agentRuntime-BxYS5V7u.js +0 -1
- package/client/dist/assets/agentRuntime-Dc9HG3BA.js +0 -1
- package/client/dist/assets/agents-B6ZsnARo.js +0 -1
- package/client/dist/assets/agents-BORdhe0K.js +0 -1
- package/client/dist/assets/agents-C6aq9Oqs.js +0 -1
- package/client/dist/assets/agents-Cbsc4bcX.js +0 -1
- package/client/dist/assets/agents-D0uYR6hq.js +0 -1
- package/client/dist/assets/agents-Doe1sHY5.js +0 -1
- package/client/dist/assets/agents-DyNi_I9m.js +0 -1
- package/client/dist/assets/agents-StKxiTg0.js +0 -1
- package/client/dist/assets/agentstudio-7cYCXn-L.js +0 -1
- package/client/dist/assets/agentstudio-BHWQh8G3.js +0 -1
- package/client/dist/assets/agentstudio-BjnWHyRs.js +0 -1
- package/client/dist/assets/agentstudio-BkV8vcK4.js +0 -1
- package/client/dist/assets/agentstudio-BzugqB_N.js +0 -1
- package/client/dist/assets/agentstudio-CWbp7KvH.js +0 -1
- package/client/dist/assets/agentstudio-DG6plf5o.js +0 -1
- package/client/dist/assets/agentstudio-DkZVF-Cc.js +0 -1
- package/client/dist/assets/analytics-B1DIQd4m.js +0 -1
- package/client/dist/assets/analytics-BAIZ9vE_.js +0 -1
- package/client/dist/assets/analytics-BTqgmgBd.js +0 -1
- package/client/dist/assets/analytics-BWynXPEm.js +0 -1
- package/client/dist/assets/analytics-DGcUsQ44.js +0 -1
- package/client/dist/assets/analytics-GnSnpJ4W.js +0 -1
- package/client/dist/assets/analytics-TWgYaoO0.js +0 -1
- package/client/dist/assets/analytics-kJy6Tuko.js +0 -1
- package/client/dist/assets/atom-one-dark-qiGhVQxg.js +0 -1
- package/client/dist/assets/builder-B9gorTnT.js +0 -1
- package/client/dist/assets/builder-Bvw5s3Mi.js +0 -1
- package/client/dist/assets/builder-CL5l4dU3.js +0 -1
- package/client/dist/assets/builder-CVDTVrQX.js +0 -1
- package/client/dist/assets/builder-CpS9liE9.js +0 -1
- package/client/dist/assets/builder-DNctIL9Q.js +0 -1
- package/client/dist/assets/builder-De2NxX6o.js +0 -1
- package/client/dist/assets/builder-DeYT7Y-m.js +0 -1
- package/client/dist/assets/button-4FS1ZDTp.js +0 -1
- package/client/dist/assets/chat-D_I7nU5K.js +0 -1
- package/client/dist/assets/chevron-up-6EFqEHBj.js +0 -1
- package/client/dist/assets/chunk-OB3PAWPO-B1EMk45A.js +0 -3
- package/client/dist/assets/clsx-CjueKrWZ.js +0 -1
- package/client/dist/assets/code-B37GRg9C.js +0 -1
- package/client/dist/assets/code-BBOEZbf9.js +0 -1
- package/client/dist/assets/code-BRm-jcyx.js +0 -1
- package/client/dist/assets/code-CF7w62CR.js +0 -1
- package/client/dist/assets/code-CLuvJt2r.js +0 -1
- package/client/dist/assets/code-D0RCm59f.js +0 -1
- package/client/dist/assets/code-DaZ-ZwCT.js +0 -1
- package/client/dist/assets/code-iIHkGaCL.js +0 -1
- package/client/dist/assets/commands-0XjAftla.js +0 -1
- package/client/dist/assets/commands-BAWSYHjQ.js +0 -1
- package/client/dist/assets/commands-BBwowgiE.js +0 -1
- package/client/dist/assets/commands-BacjIZLN.js +0 -1
- package/client/dist/assets/commands-Bs62IAZ3.js +0 -1
- package/client/dist/assets/commands-CLPdh-Hh.js +0 -1
- package/client/dist/assets/commands-DlbFzgrp.js +0 -1
- package/client/dist/assets/commands-LjPSsi5F.js +0 -1
- package/client/dist/assets/common-Bdi0qN4S.js +0 -1
- package/client/dist/assets/common-Bhb9zN1P.js +0 -1
- package/client/dist/assets/common-BykKlZg1.js +0 -1
- package/client/dist/assets/common-CvnNNSJA.js +0 -1
- package/client/dist/assets/common-D5zk_mqq.js +0 -1
- package/client/dist/assets/common-DQNO_al5.js +0 -1
- package/client/dist/assets/common-Dax30Vmp.js +0 -1
- package/client/dist/assets/common-DkllpVSb.js +0 -1
- package/client/dist/assets/core-B3mKBIh5.js +0 -1
- package/client/dist/assets/dashboard-B1ndRHuC.js +0 -1
- package/client/dist/assets/dashboard-BX7KXiqA.js +0 -1
- package/client/dist/assets/dashboard-B_BSNxcN.js +0 -1
- package/client/dist/assets/dashboard-CCeFN7-V.js +0 -1
- package/client/dist/assets/dashboard-CRl0WtFJ.js +0 -1
- package/client/dist/assets/dashboard-XGdQ5mjw.js +0 -1
- package/client/dist/assets/dashboard-_oltA6Jd.js +0 -1
- package/client/dist/assets/dashboard-bAuf5KVk.js +0 -1
- package/client/dist/assets/dialog-DtdR05v1.js +0 -45
- package/client/dist/assets/dist-js-CJ_2XX1Y.js +0 -1
- package/client/dist/assets/event-Bt7f3wXe.js +0 -1
- package/client/dist/assets/explore-BG99VGpL.js +0 -1
- package/client/dist/assets/explore-C0TjprJW.js +0 -1
- package/client/dist/assets/explore-C2dgEo7q.js +0 -1
- package/client/dist/assets/explore-C8NDHbob.js +0 -1
- package/client/dist/assets/explore-CWWgzQGR.js +0 -1
- package/client/dist/assets/explore-CcQXpdtS.js +0 -1
- package/client/dist/assets/explore-DgBACn39.js +0 -1
- package/client/dist/assets/explore-DsXAgnmJ.js +0 -1
- package/client/dist/assets/file-text-C0blZHLh.js +0 -1
- package/client/dist/assets/formatDistanceToNow-NjPHBLfB.js +0 -1
- package/client/dist/assets/getTimezoneOffsetInMilliseconds-vJ7qUoqN.js +0 -1
- package/client/dist/assets/git-branch-yf6LE1Bw.js +0 -1
- package/client/dist/assets/index-BgbCbIua.css +0 -2
- package/client/dist/assets/index-Ce4yZtKf.js +0 -83
- package/client/dist/assets/integrations-BkpRUbvp.js +0 -1
- package/client/dist/assets/integrations-Bo8qbJf4.js +0 -1
- package/client/dist/assets/integrations-CmSrKzZb.js +0 -1
- package/client/dist/assets/integrations-DGtq26Rr.js +0 -1
- package/client/dist/assets/integrations-De38GFnQ.js +0 -1
- package/client/dist/assets/integrations-Dw6zdtb-.js +0 -1
- package/client/dist/assets/integrations-Dwl9KQp0.js +0 -1
- package/client/dist/assets/integrations-Refg_d2I.js +0 -1
- package/client/dist/assets/jira-B6OYw4CJ.js +0 -1
- package/client/dist/assets/jira-BTF6RaOe.js +0 -1
- package/client/dist/assets/jira-CEetIB2q.js +0 -1
- package/client/dist/assets/jira-CIzsZLw5.js +0 -1
- package/client/dist/assets/jira-Daw9tmpI.js +0 -1
- package/client/dist/assets/jira-FXr7u2lh.js +0 -1
- package/client/dist/assets/jira-LaNQn7yl.js +0 -1
- package/client/dist/assets/jira-api-Cabj-H0J.js +0 -1
- package/client/dist/assets/job-time-BCL7wee9.js +0 -1
- package/client/dist/assets/jobs-ARwD85B9.js +0 -1
- package/client/dist/assets/jobs-BMF1w4WT.js +0 -1
- package/client/dist/assets/jobs-CBfzGLwm.js +0 -1
- package/client/dist/assets/jobs-CPjiluBY.js +0 -1
- package/client/dist/assets/jobs-CQQd58pY.js +0 -1
- package/client/dist/assets/jobs-De3EqaO0.js +0 -1
- package/client/dist/assets/jobs-Du9-Ei9a.js +0 -1
- package/client/dist/assets/jobs-qMHbnxwC.js +0 -1
- package/client/dist/assets/layers-BCLTgHXO.js +0 -1
- package/client/dist/assets/loader-circle-BqV9xYGf.js +0 -1
- package/client/dist/assets/loop-layout-CyXj9223.js +0 -7
- package/client/dist/assets/loops-B2PhQLKR.js +0 -1
- package/client/dist/assets/loops-BqbF46st.js +0 -1
- package/client/dist/assets/loops-CINnHbfI.js +0 -1
- package/client/dist/assets/loops-D-3XhH04.js +0 -1
- package/client/dist/assets/loops-DKkEEjZ_.js +0 -1
- package/client/dist/assets/loops-DzWR5-v6.js +0 -1
- package/client/dist/assets/loops-WyWDkhok.js +0 -1
- package/client/dist/assets/loops-scD5fIBf.js +0 -1
- package/client/dist/assets/mcp-6rMoZfEO.js +0 -1
- package/client/dist/assets/mcp-BD8sL5mP.js +0 -1
- package/client/dist/assets/mcp-BkcA3I5s.js +0 -1
- package/client/dist/assets/mcp-CCpSelOh.js +0 -1
- package/client/dist/assets/mcp-CUAN6ORK.js +0 -1
- package/client/dist/assets/mcp-CqbRxRTE.js +0 -1
- package/client/dist/assets/mcp-DP2YfVhO.js +0 -1
- package/client/dist/assets/mcp-DUVQamDz.js +0 -1
- package/client/dist/assets/narration-BEKMVxGm.js +0 -1
- package/client/dist/assets/narration-CjLwGKap.js +0 -1
- package/client/dist/assets/narration-DANWuGsW.js +0 -1
- package/client/dist/assets/narration-DGeEDWiT.js +0 -1
- package/client/dist/assets/narration-DJgpGwIP.js +0 -1
- package/client/dist/assets/narration-DbHnz0qV.js +0 -1
- package/client/dist/assets/narration-bZSsTZG8.js +0 -1
- package/client/dist/assets/narration-i6aKJKEc.js +0 -1
- package/client/dist/assets/nav--u7iPYlS.js +0 -1
- package/client/dist/assets/nav-C5Jgfaby.js +0 -1
- package/client/dist/assets/nav-CAna_Wpt.js +0 -1
- package/client/dist/assets/nav-CCLqeyHo.js +0 -1
- package/client/dist/assets/nav-Cf3c90Jk.js +0 -1
- package/client/dist/assets/nav-DMYQaQjR.js +0 -1
- package/client/dist/assets/nav-Df_PkZ9F.js +0 -1
- package/client/dist/assets/nav-VyNGBJwj.js +0 -1
- package/client/dist/assets/packet-8nn9RsU7.js +0 -1
- package/client/dist/assets/packet-B0H15elv.js +0 -1
- package/client/dist/assets/packet-BQvBgrwh.js +0 -1
- package/client/dist/assets/packet-BR7mO0-a.js +0 -1
- package/client/dist/assets/packet-BgcQ6q_K.js +0 -1
- package/client/dist/assets/packet-D2s92Jnn.js +0 -1
- package/client/dist/assets/packet-YbtcD1HS.js +0 -1
- package/client/dist/assets/packet-c0Qj_9eX.js +0 -1
- package/client/dist/assets/project-repositories-Cnnuj9Ia.js +0 -1
- package/client/dist/assets/rotate-ccw-DalJAQQX.js +0 -1
- package/client/dist/assets/settings-B1NV8Ow9.js +0 -1
- package/client/dist/assets/settings-BQ8XFZeE.js +0 -1
- package/client/dist/assets/settings-BRkxfBbO.js +0 -1
- package/client/dist/assets/settings-C_CcU1dP.js +0 -1
- package/client/dist/assets/settings-Cto9n0eL.js +0 -1
- package/client/dist/assets/settings-Pyw8uYtL.js +0 -1
- package/client/dist/assets/settings-b3HVCNNd.js +0 -1
- package/client/dist/assets/settings-hdive4u6.js +0 -1
- package/client/dist/assets/setup-Be485n2u.js +0 -1
- package/client/dist/assets/setup-CKGUxKr-.js +0 -1
- package/client/dist/assets/setup-Ck1Uwd7_.js +0 -1
- package/client/dist/assets/setup-Cm774a6v.js +0 -1
- package/client/dist/assets/setup-DIqMQpxt.js +0 -1
- package/client/dist/assets/setup-DfCsoNFL.js +0 -1
- package/client/dist/assets/setup-DkeE8mP0.js +0 -1
- package/client/dist/assets/setup-xVntVaz1.js +0 -1
- package/client/dist/assets/specs-Bqvtz2kz.js +0 -1
- package/client/dist/assets/specs-CKes-kz6.js +0 -1
- package/client/dist/assets/specs-CfXxPDNB.js +0 -1
- package/client/dist/assets/specs-CyF9HuTI.js +0 -1
- package/client/dist/assets/specs-DMj035Mt.js +0 -1
- package/client/dist/assets/specs-DfIdoU5L.js +0 -1
- package/client/dist/assets/specs-j5pGLQeU.js +0 -1
- package/client/dist/assets/specs-xW5pkkB7.js +0 -1
- package/client/dist/assets/spending-CQnrWiR3.js +0 -1
- package/client/dist/assets/square-D0JTbRSR.js +0 -1
- package/client/dist/assets/tauri-shell-DE6LfGPw.js +0 -2
- package/client/dist/assets/terminal-BAzpHtpY.js +0 -1
- package/client/dist/assets/terminal-C7dHeR3x.js +0 -1
- package/client/dist/assets/terminal-CMla5Qsz.js +0 -1
- package/client/dist/assets/terminal-CdNXH-n9.js +0 -1
- package/client/dist/assets/terminal-Cw5bZsmV.js +0 -1
- package/client/dist/assets/terminal-DFUP4eNv.js +0 -1
- package/client/dist/assets/terminal-DGqljeK_.js +0 -1
- package/client/dist/assets/terminal-cU70NodO.js +0 -1
- package/client/dist/assets/tickets--tiSOCcn.js +0 -1
- package/client/dist/assets/tickets-BUJ3DMWU.js +0 -1
- package/client/dist/assets/tickets-C1WNPODq.js +0 -1
- package/client/dist/assets/tickets-CDjhWmiE.js +0 -1
- package/client/dist/assets/tickets-CLgPC3uO.js +0 -1
- package/client/dist/assets/tickets-D41ZMQpf.js +0 -1
- package/client/dist/assets/tickets-DEaQC06P.js +0 -1
- package/client/dist/assets/tickets-kcMzbLCp.js +0 -1
- package/client/dist/assets/trash-D8zYUmTg.js +0 -1
- package/client/dist/assets/useDesktop-BjLT0_EE.js +0 -1
- package/client/dist/assets/useRuntimeRuns-C97qEqMg.js +0 -1
- package/client/dist/assets/useSharedWebSocket-Bj4LMp7b.js +0 -2
- package/client/dist/assets/utils-BC4DHlz2.js +0 -1
- package/docs/guide/en/getting-started/4-the-dashboard-tour.md +0 -48
- package/docs/guide/es/getting-started/4-the-dashboard-tour.md +0 -48
- package/server/dist/mobile/mobile-preview-channel.js +0 -179
- package/server/dist/mobile/mobile-preview.js +0 -366
- package/server/dist/modules/browser/domain/preview-origins.js +0 -117
- package/server/dist/modules/browser/runtime/preview-targets.js +0 -80
- /package/client/dist/assets/{atom-one-dark-B-oHczHB.css → DocView-B-oHczHB.css} +0 -0
- /package/docs/guide/de/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/en/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/es/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/fr/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/it/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/ja/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/pt/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/zh/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
|
@@ -37,11 +37,15 @@ Ein schmaler Streifen verläuft ganz unten am Fenster. Klein, aber praktisch:
|
|
|
37
37
|
- **Gesamtausgaben** (rechts) – eine laufende Summe dessen, was du ausgegeben hast, sodass die Kosten immer nur einen Blick entfernt sind.
|
|
38
38
|
- **Terminal-Umschalter** (ganz rechts) – öffnet das integrierte Terminal-Panel. Drücke **Cmd+J** (macOS) oder **Ctrl+J** (Windows/Linux), um es jederzeit ein- oder auszublenden. Es ist eine vollwertige Shell, direkt in deinem Projektordner geöffnet.
|
|
39
39
|
|
|
40
|
-
## Ein paar praktische Tastenkürzel
|
|
40
|
+
## Ein paar praktische Tastenkürzel {#shortcuts}
|
|
41
41
|
|
|
42
|
-
- **Cmd/Ctrl+B** –
|
|
42
|
+
- **Cmd/Ctrl+B** – linke Seitenleiste anpinnen oder einklappen; **Option+Cmd+B** (**Ctrl+Alt+B**) macht dasselbe mit der rechten.
|
|
43
43
|
- **Cmd/Ctrl+J** – Terminal-Panel ein-/ausblenden.
|
|
44
|
-
- **Cmd/Ctrl+K** –
|
|
44
|
+
- **Cmd/Ctrl+K** – die Befehlspalette: Missionen, Projekte und Jobs suchen und **Aktionen ausführen**. Tippen Sie ein Verb („neu“, „starten“, „verschieben“, „wechseln“) oder beginnen Sie mit **>**, um Aktionen aufzulisten: Neue Spec (auch im Erkunden-Modus), Spec starten oder verschieben, ihr Review öffnen, einen Flow übergeben oder pausieren, Neue Mission, Theme wechseln, zwischen Mission- und Board-Modus wechseln, App- oder Projekteinstellungen in einem Bereich öffnen, einen Loop ausführen, Seitenleisten umschalten, Zurück oder Vorwärts, die letzte Änderung rückgängig machen und Kürzlich gelöscht. Aktionen, die eine Auswahl brauchen (Rail, Status, Theme, Bereich), öffnen eine zweite Seite; **Rücktaste** bei leerer Suche geht zurück. Jede Aktion zeigt ihr Tastenkürzel, die Palette bringt Ihnen also die Tasten bei. Sie bietet nur an, was dort funktioniert, wo Sie sind, und befolgt dieselben Regeln wie die Schaltflächen (eine nicht startbare Spec wird nicht angeboten). Bei leerer Suche listet sie Ihre **zuletzt verwendeten Aktionen** und **zuletzt besuchten Orte**.
|
|
45
|
+
- **Cmd+[ / Cmd+]** (**Alt+← / Alt+→** unter Windows/Linux), die Schaltflächen **← →** in der Titelleiste oder die Zurück-/Vor-Tasten der Maus – gehen durch die besuchten Orte: Specs, Missionen, Jobs, Projekte und Vollbild-Panels. Rechtsklick (oder langes Drücken) auf eine Schaltfläche zeigt die letzten Orte.
|
|
46
|
+
- **Cmd+Umschalt+I** (**Strg+Alt+I** unter Windows und Linux) oder die Schaltfläche **Offen** in der Titelleiste — die Liste **Offen**: alles, was in all deinen Projekten auf dich wartet, in einer Liste nach Projekt gruppiert. Er sammelt Reviews, die entschieden werden können, Fragen, auf die ein Agent wartet, fehlgeschlagene oder blockierte Läufe, am Tagesbudget pausierte Läufe und Jira-Updates, die sich nicht synchronisieren ließen. Jede Zeile hat ihre Hauptaktion direkt dabei (**Review öffnen**, **Antworten**, **Fortsetzen**, **Wiederholen**) sowie **Zurückstellen** (1 Stunde oder bis morgen) und **Erledigt**. Ein zurückgestellter oder erledigter Eintrag kommt von selbst wieder, wenn sich sein Zustand ändert. Die Schaltfläche zeigt, wie viele Einträge warten, und eine Anbieter-Limit-Benachrichtigung öffnet die Liste. Die Liste ist außerdem ein Link (`?inbox=1`) und eine Aktion der Befehlspalette.
|
|
47
|
+
- **M** — öffnet bei einer fokussierten Spec-Karte im Board eine Auswahl, um sie in einen Status oder eine Rail zu verschieben, das Tastaturäquivalent zu Drag and Drop. Es funktioniert auch bei einer Mehrfachauswahl, und die Palette bietet es als **Fokussierte Spec verschieben…** an.
|
|
48
|
+
- **?** — die Übersicht der Tastaturkürzel. Tippe in ihr Suchfeld, um die Kürzel zu filtern und passende Seiten und Abschnitte dieser Anleitung zu finden; sie öffnen sich in der Anleitung, ohne dass du deinen Bildschirm verlässt. Die kleinen **ⓘ**-Symbole und **Mehr erfahren**-Links neben Einstellungen, Rails, Flow, dem Kontext-Schieberegler und Budgets öffnen die Anleitung auf dieselbe Weise im passenden Abschnitt.
|
|
45
49
|
|
|
46
50
|
## Wie es weitergeht
|
|
47
51
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Universelle Suche (⌘K)
|
|
2
|
+
|
|
3
|
+
Drücke **⌘K** (**Strg+K** unter Windows und Linux), um fast alles in Specrails an einer Stelle zu durchsuchen: Missionen, Specs, Job-Protokolle, Dateien, Einstellungen und diese Anleitung. Gib eine normale Suchanfrage ein, um wie bisher Missionen, Projekte, Specs und aktuelle Jobs zu durchsuchen, oder beginne mit einem **Präfix**, um nur eine Quelle zu durchsuchen.
|
|
4
|
+
|
|
5
|
+
## Präfixe
|
|
6
|
+
|
|
7
|
+
| Eingabe | Durchsucht | Enter öffnet |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| `#` | Specs: Titel, Zusammenfassung, Beschreibung, Labels, Notizen zum Ausschluss, Nachträge und Kommentare. `#12` findet Spec 12. | Die Spec |
|
|
10
|
+
| `@` | Missionen: Titel und Gesprächsinhalt. | Die Mission |
|
|
11
|
+
| `/` | Einstellungen (Desktop und Projekt) nach Name oder nach dem, wie du sie nennen würdest. | Das Einstellungsfenster an diesem Block, sichtbar und fokussiert |
|
|
12
|
+
| `f:` | Dateien des Projekts nach Name oder Pfad. | Die Datei im Code-Explorer |
|
|
13
|
+
| `log:` | Job-Protokolle: Befehle, Loop-Namen, Phasentitel und Fehlerdiagnosen. | Der Job |
|
|
14
|
+
| `?` | Diese Anleitung: Seitentitel und Überschriften. | Die Anleitung an dieser Überschrift |
|
|
15
|
+
|
|
16
|
+
Ein getipptes Präfix wird zu einem **Chip** im Suchfeld, und das Feld behält nur deine Anfrage. Drücke **Rücktaste** bei leerem Feld (oder klicke auf das × des Chips), um den Bereich zu entfernen. Bei leerem Feld listet die Palette die Präfixe unter dem Feld auf; klicke eines an, um zu starten. `>` listet weiterhin Aktionen auf.
|
|
17
|
+
|
|
18
|
+
## Hervorhebung
|
|
19
|
+
|
|
20
|
+
Treffer zeigen einen kurzen Ausschnitt um die erste Übereinstimmung, mit hervorgehobenem Text. Die Suche ignoriert Groß- und Kleinschreibung sowie Akzente, `revision` findet also „Révision“.
|
|
21
|
+
|
|
22
|
+
## Einstellungen
|
|
23
|
+
|
|
24
|
+
`/` kennt die wichtigsten Einstellungsblöcke in deiner Sprache: Design, Sprache, Editor, Budgets, Benachrichtigungen, Webhooks, Updates, Branch, Umgebung, Telemetrie, Regeln und mehr. Projekteinstellungen werden angeboten, wenn ein Projekt geöffnet ist. Wähle eine aus, und das richtige Fenster öffnet sich an diesem Block. Ohne Präfix fügt ein starker Treffer (ab drei Zeichen) den normalen Ergebnissen bis zu drei Einstellungen hinzu. `/budget` findet auch das Budget-Panel (Limits, Prognose, Was-wäre-wenn), in dem das Wochen- und das Monatslimit liegen. Ein Slash-Befehl wie `/implement` steht unter den Einstellungen in einer eigenen Gruppe, das Präfix `/` blendet ihn also nie aus.
|
|
25
|
+
|
|
26
|
+
## Job-Protokolle
|
|
27
|
+
|
|
28
|
+
`log:` durchsucht einen kompakten Index, nicht die Rohausgabe eines Laufs: den Befehl, den Loop-Namen, die Phasentitel und die kurze Diagnose eines fehlgeschlagenen, blockierten oder hängenden Laufs. Token-Streams und Tool-Ausgaben werden nie gespeichert, daher bleibt er klein und schnell. Er wird pro Projekt geführt und enthält die neuesten Läufe.
|
|
29
|
+
|
|
30
|
+
## Gut zu wissen
|
|
31
|
+
|
|
32
|
+
- `#`, `f:` und `log:` durchsuchen das aktive Projekt; öffne zuerst ein Projekt.
|
|
33
|
+
- Der Datei-Bereich beachtet die Ausschlussregeln des Code-Explorers.
|
|
34
|
+
- Jede Gruppe zeigt nur ihre besten Treffer; verfeinere die Anfrage, um einzugrenzen.
|
|
@@ -6,15 +6,17 @@ Du öffnest ihn über die rechte Seitenleiste (Beschriftung **Analytics**). Alle
|
|
|
6
6
|
|
|
7
7
|
## Was als Ausgabe zählt
|
|
8
8
|
|
|
9
|
-
Specrails
|
|
9
|
+
Specrails versieht jeden KI-Lauf mit einer *Surface*: dem Teil der App, der die Ausgabe verursacht hat. Die wichtigsten Surfaces haben jeweils eine feste Farbe und einen eigenen Filter-Chip, sodass du sie auf einen Blick erkennst:
|
|
10
10
|
|
|
11
|
-
- **Job** – ein Pipeline-
|
|
12
|
-
- **
|
|
13
|
-
- **
|
|
11
|
+
- **Job** – ein in der Queue eingereihter Pipeline-Job (Architect → Developer → Reviewer → Ship), einschließlich Freestyle-Läufen.
|
|
12
|
+
- **Loop** – jeder KI-Schritt eines Loop-Laufs. Rails laufen standardmäßig als Loops, daher landet der Großteil der Rail-Ausgaben hier.
|
|
13
|
+
- **Quick-Spec** – eine Spec, die über den schnellen „Spec hinzufügen“-Weg erzeugt wurde.
|
|
14
|
+
- **Explore-Spec** – eine Explore-Unterhaltung, in der du eine Spec im Gespräch formst.
|
|
14
15
|
- **KI-Bearbeitung** – eine KI-gestützte Verfeinerung an einem Agenten oder einer Datei.
|
|
15
|
-
- **
|
|
16
|
+
- **SMASH** – das Aufteilen einer Epic-Spec in kleinere Specs.
|
|
17
|
+
- **Dateizusammenfassung** – die verständlichen Zusammenfassungen und Datei-Geschichten, die den Code-Explorer speisen.
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
Kleinere Surfaces werden ebenfalls erfasst, nur ohne eigenen Chip: die Chat-Seitenleiste, der OpenSpec-Spec-Launcher, Spec-Vorschläge, Agent Studio und der ältere Einrichtungs-Chat. Auch an das Projekt angeheftete Missionen zählen zu seinen Ausgaben. Nichts, was eine KI-CLI ausführt, bleibt außen vor – die Summen spiegeln also die gesamte KI-Aktivität des Projekts wider.
|
|
18
20
|
|
|
19
21
|
## Das Dashboard lesen
|
|
20
22
|
|
|
@@ -76,3 +78,15 @@ Exporte berücksichtigen die aktuell angewendeten Zeitraum- und Surface-Filter,
|
|
|
76
78
|
## Immer live
|
|
77
79
|
|
|
78
80
|
Du musst nicht neu laden. Sobald irgendwo im Projekt ein neuer Aufruf erfasst wird, lädt sich das geöffnete Dashboard kurz darauf still neu, sodass der Burn-Meter mit der Arbeit Schritt hält, während sie fertig wird.
|
|
81
|
+
|
|
82
|
+
## Tagesbudgets {#daily-budget}
|
|
83
|
+
|
|
84
|
+
Mit einem Tagesbudget begrenzt du, was ein Tag kosten darf. Alle Limits (täglich, wöchentlich, monatlich und pro Lauf) bearbeitest du an einer Stelle: **Analysen → Budget**. **Einstellungen → Erweitert** und **Projekteinstellungen → Budget** zeigen nur das aktuelle Tageslimit, mit einer Schaltfläche **Budget öffnen**, die dorthin führt.
|
|
85
|
+
|
|
86
|
+
Erreichen die erfassten Tagesausgaben ein Budget, pausiert die Warteschlange sich selbst, Rails und Loop-Läufe starten nicht mehr und melden *Tagesbudget erreicht*, und ein laufender Loop-Lauf hält zwischen zwei Schritten an, pausiert durch das Budget. Erhöhe oder entferne das Budget oder warte auf das tägliche Zurücksetzen und setze dann fort.
|
|
87
|
+
|
|
88
|
+
Das Projektbudget zählt deinen lokalen Tag, das app-weite Budget den UTC-Tag. Die Kostenwarnung pro Job ist eine eigene Einstellung.
|
|
89
|
+
|
|
90
|
+
**Wochen-, Monats- und Lauf-Limits.** Längere Limits funktionieren genauso. Unter **Analysen → Budget** legst du ein **Wochen-** und ein **Monatslimit** fest, pro Projekt und für die ganze App, sowie ein **weiches Limit pro Lauf** (*pausieren und nachfragen bei X $*). Wochen beginnen am Montag und Monate am 1., in deiner Ortszeit. Ein Wochen- oder Monatslimit pausiert Warteschlangen, lehnt Starts ab und hält laufende Loops an – genau wie das Tagesbudget; erhöhe oder entferne es dort oder warte auf das Zurücksetzen. Erreichen die gemeldeten Kosten eines Laufs das Limit pro Lauf, pausiert er, und **Fortsetzen** fragt, ob er ohne das Limit weiterlaufen oder das Limit erhöht werden soll. Jedes erreichte Limit legt außerdem einen Eintrag **Limit erhöhen** im Posteingang an.
|
|
91
|
+
|
|
92
|
+
Das Budget-Panel zeigt heute, diese Woche und diesen Monat gegenüber jedem Limit. Die **Prognose** zum Monatsende ist eine Schätzung (der Schnitt der letzten 14 vollständigen Tage mal die verbleibenden Tage plus das bisher Ausgegebene) und wird nie zu abgerechneten Ausgaben addiert. **Was wäre, wenn** berechnet die erfassten Token der letzten 30 Tage mit einem anderen Modell neu, anhand der Preisliste der App, und meldet *Kein Preis* für ein Modell ohne Preis. Bei einem Abo gibt es keine Dollarkosten pro Nutzung; das Panel zeigt dann Turns und Abo-Limits statt Dollar.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Das integrierte Terminal
|
|
1
|
+
# Das integrierte Terminal {#integrated-terminal}
|
|
2
2
|
|
|
3
3
|
Specrails hat ein echtes Terminal direkt eingebaut – das Panel, das vom unteren Rand des Fensters nach oben fährt, genau wie in VS Code oder Cursor. Es führt deine tatsächliche Shell in deinem tatsächlichen Projektverzeichnis aus, sodass du `git`, `npm`, Tests oder alles andere ausführen kannst, ohne die App zu verlassen.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Code-Explorer
|
|
1
|
+
# Code-Explorer {#code-explorer}
|
|
2
2
|
|
|
3
3
|
Der Bereich **Code** bietet dir ein freundliches, schreibgeschütztes Fenster in dein Repository – besonders gedacht für alle, die verstehen möchten, was die KI gebaut hat, ohne ständig in einem Editor zu leben. Links siehst du einen Dateibaum, rechts einen Code-Viewer und über dem Code eine verständliche Zusammenfassung dessen, was jede Datei tatsächlich tut.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Plugins (Integrationen)
|
|
1
|
+
# Plugins (Integrationen) {#plugins}
|
|
2
2
|
|
|
3
3
|
Der Bereich **Integrationen** ist ein projektbezogener Marktplatz für optionale Erweiterungen, die den Funktionsumfang der KI ausbauen. Jedes Projekt entscheidet eigenständig, welche Plugins es haben möchte — ein Plugin in einem Projekt zu installieren, berührt nie ein anderes.
|
|
4
4
|
|
|
@@ -15,7 +15,7 @@ Alle Rückschreibungen laufen über eine dauerhafte, absturzsichere Outbox, soda
|
|
|
15
15
|
|
|
16
16
|
## Ein Board verbinden
|
|
17
17
|
|
|
18
|
-
Du verbindest dich über die
|
|
18
|
+
Du verbindest dich über die Seite **Plugins** in der linken Seitenleiste: Klicke auf der Jira-Karte auf **Installieren** und wähle das Projekt. Der Verbindungsassistent führt dich durch:
|
|
19
19
|
|
|
20
20
|
1. **Testen** — gib deine Jira-URL und deine Zugangsdaten ein, und Specrails überprüft die Verbindung.
|
|
21
21
|
2. **Projekt wählen** — wähle aus, mit welchem Jira-Projekt synchronisiert werden soll.
|
|
@@ -52,7 +52,7 @@ So kannst du frei experimentieren — anschalten, ein paar Rails laufen lassen,
|
|
|
52
52
|
|
|
53
53
|
## Im Alltag
|
|
54
54
|
|
|
55
|
-
Nach dem Verbinden zeigt die
|
|
55
|
+
Nach dem Verbinden zeigt die Jira-Karte auf der Seite **Plugins** **Verwalten**. Wähle dort das Projekt, um seine **Verbunden-Karte** zu öffnen, auf der du:
|
|
56
56
|
|
|
57
57
|
- **Jetzt synchronisieren** — ein sofortiges Pollen erzwingen, statt auf den Timer zu warten.
|
|
58
58
|
- **Dead-Letter erneut versuchen** — alle hängengebliebenen Rückschreibungen erneut ausführen.
|
|
@@ -69,4 +69,4 @@ Specs, die mit Jira hinterlegt sind, zeigen ein **Jira-Schlüssel-Badge** (etwa
|
|
|
69
69
|
|
|
70
70
|
## Ausschalten
|
|
71
71
|
|
|
72
|
-
Wenn du jemals vollständig aussteigen möchtest, **trenne** einfach
|
|
72
|
+
Wenn du jemals vollständig aussteigen möchtest, **trenne** einfach über die Verbunden-Karte. Deine Specs kehren zum reinen Lokal-Verhalten zurück, und die Jira-Metadaten liegen einfach ungenutzt herum — es wird nichts zerstört.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Der mobile Companion
|
|
1
|
+
# Der mobile Companion {#mobile-companion}
|
|
2
2
|
|
|
3
3
|
Specrails hat eine Companion-App fürs Smartphone, mit der du deine Rails im Blick behältst, während du nicht am Schreibtisch sitzt — Jobs laufen sehen, ihren Abschluss verfolgen und auf dem Laufenden bleiben, ohne vor dem Dashboard zu sitzen.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Specrails von jeder KI aus steuern (MCP-Server)
|
|
1
|
+
# Specrails von jeder KI aus steuern (MCP-Server) {#mcp-server}
|
|
2
2
|
|
|
3
3
|
> **For agents (English):** use the [current connection runbook](../../../agents/mcp.md) for Claude and Codex. It includes verified bridge discovery, registration and read-only checks.
|
|
4
4
|
|
|
@@ -33,6 +33,8 @@ Der Agent kann die ganze App anfassen, also entscheidest du, wie viel Freiheit e
|
|
|
33
33
|
|
|
34
34
|
Beginne bei **Beobachten** und erhöhe die Stufe erst, wenn der Agent handeln soll. Versucht er etwas oberhalb der aktuellen Stufe, hält er an und sagt dir genau, welche Stufe du einschalten musst — er umgeht die Grenze nie. Das ist getrennt von den Einstellungen ▸ MCP-Stufen, die *externe* Assistenten regeln; die Stufe hier gilt nur für diesen app-internen Agenten.
|
|
35
35
|
|
|
36
|
+
Die Stufe **auf Autonom** zu erhöhen passiert nie mit einem bloßen Tastendruck: Shift+Tab von Ausführen aus zeigt einen Hinweis mit **Zu Autonom wechseln**, und ein weiteres Shift+Tab springt stattdessen zurück zu Beobachten. Senken geht immer sofort.
|
|
37
|
+
|
|
36
38
|
## Ein paar Dinge, die du fragen kannst
|
|
37
39
|
|
|
38
40
|
Sobald du auf **Ausführen** bist, probier:
|
|
@@ -47,16 +49,21 @@ Sobald du auf **Ausführen** bist, probier:
|
|
|
47
49
|
|
|
48
50
|
Antworten strömen flüssig herein und landen bereits formatiert (Überschriften, Tabellen, Listen), jede mit einem kleinen **Kopieren**-Button. Ein Status-Chip unten zeigt, was der Agent gerade tut — *Denkt nach…*, *MCP · jobs*, *Terminal* — sodass du seinen Zustand immer kennst.
|
|
49
51
|
|
|
52
|
+
Codeblöcke zeigen ihre Sprache und haben einen eigenen **Kopieren**-Button. Scrollst du nach oben, während der Agent noch schreibt, erscheint über dem Feld die Pille **Neue Nachrichten** – ein Klick bringt dich zur neuesten Antwort zurück.
|
|
53
|
+
|
|
50
54
|
## Praktische Feinheiten
|
|
51
55
|
|
|
52
56
|
- **Super-Specs aus einem Gespräch.** Bitte den Agenten, eine Spec mit dir zu *formen*, statt sie in einem Schuss zu erzeugen: Er liest zuerst den echten Code, stellt dir kurz Fragen und zeigt den wachsenden Entwurf als Live-Karte direkt im Gespräch. Auf dein Ja erstellt er die Spec und reichert sie — standardmäßig — im Hintergrund mit einem **Contract Layer** an (exakte Dateipfade, Datenformen, Invarianten), damit die implementierenden Agenten nicht improvisieren. Sage „ohne Contract Layer“, um die Anreicherung zu überspringen.
|
|
53
57
|
- **Klicke an, was er erwähnt.** In einer an ein Projekt gepinnten Mission sind Spec-Nummern (`#12`) und Job-/Run-Ids in den Antworten des Agenten klickbare Chips — eine Spec öffnet das Detail-Modal des Boards, eine Job-Id die Live-Job-Ansicht. Existiert die Referenz nicht mehr, erscheint ein dezenter „nicht gefunden“-Hinweis.
|
|
54
|
-
- **
|
|
58
|
+
- **Ein Streifen für deine Läufe.** Startet der Agent Arbeit, verfolgt sie ein einziger Streifen direkt über dem Eingabefeld: was der Lauf gerade tut, in klaren Worten („Spec wird aus deinen Änderungen geschrieben“), wie viele Läufe fertig sind, die Zeit und die bisher echten Kosten (`—`, bis der Anbieter abrechnet). Braucht ein Lauf dich (PR erstellen, erneut versuchen, zurück zum Flow), sagt der Streifen das mit Symbol und Worten und bietet genau diese eine Aktion an; ein Klick auf den Streifen öffnet die vollständige Karte des Laufs direkt darüber (Esc schließt sie). Bei mehreren Läufen zeigt der Streifen zuerst den, der dich braucht, und einen kleinen Umschalter („Rail 1 · Rail 2 · +1“). Die Unterhaltung behält nur, was passiert ist („Auf Rail 1 gestartet“, „Rail 1 fehlgeschlagen: …“, „Ausgeliefert: PR #812“), und jede Zeile öffnet ihren Lauf. Missionen, die auf deine Entscheidung warten, zeigen in der Missionsliste einen Punkt. Aktionen, die einen neuen kostenpflichtigen Lauf starten (**Neu starten**, **Wiederherstellen und erneut versuchen**) oder die andere sehen (PR erstellen, Veröffentlichen), löst der Streifen nie selbst aus: Er öffnet die Karte mit dem Fokus auf diesem Knopf, damit du dort bestätigen kannst.
|
|
59
|
+
- **Der Streifen per Tastatur.** **⌥R** (**Alt+R** unter Windows/Linux) springt vom Nachrichtenfeld zum Streifen der Mission, in der du bist; erneut gedrückt blendet es die Details des Laufs ein oder aus, und **Esc** bringt dich dorthin zurück, wo du warst. Außerhalb eines Textfelds wechseln **⌥[** und **⌥]** zwischen den Läufen. Solange der Streifen den Fokus hat, pausiert oder setzt **P** einen Flow fort und **H** übergibt ihn; anderswo bewirken diese Buchstaben nichts. Drücke **?** für die vollständige Liste.
|
|
55
60
|
- **Prompt-Verlauf.** Ist das Feld leer, drücke **↑**/**↓**, um durch deine früheren Fragen zu blättern (beim Scrollen abgedunkelt dargestellt); tippe los, um sie zu bearbeiten, oder drücke Enter zum Senden.
|
|
56
61
|
- **Warteschlange bearbeiten.** Mehr geschickt, während der Agent beschäftigt war? Solange Nachrichten eingereiht sind, blättert **↑**/**↓** durch *diese*: Das Feld zeigt die ausgewählte, du bearbeitest sie an Ort und Stelle, und **Enter speichert sie zurück in die Warteschlange** (Esc bricht ab; dein ungesendeter Entwurf kommt unverändert zurück).
|
|
62
|
+
- **Antworte per Taste.** Bietet der Agent Optionen an, trägt jeder Chip eine Zahl: Drücke bei leerem Feld **⌥1**…**⌥9** (**Alt+1**…**Alt+9** unter Windows/Linux), um eine zu wählen.
|
|
63
|
+
- **Gelöschte Nachricht in der Warteschlange zurückholen.** Nach dem Löschen erscheint ein paar Sekunden lang **Rückgängig**; damit kommt die Nachricht zurück in die Warteschlange.
|
|
57
64
|
- **Minimieren, nicht verlieren.** Klicke auf das ✕, um das Panel zurück in die Blase abzulegen — die Unterhaltung läuft weiter. Öffne es wieder und du landest bei der neuesten Nachricht; nichts muss neu getippt werden.
|
|
58
65
|
- **Neue Unterhaltung.** Der **+**-Button startet einen sauberen Thread; der Verlauf lebt app-weit, oberhalb jedes einzelnen Projekts.
|
|
59
|
-
- **Missionen wechseln.** Der Missions-Selektor neben dem Projekt-Selektor listet deine Unterhaltungen von neu nach alt — ein pulsierender Punkt markiert die, an denen der Agent noch arbeitet, und ein kleines Badge zählt die Nachrichten in der Warteschlange. Die Suche erscheint, sobald die Liste mehr als acht Einträge hat, und das Papierkorb-Symbol jeder Zeile löscht eine Mission
|
|
66
|
+
- **Missionen wechseln.** Der Missions-Selektor neben dem Projekt-Selektor listet deine Unterhaltungen von neu nach alt — ein pulsierender Punkt markiert die, an denen der Agent noch arbeitet, und ein kleines Badge zählt die Nachrichten in der Warteschlange. Die Suche erscheint, sobald die Liste mehr als acht Einträge hat, und das Papierkorb-Symbol jeder Zeile löscht eine Mission sofort und zeigt einige Sekunden lang **Rückgängig** (oder drücke **⌘Z**); danach wartet die Mission 30 Tage unter **Zuletzt gelöscht** in den Projekteinstellungen. Bei einer Mission, an der der Agent noch arbeitet, wird zuerst gefragt, weil das Stoppen des Agenten nicht rückgängig zu machen ist.
|
|
60
67
|
- **Eine Mission von überall finden.** Drücke **⌘K** (oder den **Suchen**-Button in der Seitenleiste im Agent-Modus) und tippe irgendein Fragment, an das du dich erinnerst — ein Wort aus dem Titel *oder* aus dem, was darin gesagt wurde. Missionen treffen sofort per Titel aus dem Speicher, einen Herzschlag später kommen die Inhaltstreffer mit hervorgehobener Passage dazu, plus angepinntes Projekt und letzte Aktivität. Im Agent-Modus sind Missionen die erste Gruppe; auf dem Board stehen sie direkt nach den Projekten. Enter öffnet die Mission.
|
|
61
68
|
|
|
62
69
|
## Launch-Karten und Run-Karten
|
|
@@ -69,10 +76,10 @@ Antworten strömen flüssig herein und landen bereits formatiert (Überschriften
|
|
|
69
76
|
|
|
70
77
|
## Sub-Agenten
|
|
71
78
|
|
|
72
|
-
Manche Anbieter können Teile einer Aufgabe an **Sub-Agenten** abgeben – Helfer, die parallel arbeiten und weitermachen, nachdem der Agent geantwortet hat. Sub-Agenten sind **standardmäßig aus
|
|
79
|
+
Manche Anbieter können Teile einer Aufgabe an **Sub-Agenten** abgeben – Helfer, die parallel arbeiten und weitermachen, nachdem der Agent geantwortet hat. Sub-Agenten sind **standardmäßig an**; schalte sie pro Projekt aus, wenn du die Kosten niedrig halten willst, denn sie vervielfachen die Kosten einer Anfrage.
|
|
73
80
|
|
|
74
|
-
- **Pro Projekt
|
|
75
|
-
- **
|
|
81
|
+
- **Pro Projekt ausschalten.** Öffne in den Projekteinstellungen den Bereich **Sub-Agenten** und deaktiviere **Sub-Agenten in diesem Projekt erlauben**. Das gilt für Missionen, Explore und Verfeinerungen dieses Projekts; Implement-Pipelines sind nie betroffen. Missionen ohne Projekt folgen **App-Einstellungen → KI-Anbieter → Sub-Agenten in Missionen ohne Projekt erlauben**.
|
|
82
|
+
- **Wähle, wer sie ausführt.** Unter **Sub-Agenten ausführen mit** lässt die Standardoption **Wie der Missions-Agent** das CLI der Mission sie nativ starten: am schnellsten, und sie teilen dessen Prompt-Cache. Wähle stattdessen Anbieter, Modell und Aufwand, um Anbieter zu kombinieren – etwa eine Codex-Mission mit Claude-Sub-Agenten. Missionen, die bereits diesen Anbieter nutzen, bleiben mit diesem Modell nativ; bei einem anderen Anbieter startet Specrails jeden Sub-Agenten selbst, was kälter startet und mehr kosten kann, dir aber mehr Kontrolle gibt und die echten Kosten jedes einzelnen zeigt. Specrails fragt vor dem Wechsel nach einer Bestätigung, und diese Sub-Agenten tragen in der Mission ein Anbieter-Badge.
|
|
76
83
|
- **Bei der Arbeit zusehen.** Die von einer Antwort gestarteten Agenten erscheinen als eine kompakte Zeile unter dieser Antwort. Sie bleibt offen, solange sie arbeiten, und klappt sich zu einer Zusammenfassung mit Gesamtzeit und Tokens zusammen, sobald alle fertig sind. Klappe eine Zeile auf, um Ergebnis und Kosten zu lesen oder die Aktivität live zu verfolgen. Jeder Start bleibt an seiner Stelle im Gespräch, spätere Starts vermischen sich also nie mit früheren. Stoppe einen laufenden Agenten in seiner Zeile oder alle über die Zeile.
|
|
77
84
|
- **Der Agent macht selbst weiter.** Wenn Hintergrund-Agenten fertig sind, setzt der Agent fort und berichtet, was sie gefunden haben – markiert mit *Nach Hintergrund-Agenten fortgesetzt*.
|
|
78
85
|
- **Die Einstellung zu ändern ist sicher.** Eine Mission mit laufenden Agenten übernimmt die Änderung, sobald diese fertig sind; sie sagt es dir und bietet **Agenten stoppen und jetzt übernehmen** an.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Flow: erst bauen, dann die Spec {#flow-mode}
|
|
2
|
+
|
|
3
|
+
Flow ist eine Art, mit einem Agenten zu bauen, wenn du noch nicht genau weißt, was du willst. Du sprichst in deiner Mission mit dem Agenten, er schreibt und startet echten Code auf seinem eigenen Flow-Branch (einer separaten Kopie deines Projekts), und wenn das Ergebnis stimmt, drückst du **Übergeben**: Ein Rail übernimmt deine Änderungen, leitet die Spec ab und führt die übliche Prüfung, Review und Auslieferung aus.
|
|
4
|
+
|
|
5
|
+
Implement ist zum Delegieren von Arbeit, die du schon beschreiben kannst. Flow ist zum Entdecken.
|
|
6
|
+
|
|
7
|
+
## So beginnt ein Flow
|
|
8
|
+
|
|
9
|
+
Du musst Flow nie beim Namen nennen. Wenn du etwas Exploratives oder Visuelles beschreibst („Ich will ausprobieren…“, „Ich weiß nicht, wie es aussehen soll“), zeigt die Mission eine Karte mit zwei Wegen:
|
|
10
|
+
|
|
11
|
+
- **Flow**: jetzt gemeinsam bauen; die Spec kommt am Ende.
|
|
12
|
+
- **Spec + Implement**: erst eine Spec vereinbaren, dann an einen Rail delegieren.
|
|
13
|
+
|
|
14
|
+
Beide Wege haben dasselbe Gewicht und erscheinen immer in derselben Reihenfolge: Keiner wird empfohlen, du entscheidest. Unter **Warum der Agent fragt** sagt der Agent in einem Satz, warum er fragt, und er drängt nicht, egal welchen Weg du wählst oder ob du **Nicht jetzt** drückst.
|
|
15
|
+
|
|
16
|
+
Wählst du Flow, öffnet sich eine Bestätigung: Specrails legt eine separate Kopie des Projekts auf einem eigenen Flow-Branch an, in der der Agent Code schreiben kann, und dein Hauptbranch bleibt unberührt. Drücke **Flow starten**. Auf dem Board erscheint eine Platzhalter-Spec mit dem Label **Im Flow** (ein Klick führt zurück zur Mission).
|
|
17
|
+
|
|
18
|
+
Kann dein Specrails Core Flow noch nicht ausführen, ist Starten deaktiviert und die Karte nennt, was fehlt. Meist hilft ein Update von Specrails Core.
|
|
19
|
+
|
|
20
|
+
## Einen Flow aus einer vorhandenen Spec starten
|
|
21
|
+
|
|
22
|
+
Jede Spec lässt sich in Flow bauen, nicht nur eine neue Idee. Flow und Implement bleiben zwei gleichwertige Wege, daran zu arbeiten:
|
|
23
|
+
|
|
24
|
+
- auf dem Board: Rechtsklick auf eine Spec und **In Flow starten** (neben dem Ziehen auf eine Rail); in der Spec-Detailansicht steht **In Flow starten** neben **Auf Rail verschieben**;
|
|
25
|
+
- in einer Mission: Wenn du eine Spec umsetzen lassen willst, ohne eine Rail zu nennen, zeigt der Agent dieselbe Karte mit zwei Wegen für diese Spec: **Flow** arbeitet mit dir daran, **Spec + Implement** startet sie auf einer Rail;
|
|
26
|
+
- eine Rail-Startkarte für eine einzelne Spec bietet ebenfalls **In Flow starten** neben ihrem Start an.
|
|
27
|
+
|
|
28
|
+
Die Spec selbst ist dann **In Flow**: Es entsteht keine Platzhalter-Spec, und der erste Zug des Agenten erhält die Spec (Akzeptanzkriterien, Contract Layer, Nicht-Ziele und offene Addenda). Vom Board aus gestartet, öffnet sich der Flow in der Mission der Spec oder in einer neuen Mission mit dem Namen der Spec. In einem Projekt mit mehreren Git-Repositorys fragt ein kleiner Dialog zuerst, wo der Flow läuft, wenn die Spec nicht genau eines davon nennt: Es werden nur die Git-Repositorys angezeigt, das Repository der Spec (sonst das primäre) ist vorausgewählt, und die Pfeiltasten ändern die Auswahl. **In Flow starten** ist deaktiviert, mit dem Grund im Tooltip, wenn die Spec schon in Flow ist, erledigt oder abgebrochen ist, auf einer Rail liegt oder Flow nicht verfügbar ist.
|
|
29
|
+
|
|
30
|
+
**Verwerfen** gibt die Spec genau so zurück, wie sie war, mit ihrem vorherigen Status: Deine Spec wird nie gelöscht. Wird der Flow geliefert, wird die Spec aus dem Gebauten neu geschrieben; vorher bleibt ihr ursprünglicher Text als Kommentar **Original spec before Flow** erhalten, damit nichts verloren geht. Eine bereits mit Jira verknüpfte Spec aktualisiert genau dieses Issue und verschiebt es in den für Review zugeordneten Status; es entsteht kein zweites Issue.
|
|
31
|
+
|
|
32
|
+
## Während des Flows
|
|
33
|
+
|
|
34
|
+
Der Flow-Modus wird dort benannt, wo du hinschaust, in seiner eigenen Flow-Farbe: Der Composer zeigt einen **Flow**-Chip neben dem Autonomie-Chip und den Hinweis *Sag dem Agenten, was er in diesem Flow ändern soll…*; der Missionstitel zeigt **Im Flow**, ebenso ihre Zeile in der Missionsliste. Das Gespräch markiert, wo du Flow betreten und verlassen hast, und die im Flow geschriebenen Antworten des Agenten tragen neben ihrer Uhrzeit eine kleine **Flow**-Marke.
|
|
35
|
+
|
|
36
|
+
Die Leiste direkt über dem Composer zeigt den Flow in einer kurzen Zeile: seinen Status, **Flow · 7 Dateien**, **Flow pausieren** und die Hauptaktion **Übergeben**. Ist eine Aktion nicht verfügbar (der Flow speichert noch, eine andere Aktion läuft), sagt der Hover-Text warum. Öffne die Zeile mit ihrem Pfeil, wie jeden anderen Lauf, um den Rest zu sehen:
|
|
37
|
+
|
|
38
|
+
- den **Branch** (Klick kopiert den Namen), die **Änderungen** mit hinzugefügten und entfernten Zeilen (Klick listet jede geänderte Datei mit Status und +/−) und die **Kosten bisher**, wie vom Anbieter abgerechnet. Bis ein Zug gemeldete Kosten hat, steht dort `—`, nie eine Schätzung; ein `*` markiert eine Summe ohne unbepreiste Züge, mit einem Hinweis, wie viele es sind;
|
|
39
|
+
- **Vorschau**, solange die App des Flows läuft (siehe unten);
|
|
40
|
+
- **Verwerfen**, abgesetzt, löscht die Änderungen des Flows, seinen Branch und die Platzhalter-Spec. Die Bestätigung listet, was verloren geht: die geänderten Dateien mit ihren +/−, den Branch und die Spec.
|
|
41
|
+
|
|
42
|
+
**Flow pausieren** stoppt den Agenten und behält deine Änderungen und die Spec. Die Zeile zeigt dann **Flow fortsetzen**.
|
|
43
|
+
|
|
44
|
+
Du kannst schreiben, während der Agent arbeitet: Im Flow **unterbricht** deine Nachricht den aktuellen Schritt (der Senden-Knopf wird zum Blitz), und der Agent macht sofort mit deinen neuen Informationen weiter. Solange der Flow offen ist, tritt die Git-Leiste unter dem Composer zur Seite: Das Panel des Flows zeigt seinen Branch bereits.
|
|
45
|
+
|
|
46
|
+
## Die App ausprobieren
|
|
47
|
+
|
|
48
|
+
Der Flow-Agent führt Typecheck und Tests selbst aus, um seine Arbeit zu prüfen. Gibt es etwas auszuprobieren, fragt er mit drei Optionen: **Start the app**, **Start and expose on the local network** oder **Not now**. Freigeben erlaubt dir, die App von einem Handy im selben WLAN oder VPN zu öffnen, und jeder in diesem Netz kann sie erreichen.
|
|
49
|
+
|
|
50
|
+
Sobald die App lauscht, gibt dir der Agent ihre Adressen als Links, und das Panel des Flows zeigt **Vorschau** mit einem grünen Punkt: Sie öffnet die App in deinem Browser. Ihr Menü hat die Netzwerkadresse und **App beenden**. Die App läuft aus der Kopie des Flows, nie aus deinem Haupt-Checkout, und Specrails beendet sie, wenn du den Flow pausierst, verwirfst oder übergibst.
|
|
51
|
+
|
|
52
|
+
## Übergeben {#flow-hand-off}
|
|
53
|
+
|
|
54
|
+
Wenn dir das Ergebnis gefällt, drücke **Übergeben**. Die Zeile zeigt **Bereit, ein PR zu werden** und öffnet darüber eine einzige Zeile: *Rail 2 macht aus deinen 7 geänderten Dateien einen geprüften PR. Wenn etwas schiefgeht, bleibt deine Arbeit erhalten.* Drücke **Starten** oder **Noch nicht**, um zum Flow zurückzukehren; **Esc** ist dasselbe wie **Noch nicht**; ein Klick daneben klappt die Zeile nur ein, und die Zeile bleibt bei **Bereit, ein PR zu werden** mit **Starten**. Kann die Engine deines Gesprächs die Übergabe auf diesem Rechner nicht ausführen, sagt das ein Hinweis direkt unter der Zeile, und die Standard-Engine des Rails wird verwendet.
|
|
55
|
+
|
|
56
|
+
Rail, Engine, Modell und Aufwand sind schon für dich gewählt (ein freier Rail und die Engine deines Gesprächs). Um sie zu ändern, öffne **Vorgehen ändern**; dort siehst du auch, was sich geändert hat. Die Kosten bisher stehen in der Hauptzeile. Deine Auswahl bleibt erhalten, wenn du **Noch nicht** drückst und später erneut übergibst. Während die Übergabe startet, zeigt die Leiste den Start ohne Lücke und folgt dann dem Lauf Schritt für Schritt. Ist das Review-Limit oder ein Budget erreicht, sagt die Zeile das, und nichts startet. Zeigt sich der Lauf nach 45 Sekunden noch nicht, hört die Leiste auf zu drehen und zeigt **Wird noch an Rail 2 übergeben…** mit **Aktualisieren**, das erneut nachsieht und weiter wartet, bis der Lauf erscheint.
|
|
57
|
+
|
|
58
|
+
Der Rail leitet aus dem Gebauten die Spec und ihre Spec-Änderung ab, prüft und reviewt sie, und die Auslieferungskarte erscheint in der Mission wie bei jedem Lauf.
|
|
59
|
+
|
|
60
|
+
Scheitert der Lauf aus technischem Grund, kommt die Arbeit von selbst unversehrt in diesen Flow zurück: Die Karte sagt in einfachen Worten, was fehlschlug (die Codes bleiben unter **Technische Details**), und der Agent erhält den Fehler und erklärt ihn. Verlangt die Review Änderungen, bietet die Karte **Zurück zum Flow** oder **Neu starten**. Ist die Auslieferung abgeschlossen, schließt die Mission den Flow mit einer Zusammenfassung: der Pull Request, die aus dem Gebauten neu geschriebene Spec, die archivierte Spec-Änderung und der Jira-Vorgang, falls vorhanden.
|
|
61
|
+
|
|
62
|
+
## Gut zu wissen
|
|
63
|
+
|
|
64
|
+
- Flow schreibt nur auf seinem eigenen Branch. Außerhalb von Flow bleiben Missionen schreibgeschützt.
|
|
65
|
+
- Ein Flow pro Mission zur gleichen Zeit. Eine Pause übersteht einen Neustart der App.
|
|
66
|
+
- Verschwindet die Projektkopie des Flows, wird der Flow als **muss geprüft werden** markiert (zur Info, nichts zu entscheiden), und nichts wird gelöscht.
|
|
67
|
+
- Die Leiste wechselt nie den Lauf, den du gerade ansiehst. Braucht dich inzwischen ein anderer Lauf, sagt sein Name im Umschalter der Leiste **braucht dich**.
|
|
68
|
+
- Jira erhält nichts, solange du im Flow bist oder wenn du ihn verwirfst.
|
|
69
|
+
- Flow-Kosten erscheinen in der Analyse als eigene Oberfläche, **Flow**, und im Block der Agenten-Missionen.
|
|
@@ -37,13 +37,14 @@ Das war's. Die rail startet einen KI-CLI-Prozess im richtigen Ausführungskontex
|
|
|
37
37
|
| **Loop-Auswahl** | Der Loop, den diese rail ausführt — ein eingebauter (`Implement` / `Freestyle` / `SDD Quick (OpenSpec)`) oder ein eigener Loop. Siehe Tabelle unten. Pro rail gespeichert. |
|
|
38
38
|
| **▶ Play / ■ Stop** | Starten oder abbrechen. |
|
|
39
39
|
|
|
40
|
-
### Was eine rail ausführt: Loops
|
|
40
|
+
### Was eine rail ausführt: Loops {#rail-loops}
|
|
41
41
|
|
|
42
42
|
Eine rail führt einen **Loop** aus — das Rezept für die Arbeit. Zwei Loops sind **eingebaut** und decken die gängigen Fälle ab:
|
|
43
43
|
|
|
44
44
|
| Eingebauter Loop | Befehl | Was er macht |
|
|
45
45
|
|------|---------|--------------|
|
|
46
46
|
| **Implement** | `/specrails:implement` | Ein Job für alle Specs auf der rail. Durchläuft die komplette Pipeline Architect → Developer → Reviewer → Ship. Der Alltagsstandard. |
|
|
47
|
+
| **Freestyle** | Freestyle | Der Provider der rail setzt jede Spec selbstständig um und **umgeht** die Pipeline; danach verfeinern Verifikation und Loop Decider das Ergebnis, bis alles grün ist. Ein unabhängiger Lauf pro Spec. Funktioniert mit Claude, Codex, Gemini, Kimi und lokalen Engines; der interaktive Chat im Job gibt es nur mit Claude. |
|
|
47
48
|
|
|
48
49
|
Für mehrere Specs legst du zusammengehörige (bis zu 3) auf eine rail — `Implement` führt sie als einen gemeinsamen Job aus — oder verteilst unabhängige Specs auf mehrere rails: Jede git-gestützte rail läuft parallel in ihrem eigenen isolierten Worktree.
|
|
49
50
|
|
|
@@ -85,6 +86,25 @@ Wenn etwas nicht stimmt:
|
|
|
85
86
|
- **Auto-Pause beim Budget** — setze ein Tagesbudget, und die Queue pausiert sich selbst, sobald die Ausgaben des Tages das Limit erreichen.
|
|
86
87
|
- **Alles** — beende die Desktop-App oder führe `specrails-desktop stop` aus.
|
|
87
88
|
|
|
89
|
+
## Lokal integrieren mit nicht committeten Änderungen
|
|
90
|
+
|
|
91
|
+
**Lokal integrieren** führt eine freigegebene Lieferung auf diesem Rechner ohne PR in deinen Integrationsbranch (zum Beispiel `main`) zusammen. Ein sauberer Checkout ist nicht nötig:
|
|
92
|
+
|
|
93
|
+
- Nicht committete Änderungen, die die gelieferten Dateien nicht berühren, bleiben einfach, wo sie sind.
|
|
94
|
+
- Berühren deine Änderungen dieselben Dateien, sichert Specrails sie als git stash namens `specrails: before integrating #N (…)`, integriert und spielt sie zurück. Die Meldung lautet sinngemäß: Änderungen gesichert, #N integriert, wiederhergestellt.
|
|
95
|
+
- Führt das Zurückspielen zu Konflikten mit dem integrierten Code, lässt Specrails den Branch genau wie integriert und **behält den Stash** — nichts geht verloren. Die Karte zeigt *Deine lokalen Änderungen sind als Stash gesichert* mit den Konfliktdateien, **Meine Änderungen wiederherstellen** (erneuter Versuch, etwa nachdem du den Code geändert hast) und den Stash-Namen zum Kopieren. Anschließend stellt Specrails sie selbst auf einem neuen Branch `specrails/restore-local-<id>` in einem separaten Worktree wieder her: Lassen sie sich dort konfliktfrei anwenden, committet es sie; andernfalls arbeitet ein KI-Konfliktlöser nur in diesem Worktree, bewahrt deine Absicht und den integrierten Code, und Specrails committet das Ergebnis. Die Karte listet die wiederhergestellten Dateien; **Nach <Branch> zurückholen** bringt sie auf deinen Branch (erst dann wird der Stash verworfen) und **Wiederhergestellten Branch verwerfen** entfernt den Branch und behält den Stash. Eine Mission wird nur informiert; sie muss nie etwas ausführen. Von Specrails generierte OpenSpec-Skills und -Befehle (etwa `.claude/skills/openspec-*/SKILL.md`) gelten nicht als deine Änderungen: Bei einem Konflikt behalten sie die integrierte Version.
|
|
96
|
+
- Ignorierte Dateien werden nie gestasht: kollidiert eine davon mit der Lieferung, bittet Specrails dich, sie vorher zu verschieben.
|
|
97
|
+
- Stoppt die App zwischen Sichern und Wiederherstellen, stellt sie deine Änderungen beim nächsten Öffnen des Projekts wieder her (nur wenn derselbe Branch ausgecheckt ist).
|
|
98
|
+
|
|
99
|
+
## Zeit- und Kostenprognose {#launch-forecast}
|
|
100
|
+
|
|
101
|
+
Bevor du auf Starten drückst, kann ein Rail zeigen, wie lange vergleichbare Läufe üblicherweise dauern und, wo es sinnvoll ist, was sie üblicherweise kosten, zum Beispiel *Üblicherweise 6–9 Min. · 2–4 $ für solche Läufe*.
|
|
102
|
+
|
|
103
|
+
Die Spanne ist die mittlere Hälfte deines eigenen Verlaufs: das 25. bis 75. Perzentil abgeschlossener Läufe in diesem Projekt mit demselben Loop oder Befehl und derselben Engine. Es braucht mindestens 5 vergleichbare Läufe. Bis dahin steht in der Zeile *Noch nicht genug Verlauf* statt einer Vermutung. Es zählen nur vom Anbieter gemeldete Kosten; geschätzte Kosten bleiben außen vor. Es ist eine Schätzung, nie eine Rechnung.
|
|
104
|
+
|
|
105
|
+
Der Dollarbetrag erscheint nur, wenn bekannt ist, dass die Engine nach Verbrauch abrechnet (zum Beispiel mit einem API-Schlüssel). Bei einem Abo-Tarif oder solange die Abrechnungsart noch nicht bekannt ist, wird nur die Zeit angezeigt. Enthält die Rail mehrere Specs, gilt die Spanne für eine Spec und sagt das mit *(pro Spec)*. Könnten die heutigen Ausgaben plus das obere Ende der Spanne dein Tagesbudget erreichen, ergänzt die Zeile *Könnte am Budget pausieren* mit einem Link zu den Budgeteinstellungen. Ist das heutige Budget bereits aufgebraucht, bittet Starten zuerst um Bestätigung, weil der Lauf bis zum Zurücksetzen pausieren würde.
|
|
106
|
+
|
|
107
|
+
|
|
88
108
|
## Wie es weitergeht
|
|
89
109
|
|
|
90
110
|
- [Der Loop Builder](the-loop-builder) — was eine rail ausführt und wie du deine eigenen Loops baust.
|
|
@@ -107,6 +107,18 @@ Wenn [Telemetrie](../settings/customizing) für den Job aktiviert war, erscheint
|
|
|
107
107
|
|
|
108
108
|
Praktisch, um einen Lauf mit einem Teammitglied zu teilen oder einen präzisen Fehlerbericht einzureichen.
|
|
109
109
|
|
|
110
|
+
## Wenn ein Lauf fehlschlägt
|
|
111
|
+
|
|
112
|
+
Wenn ein Job fehlschlägt, stoppt oder blockiert ist, beginnt der Endzustand mit einer **Diagnosekarte**, die in klaren Worten sagt, was passiert ist, zum Beispiel *Tests sind in der Phase Reviewer nach 4 Korrekturrunden fehlgeschlagen*, und warum, wenn die App es weiß:
|
|
113
|
+
|
|
114
|
+
- **Tests fehlgeschlagen**: Die Prüfungen schlagen nach den Korrekturrunden weiter fehl.
|
|
115
|
+
- **Anbieterlimit**: Das Nutzungslimit des KI-Anbieters ist erreicht. Die Karte nennt den Zeitpunkt des Zurücksetzens in den Worten des Anbieters.
|
|
116
|
+
- **Umgebung**: Der Rechner kann die Prüfungen nicht ausführen (Zugangsdaten, fehlendes Werkzeug, fehlschlagender Setup-Befehl). *Umgebung reparieren* zeigt genau, was auszuführen oder zu ändern ist.
|
|
117
|
+
- **Blockiert**, **Zeit überschritten**, **stumm geblieben** und **unerwartet gestoppt** nennen das Limit oder den Prozess, der den Lauf angehalten hat.
|
|
118
|
+
- **Unbekannte Ursache**: Die App rät nicht. Sie zeigt das Ende des Protokolls, damit du es selbst lesen kannst.
|
|
119
|
+
|
|
120
|
+
Unter der Diagnose stehen bis zu drei gereihte Abhilfen, und nur solche, die hier funktionieren können: **Fortsetzen ab** der angehaltenen Phase, **Erneut ausführen**, **Spec bearbeiten und neu starten** (die Nachträge der Spec tragen deine Änderung in den nächsten Lauf), **Umgebung reparieren** und **Protokoll am Fehler öffnen**. Dieselbe Ursache erscheint als einzeilige Bezeichnung im [Liste „Offen“](../getting-started/the-dashboard-tour), und die Lauf-Karte der Mission zeigt dieselbe Karte.
|
|
121
|
+
|
|
110
122
|
## Wie es weitergeht
|
|
111
123
|
|
|
112
124
|
- [Rails & Jobs](rails-and-jobs) — Starten und Einreihen in die Queue.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!-- guide-revision: mission-first-v1 -->
|
|
2
|
+
|
|
3
|
+
# Eine Lieferung in der App prüfen {#review-a-delivery}
|
|
4
|
+
|
|
5
|
+
Eine prüfbereite Lieferung hat zwei Ansichten: **Übersicht** (das Urteil, die Belege und die Entscheidungsschaltflächen) und **Änderungen** (was die Lieferung tatsächlich geändert hat). Öffne die Prüfung über die Schaltfläche **Prüfen** der Lieferung und wähle dann **Änderungen**.
|
|
6
|
+
|
|
7
|
+
## Die Änderungen lesen
|
|
8
|
+
|
|
9
|
+
Die Dateiliste links zeigt jede geänderte Datei mit Status (hinzugefügt, geändert, gelöscht, umbenannt), ihren `+`- und `−`-Zeilenzahlen und einem Haken, sobald du sie als angesehen markierst. Der Diff rechts lädt jeweils eine Datei, daher bleibt auch eine große Änderung flüssig. Wechsle zwischen den Darstellungen **Vereint** und **Geteilt**; Specrails merkt sich deine Wahl. Eine sehr große Datei zeigt ihre ersten Zeilen mit **Vollständigen Datei-Diff laden**; eine Binärdatei wird als binär aufgeführt.
|
|
10
|
+
|
|
11
|
+
Die Änderungen werden ab dem Punkt gemessen, an dem die Lieferung von ihrem Basis-Branch abzweigte, daher erscheint nichts, was danach in die Basis kam. Hat eine Lieferung noch keinen kombinierten Branch, kannst du wählen, den Branch welcher Spec du lesen willst.
|
|
12
|
+
|
|
13
|
+
## Anmerkungen des Reviewers am Code
|
|
14
|
+
|
|
15
|
+
Die Befunde des Reviewers, die markierten Risiken und die Review-Kommentare, die der Lauf lösen sollte, erscheinen unter der Zeile, um die es geht. Anmerkungen ohne Datei oder Zeile stehen über der Dateiliste, es wird also nichts verborgen. Ältere Lieferungen und Reviewer, die keinen Ort nannten, zeigen ihre Befunde in dieser Liste.
|
|
16
|
+
|
|
17
|
+
## Den Agenten um eine Änderung bitten
|
|
18
|
+
|
|
19
|
+
Wähle Zeilen per Klick auf ihre Nummern (Umschalt-Klick erweitert den Bereich), wähle **Änderung beim Agenten anfragen** und beschreibe die Änderung. Specrails speichert sie als Review-Feedback an der Spec, mit Datei, Zeilenbereich und dem ausgewählten Code, und zeigt eine Meldung mit einem Link zur Spec. Der nächste Lauf zu dieser Spec erhält es. Um ihn sofort zu starten, nutze **Änderungen anfordern** in der Übersicht. Hier gibt es keine Kommentarthreads zwischen Personen; besprich dich mit deinem Team auf GitHub.
|
|
20
|
+
|
|
21
|
+
## In deinem Editor öffnen
|
|
22
|
+
|
|
23
|
+
**Im Editor öffnen** öffnet die Datei an der ausgewählten Zeile in VS Code, Cursor oder einer JetBrains-IDE. Den Editor wählst du unter **Einstellungen → Code → Editor**. Die Datei öffnet sich aus deinem eigenen Checkout des Projekts, in dem der Review-Branch möglicherweise nicht ausgecheckt ist.
|
|
24
|
+
|
|
25
|
+
## Entscheiden, was mit einer Lieferung geschieht {#pr-decision}
|
|
26
|
+
|
|
27
|
+
Ein abgeschlossener Lauf fragt dich nur eines: Was soll mit dem Ergebnis passieren? Die Karte zeigt eine Hauptschaltfläche für den nächsten Schritt (PR erstellen, veröffentlichen oder prüfen) und daneben **Prüfen**, das das verständliche Review-Paket öffnet. Alles andere liegt hinter **Weitere Aktionen**:
|
|
28
|
+
|
|
29
|
+
- **Branch auschecken** legt den Branch in deinem Projektordner ab, damit du ihn ausprobieren kannst.
|
|
30
|
+
- **Lokal integrieren** führt das Ergebnis auf diesem Computer in deinen Basis-Branch zusammen. GitHub ist nicht nötig, und du bestätigst vorher.
|
|
31
|
+
- **Verwerfen** entfernt das Ergebnis und seinen Branch. Du bestätigst vorher.
|
|
32
|
+
|
|
33
|
+
Schlägt eine Aktion fehl, nennt die Meldung, was nicht geklappt hat, und bietet **Wiederholen** an.
|
|
34
|
+
|
|
35
|
+
## Tastatur
|
|
36
|
+
|
|
37
|
+
| Taste | Aktion |
|
|
38
|
+
| --- | --- |
|
|
39
|
+
| `j` / `k` | Nächste / vorherige geänderte Datei |
|
|
40
|
+
| `n` / `p` | Nächste / vorherige Anmerkung des Reviewers |
|
|
41
|
+
| `v` | Datei als angesehen markieren |
|
|
42
|
+
|
|
43
|
+
Die Tasten werden ignoriert, während du in ein Feld tippst. „Angesehen“ ist nur für dich sichtbar; ändert sich die Datei in einer späteren Revision, zeigt sie **Seit dem Ansehen geändert** und gilt wieder als nicht angesehen.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Engine pro Rail wählen
|
|
1
|
+
# Engine pro Rail wählen {#provider-capabilities}
|
|
2
2
|
|
|
3
3
|
## Wann die Auswahl erscheint
|
|
4
4
|
|
|
@@ -19,7 +19,7 @@ Alle vier führen **Implement** aus:
|
|
|
19
19
|
| Engine | Greif dazu, wenn… | Hinweise |
|
|
20
20
|
|--------|--------------------|-------|
|
|
21
21
|
| **Claude** | Du native Kosten, persistente Interaktion oder strikte Tool-Policies brauchst. | Profile, Freestyle und strukturierte Transforms. |
|
|
22
|
-
| **Codex** | Du die OpenAI Codex CLI bevorzugst oder Implementierungen über verschiedene Provider hinweg vergleichen willst. | `codex` ≥ 0.128.0. Keine native Kostenmeldung — die App ergänzt die Kosten aus ihrer Preistabelle. Profile gelten nicht. |
|
|
22
|
+
| **Codex** | Du die OpenAI Codex CLI bevorzugst oder Implementierungen über verschiedene Provider hinweg vergleichen willst. | `codex` ≥ 0.128.0. Keine native Kostenmeldung — die App ergänzt die Kosten aus ihrer Preistabelle. Profile gelten nicht. Freestyle läuft ohne interaktiven Chat. |
|
|
23
23
|
|
|
24
24
|
## Ein praktischer Workflow
|
|
25
25
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Pipeline-Telemetrie & Diagnose
|
|
1
|
+
# Pipeline-Telemetrie & Diagnose {#telemetry}
|
|
2
2
|
|
|
3
3
|
Die Telemetrie zeichnet Pipeline-Diagnosen lokal auf. Sie ist für Projekte ohne gespeicherte Einstellung **standardmäßig aktiviert**. Du kannst sie pro Projekt deaktivieren; ausdrücklich gespeicherte Einstellungen bleiben erhalten.
|
|
4
4
|
|
|
@@ -20,7 +20,7 @@ Ab diesem Moment zeichnen Pipeline-Jobs in diesem Projekt Telemetrie auf. Andere
|
|
|
20
20
|
|
|
21
21
|
### Was abgedeckt ist
|
|
22
22
|
|
|
23
|
-
Die Telemetrie gilt für
|
|
23
|
+
Die Telemetrie gilt für Jobs, die über die **Job-Queue** des Projekts laufen: CLI-Pipeline-Läufe (Rails, wenn Loops deaktiviert sind, und `implement`-Befehle aus der `specrails-desktop`-CLI). Loop-Läufe – die Standardart, wie Rails laufen – sowie interaktive Sitzungen wie Chat, Explore und Missionen werden nicht instrumentiert.
|
|
24
24
|
|
|
25
25
|
## Wo die Daten liegen
|
|
26
26
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Projektumgebung
|
|
1
|
+
# Projektumgebung {#project-environment}
|
|
2
2
|
|
|
3
3
|
Manche Projekte brauchen zur Laufzeit ein Zugangsdatum, etwa `NODE_AUTH_TOKEN` für private npm-Pakete. Füge unter **Projekteinstellungen → Umgebung** die **Namen** der Variablen hinzu, die deine Rails und Loops brauchen. Specrails speichert nur die Namen, nie die Werte.
|
|
4
4
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Updates {#updates}
|
|
2
|
+
|
|
3
|
+
Specrails hält zwei Dinge aktuell: die App **Specrails Desktop** selbst und das Framework **specrails-core**, das deine Projekte verwenden. Beides findest du unter **Einstellungen ▸ Updates**.
|
|
4
|
+
|
|
5
|
+
## Update-Kanal
|
|
6
|
+
|
|
7
|
+
Wähle, wie schnell du neue Versionen erhältst:
|
|
8
|
+
|
|
9
|
+
- **Neueste** (Standard): jede Version sofort nach der Veröffentlichung. Neue Funktionen und Korrekturen bekommst du zuerst.
|
|
10
|
+
- **Stabil**: nur Versionen, die mindestens eine Woche mit grüner CI auf Neueste liefen und danach von den Maintainern freigegeben wurden. Sinnvoll, wenn dein Team weniger, gut getestete Updates bevorzugt.
|
|
11
|
+
|
|
12
|
+
Der Kanal gilt für die App und für specrails-core. Hat specrails-core noch keine stabile Version, folgt Core vorerst Neueste, und die Core-Karte weist darauf hin.
|
|
13
|
+
|
|
14
|
+
Wurde auf Stabil noch keine Version freigegeben, meldet **Nach Updates suchen** das, statt eine Version von Neueste anzubieten.
|
|
15
|
+
|
|
16
|
+
## Wie Updates ankommen
|
|
17
|
+
|
|
18
|
+
- **Specrails Desktop** prüft beim Start und alle 6 Stunden. Ist ein Update verfügbar, erscheint eine Karte zum Herunterladen, Installieren und Neustarten. Du kannst auch auf **Nach Updates suchen** klicken.
|
|
19
|
+
- **specrails-core** aktualisiert sich nie von selbst. Klicke auf der Core-Karte auf **Nach Updates suchen** und dann auf **Aktualisieren**. Deine Projekte wechseln ohne Neustart der App zum neuen Framework.
|
|
20
|
+
|
|
21
|
+
## Gut zu wissen
|
|
22
|
+
|
|
23
|
+
- Ein Wechsel von Neueste zu Stabil stuft dich nie herab. Du bleibst auf deiner Version, bis Stabil aufholt.
|
|
24
|
+
- Jedes Update wird auf beiden Kanälen vor der Installation signiert und geprüft.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# In einem bestehenden Projekt arbeiten {#existing-projects}
|
|
2
|
+
|
|
3
|
+
Diese Funktionen helfen Läufen, ein bestehendes Projekt zu respektieren: was eine Spec ausklammert, welche Fragen der Architekt vor der Planung hat, welche Anforderungen ein Test wirklich nachweist, wie alter Code vor einer Änderung beschrieben wird und welche Regeln dein Team bereits aufgeschrieben hat. Jede braucht eine specrails-core-Version, die sie unterstützt; bis dahin ist ihr Schalter ausgegraut, mit einem Hinweis, Core zu aktualisieren.
|
|
4
|
+
|
|
5
|
+
## Nicht im Umfang
|
|
6
|
+
|
|
7
|
+
Jede Spec kann auflisten, was sie bewusst **nicht** ändert. Quick und Explore füllen das für dich aus; im Spec-Fenster erscheint es als **Nicht im Umfang** unter der Beschreibung, ein Eintrag pro Zeile, und lässt sich wie jedes andere Feld bearbeiten. Die Agenten erhalten es bei jedem Start mit der Spec.
|
|
8
|
+
|
|
9
|
+
## Fragen des Architekten in Jira
|
|
10
|
+
|
|
11
|
+
Aktiviere unter **Einstellungen ▸ Verankerung in bestehenden Projekten** die Option **Klärungsfragen des Architekten in Jira posten**. Wenn ein Lauf anhält, weil der Architekt eine Antwort braucht, oder mit Annahmen fortfährt, postet Specrails sie als einen Kommentar im verknüpften Jira-Vorgang. Antworte in Jira auf diesen Kommentar: Die Antwort wird der Spec als Klärung hinzugefügt und der nächste Lauf der Spec liest sie. Einen pausierten Lauf kannst du weiterhin in der App beantworten.
|
|
12
|
+
|
|
13
|
+
## Nachgewiesene Anforderungen
|
|
14
|
+
|
|
15
|
+
Wenn ein Test die Anforderung nennt, die er nachweist (`[spec:<capability>/<anforderung>]` im Titel), zeigt die Review-Seite **Nachgewiesene Anforderungen X/Y**: welche Anforderungen ein erfolgreicher Test nachweist, welche noch keinen haben und welche die Änderung selbst berührt hat. Die Analysen zeigen dasselbe pro Loop. Damit CI fehlschlägt, wenn eine geänderte Anforderung keinen Test hat, füge nach deinen Tests `specrails-core pipeline trace --check --tests-passed` hinzu.
|
|
16
|
+
|
|
17
|
+
Die Loop-Bibliothek bietet außerdem **Drift-Prüfung**, einen nur lesenden Loop, der vergleicht, was jede Spec sagt und was der Code tut, und jeden Widerspruch auflistet. Er ändert nichts.
|
|
18
|
+
|
|
19
|
+
## Baseline bei Berührung
|
|
20
|
+
|
|
21
|
+
Aktiviere **Baseline bei Berührung**, damit eine Änderung, die Code ohne beschreibende Spec erreicht, ihn zuerst beschreibt: Tests des heutigen Verhaltens, am unveränderten Code bestätigt, und eine kurze Spec des Bestehenden. Die Review-Seite zeigt **Spec für den Code erstellt, den die Arbeit berührt hat** mit Modul, Anforderungen und Tests; die Kosten werden getrennt ausgewiesen. Schlagen diese Tests am unveränderten Code fehl, stoppt der Lauf vor jeder Änderung am Modul und sagt das.
|
|
22
|
+
|
|
23
|
+
## Projektregeln {#project-rules}
|
|
24
|
+
|
|
25
|
+
**Einstellungen ▸ Projektregeln** listet die Prüfungen, die dein Projekt bereits ausführt (Lint, Typen, Tests, CI), und jede Regel aus Dateien wie `CLAUDE.md` oder `AGENTS.md`, eingeteilt in:
|
|
26
|
+
|
|
27
|
+
- **Durchgesetzt**: Eine Prüfung garantiert sie bereits.
|
|
28
|
+
- **Automatisierbar**: Eine Prüfung könnte es. **Spec erstellen** macht daraus mit einem Klick eine Spec.
|
|
29
|
+
- **Nur manuell**: Jemand muss hinsehen. Diese Regeln erscheinen auf jeder Review-Seite unter **Menschliche Prüfung nötig**.
|
|
30
|
+
|
|
31
|
+
Regeln, die Core noch nicht einstufen konnte (etwa direkt nach dem Hinzufügen des Projekts, wenn die Inventur offline läuft), erscheinen als **Nicht eingestuft**; **Inventur erneut ausführen** mit konfiguriertem Anbieter stuft sie ein.
|
|
32
|
+
|
|
33
|
+
**Inventur erneut ausführen** aktualisiert die Liste. Hat ein Projekt noch keine Verifikationsbefehle, bieten die Agent-Runtime-Einstellungen zuerst diese Prüfungen an.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Barrierefreiheit und Anpassung {#accessibility}
|
|
2
|
+
|
|
3
|
+
Specrails passt sich an deine Arbeitsweise an. Alles steht unter **Einstellungen ▸ Darstellung**, gilt sofort und wird auf diesem Computer gespeichert.
|
|
4
|
+
|
|
5
|
+
## Dichte {#density}
|
|
6
|
+
|
|
7
|
+
**Komfortabel** hält Karten und Zeilen großzügig. **Kompakt** zeigt mehr auf einmal: Das Spec-Board startet als kompakte Zeilen, die Job-Liste nutzt engere Zeilen und die Job-Story verdichtet ihre Zeitleiste. Eine gespeicherte Board-Ansicht behält ihr eigenes Layout; eine als Haftnotizen gespeicherte Ansicht öffnet sich also weiterhin als Haftnotizen. Hat das Board dieses Projekts bereits ein eigenes Layout, lässt **Auch für das Board verwenden** unter der Auswahl es wieder der Dichte folgen.
|
|
8
|
+
|
|
9
|
+
## Bewegung reduzieren {#reduce-motion}
|
|
10
|
+
|
|
11
|
+
**System folgen** respektiert dein Betriebssystem. **Reduzieren** schaltet Animationen und Übergänge in Specrails aus, was auch das System sagt: Die Rail-Pille bleibt an ihrer Position, Live-Punkte pulsieren nicht mehr und der Builder-Halo sowie die Theme-Effekte stehen still. **Volle Bewegung** animiert auch dann, wenn das System weniger verlangt.
|
|
12
|
+
|
|
13
|
+
## Eine Spec per Tastatur verschieben {#keyboard-moves}
|
|
14
|
+
|
|
15
|
+
Fokussiere eine Spec-Karte im Board (Tab oder Pfeiltasten) und drücke **M**. Eine kleine Auswahl listet die Status und die Rails; wähle mit den Pfeiltasten und **Enter**. Das entspricht dem Ziehen der Karte dorthin, auch bei Jira-gebundenen Specs, die über deinen Jira-Workflow verschoben werden. Gehört die Karte zu einer Mehrfachauswahl (**X** wählt die fokussierte Karte aus), gilt die Verschiebung für alle ausgewählten Specs. Die Befehlspalette bietet dasselbe als **Fokussierte Spec verschieben…**. **M** tut nichts, solange du in ein Feld tippst.
|
|
16
|
+
|
|
17
|
+
## Run-Meldungen für Screenreader {#live-status}
|
|
18
|
+
|
|
19
|
+
Specrails meldet Änderungen an Runs über einen höflichen Live-Bereich für das Projekt, das du gerade ansiehst: ein Run gestartet, pausiert, braucht dich, fehlgeschlagen, abgeschlossen oder mit bereitem Review. Schübe werden zusammengefasst und Wiederholungen verworfen, damit eine geschäftige Rail den Screenreader nie überflutet. Rückgängig-Hinweise melden sich bereits selbst.
|
|
20
|
+
|
|
21
|
+
## Tastaturfokus {#focus}
|
|
22
|
+
|
|
23
|
+
Jede Schaltfläche, jeder Link, jedes Menüelement, jede Karte und jede Baumzeile zeigt einen sichtbaren Fokusring, wenn du sie per Tastatur erreichst. Informationen, die früher nur in einem Tooltip standen, etwa die Spec-Referenz auf einem Rail-Streifen, stehen auch Tastatur- und Screenreader-Nutzern zur Verfügung.
|