[{"data":1,"prerenderedAt":1039},["ShallowReactive",2],{"navigation_docs":3,"-reference-configuration":504,"-reference-configuration-surround":1034},[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":286,"body":506,"description":1027,"extension":1028,"links":1029,"meta":1030,"navigation":1031,"path":287,"seo":1032,"stem":288,"__hash__":1033},"docs\u002F5.reference\u002F03.configuration\u002Findex.md",{"type":507,"value":508,"toc":1020},"minimark",[509,522,527,771,775,886,889,931,935],[510,511,512,513,517,518,521],"p",{},"Kraft's configuration is a set of YAML files under ",[514,515,516],"code",{},"$KRAFT_HOME\u002Fconfig\u002F"," (default ",[514,519,520],{},"~\u002F.kraft\u002Fconfig\u002F","). This page maps each file to its reference page and says how the directory is created and edited.",[523,524,526],"h2",{"id":525},"files","Files",[528,529,530,549],"table",{},[531,532,533],"thead",{},[534,535,536,540,543,546],"tr",{},[537,538,539],"th",{},"File",[537,541,542],{},"What it configures",[537,544,545],{},"Created",[537,547,548],{},"Page",[550,551,552,577,593,626,649,665,680,695,710,731,750],"tbody",{},[534,553,554,559,570,573],{},[555,556,557],"td",{},[514,558,292],{},[555,560,561,562,565,566,569],{},"Connected repos: setup command, env, steering, workspaces, and the ",[514,563,564],{},"sandbox"," field (",[567,568,338],"a",{"href":339},").",[555,571,572],{},"Seeded, empty",[555,574,575],{},[567,576,292],{"href":293},[534,578,579,583,586,589],{},[555,580,581],{},[514,582,310],{},[555,584,585],{},"Caps, budget, concurrency, archiving, defaults and maxima.",[555,587,588],{},"Seeded",[555,590,591],{},[567,592,310],{"href":311},[534,594,595,604,612,622],{},[555,596,597,600,601],{},[514,598,599],{},"library.yaml"," and ",[514,602,603],{},"chains\u002F*.yaml",[555,605,606,607,611],{},"The templates: reusable components and the chains built from them, copied onto each ",[567,608,610],{"href":609},"\u002Fconcepts\u002Fvocabulary#work-item","work item"," at intake.",[555,613,614,615,600,618,621],{},"Seeded: the ",[514,616,617],{},"default",[514,619,620],{},"quick-task"," chains",[555,623,624],{},[567,625,314],{"href":315},[534,627,628,632,643,645],{},[555,629,630],{},[514,631,318],{},[555,633,634,600,638,642],{},[567,635,637],{"href":636},"\u002Fconcepts\u002Fvocabulary#harness-profile","Harness profiles",[567,639,641],{"href":640},"\u002Fconcepts\u002Fvocabulary#agent-profile","agent profiles",".",[555,644,588],{},[555,646,647],{},[567,648,318],{"href":319},[534,650,651,655,658,661],{},[555,652,653],{},[514,654,322],{},[555,656,657],{},"Bind address, password, remote access.",[555,659,660],{},"The first save in Settings",[555,662,663],{},[567,664,322],{"href":323},[534,666,667,671,674,676],{},[555,668,669],{},[514,670,326],{},[555,672,673],{},"Autonomous pickup of issues, and schedules.",[555,675,588],{},[555,677,678],{},[567,679,326],{"href":327},[534,681,682,686,689,691],{},[555,683,684],{},[514,685,330],{},[555,687,688],{},"The notification webhook.",[555,690,660],{},[555,692,693],{},[567,694,330],{"href":331},[534,696,697,701,704,706],{},[555,698,699],{},[514,700,334],{},[555,702,703],{},"UI appearance.",[555,705,660],{},[555,707,708],{},[567,709,334],{"href":335},[534,711,712,716,724,727],{},[555,713,714],{},[514,715,364],{},[555,717,718,719,723],{},"Which container CLI runs ",[567,720,722],{"href":721},"\u002Fconcepts\u002Fvocabulary#sandbox","sandboxed"," tasks, SELinux, and an extra CA.",[555,725,726],{},"You",[555,728,729],{},[567,730,364],{"href":365},[534,732,733,737,744,746],{},[555,734,735],{},[514,736,302],{},[555,738,739,740,743],{},"Your own conventions for the setup and test commands ",[514,741,742],{},"kraft repo connect"," proposes, layered on the shipped table.",[555,745,726],{},[555,747,748],{},[567,749,302],{"href":303},[534,751,752,757,765,767],{},[555,753,754],{},[514,755,756],{},"harnesses\u002F*.yaml",[555,758,759,760,764],{},"Your own ",[567,761,763],{"href":762},"\u002Fconcepts\u002Fvocabulary#harness","harness"," definitions, which add a harness or override a shipped one.",[555,766,726],{},[555,768,769],{},[567,770,408],{"href":409},[523,772,774],{"id":773},"how-kraft-treats-the-directory","How Kraft treats the directory",[776,777,778,799,827,842,857],"ul",{},[779,780,781,785,786,789,790,792,793,600,795,798],"li",{},[782,783,784],"strong",{},"Seeding."," Kraft copies the shipped defaults into ",[514,787,788],{},"config\u002F"," on first run and never overwrites it afterwards, so an upgrade cannot clobber an edited policy. ",[567,791,168],{"href":169}," takes what a new release ships in ",[514,794,599],{},[514,796,797],{},"chains\u002F",". The files marked \"You\" or \"The first save in Settings\" are never seeded.",[779,800,801,804,805,808,809,600,811,813,814,817,818,820,821,600,823,826],{},[782,802,803],{},"Editing."," The ",[782,806,807],{},"Templates"," screens edit ",[514,810,599],{},[514,812,797],{},". ",[782,815,816],{},"Settings"," edits the rest, except ",[514,819,364],{},", ",[514,822,302],{},[514,824,825],{},"harnesses\u002F",", which no screen edits. Editing any file by hand is equally supported.",[779,828,829,832,833,600,836,839,840,642],{},[782,830,831],{},"Moving it."," ",[514,834,835],{},"KRAFT_HOME",[514,837,838],{},"KRAFT_CONFIG_DIR"," move the directory; see ",[567,841,372],{"href":373},[779,843,844,847,848,600,851,854,855,642],{},[782,845,846],{},"Validation."," Kraft validates each file when it loads it, and reports a file that fails with the offending key named. Chain rules such as ",[514,849,850],{},"extends",[514,852,853],{},"reject_to"," are in ",[567,856,376],{"href":377},[779,858,859,862,863,866,867,870,871,874,875,878,879,866,882,642],{},[782,860,861],{},"An old directory."," Before 2.0, the directory was ",[514,864,865],{},"templates\u002F","; see ",[567,868,172],{"href":869},"\u002Fguides\u002Frun\u002Fupgrade-from-1-4#config-directory-and-files",". A home still in the 0.x template format (a ",[514,872,873],{},"registry.yaml",", hook names or ",[514,876,877],{},"gate_after",") is refused until you run ",[514,880,881],{},"kraft admin update",[567,883,885],{"href":884},"\u002Fguides\u002Frun\u002Fupgrade-from-0-x-or-a-release-candidate#migrating-a-home-from-0x","Migrating a home from 0.x",[510,887,888],{},"Three commands check and reload the files:",[776,890,891,897,925],{},[779,892,893,896],{},[514,894,895],{},"kraft admin doctor"," reports anything that does not parse.",[779,898,899,902,903,820,905,907,908,910,911,913,914,917,918,921,922,924],{},[514,900,901],{},"kraft admin reload"," rereads ",[514,904,310],{},[514,906,599],{}," with its chains, and ",[514,909,326],{}," without a restart. A change to ",[514,912,322],{},"'s ",[514,915,916],{},"bind"," or ",[514,919,920],{},"port"," needs a restart, and a hand edit of ",[514,923,330],{}," takes effect at the next save in Settings or a restart.",[779,926,927,930],{},[514,928,929],{},"kraft admin templates lint"," checks the whole library and every chain at once, and writes nothing.",[523,932,934],{"id":933},"in-this-section","In this section",[776,936,937,948,955,966,973,980,987,994,1001,1015],{},[779,938,939,941,942,944,945,947],{},[567,940,292],{"href":293},": every field in ",[514,943,292],{},", and the pages for how connect proposes commands, ",[514,946,302],{}," and workspaces.",[779,949,950,941,952,954],{},[567,951,310],{"href":311},[514,953,310],{},": caps, budget, concurrency, archiving, defaults and maxima.",[779,956,957,959,960,962,963,965],{},[567,958,314],{"href":315},": the sections of ",[514,961,599],{},", and how ",[514,964,603],{}," files compose them into chains.",[779,967,968,941,970,972],{},[567,969,318],{"href":319},[514,971,318],{},", for harness profiles and agent profiles.",[779,974,975,941,977,979],{},[567,976,322],{"href":323},[514,978,322],{},": bind address, port, password, session expiry and allowed hosts.",[779,981,982,941,984,986],{},[567,983,326],{"href":327},[514,985,326],{},": autonomous pickup from beads, and cron schedules.",[779,988,989,941,991,993],{},[567,990,330],{"href":331},[514,992,330],{},": the notification webhook and the events that post to it.",[779,995,996,941,998,1000],{},[567,997,334],{"href":335},[514,999,334],{},": colors, density, the diff and the board.",[779,1002,1003,1005,1006,1008,1009,1011,1012,1014],{},[567,1004,338],{"href":339},": the ",[514,1007,564],{}," key of ",[514,1010,292],{},", and the pages for the container's resource limits, callbacks, network, credentials, Kits, ",[514,1013,364],{}," and git.",[779,1016,1017,1019],{},[567,1018,372],{"href":373},": the variables that move this directory, every other variable Kraft reads, and the variables a worker gets.",{"title":1021,"searchDepth":1022,"depth":1022,"links":1023},"",2,[1024,1025,1026],{"id":525,"depth":1022,"text":526},{"id":773,"depth":1022,"text":774},{"id":933,"depth":1022,"text":934},"Which file in Kraft's config directory controls what, and how Kraft creates, edits, validates and rereads the directory.","md",null,{},{"title":10},{"title":286,"description":1027},"kQG6FJx-TyZhSGBhxFhTu4t0TOFhtidyoYb98H9yfeo",[1035,1037],{"title":282,"path":283,"stem":284,"description":1036,"children":-1},"The seven statuses a work item can hold, what moves it between them, and the status the board shows for each.",{"title":10,"path":293,"stem":294,"description":1038,"children":-1},"Every field in repos.yaml, where a repo's value comes from, and the pages for how connect proposes commands, detectors, workspaces and sandboxes.",1791801255761]