[{"data":1,"prerenderedAt":914},["ShallowReactive",2],{"navigation_docs":3,"-project-whats-new":504,"-project-whats-new-surround":909},[4,28,51,187,214,469],{"title":5,"path":6,"stem":7,"children":8},"Get started","\u002Fget-started","1.get-started",[9,12,16,20,24],{"title":10,"path":6,"stem":11},"Overview","1.get-started\u002Findex",{"title":13,"path":14,"stem":15},"Why Kraft","\u002Fget-started\u002Fwhy-kraft","1.get-started\u002F0.why-kraft",{"title":17,"path":18,"stem":19},"Install","\u002Fget-started\u002Finstall","1.get-started\u002F1.install",{"title":21,"path":22,"stem":23},"Your first work item","\u002Fget-started\u002Ffirst-work-item","1.get-started\u002F2.first-work-item",{"title":25,"path":26,"stem":27},"FAQ","\u002Fget-started\u002Ffaq","1.get-started\u002F3.faq",{"title":29,"path":30,"stem":31,"children":32},"Concepts","\u002Fconcepts","2.concepts",[33,35,39,43,47],{"title":10,"path":30,"stem":34},"2.concepts\u002Findex",{"title":36,"path":37,"stem":38},"How a work item runs","\u002Fconcepts\u002Fhow-a-work-item-runs","2.concepts\u002F1.how-a-work-item-runs",{"title":40,"path":41,"stem":42},"Caps and budgets","\u002Fconcepts\u002Fcaps-and-budgets","2.concepts\u002F2.caps-and-budgets",{"title":44,"path":45,"stem":46},"Why a permission gate","\u002Fconcepts\u002Fpermission-gate","2.concepts\u002F3.permission-gate",{"title":48,"path":49,"stem":50},"Vocabulary","\u002Fconcepts\u002Fvocabulary","2.concepts\u002F4.vocabulary",{"title":52,"path":53,"stem":54,"children":55},"Guides","\u002Fguides","3.guides",[56,58,96,113,134,183],{"title":10,"path":53,"stem":57},"3.guides\u002Findex",{"title":59,"path":60,"stem":61,"children":62,"page":95},"Day to day","\u002Fguides\u002Fday-to-day","3.guides\u002F1.day-to-day",[63,67,71,75,79,83,87,91],{"title":64,"path":65,"stem":66},"The setup wizard on first start","\u002Fguides\u002Fday-to-day\u002Ffirst-run","3.guides\u002F1.day-to-day\u002F2.first-run",{"title":68,"path":69,"stem":70},"File a work item","\u002Fguides\u002Fday-to-day\u002Ffile-a-work-item","3.guides\u002F1.day-to-day\u002F3.file-a-work-item",{"title":72,"path":73,"stem":74},"Use Kraft from your agent","\u002Fguides\u002Fday-to-day\u002Fagent-integration","3.guides\u002F1.day-to-day\u002F4.agent-integration",{"title":76,"path":77,"stem":78},"Reviewing a change","\u002Fguides\u002Fday-to-day\u002Freview-a-change","3.guides\u002F1.day-to-day\u002F5.review-a-change",{"title":80,"path":81,"stem":82},"Raise a cap on a stopped item","\u002Fguides\u002Fday-to-day\u002Fraise-a-cap","3.guides\u002F1.day-to-day\u002F6.raise-a-cap",{"title":84,"path":85,"stem":86},"Kraft for VS Code","\u002Fguides\u002Fday-to-day\u002Fvscode","3.guides\u002F1.day-to-day\u002F7.vscode",{"title":88,"path":89,"stem":90},"Kraft on a phone","\u002Fguides\u002Fday-to-day\u002Fkraft-on-a-phone","3.guides\u002F1.day-to-day\u002F8.kraft-on-a-phone",{"title":92,"path":93,"stem":94},"Get notified when an item needs you","\u002Fguides\u002Fday-to-day\u002Fnotifications","3.guides\u002F1.day-to-day\u002F9.notifications",false,{"title":97,"path":98,"stem":99,"children":100,"page":95},"Customize and automate","\u002Fguides\u002Fcustomize","3.guides\u002F2.customize",[101,105,109],{"title":102,"path":103,"stem":104},"Write your own chain","\u002Fguides\u002Fcustomize\u002Fwrite-your-own-chain","3.guides\u002F2.customize\u002F1.write-your-own-chain",{"title":106,"path":107,"stem":108},"Add a security review or a gate reviewer","\u002Fguides\u002Fcustomize\u002Fadd-review-agents","3.guides\u002F2.customize\u002F2.add-review-agents",{"title":110,"path":111,"stem":112},"Schedule or webhook work","\u002Fguides\u002Fcustomize\u002Fschedule-and-webhook-work","3.guides\u002F2.customize\u002F3.schedule-and-webhook-work",{"title":114,"path":115,"stem":116,"children":117,"page":95},"Agents and harnesses","\u002Fguides\u002Fharnesses","3.guides\u002F3.harnesses",[118,122,126,130],{"title":119,"path":120,"stem":121},"Switch a task to another harness","\u002Fguides\u002Fharnesses\u002Fswitch-harness","3.guides\u002F3.harnesses\u002F1.switch-harness",{"title":123,"path":124,"stem":125},"Add or override a harness","\u002Fguides\u002Fharnesses\u002Fadding-a-harness","3.guides\u002F3.harnesses\u002F2.adding-a-harness",{"title":127,"path":128,"stem":129},"Build a worker Kit","\u002Fguides\u002Fharnesses\u002Fworker-kit","3.guides\u002F3.harnesses\u002F3.worker-kit",{"title":131,"path":132,"stem":133},"Give a worker its login","\u002Fguides\u002Fharnesses\u002Fgive-a-worker-its-login","3.guides\u002F3.harnesses\u002F4.give-a-worker-its-login",{"title":135,"path":136,"stem":137,"children":138,"page":95},"Run the server","\u002Fguides\u002Frun","3.guides\u002F4.run",[139,143,147,151,155,159,163,167,171,175,179],{"title":140,"path":141,"stem":142},"Remote access","\u002Fguides\u002Frun\u002Fremote-access","3.guides\u002F4.run\u002F01.remote-access",{"title":144,"path":145,"stem":146},"Put a proxy in front of Kraft","\u002Fguides\u002Frun\u002Fput-a-proxy-in-front-of-kraft","3.guides\u002F4.run\u002F02.put-a-proxy-in-front-of-kraft",{"title":148,"path":149,"stem":150},"Restart Kraft without ending running agents","\u002Fguides\u002Frun\u002Frestart-kraft","3.guides\u002F4.run\u002F03.restart-kraft",{"title":152,"path":153,"stem":154},"Back up and restore the database","\u002Fguides\u002Frun\u002Fback-up-and-restore","3.guides\u002F4.run\u002F04.back-up-and-restore",{"title":156,"path":157,"stem":158},"Logs and disk space","\u002Fguides\u002Frun\u002Flogs-and-disk-space","3.guides\u002F4.run\u002F05.logs-and-disk-space",{"title":160,"path":161,"stem":162},"Run Kraft as a service","\u002Fguides\u002Frun\u002Frun-as-a-service","3.guides\u002F4.run\u002F06.run-as-a-service",{"title":164,"path":165,"stem":166},"Upgrade Kraft","\u002Fguides\u002Frun\u002Fupgrade-kraft","3.guides\u002F4.run\u002F07.upgrade-kraft",{"title":168,"path":169,"stem":170},"Upgrade your configuration","\u002Fguides\u002Frun\u002Fupgrade-your-configuration","3.guides\u002F4.run\u002F08.upgrade-your-configuration",{"title":172,"path":173,"stem":174},"Upgrade from 1.4","\u002Fguides\u002Frun\u002Fupgrade-from-1-4","3.guides\u002F4.run\u002F09.upgrade-from-1-4",{"title":176,"path":177,"stem":178},"Upgrade from 0.x or a release candidate","\u002Fguides\u002Frun\u002Fupgrade-from-0-x-or-a-release-candidate","3.guides\u002F4.run\u002F10.upgrade-from-0-x-or-a-release-candidate",{"title":180,"path":181,"stem":182},"Roll back to 1.4","\u002Fguides\u002Frun\u002Froll-back","3.guides\u002F4.run\u002F11.roll-back",{"title":184,"path":185,"stem":186},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F5.kraft-lite",{"title":188,"path":189,"stem":190,"children":191},"Troubleshooting","\u002Ftroubleshooting","4.troubleshooting",[192,194,198,202,206,210],{"title":10,"path":189,"stem":193},"4.troubleshooting\u002Findex",{"title":195,"path":196,"stem":197},"Why did my item stop?","\u002Ftroubleshooting\u002Fwhy-did-my-item-stop","4.troubleshooting\u002F1.why-did-my-item-stop",{"title":199,"path":200,"stem":201},"Stop reasons in detail","\u002Ftroubleshooting\u002Fstop-reasons-in-detail","4.troubleshooting\u002F2.stop-reasons-in-detail",{"title":203,"path":204,"stem":205},"Starting and reaching Kraft","\u002Ftroubleshooting\u002Fstarting-and-reaching-kraft","4.troubleshooting\u002F3.starting-and-reaching-kraft",{"title":207,"path":208,"stem":209},"Doctor failures","\u002Ftroubleshooting\u002Fdoctor-failures","4.troubleshooting\u002F4.doctor-failures",{"title":211,"path":212,"stem":213},"Sandbox and Kit stops","\u002Ftroubleshooting\u002Fsandbox-and-kit-stops","4.troubleshooting\u002F5.sandbox-and-kit-stops",{"title":215,"path":216,"stem":217,"children":218},"Reference","\u002Freference","5.reference",[219,221,259,281,285,375,393,419,423,427,461,465],{"title":10,"path":216,"stem":220},"5.reference\u002Findex",{"title":222,"path":223,"stem":224,"children":225},"Web UI","\u002Freference\u002Fweb-ui","5.reference\u002F00.web-ui\u002Findex",[226,227,231,235,239,243,247,251,255],{"title":10,"path":223,"stem":224},{"title":228,"path":229,"stem":230},"Sidebar, search, and keyboard","\u002Freference\u002Fweb-ui\u002Fsidebar-search-and-keyboard","5.reference\u002F00.web-ui\u002F0.sidebar-search-and-keyboard",{"title":232,"path":233,"stem":234},"The board","\u002Freference\u002Fweb-ui\u002Fboard","5.reference\u002F00.web-ui\u002F1.board",{"title":236,"path":237,"stem":238},"An item's page","\u002Freference\u002Fweb-ui\u002Fitem-page","5.reference\u002F00.web-ui\u002F2.item-page",{"title":240,"path":241,"stem":242},"Fix loops and test scopes","\u002Freference\u002Fweb-ui\u002Ffix-loops-and-test-scopes","5.reference\u002F00.web-ui\u002F3.fix-loops-and-test-scopes",{"title":244,"path":245,"stem":246},"Config before an item starts","\u002Freference\u002Fweb-ui\u002Fconfig-before-start","5.reference\u002F00.web-ui\u002F4.config-before-start",{"title":248,"path":249,"stem":250},"The review page","\u002Freference\u002Fweb-ui\u002Freview-page","5.reference\u002F00.web-ui\u002F5.review-page",{"title":252,"path":253,"stem":254},"Templates and Settings","\u002Freference\u002Fweb-ui\u002Ftemplates-and-settings","5.reference\u002F00.web-ui\u002F6.templates-and-settings",{"title":256,"path":257,"stem":258},"Analytics","\u002Freference\u002Fweb-ui\u002Fanalytics","5.reference\u002F00.web-ui\u002F7.analytics",{"title":260,"path":261,"stem":262,"children":263},"CLI","\u002Freference\u002Fcli","5.reference\u002F01.cli\u002Findex",[264,265,269,273,277],{"title":10,"path":261,"stem":262},{"title":266,"path":267,"stem":268},"Item verbs","\u002Freference\u002Fcli\u002Fitem","5.reference\u002F01.cli\u002F2.item",{"title":270,"path":271,"stem":272},"View verbs","\u002Freference\u002Fcli\u002Fview","5.reference\u002F01.cli\u002F3.view",{"title":274,"path":275,"stem":276},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","5.reference\u002F01.cli\u002F4.repo",{"title":278,"path":279,"stem":280},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","5.reference\u002F01.cli\u002F5.admin",{"title":282,"path":283,"stem":284},"Work item statuses","\u002Freference\u002Fstatuses","5.reference\u002F02.statuses",{"title":286,"path":287,"stem":288,"children":289},"Configuration","\u002Freference\u002Fconfiguration","5.reference\u002F03.configuration\u002Findex",[290,291,309,313,317,321,325,329,333,337,371],{"title":10,"path":287,"stem":288},{"title":292,"path":293,"stem":294,"children":295},"repos.yaml","\u002Freference\u002Fconfiguration\u002Frepos","5.reference\u002F03.configuration\u002F02.repos\u002Findex",[296,297,301,305],{"title":10,"path":293,"stem":294},{"title":298,"path":299,"stem":300},"How connect proposes commands","\u002Freference\u002Fconfiguration\u002Frepos\u002Fconnect-proposals","5.reference\u002F03.configuration\u002F02.repos\u002F1.connect-proposals",{"title":302,"path":303,"stem":304},"detectors.yaml","\u002Freference\u002Fconfiguration\u002Frepos\u002Fdetectors","5.reference\u002F03.configuration\u002F02.repos\u002F2.detectors",{"title":306,"path":307,"stem":308},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","5.reference\u002F03.configuration\u002F02.repos\u002F3.workspaces",{"title":310,"path":311,"stem":312},"policy.yaml","\u002Freference\u002Fconfiguration\u002Fpolicy","5.reference\u002F03.configuration\u002F03.policy",{"title":314,"path":315,"stem":316},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","5.reference\u002F03.configuration\u002F04.library-and-chains",{"title":318,"path":319,"stem":320},"harnesses.yaml","\u002Freference\u002Fconfiguration\u002Fharnesses-file","5.reference\u002F03.configuration\u002F05.harnesses-file",{"title":322,"path":323,"stem":324},"access.yaml","\u002Freference\u002Fconfiguration\u002Faccess","5.reference\u002F03.configuration\u002F06.access",{"title":326,"path":327,"stem":328},"intake.yaml","\u002Freference\u002Fconfiguration\u002Fintake","5.reference\u002F03.configuration\u002F07.intake",{"title":330,"path":331,"stem":332},"notify.yaml","\u002Freference\u002Fconfiguration\u002Fnotify","5.reference\u002F03.configuration\u002F08.notify",{"title":334,"path":335,"stem":336},"theme.yaml","\u002Freference\u002Fconfiguration\u002Ftheme","5.reference\u002F03.configuration\u002F09.theme",{"title":338,"path":339,"stem":340,"children":341},"Sandboxed workers","\u002Freference\u002Fconfiguration\u002Fsandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002Findex",[342,343,347,351,355,359,363,367],{"title":10,"path":339,"stem":340},{"title":344,"path":345,"stem":346},"Resource limits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fresource-limits","5.reference\u002F03.configuration\u002F10.sandbox\u002F1.resource-limits",{"title":348,"path":349,"stem":350},"Callbacks from a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcallbacks","5.reference\u002F03.configuration\u002F10.sandbox\u002F2.callbacks",{"title":352,"path":353,"stem":354},"Network policy","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fnetwork-policy","5.reference\u002F03.configuration\u002F10.sandbox\u002F3.network-policy",{"title":356,"path":357,"stem":358},"Credentials","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcredentials","5.reference\u002F03.configuration\u002F10.sandbox\u002F4.credentials",{"title":360,"path":361,"stem":362},"Kits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fkits","5.reference\u002F03.configuration\u002F10.sandbox\u002F5.kits",{"title":364,"path":365,"stem":366},"sandbox.yaml","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fsandbox-yaml","5.reference\u002F03.configuration\u002F10.sandbox\u002F6.sandbox-yaml",{"title":368,"path":369,"stem":370},"Git in a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fgit-in-a-sandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002F7.git-in-a-sandbox",{"title":372,"path":373,"stem":374},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","5.reference\u002F03.configuration\u002F11.environment-variables",{"title":376,"path":377,"stem":378,"children":379},"Chain file keys","\u002Freference\u002Fchain-nodes","5.reference\u002F04.chain-nodes\u002Findex",[380,381,385,389],{"title":10,"path":377,"stem":378},{"title":382,"path":383,"stem":384},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","5.reference\u002F04.chain-nodes\u002F2.subprocess-tasks",{"title":386,"path":387,"stem":388},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","5.reference\u002F04.chain-nodes\u002F3.fix-loop",{"title":390,"path":391,"stem":392},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","5.reference\u002F04.chain-nodes\u002F4.result-file",{"title":394,"path":395,"stem":396,"children":397},"Agent harnesses","\u002Freference\u002Fharnesses","5.reference\u002F05.harnesses\u002Findex",[398,399,403,407,411,415],{"title":10,"path":395,"stem":396},{"title":400,"path":401,"stem":402},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","5.reference\u002F05.harnesses\u002F2.unattended-runs",{"title":404,"path":405,"stem":406},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","5.reference\u002F05.harnesses\u002F3.agent-profiles",{"title":408,"path":409,"stem":410},"Harness definition files","\u002Freference\u002Fharnesses\u002Fharness-files","5.reference\u002F05.harnesses\u002F4.harness-files",{"title":412,"path":413,"stem":414},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","5.reference\u002F05.harnesses\u002F5.fallback-and-escalation",{"title":416,"path":417,"stem":418},"Cost reporting","\u002Freference\u002Fharnesses\u002Fcost-reporting","5.reference\u002F05.harnesses\u002F6.cost-reporting",{"title":420,"path":421,"stem":422},"Permission gate","\u002Freference\u002Fpermissions","5.reference\u002F06.permissions",{"title":424,"path":425,"stem":426},"Inbound triggers","\u002Freference\u002Ftriggers","5.reference\u002F07.triggers",{"title":428,"path":429,"stem":430,"children":431},"HTTP API","\u002Freference\u002Fhttp-api","5.reference\u002F08.http-api\u002Findex",[432,433,437,441,445,449,453,457],{"title":10,"path":429,"stem":430},{"title":434,"path":435,"stem":436},"Filing, reading and changing work items","\u002Freference\u002Fhttp-api\u002Fwork-items","5.reference\u002F08.http-api\u002F2.work-items",{"title":438,"path":439,"stem":440},"Gates, run control, ending and retry","\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending","5.reference\u002F08.http-api\u002F3.gates-run-control-and-ending",{"title":442,"path":443,"stem":444},"The work item object","\u002Freference\u002Fhttp-api\u002Fwork-item-object","5.reference\u002F08.http-api\u002F4.work-item-object",{"title":446,"path":447,"stem":448},"Budget, events, diff and documents","\u002Freference\u002Fhttp-api\u002Fbudget-and-events","5.reference\u002F08.http-api\u002F5.budget-and-events",{"title":450,"path":451,"stem":452},"Repos, chains, harnesses and the server","\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server","5.reference\u002F08.http-api\u002F6.repos-chains-harnesses-and-server",{"title":454,"path":455,"stem":456},"Drafts","\u002Freference\u002Fhttp-api\u002Fdrafts","5.reference\u002F08.http-api\u002F7.drafts",{"title":458,"path":459,"stem":460},"Ops for each draft area","\u002Freference\u002Fhttp-api\u002Fdraft-ops","5.reference\u002F08.http-api\u002F8.draft-ops",{"title":462,"path":463,"stem":464},"MCP tools","\u002Freference\u002Fmcp-tools","5.reference\u002F09.mcp-tools",{"title":466,"path":467,"stem":468},"Events","\u002Freference\u002Fevents","5.reference\u002F10.events",{"title":470,"path":471,"stem":472,"children":473},"Security and project","\u002Fproject","6.project",[474,476,480,484,488,492,496,500],{"title":10,"path":471,"stem":475},"6.project\u002Findex",{"title":477,"path":478,"stem":479},"Security","\u002Fproject\u002Fsecurity","6.project\u002F1.security",{"title":481,"path":482,"stem":483},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","6.project\u002F2.data-and-privacy",{"title":485,"path":486,"stem":487},"What's new in 2.0","\u002Fproject\u002Fwhats-new","6.project\u002F3.whats-new",{"title":489,"path":490,"stem":491},"Status and support","\u002Fproject\u002Fstatus-and-support","6.project\u002F4.status-and-support",{"title":493,"path":494,"stem":495},"Architecture","\u002Fproject\u002Farchitecture","6.project\u002F5.architecture",{"title":497,"path":498,"stem":499},"Source map","\u002Fproject\u002Fsource-map","6.project\u002F6.source-map",{"title":501,"path":502,"stem":503},"Contributing","\u002Fproject\u002Fcontributing","6.project\u002F7.contributing",{"id":505,"title":485,"body":506,"description":902,"extension":903,"links":904,"meta":905,"navigation":906,"path":486,"seo":907,"stem":487,"__hash__":908},"docs\u002F6.project\u002F3.whats-new.md",{"type":507,"value":508,"toc":887},"minimark",[509,519,524,530,615,622,626,629,643,653,657,664,687,692,696,750,754,767,791,795,812,816,840,844,855,866,870],[510,511,512,513,518],"p",{},"Kraft 1.0 shipped the engine: ",[514,515,517],"a",{"href":516},"\u002Fconcepts\u002Fvocabulary#chain","chains"," that take your coding agent from spec to\nmerge request and stop only where a decision is yours. 2.0 is built around\nthose decisions. Most of what changed since 1.4 is what you see and touch.",[520,521,523],"h2",{"id":522},"what-needs-action-when-you-upgrade-from-14","What needs action when you upgrade from 1.4",[510,525,526,527,529],{},"Most 1.4 installs need no more than the update itself. These changes need\nsomething from you, and ",[514,528,172],{"href":173},"\nhas the steps and every other change:",[531,532,533,554,568,580,601],"ul",{},[534,535,536,545,546,549,550,544],"li",{},[537,538,539,540,544],"strong",{},"Update with your package manager, not 1.4's ",[541,542,543],"code",{},"kraft admin update","."," 1.4's\ndrops the ",[541,547,548],{},"[vector]"," extra on a uv install. See\n",[514,551,553],{"href":552},"\u002Fguides\u002Frun\u002Fupgrade-from-1-4#update-from-14","Update from 1.4",[534,555,556,563,564,544],{},[537,557,558,559,562],{},"Add the names you use to ",[541,560,561],{},"allowed_hosts",", on a network bind."," 2.0 answers a\nbrowser only at a name you listed. See\n",[514,565,567],{"href":566},"\u002Fguides\u002Frun\u002Fupgrade-from-1-4#network-access","Network access",[534,569,570,577,578,544],{},[537,571,572,573,576],{},"Make a tunnel or reverse proxy send a loopback ",[541,574,575],{},"Host",", on a loopback bind.","\n2.0 answers 403 to any other name. See\n",[514,579,144],{"href":145},[534,581,582,592,593,596,597,544],{},[537,583,584,585,588,589,544],{},"Give a repo entry with ",[541,586,587],{},"test_command: \"\""," a real test command, or\n",[541,590,591],{},"enabled: false"," ",[541,594,595],{},"\"\""," now means the repo has no tests. See\n",[514,598,600],{"href":599},"\u002Fguides\u002Frun\u002Fupgrade-from-1-4#items-and-repos","Items and repos",[534,602,603,610,611,544],{},[537,604,605,606,609],{},"Read the changed ",[541,607,608],{},"--json"," fields, exit codes and one-line action output in\nyour scripts."," See\n",[514,612,614],{"href":613},"\u002Fguides\u002Frun\u002Fupgrade-from-1-4#scripts-json-output-and-the-api","Scripts, JSON output and the API",[510,616,617,618,544],{},"To keep a running agent, pause its item before the restart: see\n",[514,619,621],{"href":620},"\u002Fguides\u002Frun\u002Frestart-kraft#a-restart-ends-running-agents","A restart ends running agents",[520,623,625],{"id":624},"a-new-interface-built-around-what-needs-you","A new interface, built around what needs you",[510,627,628],{},"Open Kraft at the same address and you get the redesigned interface; the old\none is gone.",[531,630,631,634,637,640],{},[534,632,633],{},"The board keeps 1.4's four groups (needs you, running, not started and\ndone), its one button per row and its side panel.",[534,635,636],{},"Select several items in any group and pause, cancel or archive them at\nonce. 1.4 could only archive, and only from Done.",[534,638,639],{},"An item's page draws its chain as a graph, where 1.4 showed a row of\nnode names, and each node opens its own view of its steps and tasks. Click\na node, step or task to see its log, documents and settings in place.",[534,641,642],{},"⌘K (Ctrl+K) search and the phone layout come along, redesigned to match.",[510,644,645,646,648,649,544],{},"The ",[514,647,222],{"href":223}," reference describes every screen. If you can't\nfind a page you used in 1.4, see\n",[514,650,652],{"href":651},"\u002Fguides\u002Frun\u002Fupgrade-from-1-4#where-the-pages-moved","Where the pages moved",[520,654,656],{"id":655},"review-the-way-you-would-on-a-code-host","Review the way you would on a code host",[510,658,659,660,663],{},"The review threads that ",[541,661,662],{},"kraft item comment"," and the VS Code extension have\nhad since 1.2 now have a page of their own in the web interface.",[531,665,666,678,681],{},[534,667,668,669,672,673,677],{},"Each item has a ",[537,670,671],{},"Review"," page with the diff, the comment threads and the\n",[514,674,676],{"href":675},"\u002Fconcepts\u002Fvocabulary#gate","gate"," decision.",[534,679,680],{},"Comment on one line or on a range, even one that runs from a removed line\nto its replacement, as on GitLab. The range stays shaded, and the agent\ngets its lines quoted.",[534,682,683,684,544],{},"Suggest a change in place, and send a whole round of comments at once with\n",[537,685,686],{},"Finish review",[510,688,689,690,544],{},"See ",[514,691,76],{"href":77},[520,693,695],{"id":694},"shape-the-work-from-its-page","Shape the work from its page",[531,697,698,701,709,712,718,728],{},[534,699,700],{},"Read the spec and plan an item was filed with before you start it.",[534,702,703,704,708],{},"Set the item's and its ",[514,705,707],{"href":706},"\u002Fconcepts\u002Fvocabulary#node","nodes","' model, effort and limits on the item's page,\nbeside the values its chain would use. The CLI could already; now the page\nshows what you are overriding.",[534,710,711],{},"Change a running item's chain; the change applies from its next node.",[534,713,714,717],{},[537,715,716],{},"Start"," asks first when the item has draft changes you haven't applied.",[534,719,720,721,725,726,544],{},"When a ",[514,722,724],{"href":723},"\u002Fconcepts\u002Fvocabulary#cap","cap"," or budget stops an item, its page names the limit that stopped\nit (the item's own, its policy's or its chain's), says where it can be\nraised, and lets you raise it and retry from the same place. 1.4 offered\nthat only for the item's own dollar cap. See\n",[514,727,80],{"href":81},[534,729,730,731,735,736,740,741,745,746,544],{},"Chains, the ",[514,732,734],{"href":733},"\u002Fconcepts\u002Fvocabulary#library","library",", ",[514,737,739],{"href":738},"\u002Fconcepts\u002Fvocabulary#harness","harnesses",", repos and ",[514,742,744],{"href":743},"\u002Fconcepts\u002Fvocabulary#policy","policy"," are edited as a draft that\nyou review, then publish. See ",[514,747,749],{"href":748},"\u002Freference\u002Fweb-ui\u002Ftemplates-and-settings#templates","Templates",[520,751,753],{"id":752},"one-config-directory-named-for-what-it-holds","One config directory, named for what it holds",[510,755,756,759,760,762,763,766],{},[541,757,758],{},"$KRAFT_HOME\u002Fconfig\u002F"," holds every YAML Kraft runs from. Only two of its files\nare templates, the library and the chains, and those are what the ",[537,761,749],{},"\nscreens hold; repos, harnesses, policy and auto-intake are ",[537,764,765],{},"Settings",". Each\nSettings screen edits one file.",[510,768,769,770,773,774,777,778,781,782,785,786,790],{},"The first start renames a 1.4 ",[541,771,772],{},"templates\u002F"," to ",[541,775,776],{},"config\u002F",", and where a chain is\nnamed, the word is ",[541,779,780],{},"chain",". The old names and places are still read, and\n",[541,783,784],{},"kraft admin doctor"," lists the ones you still have. Nothing to do for a default\nhome: ",[514,787,789],{"href":788},"\u002Fguides\u002Frun\u002Fupgrade-from-1-4#config-directory-and-files","Config directory and files","\nsays what moved.",[520,792,794],{"id":793},"repo-connect-reads-more-of-the-repo","Repo connect reads more of the repo",[510,796,797,800,801,804,805,809,810,544],{},[541,798,799],{},"kraft repo connect"," now bases the setup and test commands it proposes on\nmuch more of the repo: its own task runner (just, make, Taskfile, mise and\nothers), its toolchain's files (40 detectors across 17 language ecosystems\nand build systems) and its CI, where 1.4 looked at a justfile and a few\nmanifests and lockfiles. It explains each choice, and rehearses the commands\nwith ",[541,802,803],{},"--verify",". See\n",[514,806,808],{"href":807},"\u002Freference\u002Fcli\u002Frepo#connect-a-repo","Connect a repo"," in the CLI reference and\n",[514,811,298],{"href":299},[520,813,815],{"id":814},"safer-to-share","Safer to share",[531,817,818,826,831],{},[534,819,820,821,825],{},"No other site can frame the board, and an image from another site in a\ndocument or review thread loads only when you click it, so a ",[514,822,824],{"href":823},"\u002Fconcepts\u002Fvocabulary#worker","worker"," can't\nsend data out through your browser.",[534,827,828,829,544],{},"Off loopback, Kraft answers a browser only at a name you listed, on every\nrequest and on the live-update socket. See\n",[514,830,140],{"href":141},[534,832,645,833,837,838,544],{},[514,834,836],{"href":835},"\u002Fconcepts\u002Fvocabulary#sandbox","sandbox"," that has run tasks under Docker\nand Podman since 1.2 carries over, and so do the Docker Sandbox Kits added in\n1.4. See ",[514,839,127],{"href":128},[520,841,843],{"id":842},"why-20-so-soon-after-10","Why 2.0 so soon after 1.0",[510,845,846,847,851,852,854],{},"Because Kraft keeps its\n",[514,848,850],{"href":849},"\u002Fproject\u002Fstatus-and-support#versioning-and-stability","stability promise",".\nMaking the interface and the API consistent changed some ",[541,853,608],{}," fields and\nexit codes, and the database moves to a schema 1.4 can't open. A minor\nversion would have hidden that, so this is a major one.",[510,856,857,858,861,862,544],{},"Apart from what ",[514,859,172],{"href":860},"\u002Fguides\u002Frun\u002Fupgrade-from-1-4#what-changed","\nlists, your chains, library and repos carry over as they are. If you ran a\n1.5.0 release candidate, those were 2.0's pre-releases: see\n",[514,863,865],{"href":864},"\u002Fguides\u002Frun\u002Fupgrade-from-0-x-or-a-release-candidate#upgrading-from-a-150-release-candidate","Upgrading from a 1.5.0 release candidate",[520,867,869],{"id":868},"related","Related",[531,871,872,877,882],{},[534,873,874,876],{},[514,875,164],{"href":165},": the steps, every change from 1.4, and how to roll back",[534,878,879,881],{},[514,880,222],{"href":223},": every screen of the new interface",[534,883,884,886],{},[514,885,140],{"href":141},": reach the board from a phone",{"title":888,"searchDepth":889,"depth":889,"links":890},"",2,[891,893,894,895,896,897,898,899,901],{"id":522,"depth":889,"text":892},"What needs action when you upgrade from 1.​4",{"id":624,"depth":889,"text":625},{"id":655,"depth":889,"text":656},{"id":694,"depth":889,"text":695},{"id":752,"depth":889,"text":753},{"id":793,"depth":889,"text":794},{"id":814,"depth":889,"text":815},{"id":842,"depth":889,"text":900},"Why 2.​0 so soon after 1.​0",{"id":868,"depth":889,"text":869},"What to do before you upgrade from 1.4, and what Kraft 2.0 brings, from a new interface and code-host review to a repo connect that reads more of the repo and safer sharing.","md",null,{},true,{"title":485,"description":902},"n_w1GHg3q224JFvSaQZYhTxhAf3WDBGZ_P7JKzSK3p0",[910,912],{"title":481,"path":482,"stem":483,"description":911,"children":-1},"What leaves your machine, where it goes, how to turn it off, and where Kraft keeps secrets and state.",{"title":489,"path":490,"stem":491,"description":913,"children":-1},"Where to get help, which Kraft versions and platforms are supported, what its version numbers promise, and its license.",1791801241594]