[{"data":1,"prerenderedAt":1046},["ShallowReactive",2],{"navigation_docs":3,"-reference-web-ui-fix-loops-and-test-scopes":520,"-reference-web-ui-fix-loops-and-test-scopes-surround":1041},[4,28,51,191,222,485],{"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,117,138,187],{"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,113],{"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},"Share chains with add-ons","\u002Fguides\u002Fcustomize\u002Fshare-chains-with-addons","3.guides\u002F2.customize\u002F4.share-chains-with-addons",{"title":118,"path":119,"stem":120,"children":121,"page":95},"Agents and harnesses","\u002Fguides\u002Fharnesses","3.guides\u002F3.harnesses",[122,126,130,134],{"title":123,"path":124,"stem":125},"Switch a task to another harness","\u002Fguides\u002Fharnesses\u002Fswitch-harness","3.guides\u002F3.harnesses\u002F1.switch-harness",{"title":127,"path":128,"stem":129},"Add or override a harness","\u002Fguides\u002Fharnesses\u002Fadding-a-harness","3.guides\u002F3.harnesses\u002F2.adding-a-harness",{"title":131,"path":132,"stem":133},"Build a worker Kit","\u002Fguides\u002Fharnesses\u002Fworker-kit","3.guides\u002F3.harnesses\u002F3.worker-kit",{"title":135,"path":136,"stem":137},"Give a worker its login","\u002Fguides\u002Fharnesses\u002Fgive-a-worker-its-login","3.guides\u002F3.harnesses\u002F4.give-a-worker-its-login",{"title":139,"path":140,"stem":141,"children":142,"page":95},"Run the server","\u002Fguides\u002Frun","3.guides\u002F4.run",[143,147,151,155,159,163,167,171,175,179,183],{"title":144,"path":145,"stem":146},"Remote access","\u002Fguides\u002Frun\u002Fremote-access","3.guides\u002F4.run\u002F01.remote-access",{"title":148,"path":149,"stem":150},"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":152,"path":153,"stem":154},"Restart Kraft without ending running agents","\u002Fguides\u002Frun\u002Frestart-kraft","3.guides\u002F4.run\u002F03.restart-kraft",{"title":156,"path":157,"stem":158},"Back up and restore the database","\u002Fguides\u002Frun\u002Fback-up-and-restore","3.guides\u002F4.run\u002F04.back-up-and-restore",{"title":160,"path":161,"stem":162},"Logs and disk space","\u002Fguides\u002Frun\u002Flogs-and-disk-space","3.guides\u002F4.run\u002F05.logs-and-disk-space",{"title":164,"path":165,"stem":166},"Run Kraft as a service","\u002Fguides\u002Frun\u002Frun-as-a-service","3.guides\u002F4.run\u002F06.run-as-a-service",{"title":168,"path":169,"stem":170},"Upgrade Kraft","\u002Fguides\u002Frun\u002Fupgrade-kraft","3.guides\u002F4.run\u002F07.upgrade-kraft",{"title":172,"path":173,"stem":174},"Upgrade your configuration","\u002Fguides\u002Frun\u002Fupgrade-your-configuration","3.guides\u002F4.run\u002F08.upgrade-your-configuration",{"title":176,"path":177,"stem":178},"Upgrade from 1.4","\u002Fguides\u002Frun\u002Fupgrade-from-1-4","3.guides\u002F4.run\u002F09.upgrade-from-1-4",{"title":180,"path":181,"stem":182},"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":184,"path":185,"stem":186},"Roll back to 1.4","\u002Fguides\u002Frun\u002Froll-back","3.guides\u002F4.run\u002F11.roll-back",{"title":188,"path":189,"stem":190},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F5.kraft-lite",{"title":192,"path":193,"stem":194,"children":195},"Troubleshooting","\u002Ftroubleshooting","4.troubleshooting",[196,198,202,206,210,214,218],{"title":10,"path":193,"stem":197},"4.troubleshooting\u002Findex",{"title":199,"path":200,"stem":201},"Why did my item stop?","\u002Ftroubleshooting\u002Fwhy-did-my-item-stop","4.troubleshooting\u002F1.why-did-my-item-stop",{"title":203,"path":204,"stem":205},"Stop reasons in detail","\u002Ftroubleshooting\u002Fstop-reasons-in-detail","4.troubleshooting\u002F2.stop-reasons-in-detail",{"title":207,"path":208,"stem":209},"Starting and reaching Kraft","\u002Ftroubleshooting\u002Fstarting-and-reaching-kraft","4.troubleshooting\u002F3.starting-and-reaching-kraft",{"title":211,"path":212,"stem":213},"Doctor failures","\u002Ftroubleshooting\u002Fdoctor-failures","4.troubleshooting\u002F4.doctor-failures",{"title":215,"path":216,"stem":217},"Sandbox and Kit stops","\u002Ftroubleshooting\u002Fsandbox-and-kit-stops","4.troubleshooting\u002F5.sandbox-and-kit-stops",{"title":219,"path":220,"stem":221},"Add-on problems","\u002Ftroubleshooting\u002Faddon-problems","4.troubleshooting\u002F6.addon-problems",{"title":223,"path":224,"stem":225,"children":226},"Reference","\u002Freference","5.reference",[227,229,267,289,293,391,409,435,439,443,477,481],{"title":10,"path":224,"stem":228},"5.reference\u002Findex",{"title":230,"path":231,"stem":232,"children":233},"Web UI","\u002Freference\u002Fweb-ui","5.reference\u002F00.web-ui\u002Findex",[234,235,239,243,247,251,255,259,263],{"title":10,"path":231,"stem":232},{"title":236,"path":237,"stem":238},"Sidebar, search, and keyboard","\u002Freference\u002Fweb-ui\u002Fsidebar-search-and-keyboard","5.reference\u002F00.web-ui\u002F0.sidebar-search-and-keyboard",{"title":240,"path":241,"stem":242},"The board","\u002Freference\u002Fweb-ui\u002Fboard","5.reference\u002F00.web-ui\u002F1.board",{"title":244,"path":245,"stem":246},"An item's page","\u002Freference\u002Fweb-ui\u002Fitem-page","5.reference\u002F00.web-ui\u002F2.item-page",{"title":248,"path":249,"stem":250},"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":252,"path":253,"stem":254},"Config before an item starts","\u002Freference\u002Fweb-ui\u002Fconfig-before-start","5.reference\u002F00.web-ui\u002F4.config-before-start",{"title":256,"path":257,"stem":258},"The review page","\u002Freference\u002Fweb-ui\u002Freview-page","5.reference\u002F00.web-ui\u002F5.review-page",{"title":260,"path":261,"stem":262},"Templates and Settings","\u002Freference\u002Fweb-ui\u002Ftemplates-and-settings","5.reference\u002F00.web-ui\u002F6.templates-and-settings",{"title":264,"path":265,"stem":266},"Analytics","\u002Freference\u002Fweb-ui\u002Fanalytics","5.reference\u002F00.web-ui\u002F7.analytics",{"title":268,"path":269,"stem":270,"children":271},"CLI","\u002Freference\u002Fcli","5.reference\u002F01.cli\u002Findex",[272,273,277,281,285],{"title":10,"path":269,"stem":270},{"title":274,"path":275,"stem":276},"Item verbs","\u002Freference\u002Fcli\u002Fitem","5.reference\u002F01.cli\u002F2.item",{"title":278,"path":279,"stem":280},"View verbs","\u002Freference\u002Fcli\u002Fview","5.reference\u002F01.cli\u002F3.view",{"title":282,"path":283,"stem":284},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","5.reference\u002F01.cli\u002F4.repo",{"title":286,"path":287,"stem":288},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","5.reference\u002F01.cli\u002F5.admin",{"title":290,"path":291,"stem":292},"Work item statuses","\u002Freference\u002Fstatuses","5.reference\u002F02.statuses",{"title":294,"path":295,"stem":296,"children":297},"Configuration","\u002Freference\u002Fconfiguration","5.reference\u002F03.configuration\u002Findex",[298,299,317,321,325,329,333,337,341,345,379,383,387],{"title":10,"path":295,"stem":296},{"title":300,"path":301,"stem":302,"children":303},"repos.yaml","\u002Freference\u002Fconfiguration\u002Frepos","5.reference\u002F03.configuration\u002F02.repos\u002Findex",[304,305,309,313],{"title":10,"path":301,"stem":302},{"title":306,"path":307,"stem":308},"How connect proposes commands","\u002Freference\u002Fconfiguration\u002Frepos\u002Fconnect-proposals","5.reference\u002F03.configuration\u002F02.repos\u002F1.connect-proposals",{"title":310,"path":311,"stem":312},"detectors.yaml","\u002Freference\u002Fconfiguration\u002Frepos\u002Fdetectors","5.reference\u002F03.configuration\u002F02.repos\u002F2.detectors",{"title":314,"path":315,"stem":316},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","5.reference\u002F03.configuration\u002F02.repos\u002F3.workspaces",{"title":318,"path":319,"stem":320},"policy.yaml","\u002Freference\u002Fconfiguration\u002Fpolicy","5.reference\u002F03.configuration\u002F03.policy",{"title":322,"path":323,"stem":324},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","5.reference\u002F03.configuration\u002F04.library-and-chains",{"title":326,"path":327,"stem":328},"harnesses.yaml","\u002Freference\u002Fconfiguration\u002Fharnesses-file","5.reference\u002F03.configuration\u002F05.harnesses-file",{"title":330,"path":331,"stem":332},"access.yaml","\u002Freference\u002Fconfiguration\u002Faccess","5.reference\u002F03.configuration\u002F06.access",{"title":334,"path":335,"stem":336},"intake.yaml","\u002Freference\u002Fconfiguration\u002Fintake","5.reference\u002F03.configuration\u002F07.intake",{"title":338,"path":339,"stem":340},"notify.yaml","\u002Freference\u002Fconfiguration\u002Fnotify","5.reference\u002F03.configuration\u002F08.notify",{"title":342,"path":343,"stem":344},"theme.yaml","\u002Freference\u002Fconfiguration\u002Ftheme","5.reference\u002F03.configuration\u002F09.theme",{"title":346,"path":347,"stem":348,"children":349},"Sandboxed workers","\u002Freference\u002Fconfiguration\u002Fsandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002Findex",[350,351,355,359,363,367,371,375],{"title":10,"path":347,"stem":348},{"title":352,"path":353,"stem":354},"Resource limits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fresource-limits","5.reference\u002F03.configuration\u002F10.sandbox\u002F1.resource-limits",{"title":356,"path":357,"stem":358},"Callbacks from a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcallbacks","5.reference\u002F03.configuration\u002F10.sandbox\u002F2.callbacks",{"title":360,"path":361,"stem":362},"Network policy","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fnetwork-policy","5.reference\u002F03.configuration\u002F10.sandbox\u002F3.network-policy",{"title":364,"path":365,"stem":366},"Credentials","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcredentials","5.reference\u002F03.configuration\u002F10.sandbox\u002F4.credentials",{"title":368,"path":369,"stem":370},"Kits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fkits","5.reference\u002F03.configuration\u002F10.sandbox\u002F5.kits",{"title":372,"path":373,"stem":374},"sandbox.yaml","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fsandbox-yaml","5.reference\u002F03.configuration\u002F10.sandbox\u002F6.sandbox-yaml",{"title":376,"path":377,"stem":378},"Git in a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fgit-in-a-sandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002F7.git-in-a-sandbox",{"title":380,"path":381,"stem":382},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","5.reference\u002F03.configuration\u002F11.environment-variables",{"title":384,"path":385,"stem":386},"Add-ons and collections","\u002Freference\u002Fconfiguration\u002Faddons","5.reference\u002F03.configuration\u002F12.addons",{"title":388,"path":389,"stem":390},"Repo libraries","\u002Freference\u002Fconfiguration\u002Frepo-libraries","5.reference\u002F03.configuration\u002F13.repo-libraries",{"title":392,"path":393,"stem":394,"children":395},"Chain file keys","\u002Freference\u002Fchain-nodes","5.reference\u002F04.chain-nodes\u002Findex",[396,397,401,405],{"title":10,"path":393,"stem":394},{"title":398,"path":399,"stem":400},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","5.reference\u002F04.chain-nodes\u002F2.subprocess-tasks",{"title":402,"path":403,"stem":404},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","5.reference\u002F04.chain-nodes\u002F3.fix-loop",{"title":406,"path":407,"stem":408},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","5.reference\u002F04.chain-nodes\u002F4.result-file",{"title":410,"path":411,"stem":412,"children":413},"Agent harnesses","\u002Freference\u002Fharnesses","5.reference\u002F05.harnesses\u002Findex",[414,415,419,423,427,431],{"title":10,"path":411,"stem":412},{"title":416,"path":417,"stem":418},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","5.reference\u002F05.harnesses\u002F2.unattended-runs",{"title":420,"path":421,"stem":422},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","5.reference\u002F05.harnesses\u002F3.agent-profiles",{"title":424,"path":425,"stem":426},"Harness definition files","\u002Freference\u002Fharnesses\u002Fharness-files","5.reference\u002F05.harnesses\u002F4.harness-files",{"title":428,"path":429,"stem":430},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","5.reference\u002F05.harnesses\u002F5.fallback-and-escalation",{"title":432,"path":433,"stem":434},"Cost reporting","\u002Freference\u002Fharnesses\u002Fcost-reporting","5.reference\u002F05.harnesses\u002F6.cost-reporting",{"title":436,"path":437,"stem":438},"Permission gate","\u002Freference\u002Fpermissions","5.reference\u002F06.permissions",{"title":440,"path":441,"stem":442},"Inbound triggers","\u002Freference\u002Ftriggers","5.reference\u002F07.triggers",{"title":444,"path":445,"stem":446,"children":447},"HTTP API","\u002Freference\u002Fhttp-api","5.reference\u002F08.http-api\u002Findex",[448,449,453,457,461,465,469,473],{"title":10,"path":445,"stem":446},{"title":450,"path":451,"stem":452},"Filing, reading and changing work items","\u002Freference\u002Fhttp-api\u002Fwork-items","5.reference\u002F08.http-api\u002F2.work-items",{"title":454,"path":455,"stem":456},"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":458,"path":459,"stem":460},"The work item object","\u002Freference\u002Fhttp-api\u002Fwork-item-object","5.reference\u002F08.http-api\u002F4.work-item-object",{"title":462,"path":463,"stem":464},"Budget, events, diff and documents","\u002Freference\u002Fhttp-api\u002Fbudget-and-events","5.reference\u002F08.http-api\u002F5.budget-and-events",{"title":466,"path":467,"stem":468},"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":470,"path":471,"stem":472},"Drafts","\u002Freference\u002Fhttp-api\u002Fdrafts","5.reference\u002F08.http-api\u002F7.drafts",{"title":474,"path":475,"stem":476},"Ops for each draft area","\u002Freference\u002Fhttp-api\u002Fdraft-ops","5.reference\u002F08.http-api\u002F8.draft-ops",{"title":478,"path":479,"stem":480},"MCP tools","\u002Freference\u002Fmcp-tools","5.reference\u002F09.mcp-tools",{"title":482,"path":483,"stem":484},"Events","\u002Freference\u002Fevents","5.reference\u002F10.events",{"title":486,"path":487,"stem":488,"children":489},"Security and project","\u002Fproject","6.project",[490,492,496,500,504,508,512,516],{"title":10,"path":487,"stem":491},"6.project\u002Findex",{"title":493,"path":494,"stem":495},"Security","\u002Fproject\u002Fsecurity","6.project\u002F1.security",{"title":497,"path":498,"stem":499},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","6.project\u002F2.data-and-privacy",{"title":501,"path":502,"stem":503},"What's new in 2.0","\u002Fproject\u002Fwhats-new","6.project\u002F3.whats-new",{"title":505,"path":506,"stem":507},"Status and support","\u002Fproject\u002Fstatus-and-support","6.project\u002F4.status-and-support",{"title":509,"path":510,"stem":511},"Architecture","\u002Fproject\u002Farchitecture","6.project\u002F5.architecture",{"title":513,"path":514,"stem":515},"Source map","\u002Fproject\u002Fsource-map","6.project\u002F6.source-map",{"title":517,"path":518,"stem":519},"Contributing","\u002Fproject\u002Fcontributing","6.project\u002F7.contributing",{"id":521,"title":248,"body":522,"description":1034,"extension":1035,"links":1036,"meta":1037,"navigation":1038,"path":249,"seo":1039,"stem":250,"__hash__":1040},"docs\u002F5.reference\u002F00.web-ui\u002F3.fix-loops-and-test-scopes.md",{"type":523,"value":524,"toc":1015},"minimark",[525,534,539,551,556,567,578,581,585,600,608,612,620,630,633,693,700,706,714,718,725,736,755,759,771,782,786,809,813,820,875,879,882,913,919,922,972,984,988,997,1001],[526,527,528,529,533],"p",{},"A node's own view, opened from ",[530,531,244],"a",{"href":532},"\u002Freference\u002Fweb-ui\u002Fitem-page#the-chain-graph",", draws the tasks inside the node. This page names the two specialist drawings there: a node with a fix loop and a changed-test-scope task.",[535,536,538],"h2",{"id":537},"a-node-with-a-fix-loop","A node with a fix loop",[526,540,541,542,546,547,550],{},"A node's own view draws the loop as a dashed arc under the steps, and once the loop has\nrun, its ",[543,544,545],"strong",{},"repair"," tasks and the ",[543,548,549],{},"judge"," sit on it as tasks of their own: click one\nto open it. A loop with several repair steps, such as a repair and then a sync,\nshows each in order, left to right, with the judge last.",[552,553,555],"h3",{"id":554},"a-step-that-runs-its-tasks-in-parallel","A step that runs its tasks in parallel",[526,557,558,559,562,563,566],{},"A loop step with more than one task runs them together, so it is one box on the\nloop, captioned ",[543,560,561],{},"n in parallel"," and in the worst state among its tasks. Click\nit, or press ",[543,564,565],{},"Enter"," on it, to select it. Its panel lists its tasks as the\nround shown ran them, and each row opens that task.",[526,568,569,570,573,574,577],{},"The step opens in place while it, or one of its tasks, is selected: a frame\nholds the step's tasks, and the loop forks to each of them and joins again. The\nframe's head is the step itself. ",[543,571,572],{},"Esc"," from inside the frame, or its ",[543,575,576],{},"✕",",\nfolds it back to its box, and so does picking anything else. A link to the step\nor to one of its tasks opens it.",[526,579,580],{},"A loop with such a step is drawn as a level lane and not an arc: down from the\nnode's end, along the bottom, and up into its start, with every stop on one\nline. A loop whose steps each have one task keeps the arc.",[552,582,584],{"id":583},"picking-a-round","Picking a round",[526,586,587,588,591,592,595,596,599],{},"Beside the zoom, ",[543,589,590],{},"round n of m"," says which round the canvas shows. It starts on\nthe newest. Open it to pick an earlier round, newest first, with what became of\neach; the canvas then shows every task as that round ran it, the repair that went\non from it and the ",[530,593,549],{"href":594},"\u002Fconcepts\u002Fvocabulary#judge"," that came after it.\n",[543,597,598],{},"latest ↩"," goes back.",[526,601,602,603,607],{},"The round picked is in the page's address (",[604,605,606],"code",{},"?round=","), so a link you copy opens\non it, on a phone too. Another node starts on its own newest round.",[552,609,611],{"id":610},"picking-a-pass","Picking a pass",[526,613,614,615,619],{},"The chain can run a node again: a gate rejection sends the item back, a retry\nreruns the node, or its base branch moves. Each time is a\n",[530,616,618],{"href":617},"\u002Fconcepts\u002Fvocabulary#pass","pass",". A pass counts its own rounds and keeps its\nown tasks, logs and scopes.",[526,621,622,623,626,627,629],{},"On a node the chain ran more than once, ",[543,624,625],{},"pass n of m"," sits beside the round.\nIt starts on the newest. Open it to pick an earlier pass, newest first. The\ncanvas and every panel then show that pass, and the round menu lists its rounds.\n",[543,628,598],{}," goes back. A node that ran once shows no pass.",[526,631,632],{},"Each pass in the menu says what started it:",[634,635,636,649],"table",{},[637,638,639],"thead",{},[640,641,642,646],"tr",{},[643,644,645],"th",{},"It says",[643,647,648],{},"What sent the chain back",[650,651,652,663,673,683],"tbody",{},[640,653,654,660],{},[655,656,657],"td",{},[543,658,659],{},"after a reject at local_review",[655,661,662],{},"a rejection at that gate",[640,664,665,670],{},[655,666,667],{},[543,668,669],{},"after a fix at local_review",[655,671,672],{},"that gate's reviewer, which repaired the work itself",[640,674,675,680],{},[655,676,677],{},[543,678,679],{},"after a retry",[655,681,682],{},"a retry of the node or of one before it",[640,684,685,690],{},[655,686,687],{},[543,688,689],{},"after a base change",[655,691,692],{},"the base branch moved",[526,694,695,696,699],{},"The pass picked is in the address too (",[604,697,698],{},"?pass=",").",[526,701,702,705],{},[543,703,704],{},"Retry"," in a panel runs on the node as it stands now, whichever pass you are\nreading. Its confirmation says so when the pass on screen is an earlier one.",[526,707,708,709,713],{},"A gate's reviewer and an ",[530,710,712],{"href":711},"\u002Fconcepts\u002Fvocabulary#escalation-turn","escalation turn","\nare in no pass, so their runs stay together. A pass that an agent's retry\nstarted keeps the count of the one before it, so its rounds start where that\none stopped. A retry of one task you ask for yourself starts a pass only when\nit starts the node's rounds over: on a node whose fix loop had gone past its\nfirst round.",[552,715,717],{"id":716},"a-task-in-a-round","A task in a round",[526,719,720,721,724],{},"A repair or judge that has not run in a round is drawn dashed and faded: the\njudge never runs before the first repair, so round 1's reads\n",[543,722,723],{},"skipped · first repair",".",[526,726,727,728,731,732,735],{},"A task's panel in such a node names the round in its subtitle (",[543,729,730],{},"agent task ·\nround 2 of 3 · running 41s",") and shows that round's run, so the\n",[543,733,734],{},"attempt n of m ▾"," menu appears only when the round itself ran the task more\nthan once.",[526,737,738,739,742,743,746,747,750,751,754],{},"The panel of a repair or judge that has no run says why. On the newest round it\nuses its box's words, ",[543,740,741],{},"not yet",", ",[543,744,745],{},"last round"," or ",[543,748,749],{},"stopped by judge",", since\nit may still run. On an earlier round it says ",[543,752,753],{},"not run in this round",". The\njudge of round 1 says it was skipped, because the first repair runs without it.",[535,756,758],{"id":757},"a-changed-test-scope-task","A changed-test-scope task",[526,760,761,762,765,766,770],{},"A changed-test-scope task (",[604,763,764],{},"kraft.verify_changed_test_scopes",") opens in place\nwhile it, or one of its scopes, is selected: its box becomes a frame with one row\nper repository, in the order the task visits them (a ",[530,767,769],{"href":768},"\u002Fconcepts\u002Fvocabulary#workspace","workspace","'s root first, then\nits members), and each repository's scopes as chips. A reduced-motion setting skips the move\nand crossfades instead.",[526,772,773,774,777,778,781],{},"The task is all of its scopes. Its box and its panel read ",[543,775,776],{},"failed"," when one\nof the round's scopes failed, even if a later scope passed, and ",[543,779,780],{},"running","\nwhile one still runs. Its log then opens on that scope's.",[552,783,785],{"id":784},"the-frame","The frame",[787,788,789,797,806],"ul",{},[790,791,792,793,796],"li",{},"Scopes that run one after another are joined in a line by arrows, and a task\nset to ",[604,794,795],{},"execution: parallel"," stacks them in a fork.",[790,798,799,800,746,803,724],{},"An item in one repository has one row, drawn as its chips alone: no number,\nno repository name and no status under it, and a heading that says nothing\nof repos. While it has no chips, the row says ",[543,801,802],{},"waiting",[543,804,805],{},"not reached",[790,807,808],{},"The frame is as wide as its heading or its longest row, whichever is wider,\nand the steps after it move over to make room, so no row scrolls where the\nscroll wheel pans the canvas.",[552,810,812],{"id":811},"what-a-chip-says","What a chip says",[526,814,815,816,819],{},"A chip says how that scope went and how long it took, and reads as the scope's\ncommand (an area's setup reads ",[543,817,818],{},"setup · area","); hover it for the whole command\nand the paths it covers.",[634,821,822,832],{},[637,823,824],{},[640,825,826,829],{},[643,827,828],{},"You see",[643,830,831],{},"It means",[650,833,834,845,855,865],{},[640,835,836,842],{},[655,837,838,839,841],{},"a dashed ",[543,840,802],{}," chip",[655,843,844],{},"a scope the round picked and has not started",[640,846,847,852],{},[655,848,849,851],{},[543,850,805],{},", with no chips",[655,853,854],{},"a repository after the first one that failed",[640,856,857,862],{},[655,858,859],{},[543,860,861],{},"new",[655,863,864],{},"against the round before it, a scope picked for the first time",[640,866,867,872],{},[655,868,838,869,841],{},[543,870,871],{},"not picked",[655,873,874],{},"a scope that ran last round and is not picked now; it stays in its row. A repository that ran nothing this round shows no chips at all",[552,876,878],{"id":877},"a-chips-panel","A chip's panel",[526,880,881],{},"A chip opens the scope's own panel:",[787,883,884,887,890,910],{},[790,885,886],{},"its command and the paths it covers;",[790,888,889],{},"its repository, when the item has more than one;",[790,891,892,893,742,896,742,898,900,901,742,903,905,906,909],{},"how it went in every other round (",[543,894,895],{},"passed",[543,897,776],{},[543,899,780],{},",\n",[543,902,802],{},[543,904,871],{},", or ",[543,907,908],{},"repo not reached",");",[790,911,912],{},"its log.",[526,914,915,916,918],{},"When the round ran a scope more than once, the panel's subtitle has an\n",[543,917,734],{}," menu. Pick an earlier run to read its result and its log.",[526,920,921],{},"A link to a scope the round has no chip for opens a panel that says why:",[634,923,924,932],{},[637,925,926],{},[640,927,928,930],{},[643,929,645],{},[643,931,831],{},[650,933,934,943,952,962],{},[640,935,936,940],{},[655,937,938],{},[543,939,871],{},[655,941,942],{},"another round or pass ran the scope, and this round ran its repository without it",[640,944,945,949],{},[655,946,947],{},[543,948,805],{},[655,950,951],{},"the round stopped before the scope's repository, or the task did not run in it",[640,953,954,959],{},[655,955,956],{},[543,957,958],{},"still choosing",[655,960,961],{},"the round is running and has not picked its scopes yet",[640,963,964,969],{},[655,965,966],{},[543,967,968],{},"not found",[655,970,971],{},"the task ran no scope with that command",[526,973,974,975,977,978,980,981,983],{},"The open task's own ",[543,976,10],{}," says how many of the round's scopes passed and\nhow its scopes run, with a key to ",[543,979,861],{}," and ",[543,982,871],{},". For an item in\nseveral repositories it also says how many were reached, and explains the dashed\nring.",[552,985,987],{"id":986},"stepping-back-and-closing","Stepping back and closing",[526,989,990,992,993,996],{},[543,991,572],{}," steps back one: from a scope to its task, from the open task back to its\nbox, then the panel folds as usual. Picking anything else, clicking the canvas, or\nthe frame's ",[543,994,995],{},"close"," also folds it.",[535,998,1000],{"id":999},"related","Related",[787,1002,1003,1008],{},[790,1004,1005,1007],{},[530,1006,244],{"href":245},": the chain graph and the inspector that a node's view opens from.",[790,1009,1010,1014],{},[530,1011,1013],{"href":1012},"\u002Fconcepts\u002Fvocabulary#fix-loop","Fix loop",": what a fix loop is, and the repair and the judge in it.",{"title":1016,"searchDepth":1017,"depth":1017,"links":1018},"",2,[1019,1026,1033],{"id":537,"depth":1017,"text":538,"children":1020},[1021,1023,1024,1025],{"id":554,"depth":1022,"text":555},3,{"id":583,"depth":1022,"text":584},{"id":610,"depth":1022,"text":611},{"id":716,"depth":1022,"text":717},{"id":757,"depth":1017,"text":1027,"children":1028},"A changed-​test-​scope task",[1029,1030,1031,1032],{"id":784,"depth":1022,"text":785},{"id":811,"depth":1022,"text":812},{"id":877,"depth":1022,"text":878},{"id":986,"depth":1022,"text":987},{"id":999,"depth":1017,"text":1000},"How a node's own view shows a fix loop's rounds, repair and judge, and a changed-test-scope task's frame, chips and panels.","md",null,{},true,{"title":248,"description":1034},"eX9u2A2EFWk1Ay8voUTG9OM5xQBuVDfSODT_ystkzbc",[1042,1044],{"title":244,"path":245,"stem":246,"description":1043,"children":-1},"What an item's page shows, from the header's main action to the chain graph and the inspector for a chain, node, gate or task.",{"title":252,"path":253,"stem":254,"description":1045,"children":-1},"What the Config tabs show before Start, where each value comes from, and how a draft of overrides is reviewed and applied.",1791801172685]