[{"data":1,"prerenderedAt":4612},["ShallowReactive",2],{"navigation_docs":3,"-reference-events":520,"-reference-events-surround":4607},[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":482,"body":522,"description":4600,"extension":4601,"links":4602,"meta":4603,"navigation":4604,"path":483,"seo":4605,"stem":484,"__hash__":4606},"docs\u002F5.reference\u002F10.events.md",{"type":523,"value":524,"toc":4567},"minimark",[525,535,538,642,658,665,722,730,735,1313,1318,1392,1396,1407,1560,1563,1579,1699,1704,1749,1754,1760,1849,1858,1898,1915,1919,2366,2370,2392,2492,2496,2499,2513,2517,2523,2526,2549,2552,2593,2597,2930,2953,2957,3147,3151,3352,3356,3500,3504,3782,3786,3911,3924,3928,4038,4050,4054,4060,4078,4149,4162,4181,4222,4238,4242,4261,4327,4331,4340,4403,4414,4417,4493,4500,4532,4536,4563],[526,527,528,529,534],"p",{},"Kraft records what happens to a ",[530,531,533],"a",{"href":532},"\u002Fconcepts\u002Fvocabulary#work-item","work item"," as a list of events, its timeline. This page lists every event type, grouped as the contents list shows, and the notification webhook that sends them.",[526,536,537],{},"Every event has these fields:",[539,540,541,554],"table",{},[542,543,544],"thead",{},[545,546,547,551],"tr",{},[548,549,550],"th",{},"Field",[548,552,553],{},"Meaning",[555,556,557,569,579,589,599,632],"tbody",{},[545,558,559,566],{},[560,561,562],"td",{},[563,564,565],"code",{},"seq",[560,567,568],{},"The event's number on the timeline.",[545,570,571,576],{},[560,572,573],{},[563,574,575],{},"work_item_id",[560,577,578],{},"The item it belongs to.",[545,580,581,586],{},[560,582,583],{},[563,584,585],{},"type",[560,587,588],{},"One of the types below.",[545,590,591,596],{},[560,592,593],{},[563,594,595],{},"payload",[560,597,598],{},"A JSON object. Each type's key fields are in its row.",[545,600,601,606],{},[560,602,603],{},[563,604,605],{},"node_id",[560,607,608,609,613,614,617,618,620,621,623,624,628,629,631],{},"The ",[530,610,612],{"href":611},"\u002Fconcepts\u002Fvocabulary#node","node"," the event is about, or ",[563,615,616],{},"null"," for an item-level event (filing, a pause, a bulk action). It comes from the payload's ",[563,619,605],{}," or ",[563,622,612],{}," key. A ",[530,625,627],{"href":626},"\u002Fconcepts\u002Fvocabulary#gate","gate","'s own events carry it under ",[563,630,627],{},".",[545,633,634,639],{},[560,635,636],{},[563,637,638],{},"created_at",[560,640,641],{},"When it happened.",[526,643,644,645,647,648,620,650,652,653,655,656,631],{},"Before 2.0, an event carried no ",[563,646,605],{}," of its own. The upgrade filled it only from a payload's ",[563,649,605],{},[563,651,612],{}," key, so a gate's older events in an upgraded database keep ",[563,654,616],{},": they named their node under ",[563,657,627],{},[526,659,660,661,664],{},"Read the events with ",[563,662,663],{},"kraft view events",":",[539,666,667,677],{},[542,668,669],{},[545,670,671,674],{},[548,672,673],{},"Command",[548,675,676],{},"What it shows",[555,678,679,689,699,712],{},[545,680,681,686],{},[560,682,683],{},[563,684,685],{},"kraft view events ID",[560,687,688],{},"The whole timeline.",[545,690,691,696],{},[560,692,693],{},[563,694,695],{},"kraft view events ID --type gate_requested",[560,697,698],{},"Only the events of that type.",[545,700,701,706],{},[560,702,703],{},[563,704,705],{},"kraft view events ID --after 120 -f",[560,707,708,709,711],{},"Only the events after ",[563,710,565],{}," 120, then follows the timeline.",[545,713,714,719],{},[560,715,716],{},[563,717,718],{},"kraft view events ID --json",[560,720,721],{},"The raw events.",[526,723,724,725,729],{},"The tables list each type and the payload fields you are most likely to use.\nA payload can carry more fields than these. Event types and payloads are not a\n",[530,726,728],{"href":727},"\u002Fproject\u002Fstatus-and-support#versioning-and-stability","stable interface",": a\nrelease can add, rename or reshape them.",[731,732,734],"h2",{"id":733},"work-item","Work item",[539,736,737,750],{},[542,738,739],{},[545,740,741,744,747],{},[548,742,743],{},"Type",[548,745,746],{},"When",[548,748,749],{},"Key fields",[555,751,752,806,821,836,851,869,916,938,957,969,984,1001,1024,1048,1065,1081,1106,1123,1141,1160,1178,1214,1226,1240,1255,1282,1299],{},[545,753,754,759,762],{},[560,755,756],{},[563,757,758],{},"work_item_created",[560,760,761],{},"The item is filed.",[560,763,764,767,768,767,771,774,775,779,780,783,784,786,787,790,791,767,794,767,797,800,801,805],{},[563,765,766],{},"title",", ",[563,769,770],{},"repo",[563,772,773],{},"chain_template"," (the ",[530,776,778],{"href":777},"\u002Fconcepts\u002Fvocabulary#chain","chain"," the filing named, else the repo's ",[563,781,782],{},"default_chain","; ",[563,785,616],{}," when neither names a chain other than ",[563,788,789],{},"default","); ",[563,792,793],{},"source",[563,795,796],{},"bead_id",[563,798,799],{},"priority"," when ",[530,802,804],{"href":803},"\u002Fconcepts\u002Fvocabulary#auto-intake","auto-intake"," filed it",[545,807,808,813,816],{},[560,809,810],{},[563,811,812],{},"work_item_attachments",[560,814,815],{},"The item is filed with a spec or plan.",[560,817,818],{},[563,819,820],{},"attachments",[545,822,823,828,831],{},[560,824,825],{},[563,826,827],{},"work_item_resumed",[560,829,830],{},"A paused item starts or restarts.",[560,832,833],{},[563,834,835],{},"steer",[545,837,838,843,846],{},[560,839,840],{},[563,841,842],{},"pause_requested",[560,844,845],{},"Someone pauses the item.",[560,847,848],{},[563,849,850],{},"sessions",[545,852,853,858,861],{},[560,854,855],{},[563,856,857],{},"work_item_queued",[560,859,860],{},"A start found every slot busy; the item waits for one. Written again when a server stop interrupts the start of a queued item, which goes back in its place.",[560,862,863,767,866],{},[563,864,865],{},"verb",[563,867,868],{},"from",[545,870,871,876,908],{},[560,872,873],{},[563,874,875],{},"work_item_dequeued",[560,877,878,879,882,883,886,887,767,890,620,893,896,897,900,901,904,905,631],{},"A queued or blocked item left the hold other than by the queue starting it. ",[563,880,881],{},"why"," is ",[563,884,885],{},"paused"," (by a person), ",[563,888,889],{},"refused",[563,891,892],{},"failed",[563,894,895],{},"superseded"," (",[563,898,899],{},"detail"," says what; a superseded item is where ",[563,902,903],{},"to"," says), or ",[563,906,907],{},"dependency_abandoned",[560,909,910,767,912,767,914],{},[563,911,881],{},[563,913,899],{},[563,915,903],{},[545,917,918,923,930],{},[560,919,920],{},[563,921,922],{},"work_item_storage_held",[560,924,925,926,929],{},"A start was queued because worktrees are over ",[563,927,928],{},"storage.worktrees.limit",", not because a slot was busy. Written once each time the item is queued.",[560,931,932,767,935],{},[563,933,934],{},"used_bytes",[563,936,937],{},"limit_bytes",[545,939,940,945,948],{},[560,941,942],{},[563,943,944],{},"work_item_blocked",[560,946,947],{},"A start was held: the item comes after something unfinished.",[560,949,950,767,952,767,954],{},[563,951,865],{},[563,953,868],{},[563,955,956],{},"on",[545,958,959,964,967],{},[560,960,961],{},[563,962,963],{},"work_item_unblocked",[560,965,966],{},"Everything the item came after completed; it joined the queue.",[560,968],{},[545,970,971,976,979],{},[560,972,973],{},[563,974,975],{},"work_item_dependencies_dropped",[560,977,978],{},"Someone dropped what the item came after.",[560,980,981],{},[563,982,983],{},"dropped",[545,985,986,991,994],{},[560,987,988],{},[563,989,990],{},"work_item_blocked_by_dependency",[560,992,993],{},"An open bead dependency paused the item before its next node.",[560,995,996,767,998],{},[563,997,605],{},[563,999,1000],{},"blocked_by",[545,1002,1003,1008,1016],{},[560,1004,1005],{},[563,1006,1007],{},"paused_by_broken_base",[560,1009,1010,1011,1015],{},"Another item broke the ",[530,1012,1014],{"href":1013},"\u002Fconcepts\u002Fvocabulary#base-branch","base branch",", so this one paused.",[560,1017,1018,767,1021],{},[563,1019,1020],{},"broken_by",[563,1022,1023],{},"follow_up_bead",[545,1025,1026,1031,1038],{},[560,1027,1028],{},[563,1029,1030],{},"work_item_needs_human",[560,1032,1033,1034,631],{},"The item stopped for a person. See ",[530,1035,1037],{"href":1036},"#work_item_needs_human","below",[560,1039,1040,767,1042,767,1045],{},[563,1041,605],{},[563,1043,1044],{},"reason",[563,1046,1047],{},"kind",[545,1049,1050,1055,1058],{},[560,1051,1052],{},[563,1053,1054],{},"work_item_waiting",[560,1056,1057],{},"The item is parked on an external wait.",[560,1059,1060,767,1062],{},[563,1061,605],{},[563,1063,1064],{},"retry_at",[545,1066,1067,1072,1075],{},[560,1068,1069],{},[563,1070,1071],{},"work_item_rate_limited",[560,1073,1074],{},"The agent hit a rate limit; the item retries on its own.",[560,1076,1077,767,1079],{},[563,1078,605],{},[563,1080,1064],{},[545,1082,1083,1088,1091],{},[560,1084,1085],{},[563,1086,1087],{},"work_item_retried",[560,1089,1090],{},"Someone retried the item.",[560,1092,1093,767,1095,767,1097,1100,1101,1105],{},[563,1094,605],{},[563,1096,835],{},[563,1098,1099],{},"escalated"," (an ",[530,1102,1104],{"href":1103},"\u002Fconcepts\u002Fvocabulary#escalation-turn","escalation turn"," retried it)",[545,1107,1108,1113,1120],{},[560,1109,1110],{},[563,1111,1112],{},"work_item_completed",[560,1114,1115,1116,1119],{},"The item finished. Alone when its chain ended; after ",[563,1117,1118],{},"work_item_manually_completed"," when someone completed it by hand.",[560,1121,1122],{},"none",[545,1124,1125,1129,1135],{},[560,1126,1127],{},[563,1128,1118],{},[560,1130,1131,1132,1134],{},"Someone completed the item by hand. ",[563,1133,1112],{}," follows.",[560,1136,1137,767,1139],{},[563,1138,1044],{},[563,1140,605],{},[545,1142,1143,1148,1154],{},[560,1144,1145],{},[563,1146,1147],{},"work_item_cancelled",[560,1149,1150,1151,1134],{},"Someone cancelled the item. ",[563,1152,1153],{},"work_item_abandoned",[560,1155,1156,767,1158],{},[563,1157,1044],{},[563,1159,605],{},[545,1161,1162,1166,1176],{},[560,1163,1164],{},[563,1165,1153],{},[560,1167,1168,1169,1172,1173,1175],{},"The item ended as abandoned. Alone for ",[563,1170,1171],{},"kraft item abandon","; after ",[563,1174,1147],{}," for a cancel.",[560,1177,1122],{},[545,1179,1180,1185,1188],{},[560,1181,1182],{},[563,1183,1184],{},"work_item_archived",[560,1186,1187],{},"The item left the Done column.",[560,1189,1190,767,1193,767,1196,767,1199,767,1202,767,1205,767,1208,1210,1211,631],{},[563,1191,1192],{},"by",[563,1194,1195],{},"kept_branch",[563,1197,1198],{},"unpushed_commits",[563,1200,1201],{},"rescued_branch",[563,1203,1204],{},"rescued_commits",[563,1206,1207],{},"worktree_kept",[563,1209,1044],{},". See ",[530,1212,1037],{"href":1213},"#work_item_archived",[545,1215,1216,1221,1224],{},[560,1217,1218],{},[563,1219,1220],{},"work_item_restored",[560,1222,1223],{},"An archived item came back.",[560,1225,1122],{},[545,1227,1228,1233,1236],{},[560,1229,1230],{},[563,1231,1232],{},"work_item_title_edited",[560,1234,1235],{},"The title changed.",[560,1237,1238],{},[563,1239,766],{},[545,1241,1242,1247,1250],{},[560,1243,1244],{},[563,1245,1246],{},"work_item_description_edited",[560,1248,1249],{},"The description changed.",[560,1251,1252],{},[563,1253,1254],{},"description",[545,1256,1257,1262,1270],{},[560,1258,1259],{},[563,1260,1261],{},"plan_progress",[560,1263,1264,1265,1269],{},"A ",[530,1266,1268],{"href":1267},"\u002Fconcepts\u002Fvocabulary#worker","worker"," started a plan task.",[560,1271,1272,767,1274,767,1277,767,1280],{},[563,1273,605],{},[563,1275,1276],{},"task",[563,1278,1279],{},"total",[563,1281,766],{},[545,1283,1284,1289,1295],{},[560,1285,1286],{},[563,1287,1288],{},"steer_context_set",[560,1290,1264,1291,1294],{},[530,1292,835],{"href":1293},"\u002Fconcepts\u002Fvocabulary#steer"," was stored for the next agent.",[560,1296,1297],{},[563,1298,835],{},[545,1300,1301,1306,1309],{},[560,1302,1303],{},[563,1304,1305],{},"steer_undelivered",[560,1307,1308],{},"A steer was stored but no agent received it.",[560,1310,1311],{},[563,1312,835],{},[1314,1315,1316],"h3",{"id":1184},[563,1317,1184],{},[539,1319,1320,1328],{},[542,1321,1322],{},[545,1323,1324,1326],{},[548,1325,550],{},[548,1327,553],{},[555,1329,1330,1344,1356,1367,1378],{},[545,1331,1332,1336],{},[560,1333,1334],{},[563,1335,1192],{},[560,1337,1338,620,1341,631],{},[563,1339,1340],{},"you",[563,1342,1343],{},"auto",[545,1345,1346,1350],{},[560,1347,1348],{},[563,1349,1044],{},[560,1351,1352,1355],{},[563,1353,1354],{},"storage"," when automatic clean-up archived it for the worktree limit. Absent otherwise.",[545,1357,1358,1364],{},[560,1359,1360,767,1362],{},[563,1361,1195],{},[563,1363,1198],{},[560,1365,1366],{},"Present when the branch stayed because it has commits nowhere else.",[545,1368,1369,1375],{},[560,1370,1371,767,1373],{},[563,1372,1201],{},[563,1374,1204],{},[560,1376,1377],{},"Present when commits on a detached HEAD were kept on a new branch.",[545,1379,1380,1384],{},[560,1381,1382],{},[563,1383,1207],{},[560,1385,1386,1387,1391],{},"The reason, when that branch could not be made and the ",[530,1388,1390],{"href":1389},"\u002Fconcepts\u002Fvocabulary#worktree","worktree"," stayed.",[1314,1393,1394],{"id":1030},[563,1395,1030],{},[526,1397,1398,1399,1402,1403,1406],{},"This is the event behind ",[563,1400,1401],{},"stop_reason"," in ",[563,1404,1405],{},"kraft view show --json",", and behind\n\"why did it stop\" on the board. Its fields:",[539,1408,1409,1417],{},[542,1410,1411],{},[545,1412,1413,1415],{},[548,1414,550],{},[548,1416,553],{},[555,1418,1419,1428,1441,1454,1468,1486,1504,1517,1531,1544],{},[545,1420,1421,1425],{},[560,1422,1423],{},[563,1424,605],{},[560,1426,1427],{},"The node the item stopped on.",[545,1429,1430,1434],{},[560,1431,1432],{},[563,1433,1044],{},[560,1435,1436,1437,1440],{},"What stopped it, in words. A reason that starts ",[563,1438,1439],{},"needs_context:"," is a question from the agent.",[545,1442,1443,1447],{},[560,1444,1445],{},[563,1446,1047],{},[560,1448,1449,1450,631],{},"Why, as one of nine values. See ",[530,1451,1453],{"href":1452},"#stop-kinds","Stop kinds",[545,1455,1456,1461],{},[560,1457,1458],{},[563,1459,1460],{},"session_id",[560,1462,1463,1464,1467],{},"The last session of that node, when it failed or asked a question. ",[563,1465,1466],{},"kraft view logs"," reads its log.",[545,1469,1470,1475],{},[560,1471,1472],{},[563,1473,1474],{},"capped",[560,1476,1477,1480,1481,1485],{},[563,1478,1479],{},"{cycles, attempts}"," when a ",[530,1482,1484],{"href":1483},"\u002Fconcepts\u002Fvocabulary#fix-loop","fix loop"," spent its attempts.",[545,1487,1488,1493],{},[560,1489,1490],{},[563,1491,1492],{},"budget",[560,1494,1495,1498,1499,1503],{},[563,1496,1497],{},"{scope, spent_usd, cap_usd}"," when a spend ",[530,1500,1502],{"href":1501},"\u002Fconcepts\u002Fvocabulary#cap","cap"," stopped the item.",[545,1505,1506,1511],{},[560,1507,1508],{},[563,1509,1510],{},"stuck",[560,1512,1513,1516],{},[563,1514,1515],{},"true"," when the item stopped in a way an escalation turn can answer.",[545,1518,1519,1524],{},[560,1520,1521],{},[563,1522,1523],{},"bundle",[560,1525,1526,1527,1530],{},"What Kraft gathered about a ",[530,1528,1510],{"href":1529},"\u002Fconcepts\u002Fvocabulary#stuck"," item when it gave up.",[545,1532,1533,1538],{},[560,1534,1535],{},[563,1536,1537],{},"suggested_action",[560,1539,1540,1543],{},[563,1541,1542],{},"{action, reason}",", the next step Kraft suggests.",[545,1545,1546,1551],{},[560,1547,1548],{},[563,1549,1550],{},"facts",[560,1552,1553,1554,631],{},"Detail that depends on the stop, when there is any. See ",[530,1555,608,1557,1559],{"href":1556},"#the-facts-field",[563,1558,1550],{}," field",[1314,1561,1453],{"id":1562},"stop-kinds",[526,1564,1565,1567,1568,1571,1572,1575,1576,1578],{},[563,1566,1047],{}," is also the value ",[563,1569,1570],{},"stop.kind"," takes on the ",[530,1573,444],{"href":1574},"\u002Freference\u002Fhttp-api\u002Fwork-item-object#stopkind",". ",[530,1577,199],{"href":200}," gives each stop's fix.",[539,1580,1581,1590],{},[542,1582,1583],{},[545,1584,1585,1588],{},[548,1586,1587],{},"Kind",[548,1589,553],{},[555,1591,1592,1605,1614,1623,1632,1642,1652,1666,1685],{},[545,1593,1594,1599],{},[560,1595,1596],{},[563,1597,1598],{},"question",[560,1600,1601,1602,1604],{},"An agent asked for context it needs (",[563,1603,1439],{},").",[545,1606,1607,1611],{},[560,1608,1609],{},[563,1610,1502],{},[560,1612,1613],{},"A loop or time cap ran out: a fix loop's attempts, a time cap, a gate's rejection cycles, a wait's timeout, or rate-limit retries.",[545,1615,1616,1620],{},[560,1617,1618],{},[563,1619,1492],{},[560,1621,1622],{},"A spend cap, in dollars or tokens, refused the next launch.",[545,1624,1625,1629],{},[560,1626,1627],{},[563,1628,892],{},[560,1630,1631],{},"A task failed, a changed-test scope ran red, or a read-only node changed the worktree.",[545,1633,1634,1639],{},[560,1635,1636],{},[563,1637,1638],{},"conflict",[560,1640,1641],{},"A merge or rebase conflict the conflict handler could not clear.",[545,1643,1644,1649],{},[560,1645,1646],{},[563,1647,1648],{},"mr_closed",[560,1650,1651],{},"Someone closed the item's merge request.",[545,1653,1654,1659],{},[560,1655,1656],{},[563,1657,1658],{},"config",[560,1660,1661,1662,631],{},"The chain, the repo's configuration or a gate's document cannot run as it stands: a task that could not start, a missing base branch, a chain that changed under the ",[530,1663,1665],{"href":1664},"\u002Fconcepts\u002Fvocabulary#walk","walk",[545,1667,1668,1673],{},[560,1669,1670],{},[563,1671,1672],{},"infra",[560,1674,1675,1676,1680,1681,1684],{},"Kraft or what it depends on failed: a crash, git, the ",[530,1677,1679],{"href":1678},"\u002Fconcepts\u002Fvocabulary#forge","forge",", CI infrastructure. ",[563,1682,1683],{},"facts.cause"," says which.",[545,1686,1687,1691],{},[560,1688,1689],{},[563,1690,1510],{},[560,1692,1693,1694,1698],{},"A loop stopped making progress: the same findings across cycles, a ",[530,1695,1697],{"href":1696},"\u002Fconcepts\u002Fvocabulary#judge","judge","'s ruling to stop, or a repair that doubts itself. An escalation turn can answer it.",[526,1700,1701,1703],{},[563,1702,1570],{}," takes three more values. They come from the item's status, not from this event:",[539,1705,1706,1714],{},[542,1707,1708],{},[545,1709,1710,1712],{},[548,1711,1587],{},[548,1713,553],{},[555,1715,1716,1729,1739],{},[545,1717,1718,1722],{},[560,1719,1720],{},[563,1721,627],{},[560,1723,1724,1725,1728],{},"The item waits at a pending gate (a ",[563,1726,1727],{},"gate_requested"," event).",[545,1730,1731,1736],{},[560,1732,1733],{},[563,1734,1735],{},"wait",[560,1737,1738],{},"The item is parked on an external wait: CI or a review.",[545,1740,1741,1746],{},[560,1742,1743],{},[563,1744,1745],{},"rate_limit",[560,1747,1748],{},"An agent rate limit holds the item, and it retries on its own.",[1314,1750,608,1752,1559],{"id":1751},"the-facts-field",[563,1753,1550],{},[526,1755,1756,1757,1759],{},"What ",[563,1758,1550],{}," carries depends on the stop:",[539,1761,1762,1774],{},[542,1763,1764],{},[545,1765,1766,1769],{},[548,1767,1768],{},"Stop",[548,1770,1771,1773],{},[563,1772,1550],{}," carries",[555,1775,1776,1797,1805,1838],{},[545,1777,1778,1783],{},[560,1779,1264,1780,1782],{},[563,1781,1638],{}," stop",[560,1784,1785,1788,1789,1792,1793,1796],{},[563,1786,1787],{},"resolved"," and ",[563,1790,1791],{},"unresolved",": the files the handler cleared and the ones still conflicted (",[563,1794,1795],{},"git diff --diff-filter=U"," in the worktree).",[545,1798,1799,1802],{},[560,1800,1801],{},"A closed MR",[560,1803,1804],{},"Its ref and url.",[545,1806,1807,1812],{},[560,1808,1264,1809,1811],{},[563,1810,892],{}," stop on a red changed-test-scope run",[560,1813,1814,1815,767,1818,767,1821,1788,1824,896,1826,1829,1830,1833,1834,1837],{},"The first failed command's ",[563,1816,1817],{},"command",[563,1819,1820],{},"scope",[563,1822,1823],{},"exit_code",[563,1825,1460],{},[563,1827,1828],{},"area",", and ",[563,1831,1832],{},"setup: true"," for an area's setup), and every failed one under ",[563,1835,1836],{},"failed_scopes"," when more than one went red.",[545,1839,1840,1843],{},[560,1841,1842],{},"A stop whose cause Kraft can name",[560,1844,1845,1848],{},[563,1846,1847],{},"cause",": see below.",[526,1850,1851,1852,1854,1855,1857],{},"On an ",[563,1853,1672],{}," stop, ",[563,1856,1847],{}," is one of:",[1859,1860,1861,1868,1874,1880,1886,1892],"ul",{},[1862,1863,1864,1867],"li",{},[563,1865,1866],{},"crash",": the executor task crashed.",[1862,1869,1870,1873],{},[563,1871,1872],{},"stranded",": a claim that no walk took over.",[1862,1875,1876,1879],{},[563,1877,1878],{},"ci_infra",": CI infrastructure failed and retrying did not recover it.",[1862,1881,1882,1885],{},[563,1883,1884],{},"git",": the worktree refresh failed.",[1862,1887,1888,1891],{},[563,1889,1890],{},"forge_auth",": the forge refused the credential.",[1862,1893,1894,1897],{},[563,1895,1896],{},"forge_unreachable",": the forge could not be reached.",[526,1899,1900,1901,1788,1903,1905,1906,1908,1909,1911,1912,1914],{},"For ",[563,1902,1890],{},[563,1904,1896],{},", the git or forge error says so. A forge task's own failure carries one of these two the same way, on its ",[563,1907,892],{}," stop, or on its ",[563,1910,1672],{}," one in a node with a fix loop. Other ",[563,1913,1672],{}," stops name no cause.",[731,1916,1918],{"id":1917},"chain-and-nodes","Chain and nodes",[539,1920,1921,1931],{},[542,1922,1923],{},[545,1924,1925,1927,1929],{},[548,1926,743],{},[548,1928,746],{},[548,1930,749],{},[555,1932,1933,1953,1968,1982,1996,2015,2032,2049,2068,2088,2106,2125,2150,2178,2197,2238,2265,2287,2309,2331,2345],{},[545,1934,1935,1940,1943],{},[560,1936,1937],{},[563,1938,1939],{},"chain_loaded",[560,1941,1942],{},"The chain was built for the item.",[560,1944,1945,1948,1949],{},[563,1946,1947],{},"addons",", only when the chain resolved through a ",[530,1950,1952],{"href":1951},"\u002Fconcepts\u002Fvocabulary#add-on","Kraft add-on",[545,1954,1955,1960,1963],{},[560,1956,1957],{},[563,1958,1959],{},"worktree_prepared",[560,1961,1962],{},"The worktree was created and set up.",[560,1964,1965],{},[563,1966,1967],{},"report",[545,1969,1970,1975,1978],{},[560,1971,1972],{},[563,1973,1974],{},"node_started",[560,1976,1977],{},"A node began.",[560,1979,1980],{},[563,1981,605],{},[545,1983,1984,1989,1992],{},[560,1985,1986],{},[563,1987,1988],{},"node_completed",[560,1990,1991],{},"A node finished.",[560,1993,1994],{},[563,1995,605],{},[545,1997,1998,2003,2006],{},[560,1999,2000],{},[563,2001,2002],{},"node_skipped",[560,2004,2005],{},"A node or its gate was skipped.",[560,2007,2008,767,2010,767,2012],{},[563,2009,605],{},[563,2011,627],{},[563,2013,2014],{},"note",[545,2016,2017,2022,2025],{},[560,2018,2019],{},[563,2020,2021],{},"scope_skipped",[560,2023,2024],{},"A step or task inside a node was skipped.",[560,2026,2027,767,2030],{},[563,2028,2029],{},"path",[563,2031,2014],{},[545,2033,2034,2039,2042],{},[560,2035,2036],{},[563,2037,2038],{},"node_recovery_started",[560,2040,2041],{},"Kraft reran a node's failed tasks.",[560,2043,2044,767,2046],{},[563,2045,605],{},[563,2047,2048],{},"failed_tasks",[545,2050,2051,2056,2059],{},[560,2052,2053],{},[563,2054,2055],{},"run_forked",[560,2057,2058],{},"A retry started a new run from part of the old one.",[560,2060,2061,767,2063,767,2065],{},[563,2062,2029],{},[563,2064,1820],{},[563,2066,2067],{},"reopened",[545,2069,2070,2075,2078],{},[560,2071,2072],{},[563,2073,2074],{},"base_change_restart",[560,2076,2077],{},"The base branch moved, so part of the chain reran.",[560,2079,2080,767,2082,767,2085],{},[563,2081,605],{},[563,2083,2084],{},"restart_from",[563,2086,2087],{},"nodes",[545,2089,2090,2095,2098],{},[560,2091,2092],{},[563,2093,2094],{},"worktree_rebase_verified",[560,2096,2097],{},"A rebase reported by a worker matched the worktree.",[560,2099,2100,767,2103],{},[563,2101,2102],{},"reported_head",[563,2104,2105],{},"worktree_head",[545,2107,2108,2113,2116],{},[560,2109,2110],{},[563,2111,2112],{},"read_only_violated",[560,2114,2115],{},"A read-only node or step changed the worktree.",[560,2117,2118,767,2120,767,2122],{},[563,2119,605],{},[563,2121,1820],{},[563,2123,2124],{},"files",[545,2126,2127,2132,2139],{},[560,2128,2129],{},[563,2130,2131],{},"fix_cycle_started",[560,2133,2134,2135,2138],{},"A fix loop started another attempt. ",[563,2136,2137],{},"max_attempts"," is how many the loop allows.",[560,2140,2141,767,2143,767,2146,767,2148],{},[563,2142,605],{},[563,2144,2145],{},"cycle",[563,2147,2137],{},[563,2149,2048],{},[545,2151,2152,2157,2167],{},[560,2153,2154],{},[563,2155,2156],{},"fix_cycle_finished",[560,2158,2159,2160,2163,2164,2166],{},"A fix attempt's repair ran. ",[563,2161,2162],{},"committed"," is whether it moved the branch head, ",[563,2165,616],{}," when git could not say.",[560,2168,2169,767,2171,767,2173,767,2175],{},[563,2170,605],{},[563,2172,2145],{},[563,2174,2162],{},[563,2176,2177],{},"head_sha",[545,2179,2180,2185,2188],{},[560,2181,2182],{},[563,2183,2184],{},"fix_cycle_refunded",[560,2186,2187],{},"A fix attempt did not count, because the repair never ran.",[560,2189,2190,767,2192,767,2194],{},[563,2191,605],{},[563,2193,2145],{},[563,2195,2196],{},"outcome",[545,2198,2199,2204,2225],{},[560,2200,2201],{},[563,2202,2203],{},"findings_measured",[560,2205,2206,2207,2210,2211,2214,2215,882,2217,2220,2221,2224],{},"A node with a fix loop measured a round. ",[563,2208,2209],{},"measured_tasks"," are its measuring tasks with a session that measurement read, ",[563,2212,2213],{},"unmeasured_tasks"," the ones with none. ",[563,2216,2145],{},[563,2218,2219],{},"-1"," after a failed ",[563,2222,2223],{},"on_failure"," recovery.",[560,2226,2227,767,2229,767,2231,767,2233,767,2235],{},[563,2228,605],{},[563,2230,2145],{},[563,2232,2209],{},[563,2234,2213],{},[563,2236,2237],{},"findings",[545,2239,2240,2245,2248],{},[560,2241,2242],{},[563,2243,2244],{},"test_scopes_selected",[560,2246,2247],{},"A changed-test-scope task picked its commands for a repository, before it ran any. One per repository and round; a rerun emits another, and the latest counts.",[560,2249,2250,767,2252,767,2255,767,2258,767,2261,2264],{},[563,2251,605],{},[563,2253,2254],{},"hook_point",[563,2256,2257],{},"repository",[563,2259,2260],{},"round",[563,2262,2263],{},"commands"," (each area's setup ahead of its first scope)",[545,2266,2267,2272,2275],{},[560,2268,2269],{},[563,2270,2271],{},"judge_verdict",[560,2273,2274],{},"A judge ruled on findings.",[560,2276,2277,767,2279,767,2281,767,2284],{},[563,2278,605],{},[563,2280,2145],{},[563,2282,2283],{},"verdict",[563,2285,2286],{},"reasoning",[545,2288,2289,2294,2300],{},[560,2290,2291],{},[563,2292,2293],{},"sweep_failed",[560,2295,2296,2297,631],{},"Kraft could not commit work an agent task left uncommitted. The work stays in the worktree. See ",[530,2298,1037],{"href":2299},"#sweep_failed",[560,2301,2302,767,2304,767,2306],{},[563,2303,605],{},[563,2305,1276],{},[563,2307,2308],{},"error",[545,2310,2311,2316,2322],{},[560,2312,2313],{},[563,2314,2315],{},"sweep_left_out",[560,2317,2318,2319,631],{},"After an agent task, Kraft committed the work it left, but not some paths. See ",[530,2320,1037],{"href":2321},"#sweep_left_out",[560,2323,2324,767,2326,767,2328],{},[563,2325,605],{},[563,2327,1276],{},[563,2329,2330],{},"paths",[545,2332,2333,2338,2341],{},[560,2334,2335],{},[563,2336,2337],{},"bead_not_filed",[560,2339,2340],{},"Intake could not file a bead.",[560,2342,2343],{},[563,2344,1044],{},[545,2346,2347,2352,2360],{},[560,2348,2349],{},[563,2350,2351],{},"beads_left_open",[560,2353,2354,2355,2359],{},"The item completed but its issues in ",[530,2356,2358],{"href":2357},"\u002Fconcepts\u002Fvocabulary#beads","beads"," stayed open.",[560,2361,2362,767,2364],{},[563,2363,2358],{},[563,2365,1044],{},[1314,2367,2368],{"id":1939},[563,2369,1939],{},[526,2371,2372,2374,2375,1575,2378,1788,2381,2384,2385,2387,2388,631],{},[563,2373,1947],{}," maps each add-on namespace the chain resolved through to the version the item pinned: ",[563,2376,2377],{},"{id, commit, tree, source, digest, version}",[563,2379,2380],{},"commit",[563,2382,2383],{},"tree"," are ",[563,2386,616],{}," for an add-on of a directory collection. The item reads that add-on's skills and agent profiles from this version until it ends. See ",[530,2389,2391],{"href":2390},"\u002Freference\u002Fconfiguration\u002Faddons#what-a-work-item-pins","What a work item pins",[2393,2394,2399],"pre",{"className":2395,"code":2396,"language":2397,"meta":2398,"style":2398},"language-json shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","{\"addons\": {\"release\": {\"id\": \"release@acme\", \"commit\": \"f4a11422cc8377a6ae61353897431dafa72b8ef5\",\n  \"tree\": \"de1b745c4020ff2d468c14451da2f28a5fb56207\", \"source\": \".\u002Faddons\u002Frelease\",\n  \"digest\": \"sha256:f915f6266d319e9c0bc2bb2483683d74f307839138258901919e7d071fd37da4\", \"version\": \"1.0.0\"}}}\n","json","",[563,2400,2401,2445,2468],{"__ignoreMap":2398},[2402,2403,2406,2410,2414,2417,2420,2422,2425,2428,2432,2434,2437,2439,2442],"span",{"class":2404,"line":2405},"line",1,[2402,2407,2409],{"class":2408},"s7iLA","{",[2402,2411,2413],{"class":2412},"sb7M8","\"addons\"",[2402,2415,2416],{"class":2408},": {",[2402,2418,2419],{"class":2412},"\"release\"",[2402,2421,2416],{"class":2408},[2402,2423,2424],{"class":2412},"\"id\"",[2402,2426,2427],{"class":2408},": ",[2402,2429,2431],{"class":2430},"semJd","\"release@acme\"",[2402,2433,767],{"class":2408},[2402,2435,2436],{"class":2412},"\"commit\"",[2402,2438,2427],{"class":2408},[2402,2440,2441],{"class":2430},"\"f4a11422cc8377a6ae61353897431dafa72b8ef5\"",[2402,2443,2444],{"class":2408},",\n",[2402,2446,2448,2451,2453,2456,2458,2461,2463,2466],{"class":2404,"line":2447},2,[2402,2449,2450],{"class":2412},"  \"tree\"",[2402,2452,2427],{"class":2408},[2402,2454,2455],{"class":2430},"\"de1b745c4020ff2d468c14451da2f28a5fb56207\"",[2402,2457,767],{"class":2408},[2402,2459,2460],{"class":2412},"\"source\"",[2402,2462,2427],{"class":2408},[2402,2464,2465],{"class":2430},"\".\u002Faddons\u002Frelease\"",[2402,2467,2444],{"class":2408},[2402,2469,2471,2474,2476,2479,2481,2484,2486,2489],{"class":2404,"line":2470},3,[2402,2472,2473],{"class":2412},"  \"digest\"",[2402,2475,2427],{"class":2408},[2402,2477,2478],{"class":2430},"\"sha256:f915f6266d319e9c0bc2bb2483683d74f307839138258901919e7d071fd37da4\"",[2402,2480,767],{"class":2408},[2402,2482,2483],{"class":2412},"\"version\"",[2402,2485,2427],{"class":2408},[2402,2487,2488],{"class":2430},"\"1.0.0\"",[2402,2490,2491],{"class":2408},"}}}\n",[1314,2493,2494],{"id":2293},[563,2495,2293],{},[526,2497,2498],{},"Kraft could not commit the work because:",[1859,2500,2501,2504,2507,2510],{},[1862,2502,2503],{},"the commit failed;",[1862,2505,2506],{},"the worktree was not on the item's branch;",[1862,2508,2509],{},"the worktree held a git operation Kraft did not start; or",[1862,2511,2512],{},"the worktree held a repository Kraft did not create.",[1314,2514,2515],{"id":2315},[563,2516,2315],{},[526,2518,2519,2520,2522],{},"After an agent task, Kraft commits the work the task left, but not the installs the repo's setup made. The event names the paths it left out. It is written only when that set differs from the item's last ",[563,2521,2315],{},", not after every task.",[526,2524,2525],{},"Kraft leaves out:",[1859,2527,2528,2539],{},[1862,2529,2530,2531,2534,2535,2538],{},"a lockfile the repo's setup command wrote and nobody changed since (",[563,2532,2533],{},"uv sync"," in a repo that commits no ",[563,2536,2537],{},"uv.lock",");",[1862,2540,2541,2542,2545,2546,2548],{},"a virtualenv or ",[563,2543,2544],{},"node_modules"," the repo does not ignore. A ",[563,2547,2544],{}," the setup command made counts whatever is in it: bun leaves no marker.",[526,2550,2551],{},"Kraft commits, as the agent's work:",[1859,2553,2554,2557,2583],{},[1862,2555,2556],{},"a lockfile the agent writes, or an edit it makes to the setup's;",[1862,2558,2559,2560,2562,2563,767,2566,767,2569,767,2572,767,2575,2578,2579,2582],{},"a ",[563,2561,2544],{}," the setup did not make with no package manager's marker in it (",[563,2564,2565],{},".package-lock.json",[563,2567,2568],{},".modules.yaml",[563,2570,2571],{},".pnpm",[563,2573,2574],{},".yarn-integrity",[563,2576,2577],{},".yarn-state.yml","), even beside a ",[563,2580,2581],{},"package.json",";",[1862,2584,2559,2585,2588,2589,2592],{},[563,2586,2587],{},"pyvenv.cfg"," with no ",[563,2590,2591],{},"python"," beside it.",[731,2594,2596],{"id":2595},"gates-and-review","Gates and review",[539,2598,2599,2609],{},[542,2600,2601],{},[545,2602,2603,2605,2607],{},[548,2604,743],{},[548,2606,746],{},[548,2608,749],{},[555,2610,2611,2626,2642,2662,2678,2694,2713,2731,2748,2765,2792,2808,2827,2849,2868,2882,2898,2914],{},[545,2612,2613,2617,2620],{},[560,2614,2615],{},[563,2616,1727],{},[560,2618,2619],{},"A gate is waiting for a decision.",[560,2621,2622,767,2624],{},[563,2623,627],{},[563,2625,605],{},[545,2627,2628,2633,2636],{},[560,2629,2630],{},[563,2631,2632],{},"gate_approved",[560,2634,2635],{},"A gate was approved.",[560,2637,2638,767,2640],{},[563,2639,627],{},[563,2641,1192],{},[545,2643,2644,2649,2652],{},[560,2645,2646],{},[563,2647,2648],{},"gate_rejected",[560,2650,2651],{},"A gate was rejected.",[560,2653,2654,767,2656,767,2658,767,2660],{},[563,2655,627],{},[563,2657,2014],{},[563,2659,612],{},[563,2661,1192],{},[545,2663,2664,2669,2672],{},[560,2665,2666],{},[563,2667,2668],{},"gate_reopened",[560,2670,2671],{},"An approved gate is open again.",[560,2673,2674,767,2676],{},[563,2675,627],{},[563,2677,1044],{},[545,2679,2680,2685,2688],{},[560,2681,2682],{},[563,2683,2684],{},"gate_auto_review_started",[560,2686,2687],{},"A gate's review agent started.",[560,2689,2690,767,2692],{},[563,2691,627],{},[563,2693,1460],{},[545,2695,2696,2701,2704],{},[560,2697,2698],{},[563,2699,2700],{},"gate_auto_review_skipped",[560,2702,2703],{},"A gate's review agent did not run, or left the decision to a person.",[560,2705,2706,767,2708,783,2710,2712],{},[563,2707,627],{},[563,2709,1044],{},[563,2711,2014],{}," says why, when the review gave a reason",[545,2714,2715,2720,2723],{},[560,2716,2717],{},[563,2718,2719],{},"gate_auto_review_discarded",[560,2721,2722],{},"A review agent's verdict was not used.",[560,2724,2725,767,2727,767,2729],{},[563,2726,627],{},[563,2728,2283],{},[563,2730,1044],{},[545,2732,2733,2738,2741],{},[560,2734,2735],{},[563,2736,2737],{},"chain_revision_shown",[560,2739,2740],{},"A person was shown a chain revision.",[560,2742,2743,767,2745],{},[563,2744,627],{},[563,2746,2747],{},"digest",[545,2749,2750,2755,2758],{},[560,2751,2752],{},[563,2753,2754],{},"chain_revision_unchanged",[560,2756,2757],{},"A chain revision proposed no change, so its gate passed.",[560,2759,2760,767,2762],{},[563,2761,627],{},[563,2763,2764],{},"rationale",[545,2766,2767,2772,2775],{},[560,2768,2769],{},[563,2770,2771],{},"chain_revised",[560,2773,2774],{},"An approved chain revision, or an applied item draft, replaced the chain.",[560,2776,2777,767,2779,767,2782,783,2785,1788,2788,2791],{},[563,2778,627],{},[563,2780,2781],{},"changes",[563,2783,2784],{},"diff",[563,2786,2787],{},"source: \"draft\"",[563,2789,2790],{},"gate: null"," for an item draft",[545,2793,2794,2799,2802],{},[560,2795,2796],{},[563,2797,2798],{},"artifact_refused",[560,2800,2801],{},"Kraft found a gate's document, or a document a task wrote, but would not serve it; once per refused request.",[560,2803,2804,767,2806],{},[563,2805,2029],{},[563,2807,1044],{},[545,2809,2810,2815,2818],{},[560,2811,2812],{},[563,2813,2814],{},"review_submitted",[560,2816,2817],{},"A review was sent.",[560,2819,2820,767,2823,767,2825],{},[563,2821,2822],{},"review_id",[563,2824,627],{},[563,2826,2196],{},[545,2828,2829,2834,2841],{},[560,2830,2831],{},[563,2832,2833],{},"thread_updated",[560,2835,1264,2836,2840],{},[530,2837,2839],{"href":2838},"\u002Fconcepts\u002Fvocabulary#review-thread","review thread"," was resolved or reopened.",[560,2842,2843,767,2846],{},[563,2844,2845],{},"thread_id",[563,2847,2848],{},"state",[545,2850,2851,2856,2859],{},[560,2852,2853],{},[563,2854,2855],{},"rewind_requested",[560,2857,2858],{},"A review asked for work to be redone.",[560,2860,2861,767,2863,767,2866],{},[563,2862,2822],{},[563,2864,2865],{},"target",[563,2867,2014],{},[545,2869,2870,2875,2878],{},[560,2871,2872],{},[563,2873,2874],{},"rewind_cancelled",[560,2876,2877],{},"That request was withdrawn.",[560,2879,2880],{},[563,2881,2822],{},[545,2883,2884,2889,2892],{},[560,2885,2886],{},[563,2887,2888],{},"reply_agent_wrote",[560,2890,2891],{},"An agent answered review threads.",[560,2893,2894,767,2896],{},[563,2895,627],{},[563,2897,2124],{},[545,2899,2900,2905,2908],{},[560,2901,2902],{},[563,2903,2904],{},"reply_agent_skipped",[560,2906,2907],{},"No agent answered review threads.",[560,2909,2910,767,2912],{},[563,2911,627],{},[563,2913,1044],{},[545,2915,2916,2921,2924],{},[560,2917,2918],{},[563,2919,2920],{},"reply_agent_failed",[560,2922,2923],{},"The reply agent failed.",[560,2925,2926,767,2928],{},[563,2927,627],{},[563,2929,2308],{},[526,2931,2932,882,2934,2937,2938,2941,2942,2945,2946,2949,2950,2952],{},[563,2933,1192],{},[563,2935,2936],{},"human"," (the board or the ",[563,2939,2940],{},"kraft"," command), ",[563,2943,2944],{},"assistant"," (an agent\nthrough the MCP server), ",[563,2947,2948],{},"agent"," (a Kraft worker, such as a gate's review\nagent) or ",[563,2951,2940],{}," (Kraft itself).",[731,2954,2956],{"id":2955},"agent-sessions","Agent sessions",[539,2958,2959,2969],{},[542,2960,2961],{},[545,2962,2963,2965,2967],{},[548,2964,743],{},[548,2966,746],{},[548,2968,749],{},[555,2970,2971,2992,3013,3040,3054,3070,3086,3102,3116],{},[545,2972,2973,2978,2981],{},[560,2974,2975],{},[563,2976,2977],{},"worker_session_created",[560,2979,2980],{},"A session was recorded, before launch.",[560,2982,2983,767,2985,767,2987,767,2989],{},[563,2984,1460],{},[563,2986,605],{},[563,2988,2254],{},[563,2990,2991],{},"attempt",[545,2993,2994,2999,3002],{},[560,2995,2996],{},[563,2997,2998],{},"worker_session_started",[560,3000,3001],{},"Its process started.",[560,3003,3004,767,3006,767,3008,767,3010],{},[563,3005,1460],{},[563,3007,605],{},[563,3009,2254],{},[563,3011,3012],{},"pid",[545,3014,3015,3020,3023],{},[560,3016,3017],{},[563,3018,3019],{},"worker_session_exited",[560,3021,3022],{},"It ended.",[560,3024,3025,767,3027,767,3030,767,3033,767,3036,3039],{},[563,3026,1460],{},[563,3028,3029],{},"status",[563,3031,3032],{},"wall_ms",[563,3034,3035],{},"model",[563,3037,3038],{},"cost_usd",", token counts",[545,3041,3042,3047,3050],{},[560,3043,3044],{},[563,3045,3046],{},"worker_session_paused",[560,3048,3049],{},"It was stopped by a pause, skip or manual end.",[560,3051,3052],{},[563,3053,1460],{},[545,3055,3056,3061,3064],{},[560,3057,3058],{},[563,3059,3060],{},"agent_session_resumed",[560,3062,3063],{},"A session resumed the agent's earlier conversation.",[560,3065,3066,767,3068],{},[563,3067,1276],{},[563,3069,1460],{},[545,3071,3072,3077,3080],{},[560,3073,3074],{},[563,3075,3076],{},"session_reattached",[560,3078,3079],{},"After a restart, Kraft found a session still running.",[560,3081,3082,767,3084],{},[563,3083,1460],{},[563,3085,3012],{},[545,3087,3088,3093,3096],{},[560,3089,3090],{},[563,3091,3092],{},"session_unknown",[560,3094,3095],{},"After a restart, Kraft could not confirm a session.",[560,3097,3098,767,3100],{},[563,3099,1460],{},[563,3101,1044],{},[545,3103,3104,3109,3112],{},[560,3105,3106],{},[563,3107,3108],{},"background_jobs_abandoned",[560,3110,3111],{},"A session left background jobs behind.",[560,3113,3114],{},[563,3115,1044],{},[545,3117,3118,3123,3130],{},[560,3119,3120],{},[563,3121,3122],{},"permission_decision",[560,3124,608,3125,3129],{},[530,3126,3128],{"href":3127},"\u002Freference\u002Fpermissions#reading-decisions","permission gate"," answered a tool call.",[560,3131,3132,767,3134,767,3136,767,3139,767,3142,767,3144],{},[563,3133,1460],{},[563,3135,605],{},[563,3137,3138],{},"tool",[563,3140,3141],{},"decision",[563,3143,1044],{},[563,3145,3146],{},"grant",[731,3148,3150],{"id":3149},"caps-budgets-and-limits","Caps, budgets and limits",[539,3152,3153,3163],{},[542,3154,3155],{},[545,3156,3157,3159,3161],{},[548,3158,743],{},[548,3160,746],{},[548,3162,749],{},[555,3164,3165,3189,3204,3219,3245,3275,3292,3312,3334],{},[545,3166,3167,3172,3175],{},[560,3168,3169],{},[563,3170,3171],{},"time_cap_reached",[560,3173,3174],{},"A time cap ran out.",[560,3176,3177,767,3179,767,3182,767,3185,767,3187],{},[563,3178,1820],{},[563,3180,3181],{},"field",[563,3183,3184],{},"minutes",[563,3186,1044],{},[563,3188,605],{},[545,3190,3191,3196,3199],{},[560,3192,3193],{},[563,3194,3195],{},"scope_budget_reached",[560,3197,3198],{},"A scope's token or dollar cap refused a launch.",[560,3200,3201,3202],{},"the breach fields, ",[563,3203,1276],{},[545,3205,3206,3211,3214],{},[560,3207,3208],{},[563,3209,3210],{},"budget_changed",[560,3212,3213],{},"The item's spend cap was set.",[560,3215,3216],{},[563,3217,3218],{},"budget_usd",[545,3220,3221,3226,3229],{},[560,3222,3223],{},[563,3224,3225],{},"budget_raised",[560,3227,3228],{},"The cap was raised to continue a stopped item.",[560,3230,3231,783,3233,3236,3237,3239,3240,3244],{},[563,3232,3218],{},[563,3234,3235],{},"key: \"policy.budget_usd\""," when it was the item-wide ",[563,3238,3218],{}," of the item's ",[530,3241,3243],{"href":3242},"\u002Fconcepts\u002Fvocabulary#policy","policy",", not its own cap",[545,3246,3247,3252,3264],{},[560,3248,3249],{},[563,3250,3251],{},"spend_unpriced",[560,3253,3254,3255,3259,3260,3263],{},"The first session on the item whose ",[530,3256,3258],{"href":3257},"\u002Fconcepts\u002Fvocabulary#harness","harness"," reported no cost and whose model ",[563,3261,3262],{},"prices.json"," cannot price: the item and daily dollar caps count it as $0.",[560,3265,3266,767,3268,767,3270,767,3272],{},[563,3267,1460],{},[563,3269,3258],{},[563,3271,3035],{},[563,3273,3274],{},"message",[545,3276,3277,3282,3285],{},[560,3278,3279],{},[563,3280,3281],{},"cap_counters_reset",[560,3283,3284],{},"Loop counters were reset: by a retry a person asked for, or by a gate rejection for the fix loops it re-runs.",[560,3286,3287,767,3289],{},[563,3288,1192],{},[563,3290,3291],{},"counters",[545,3293,3294,3299,3302],{},[560,3295,3296],{},[563,3297,3298],{},"rate_limit_hit",[560,3300,3301],{},"An agent CLI refused a launch for a rate limit.",[560,3303,3304,767,3306,767,3309],{},[563,3305,605],{},[563,3307,3308],{},"rate_limit_type",[563,3310,3311],{},"resets_at_iso",[545,3313,3314,3319,3322],{},[560,3315,3316],{},[563,3317,3318],{},"launch_fallback",[560,3320,3321],{},"A launch moved to the next harness or model.",[560,3323,3324,767,3326,767,3328,767,3330,767,3332],{},[563,3325,605],{},[563,3327,1276],{},[563,3329,868],{},[563,3331,903],{},[563,3333,1044],{},[545,3335,3336,3341,3344],{},[560,3337,3338],{},[563,3339,3340],{},"launch_fallback_exhausted",[560,3342,3343],{},"Every fallback was limited.",[560,3345,3346,767,3348,767,3350],{},[563,3347,605],{},[563,3349,1276],{},[563,3351,3311],{},[731,3353,3355],{"id":3354},"escalation","Escalation",[539,3357,3358,3368],{},[542,3359,3360],{},[545,3361,3362,3364,3366],{},[548,3363,743],{},[548,3365,746],{},[548,3367,749],{},[555,3369,3370,3394,3414,3432,3446,3463,3484],{},[545,3371,3372,3377,3380],{},[560,3373,3374],{},[563,3375,3376],{},"escalation_message",[560,3378,3379],{},"A message went into the escalation thread.",[560,3381,3382,767,3384,767,3386,767,3388,767,3391],{},[563,3383,1460],{},[563,3385,3274],{},[563,3387,1343],{},[563,3389,3390],{},"thread",[563,3392,3393],{},"turn",[545,3395,3396,3401,3404],{},[560,3397,3398],{},[563,3399,3400],{},"stuck_escalation_started",[560,3402,3403],{},"Kraft started an escalation turn on a stuck item.",[560,3405,3406,767,3408,767,3410,767,3412],{},[563,3407,605],{},[563,3409,1276],{},[563,3411,1044],{},[563,3413,2991],{},[545,3415,3416,3421,3424],{},[560,3417,3418],{},[563,3419,3420],{},"stuck_escalation_finished",[560,3422,3423],{},"That turn ended.",[560,3425,3426,767,3428,767,3430],{},[563,3427,605],{},[563,3429,1276],{},[563,3431,3029],{},[545,3433,3434,3439,3442],{},[560,3435,3436],{},[563,3437,3438],{},"work_item_auto_escalate_skipped",[560,3440,3441],{},"Kraft did not escalate a stop.",[560,3443,3444],{},[563,3445,1044],{},[545,3447,3448,3453,3456],{},[560,3449,3450],{},[563,3451,3452],{},"work_item_auto_escalate_capped",[560,3454,3455],{},"Automatic escalations hit their limit.",[560,3457,3458,767,3460],{},[563,3459,1502],{},[563,3461,3462],{},"count",[545,3464,3465,3470,3473],{},[560,3466,3467],{},[563,3468,3469],{},"work_item_self_retry_requested",[560,3471,3472],{},"An escalation turn asked to retry the item.",[560,3474,3475,767,3477,767,3479,767,3482],{},[563,3476,605],{},[563,3478,2029],{},[563,3480,3481],{},"restart",[563,3483,835],{},[545,3485,3486,3491,3494],{},[560,3487,3488],{},[563,3489,3490],{},"work_item_self_retry_dropped",[560,3492,3493],{},"That retry did not happen.",[560,3495,3496,767,3498],{},[563,3497,605],{},[563,3499,3029],{},[731,3501,3503],{"id":3502},"forge-ci-and-waits","Forge, CI and waits",[539,3505,3506,3516],{},[542,3507,3508],{},[545,3509,3510,3512,3514],{},[548,3511,743],{},[548,3513,746],{},[548,3515,749],{},[555,3517,3518,3536,3572,3591,3606,3630,3655,3673,3694,3710,3726,3748,3766],{},[545,3519,3520,3525,3528],{},[560,3521,3522],{},[563,3523,3524],{},"mr_opened",[560,3526,3527],{},"The merge request was opened.",[560,3529,3530,767,3533],{},[563,3531,3532],{},"number",[563,3534,3535],{},"url",[545,3537,3538,3542,3558],{},[560,3539,3540],{},[563,3541,1648],{},[560,3543,3544,3545,3548,3549,3552,3553,3555,3556,631],{},"Kraft closed the item's merge request because ",[563,3546,3547],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fcancel"," set ",[563,3550,3551],{},"close_mr: true",". One someone else closed is a ",[563,3554,1030],{}," event of kind ",[563,3557,1648],{},[560,3559,3560,767,3563,767,3565,3567,3568,3571],{},[563,3561,3562],{},"ref",[563,3564,3535],{},[563,3566,1192],{}," (always ",[563,3569,3570],{},"\"cancel\"",")",[545,3573,3574,3579,3585],{},[560,3575,3576],{},[563,3577,3578],{},"mr_reopened",[560,3580,3581,3584],{},[563,3582,3583],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Freopen-mr"," reopened a closed merge request.",[560,3586,3587,767,3589],{},[563,3588,3562],{},[563,3590,3535],{},[545,3592,3593,3598,3601],{},[560,3594,3595],{},[563,3596,3597],{},"mr_labels_set",[560,3599,3600],{},"A worker labeled the merge request.",[560,3602,3603],{},[563,3604,3605],{},"labels",[545,3607,3608,3613,3616],{},[560,3609,3610],{},[563,3611,3612],{},"external_wait_started",[560,3614,3615],{},"A wait on CI or a review began.",[560,3617,3618,767,3620,767,3622,767,3624,767,3627],{},[563,3619,1276],{},[563,3621,605],{},[563,3623,1047],{},[563,3625,3626],{},"timeout_s",[563,3628,3629],{},"deadline",[545,3631,3632,3637,3640],{},[560,3633,3634],{},[563,3635,3636],{},"external_wait_observed",[560,3638,3639],{},"Kraft checked the wait.",[560,3641,3642,767,3644,767,3647,767,3649,767,3652],{},[563,3643,1276],{},[563,3645,3646],{},"observation",[563,3648,2848],{},[563,3650,3651],{},"result",[563,3653,3654],{},"next_observation_at",[545,3656,3657,3662,3665],{},[560,3658,3659],{},[563,3660,3661],{},"external_wait_rebounded",[560,3663,3664],{},"A policy change moved the wait's limits.",[560,3666,3667,767,3669,767,3671],{},[563,3668,1276],{},[563,3670,3626],{},[563,3672,3629],{},[545,3674,3675,3680,3683],{},[560,3676,3677],{},[563,3678,3679],{},"external_wait_ended",[560,3681,3682],{},"The wait settled, timed out or errored.",[560,3684,3685,767,3687,767,3689,767,3691],{},[563,3686,1276],{},[563,3688,2196],{},[563,3690,3651],{},[563,3692,3693],{},"observations",[545,3695,3696,3701,3704],{},[560,3697,3698],{},[563,3699,3700],{},"ci_infra_exhausted",[560,3702,3703],{},"CI failed for its own reasons, and retries did not help.",[560,3705,3706,767,3708],{},[563,3707,605],{},[563,3709,1044],{},[545,3711,3712,3717,3720],{},[560,3713,3714],{},[563,3715,3716],{},"ci_run_abandoned",[560,3718,3719],{},"A cancelled CI run has no successor.",[560,3721,3722,767,3724],{},[563,3723,605],{},[563,3725,1044],{},[545,3727,3728,3733,3740],{},[560,3729,3730],{},[563,3731,3732],{},"ci_not_configured",[560,3734,3735,3736,3739],{},"The repo sets ",[563,3737,3738],{},"ci_checks: false",", so a CI wait, before or after the merge, passed without checking.",[560,3741,3742,767,3744,767,3746],{},[563,3743,605],{},[563,3745,1276],{},[563,3747,770],{},[545,3749,3750,3755,3758],{},[560,3751,3752],{},[563,3753,3754],{},"automated_review_not_configured",[560,3756,3757],{},"The repo names no automated reviewer, so the wait settles without one.",[560,3759,3760,767,3762,767,3764],{},[563,3761,605],{},[563,3763,1276],{},[563,3765,770],{},[545,3767,3768,3773,3776],{},[560,3769,3770],{},[563,3771,3772],{},"automated_review_errored",[560,3774,3775],{},"The automated reviewer failed.",[560,3777,3778,767,3780],{},[563,3779,605],{},[563,3781,1044],{},[731,3783,3785],{"id":3784},"sandbox","Sandbox",[539,3787,3788,3798],{},[542,3789,3790],{},[545,3791,3792,3794,3796],{},[548,3793,743],{},[548,3795,746],{},[548,3797,749],{},[555,3799,3800,3828,3851,3870],{},[545,3801,3802,3807,3813],{},[560,3803,3804],{},[563,3805,3806],{},"sandbox_egress_refused",[560,3808,608,3809,3812],{},[530,3810,3784],{"href":3811},"\u002Fconcepts\u002Fvocabulary#sandbox"," proxy refused a host.",[560,3814,3815,767,3817,767,3820,767,3823,767,3826],{},[563,3816,1460],{},[563,3818,3819],{},"host",[563,3821,3822],{},"port",[563,3824,3825],{},"phase",[563,3827,1044],{},[545,3829,3830,3835,3842],{},[560,3831,3832],{},[563,3833,3834],{},"sandbox_oom_killed",[560,3836,3837,3838,3841],{},"The container was killed under its memory limit. ",[563,3839,3840],{},"confirmed"," is false when the runtime never flagged the kill and Kraft counted exit 137 under the limit instead.",[560,3843,3844,767,3846,767,3849],{},[563,3845,1460],{},[563,3847,3848],{},"memory",[563,3850,3840],{},[545,3852,3853,3858,3861],{},[560,3854,3855],{},[563,3856,3857],{},"sandbox_branch_not_synced",[560,3859,3860],{},"The sandbox's branch did not reach the worktree.",[560,3862,3863,767,3865,767,3868],{},[563,3864,1460],{},[563,3866,3867],{},"branch",[563,3869,1044],{},[545,3871,3872,3877,3899],{},[560,3873,3874],{},[563,3875,3876],{},"sandbox_kit_resolved",[560,3878,3879,3880,3883,3884,3887,3888,3891,3892,3895,3896,1604],{},"A task was dispatched under a ",[530,3881,3882],{"href":369},"Kit",", once per item and Kit. ",[563,3885,3886],{},"skipped"," lists the optional capabilities Kraft does not enforce, and ",[563,3889,3890],{},"ignored"," those it accepts without applying (",[563,3893,3894],{},"agent-sessions@1",", a credential's ",[563,3897,3898],{},"oauth",[560,3900,3901,767,3904,767,3907,767,3909],{},[563,3902,3903],{},"kit",[563,3905,3906],{},"manifest",[563,3908,3886],{},[563,3910,3890],{},[526,3912,1264,3913,3917,3918,3920,3921,3923],{},[530,3914,3916],{"href":3915},"\u002Fconcepts\u002Fvocabulary#workspace","workspace"," item records one ",[563,3919,3857],{}," for each repository whose branch did not move, and its ",[563,3922,1044],{}," names that repository.",[731,3925,3927],{"id":3926},"settings-changed","Settings changed",[539,3929,3930,3940],{},[542,3931,3932],{},[545,3933,3934,3936,3938],{},[548,3935,743],{},[548,3937,746],{},[548,3939,749],{},[555,3941,3942,3958,3974,3989,4003,4017],{},[545,3943,3944,3949,3952],{},[560,3945,3946],{},[563,3947,3948],{},"chain_template_changed",[560,3950,3951],{},"The item moved to another chain before it started.",[560,3953,3954,767,3956],{},[563,3955,868],{},[563,3957,903],{},[545,3959,3960,3965,3968],{},[560,3961,3962],{},[563,3963,3964],{},"attachments_changed",[560,3966,3967],{},"Its spec or plan changed before it started.",[560,3969,3970,767,3972],{},[563,3971,868],{},[563,3973,903],{},[545,3975,3976,3981,3984],{},[560,3977,3978],{},[563,3979,3980],{},"agent_overrides_changed",[560,3982,3983],{},"Its model or effort override changed.",[560,3985,3986],{},[563,3987,3988],{},"overrides",[545,3990,3991,3996,3999],{},[560,3992,3993],{},[563,3994,3995],{},"node_overrides_changed",[560,3997,3998],{},"A node's override changed.",[560,4000,4001],{},[563,4002,3988],{},[545,4004,4005,4010,4013],{},[560,4006,4007],{},[563,4008,4009],{},"policy_override_changed",[560,4011,4012],{},"Its policy override changed.",[560,4014,4015],{},[563,4016,3243],{},[545,4018,4019,4024,4027],{},[560,4020,4021],{},[563,4022,4023],{},"notification_failed",[560,4025,4026],{},"The notification webhook failed twice.",[560,4028,4029,767,4032,767,4034,767,4036],{},[563,4030,4031],{},"event_type",[563,4033,3029],{},[563,4035,3819],{},[563,4037,2308],{},[526,4039,4040,4041,4043,4044,4046,4047,4049],{},"Before 2.0, a chain was a chain template. ",[563,4042,3948],{},", and the ",[563,4045,773],{}," key of ",[563,4048,758],{},", keep that name, and both hold chain ids.",[731,4051,4053],{"id":4052},"reading-events-as-they-happen","Reading events as they happen",[1314,4055,4057],{"id":4056},"ws-apiwsevents",[563,4058,4059],{},"WS \u002Fapi\u002Fws\u002Fevents",[526,4061,4062,4063,4066,4067,4073,4074,4077],{},"Streams every work item's events as they are stored. The board and ",[563,4064,4065],{},"kraft view watch"," read it. Unlike ",[530,4068,4070],{"href":4069},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsidevents",[563,4071,4072],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fevents",", it is not limited to one item. It first replays the stored events after ",[563,4075,4076],{},"after_seq",", then sends each new event once, with none lost or repeated between the two.",[539,4079,4080,4094],{},[542,4081,4082],{},[545,4083,4084,4087,4089,4092],{},[548,4085,4086],{},"Query",[548,4088,743],{},[548,4090,4091],{},"Default",[548,4093,553],{},[555,4095,4096,4122],{},[545,4097,4098,4102,4105,4110],{},[560,4099,4100],{},[563,4101,4076],{},[560,4103,4104],{},"integer",[560,4106,4107],{},[563,4108,4109],{},"0",[560,4111,4112,4113,4115,4116,4118,4119,4121],{},"Replay every stored event with a greater ",[563,4114,565],{}," first. ",[563,4117,4109],{}," replays the whole timeline of every item, so reconnect with the last ",[563,4120,565],{}," you saw.",[545,4123,4124,4129,4132,4137],{},[560,4125,4126],{},[563,4127,4128],{},"live",[560,4130,4131],{},"boolean",[560,4133,4134],{},[563,4135,4136],{},"false",[560,4138,4139,620,4142,4144,4145,631],{},[563,4140,4141],{},"1",[563,4143,1515],{}," also sends ",[530,4146,4148],{"href":4147},"#live-messages","live messages",[526,4150,4151,4152,4155,4156,4159,4160,631],{},"Each frame is one JSON text message. An event frame has the fields in the table above, ",[563,4153,4154],{},"{seq, work_item_id, type, payload, node_id, created_at}",". A live message has ",[563,4157,4158],{},"{\"frame\": \"live\", \"type\", \"payload\", \"created_at\"}"," and no ",[563,4161,565],{},[526,4163,4164,4165,4169,4170,4173,4174,1788,4177,4180],{},"A client authenticates as for the HTTP routes: ",[530,4166,4168],{"href":4167},"\u002Freference\u002Fhttp-api#who-may-call","who may call",". A peer on this machine needs nothing while Kraft is bound to loopback. Otherwise send the MCP bearer token as ",[563,4171,4172],{},"Authorization: Bearer \u003Ctoken>",", or the session cookie from the login page. The trigger token is not accepted. The ",[563,4175,4176],{},"Host",[563,4178,4179],{},"Origin"," rules of the HTTP routes apply too.",[539,4182,4183,4192],{},[542,4184,4185],{},[545,4186,4187,4190],{},[548,4188,4189],{},"Refusal or close",[548,4191,746],{},[555,4193,4194,4205],{},[545,4195,4196,4202],{},[560,4197,4198,4201],{},[563,4199,4200],{},"403"," on the handshake",[560,4203,4204],{},"Kraft refused the connection before accepting it. See below.",[545,4206,4207,4213],{},[560,4208,4209,4210],{},"Close code ",[563,4211,4212],{},"1011",[560,4214,4215,4216,4218,4219,4221],{},"The client fell behind: more than 1000 messages were waiting for it. Reconnect with ",[563,4217,4076],{}," set to the last ",[563,4220,565],{}," you read.",[526,4223,4224,4225,4227,4228,4231,4232,4234,4235,4237],{},"A refused connection closes before it is accepted, so a real client sees the handshake fail with HTTP ",[563,4226,4200],{},", not a close frame. A test client reports it as close code ",[563,4229,4230],{},"1008",". The causes are no valid credential, a remote caller while no password is set, a ",[563,4233,4176],{}," that is not allowed, and an ",[563,4236,4179],{}," from another site.",[731,4239,4241],{"id":4240},"live-messages","Live messages",[526,4243,4244,4245,4250,4251,4254,4255,4257,4258,4260],{},"A client of ",[530,4246,4248],{"href":4247},"#ws-apiwsevents",[563,4249,4059],{}," that connects with ",[563,4252,4253],{},"live=1"," also receives messages\nthat are not events. They are ",[563,4256,4158],{},",\nhave no ",[563,4259,565],{},", are sent once to whoever is connected and are neither stored nor\nreplayed after a reconnect. A client that does not ask for them never sees one.",[539,4262,4263,4273],{},[542,4264,4265],{},[545,4266,4267,4269,4271],{},[548,4268,743],{},[548,4270,746],{},[548,4272,749],{},[555,4274,4275,4306],{},[545,4276,4277,4282,4290],{},[560,4278,4279],{},[563,4280,4281],{},"intake_checked",[560,4283,4284,4285,4289],{},"An ",[530,4286,4288],{"href":4287},"\u002Fconcepts\u002Fvocabulary#intake","intake"," poll found a bead ready, started an item or left one alone. A poll that found nothing sends none.",[560,4291,4292,767,4295,767,4298,767,4301,767,4304],{},[563,4293,4294],{},"id",[563,4296,4297],{},"at",[563,4299,4300],{},"ready",[563,4302,4303],{},"started",[563,4305,3886],{},[545,4307,4308,4313,4316],{},[560,4309,4310],{},[563,4311,4312],{},"apply_changed",[560,4314,4315],{},"What is saved but not applied changed: a draft was published, a reload or an access save ran, or a file was edited on disk (checked every 5 seconds). Not sent when the pending items are the same.",[560,4317,4318,767,4320,4323,4324,3571],{},[563,4319,3481],{},[563,4321,4322],{},"reload"," (how many of each; see ",[563,4325,4326],{},"GET \u002Fapi\u002Fapply",[731,4328,4330],{"id":4329},"notifications","Notifications",[526,4332,4333,4335,4336,4339],{},[563,4334,338],{}," sends an HTTP ",[563,4337,4338],{},"POST"," to a webhook when an event you name\nhappens. Set it on the Settings screen, or edit the file:",[2393,4341,4346],{"className":4342,"code":4343,"filename":4344,"language":4345,"meta":2398,"style":2398},"language-yaml shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","enabled: true\nurl: https:\u002F\u002Fhooks.example.com\u002Fabc123   # a secret; Kraft never shows it back\nbase_url: https:\u002F\u002Fkraft.example.com     # where links in the message point\nevents: [gate_requested, work_item_needs_human]\n","config\u002Fnotify.yaml","yaml",[563,4347,4348,4359,4372,4385],{"__ignoreMap":2398},[2402,4349,4350,4353,4355],{"class":2404,"line":2405},[2402,4351,4352],{"class":2412},"enabled",[2402,4354,2427],{"class":2408},[2402,4356,4358],{"class":4357},"ssYy9","true\n",[2402,4360,4361,4363,4365,4368],{"class":2404,"line":2447},[2402,4362,3535],{"class":2412},[2402,4364,2427],{"class":2408},[2402,4366,4367],{"class":2430},"https:\u002F\u002Fhooks.example.com\u002Fabc123",[2402,4369,4371],{"class":4370},"sq92B","   # a secret; Kraft never shows it back\n",[2402,4373,4374,4377,4379,4382],{"class":2404,"line":2470},[2402,4375,4376],{"class":2412},"base_url",[2402,4378,2427],{"class":2408},[2402,4380,4381],{"class":2430},"https:\u002F\u002Fkraft.example.com",[2402,4383,4384],{"class":4370},"     # where links in the message point\n",[2402,4386,4388,4391,4394,4396,4398,4400],{"class":2404,"line":4387},4,[2402,4389,4390],{"class":2412},"events",[2402,4392,4393],{"class":2408},": [",[2402,4395,1727],{"class":2430},[2402,4397,767],{"class":2408},[2402,4399,1030],{"class":2430},[2402,4401,4402],{"class":2408},"]\n",[526,4404,4405,4407,4408,4410,4411,4413],{},[530,4406,338],{"href":339}," lists the fields, and what ",[563,4409,4390],{}," accepts. ",[530,4412,92],{"href":93}," sets it up.",[526,4415,4416],{},"The body is JSON:",[2393,4418,4420],{"className":2395,"code":4419,"language":2397,"meta":2398,"style":2398},"{\n  \"work_item_id\": \"\u003Cwork-item-id>\",\n  \"title\": \"Fix the flaky login test\",\n  \"type\": \"gate_requested\",\n  \"gate\": \"spec_approval\",\n  \"url\": \"https:\u002F\u002Fkraft.example.com\u002Fwork-items\u002F\u003Cwork-item-id>\"\n}\n",[563,4421,4422,4427,4439,4451,4463,4476,4487],{"__ignoreMap":2398},[2402,4423,4424],{"class":2404,"line":2405},[2402,4425,4426],{"class":2408},"{\n",[2402,4428,4429,4432,4434,4437],{"class":2404,"line":2447},[2402,4430,4431],{"class":2412},"  \"work_item_id\"",[2402,4433,2427],{"class":2408},[2402,4435,4436],{"class":2430},"\"\u003Cwork-item-id>\"",[2402,4438,2444],{"class":2408},[2402,4440,4441,4444,4446,4449],{"class":2404,"line":2470},[2402,4442,4443],{"class":2412},"  \"title\"",[2402,4445,2427],{"class":2408},[2402,4447,4448],{"class":2430},"\"Fix the flaky login test\"",[2402,4450,2444],{"class":2408},[2402,4452,4453,4456,4458,4461],{"class":2404,"line":4387},[2402,4454,4455],{"class":2412},"  \"type\"",[2402,4457,2427],{"class":2408},[2402,4459,4460],{"class":2430},"\"gate_requested\"",[2402,4462,2444],{"class":2408},[2402,4464,4466,4469,4471,4474],{"class":2404,"line":4465},5,[2402,4467,4468],{"class":2412},"  \"gate\"",[2402,4470,2427],{"class":2408},[2402,4472,4473],{"class":2430},"\"spec_approval\"",[2402,4475,2444],{"class":2408},[2402,4477,4479,4482,4484],{"class":2404,"line":4478},6,[2402,4480,4481],{"class":2412},"  \"url\"",[2402,4483,2427],{"class":2408},[2402,4485,4486],{"class":2430},"\"https:\u002F\u002Fkraft.example.com\u002Fwork-items\u002F\u003Cwork-item-id>\"\n",[2402,4488,4490],{"class":2404,"line":4489},7,[2402,4491,4492],{"class":2408},"}\n",[526,4494,4495,882,4497,4499],{},[563,4496,627],{},[563,4498,616],{}," for an event that is not about a gate.",[1859,4501,4502,4505,4511,4514],{},[1862,4503,4504],{},"Kraft sends at most one message per work item every 10 seconds. A second\nmatching event in that window sends nothing.",[1862,4506,4507,4508,4510],{},"A send that times out after 5 seconds, errors, or gets a status of 400 or\nmore is tried once more after 2 seconds. If that fails too, Kraft records a\n",[563,4509,4023],{}," event on the item.",[1862,4512,4513],{},"Events that happen while the server is down send nothing when it comes back.",[1862,4515,4516,4517,4521,4522,4525,4526,4528,1788,4530,631],{},"The Settings screen's ",[4518,4519,4520],"strong",{},"Send a test"," posts ",[563,4523,4524],{},"\"type\": \"test\""," with a ",[563,4527,616],{},[563,4529,575],{},[563,4531,627],{},[731,4533,4535],{"id":4534},"related","Related",[1859,4537,4538,4543,4548,4558],{},[1862,4539,4540,4542],{},[530,4541,199],{"href":200},": each stop's reason and its fix.",[1862,4544,4545,4547],{},[530,4546,290],{"href":291},": the statuses the events move an item between.",[1862,4549,4550,4552,4553,4557],{},[530,4551,462],{"href":463},": reading a work item's events over HTTP, paged forward or backward. The WebSocket is ",[530,4554,4555],{"href":4247},[563,4556,4059],{}," above.",[1862,4559,4560,4562],{},[530,4561,440],{"href":441},": the other direction, starting a chain from outside.",[4564,4565,4566],"style",{},"html pre.shiki code .s7iLA, html code.shiki .s7iLA{--shiki-light:#0E1116;--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html pre.shiki code .sb7M8, html code.shiki .sb7M8{--shiki-light:#024C1A;--shiki-default:#024C1A;--shiki-dark:#72F088}html pre.shiki code .semJd, html code.shiki .semJd{--shiki-light:#032563;--shiki-default:#032563;--shiki-dark:#ADDCFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .ssYy9, html code.shiki .ssYy9{--shiki-light:#023B95;--shiki-default:#023B95;--shiki-dark:#91CBFF}html pre.shiki code .sq92B, html code.shiki .sq92B{--shiki-light:#66707B;--shiki-default:#66707B;--shiki-dark:#BDC4CC}",{"title":2398,"searchDepth":2447,"depth":2447,"links":4568},[4569,4578,4586,4587,4588,4589,4590,4591,4592,4593,4597,4598,4599],{"id":733,"depth":2447,"text":734,"children":4570},[4571,4573,4575,4576],{"id":1184,"depth":2470,"text":4572},"work_​item_​archived",{"id":1030,"depth":2470,"text":4574},"work_​item_​needs_​human",{"id":1562,"depth":2470,"text":1453},{"id":1751,"depth":2470,"text":4577},"The facts field",{"id":1917,"depth":2447,"text":1918,"children":4579},[4580,4582,4584],{"id":1939,"depth":2470,"text":4581},"chain_​loaded",{"id":2293,"depth":2470,"text":4583},"sweep_​failed",{"id":2315,"depth":2470,"text":4585},"sweep_​left_​out",{"id":2595,"depth":2447,"text":2596},{"id":2955,"depth":2447,"text":2956},{"id":3149,"depth":2447,"text":3150},{"id":3354,"depth":2447,"text":3355},{"id":3502,"depth":2447,"text":3503},{"id":3784,"depth":2447,"text":3785},{"id":3926,"depth":2447,"text":3927},{"id":4052,"depth":2447,"text":4053,"children":4594},[4595],{"id":4056,"depth":2470,"text":4596},"WS \u002Fapi\u002F​ws\u002F​events",{"id":4240,"depth":2447,"text":4241},{"id":4329,"depth":2447,"text":4330},{"id":4534,"depth":2447,"text":4535},"Every event type on a work item's timeline, its key payload fields, and the notification webhook that sends them.","md",null,{},true,{"title":482,"description":4600},"o1THoODI2kHCnnSo5TW1r_kncYpYWPVtqpGaaoOgo-4",[4608,4610],{"title":478,"path":479,"stem":480,"description":4609,"children":-1},"Every tool the kraft MCP server serves, with its parameters and the kraft command that does the same.",{"title":10,"path":487,"stem":491,"description":4611,"children":-1},"Security, data and privacy, release news, status and support, architecture, and how to contribute.",1791801168926]