[{"data":1,"prerenderedAt":3102},["ShallowReactive",2],{"navigation_docs":3,"-reference-events":270,"-reference-events-surround":3097},[4,28,51,110,243],{"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},"Troubleshooting and FAQ","\u002Fget-started\u002Ftroubleshooting","1.get-started\u002F3.troubleshooting",{"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},"Vocabulary","\u002Fconcepts\u002Fvocabulary","2.concepts\u002F1.vocabulary",{"title":40,"path":41,"stem":42},"How a work item runs","\u002Fconcepts\u002Fhow-a-work-item-runs","2.concepts\u002F2.how-a-work-item-runs",{"title":44,"path":45,"stem":46},"Caps and budgets","\u002Fconcepts\u002Fcaps-and-budgets","2.concepts\u002F3.caps-and-budgets",{"title":48,"path":49,"stem":50},"Why a permission gate","\u002Fconcepts\u002Fpermission-gate","2.concepts\u002F4.permission-gate",{"title":52,"path":53,"stem":54,"children":55},"Guides","\u002Fguides","3.guides",[56,58,62,66,70,74,78,82,86,90,94,98,102,106],{"title":10,"path":53,"stem":57},"3.guides\u002Findex",{"title":59,"path":60,"stem":61},"Use Kraft from your agent","\u002Fguides\u002Fagent-integration","3.guides\u002F01.agent-integration",{"title":63,"path":64,"stem":65},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F02.kraft-lite",{"title":67,"path":68,"stem":69},"Remote access","\u002Fguides\u002Fremote-access","3.guides\u002F03.remote-access",{"title":71,"path":72,"stem":73},"Add or override a harness","\u002Fguides\u002Fadding-a-harness","3.guides\u002F04.adding-a-harness",{"title":75,"path":76,"stem":77},"Schedule or webhook work","\u002Fguides\u002Fschedule-and-webhook-work","3.guides\u002F05.schedule-and-webhook-work",{"title":79,"path":80,"stem":81},"Add a security review or a gate reviewer","\u002Fguides\u002Fadd-review-agents","3.guides\u002F06.add-review-agents",{"title":83,"path":84,"stem":85},"Kraft for VS Code","\u002Fguides\u002Fvscode","3.guides\u002F07.vscode",{"title":87,"path":88,"stem":89},"Reviewing a change","\u002Fguides\u002Freview-a-change","3.guides\u002F08.review-a-change",{"title":91,"path":92,"stem":93},"Write your own chain","\u002Fguides\u002Fwrite-your-own-chain","3.guides\u002F09.write-your-own-chain",{"title":95,"path":96,"stem":97},"Switch a harness","\u002Fguides\u002Fswitch-harness","3.guides\u002F10.switch-harness",{"title":99,"path":100,"stem":101},"Upgrade your templates","\u002Fguides\u002Fupgrading-templates","3.guides\u002F11.upgrading-templates",{"title":103,"path":104,"stem":105},"Operations","\u002Fguides\u002Foperations","3.guides\u002F12.operations",{"title":107,"path":108,"stem":109},"Worker Kit","\u002Fguides\u002Fworker-kit","3.guides\u002F13.worker-kit",{"title":111,"path":112,"stem":113,"children":114},"Reference","\u002Freference","4.reference",[115,117,139,183,201,205,227,231,235,239],{"title":10,"path":112,"stem":116},"4.reference\u002Findex",{"title":118,"path":119,"stem":120,"children":121},"CLI","\u002Freference\u002Fcli","4.reference\u002F1.cli\u002Findex",[122,123,127,131,135],{"title":10,"path":119,"stem":120},{"title":124,"path":125,"stem":126},"Item verbs","\u002Freference\u002Fcli\u002Fitem","4.reference\u002F1.cli\u002F2.item",{"title":128,"path":129,"stem":130},"View verbs","\u002Freference\u002Fcli\u002Fview","4.reference\u002F1.cli\u002F3.view",{"title":132,"path":133,"stem":134},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","4.reference\u002F1.cli\u002F4.repo",{"title":136,"path":137,"stem":138},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","4.reference\u002F1.cli\u002F5.admin",{"title":140,"path":141,"stem":142,"children":143},"Configuration","\u002Freference\u002Fconfiguration","4.reference\u002F2.configuration\u002Findex",[144,145,155,159,163,167,171,175,179],{"title":10,"path":141,"stem":142},{"title":146,"path":147,"stem":148,"children":149},"Repos","\u002Freference\u002Fconfiguration\u002Frepos","4.reference\u002F2.configuration\u002F2.repos\u002Findex",[150,151],{"title":10,"path":147,"stem":148},{"title":152,"path":153,"stem":154},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","4.reference\u002F2.configuration\u002F2.repos\u002F3.workspaces",{"title":156,"path":157,"stem":158},"Policy","\u002Freference\u002Fconfiguration\u002Fpolicy","4.reference\u002F2.configuration\u002F3.policy",{"title":160,"path":161,"stem":162},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","4.reference\u002F2.configuration\u002F4.library-and-chains",{"title":164,"path":165,"stem":166},"Harnesses file","\u002Freference\u002Fconfiguration\u002Fharnesses-file","4.reference\u002F2.configuration\u002F5.harnesses-file",{"title":168,"path":169,"stem":170},"Access","\u002Freference\u002Fconfiguration\u002Faccess","4.reference\u002F2.configuration\u002F6.access",{"title":172,"path":173,"stem":174},"Intake","\u002Freference\u002Fconfiguration\u002Fintake","4.reference\u002F2.configuration\u002F7.intake",{"title":176,"path":177,"stem":178},"Sandbox host","\u002Freference\u002Fconfiguration\u002Fsandbox","4.reference\u002F2.configuration\u002F8.sandbox",{"title":180,"path":181,"stem":182},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","4.reference\u002F2.configuration\u002F9.environment-variables",{"title":184,"path":185,"stem":186,"children":187},"Chain nodes","\u002Freference\u002Fchain-nodes","4.reference\u002F3.chain-nodes\u002Findex",[188,189,193,197],{"title":10,"path":185,"stem":186},{"title":190,"path":191,"stem":192},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","4.reference\u002F3.chain-nodes\u002F2.subprocess-tasks",{"title":194,"path":195,"stem":196},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","4.reference\u002F3.chain-nodes\u002F3.fix-loop",{"title":198,"path":199,"stem":200},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","4.reference\u002F3.chain-nodes\u002F4.result-file",{"title":202,"path":203,"stem":204},"Permission gate","\u002Freference\u002Fpermissions","4.reference\u002F4.permissions",{"title":206,"path":207,"stem":208,"children":209},"Agent harnesses","\u002Freference\u002Fharnesses","4.reference\u002F5.harnesses\u002Findex",[210,211,215,219,223],{"title":10,"path":207,"stem":208},{"title":212,"path":213,"stem":214},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","4.reference\u002F5.harnesses\u002F2.unattended-runs",{"title":216,"path":217,"stem":218},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","4.reference\u002F5.harnesses\u002F3.agent-profiles",{"title":220,"path":221,"stem":222},"Harness files","\u002Freference\u002Fharnesses\u002Fharness-files","4.reference\u002F5.harnesses\u002F4.harness-files",{"title":224,"path":225,"stem":226},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","4.reference\u002F5.harnesses\u002F5.fallback-and-escalation",{"title":228,"path":229,"stem":230},"Inbound triggers","\u002Freference\u002Ftriggers","4.reference\u002F6.triggers",{"title":232,"path":233,"stem":234},"HTTP API","\u002Freference\u002Fhttp-api","4.reference\u002F7.http-api",{"title":236,"path":237,"stem":238},"MCP tools","\u002Freference\u002Fmcp-tools","4.reference\u002F8.mcp-tools",{"title":240,"path":241,"stem":242},"Events","\u002Freference\u002Fevents","4.reference\u002F9.events",{"title":244,"path":245,"stem":246,"children":247},"Project","\u002Fproject","5.project",[248,250,254,258,262,266],{"title":10,"path":245,"stem":249},"5.project\u002Findex",{"title":251,"path":252,"stem":253},"Architecture","\u002Fproject\u002Farchitecture","5.project\u002F1.architecture",{"title":255,"path":256,"stem":257},"Contributing","\u002Fproject\u002Fcontributing","5.project\u002F2.contributing",{"title":259,"path":260,"stem":261},"Security","\u002Fproject\u002Fsecurity","5.project\u002F3.security",{"title":263,"path":264,"stem":265},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","5.project\u002F4.data-and-privacy",{"title":267,"path":268,"stem":269},"Status and support","\u002Fproject\u002Fstatus-and-support","5.project\u002F5.status-and-support",{"id":271,"title":240,"body":272,"description":3090,"extension":3091,"links":3092,"meta":3093,"navigation":3094,"path":241,"seo":3095,"stem":242,"__hash__":3096},"docs\u002F4.reference\u002F9.events.md",{"type":273,"value":274,"toc":3076},"minimark",[275,328,418,427,432,816,821,832,1006,1013,1017,1345,1349,1662,1685,1689,1881,1885,2072,2076,2220,2224,2484,2509,2513,2636,2645,2649,2760,2764,2774,2841,2910,2913,3031,3038,3072],[276,277,278,279,283,284,287,288,291,292,295,296,299,300,303,304,306,307,310,311,313,314,317,318,321,322,324,325,327],"p",{},"Kraft records what happens to a work item as a list of events, its timeline.\nEach event has a ",[280,281,282],"code",{},"seq"," number, the ",[280,285,286],{},"work_item_id",", a ",[280,289,290],{},"type",", a JSON ",[280,293,294],{},"payload",",\na ",[280,297,298],{},"node_id"," and a ",[280,301,302],{},"created_at"," time. ",[280,305,298],{}," is the node the event is about,\nor ",[280,308,309],{},"null"," for an item-level event (filing the item, a pause, a bulk action);\nit defaults from the payload's own ",[280,312,298],{}," or ",[280,315,316],{},"node"," key, so most event\ntypes carry it for free, and a handful of node-scoped events that name their\nnode under a different key (a gate's own events, under ",[280,319,320],{},"gate",") have it filled\nin explicitly. A database upgraded from before this field existed had it\nbackfilled the same way, from whichever of each row's own ",[280,323,298],{},"\u002F",[280,326,316],{},"\npayload keys was a string. Read them with:",[329,330,335],"pre",{"className":331,"code":332,"language":333,"meta":334,"style":334},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","kraft view events ID                     # the whole timeline\nkraft view events ID --type gate_requested\nkraft view events ID --after 120 -f      # later events, then follow\nkraft view events ID --json              # the raw events\n","bash","",[280,336,337,360,377,401],{"__ignoreMap":334},[338,339,342,346,350,353,356],"span",{"class":340,"line":341},"line",1,[338,343,345],{"class":344},"sBMFI","kraft",[338,347,349],{"class":348},"sfazB"," view",[338,351,352],{"class":348}," events",[338,354,355],{"class":348}," ID",[338,357,359],{"class":358},"sHwdD","                     # the whole timeline\n",[338,361,363,365,367,369,371,374],{"class":340,"line":362},2,[338,364,345],{"class":344},[338,366,349],{"class":348},[338,368,352],{"class":348},[338,370,355],{"class":348},[338,372,373],{"class":348}," --type",[338,375,376],{"class":348}," gate_requested\n",[338,378,380,382,384,386,388,391,395,398],{"class":340,"line":379},3,[338,381,345],{"class":344},[338,383,349],{"class":348},[338,385,352],{"class":348},[338,387,355],{"class":348},[338,389,390],{"class":348}," --after",[338,392,394],{"class":393},"sbssI"," 120",[338,396,397],{"class":348}," -f",[338,399,400],{"class":358},"      # later events, then follow\n",[338,402,404,406,408,410,412,415],{"class":340,"line":403},4,[338,405,345],{"class":344},[338,407,349],{"class":348},[338,409,352],{"class":348},[338,411,355],{"class":348},[338,413,414],{"class":348}," --json",[338,416,417],{"class":358},"              # the raw events\n",[276,419,420,421,426],{},"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",[422,423,425],"a",{"href":424},"\u002Fproject\u002Fstatus-and-support#versioning-and-stability","stable interface",": a\nrelease can add, rename or reshape them.",[428,429,431],"h2",{"id":430},"work-item","Work item",[433,434,435,451],"table",{},[436,437,438],"thead",{},[439,440,441,445,448],"tr",{},[442,443,444],"th",{},"Type",[442,446,447],{},"When",[442,449,450],{},"Key fields",[452,453,454,488,503,518,533,550,568,593,610,626,646,659,675,691,703,725,737,751,766,788,802],"tbody",{},[439,455,456,462,465],{},[457,458,459],"td",{},[280,460,461],{},"work_item_created",[457,463,464],{},"The item is filed.",[457,466,467,470,471,470,474,477,478,470,481,470,484,487],{},[280,468,469],{},"title",", ",[280,472,473],{},"repo",[280,475,476],{},"chain_template","; ",[280,479,480],{},"source",[280,482,483],{},"bead_id",[280,485,486],{},"priority"," when auto-intake filed it",[439,489,490,495,498],{},[457,491,492],{},[280,493,494],{},"work_item_attachments",[457,496,497],{},"The item is filed with a spec or plan.",[457,499,500],{},[280,501,502],{},"attachments",[439,504,505,510,513],{},[457,506,507],{},[280,508,509],{},"work_item_resumed",[457,511,512],{},"A paused item starts or restarts.",[457,514,515],{},[280,516,517],{},"steer",[439,519,520,525,528],{},[457,521,522],{},[280,523,524],{},"pause_requested",[457,526,527],{},"Someone pauses the item.",[457,529,530],{},[280,531,532],{},"sessions",[439,534,535,540,543],{},[457,536,537],{},[280,538,539],{},"work_item_blocked_by_dependency",[457,541,542],{},"An open bead dependency paused the item before its next node.",[457,544,545,470,547],{},[280,546,298],{},[280,548,549],{},"blocked_by",[439,551,552,557,560],{},[457,553,554],{},[280,555,556],{},"paused_by_broken_base",[457,558,559],{},"Another item broke the base branch, so this one paused.",[457,561,562,470,565],{},[280,563,564],{},"broken_by",[280,566,567],{},"follow_up_bead",[439,569,570,575,583],{},[457,571,572],{},[280,573,574],{},"work_item_needs_human",[457,576,577,578,582],{},"The item stopped for a person. See ",[422,579,581],{"href":580},"#work_item_needs_human","below",".",[457,584,585,470,587,470,590],{},[280,586,298],{},[280,588,589],{},"reason",[280,591,592],{},"kind",[439,594,595,600,603],{},[457,596,597],{},[280,598,599],{},"work_item_waiting",[457,601,602],{},"The item is parked on an external wait.",[457,604,605,470,607],{},[280,606,298],{},[280,608,609],{},"retry_at",[439,611,612,617,620],{},[457,613,614],{},[280,615,616],{},"work_item_rate_limited",[457,618,619],{},"The agent hit a rate limit; the item retries on its own.",[457,621,622,470,624],{},[280,623,298],{},[280,625,609],{},[439,627,628,633,636],{},[457,629,630],{},[280,631,632],{},"work_item_retried",[457,634,635],{},"Someone retried the item.",[457,637,638,470,640,470,642,645],{},[280,639,298],{},[280,641,517],{},[280,643,644],{},"escalated"," (an escalation turn retried it)",[439,647,648,653,656],{},[457,649,650],{},[280,651,652],{},"work_item_completed",[457,654,655],{},"The item finished, on its own or by hand.",[457,657,658],{},"none",[439,660,661,666,669],{},[457,662,663],{},[280,664,665],{},"work_item_manually_completed",[457,667,668],{},"Someone completed the item by hand.",[457,670,671,470,673],{},[280,672,589],{},[280,674,298],{},[439,676,677,682,685],{},[457,678,679],{},[280,680,681],{},"work_item_cancelled",[457,683,684],{},"Someone cancelled the item.",[457,686,687,470,689],{},[280,688,589],{},[280,690,298],{},[439,692,693,698,701],{},[457,694,695],{},[280,696,697],{},"work_item_abandoned",[457,699,700],{},"The item was cancelled or abandoned.",[457,702,658],{},[439,704,705,710,713],{},[457,706,707],{},[280,708,709],{},"work_item_archived",[457,711,712],{},"The item left the Done column.",[457,714,715,718,719,313,722],{},[280,716,717],{},"by",": ",[280,720,721],{},"you",[280,723,724],{},"auto",[439,726,727,732,735],{},[457,728,729],{},[280,730,731],{},"work_item_restored",[457,733,734],{},"An archived item came back.",[457,736,658],{},[439,738,739,744,747],{},[457,740,741],{},[280,742,743],{},"work_item_title_edited",[457,745,746],{},"The title changed.",[457,748,749],{},[280,750,469],{},[439,752,753,758,761],{},[457,754,755],{},[280,756,757],{},"work_item_description_edited",[457,759,760],{},"The description changed.",[457,762,763],{},[280,764,765],{},"description",[439,767,768,773,776],{},[457,769,770],{},[280,771,772],{},"plan_progress",[457,774,775],{},"A worker started a plan task.",[457,777,778,470,780,470,783,470,786],{},[280,779,298],{},[280,781,782],{},"task",[280,784,785],{},"total",[280,787,469],{},[439,789,790,795,798],{},[457,791,792],{},[280,793,794],{},"steer_context_set",[457,796,797],{},"A steer was stored for the next agent.",[457,799,800],{},[280,801,517],{},[439,803,804,809,812],{},[457,805,806],{},[280,807,808],{},"steer_undelivered",[457,810,811],{},"A steer was stored but no agent received it.",[457,813,814],{},[280,815,517],{},[817,818,819],"h3",{"id":574},[280,820,574],{},[276,822,823,824,827,828,831],{},"This is the event behind ",[280,825,826],{},"stop_reason"," in ",[280,829,830],{},"kraft view show --json",", and behind\n\"why did it stop\" on the board. Its fields:",[433,833,834,844],{},[436,835,836],{},[439,837,838,841],{},[442,839,840],{},"Field",[442,842,843],{},"Meaning",[452,845,846,855,868,904,918,931,943,955,965,978],{},[439,847,848,852],{},[457,849,850],{},[280,851,298],{},[457,853,854],{},"The node the item stopped on.",[439,856,857,861],{},[457,858,859],{},[280,860,589],{},[457,862,863,864,867],{},"What stopped it, in words. A reason that starts ",[280,865,866],{},"needs_context:"," is a question from the agent.",[439,869,870,874],{},[457,871,872],{},[280,873,592],{},[457,875,876,877,470,880,470,883,470,886,470,889,470,892,470,895,470,898,470,901,582],{},"Why, as one of a fixed set: ",[280,878,879],{},"question",[280,881,882],{},"cap",[280,884,885],{},"budget",[280,887,888],{},"failed",[280,890,891],{},"conflict",[280,893,894],{},"mr_closed",[280,896,897],{},"config",[280,899,900],{},"infra",[280,902,903],{},"stuck",[439,905,906,911],{},[457,907,908],{},[280,909,910],{},"session_id",[457,912,913,914,917],{},"The last session of that node, when it failed or asked a question. ",[280,915,916],{},"kraft view logs"," reads its log.",[439,919,920,925],{},[457,921,922],{},[280,923,924],{},"capped",[457,926,927,930],{},[280,928,929],{},"{cycles, attempts}"," when a fix loop spent its attempts.",[439,932,933,937],{},[457,934,935],{},[280,936,885],{},[457,938,939,942],{},[280,940,941],{},"{scope, spent_usd, cap_usd}"," when a spend cap stopped the item.",[439,944,945,949],{},[457,946,947],{},[280,948,903],{},[457,950,951,954],{},[280,952,953],{},"true"," when the item stopped in a way an escalation turn can answer.",[439,956,957,962],{},[457,958,959],{},[280,960,961],{},"bundle",[457,963,964],{},"What Kraft gathered about a stuck item when it gave up.",[439,966,967,972],{},[457,968,969],{},[280,970,971],{},"suggested_action",[457,973,974,977],{},[280,975,976],{},"{action, reason}",", the next step Kraft suggests.",[439,979,980,985],{},[457,981,982],{},[280,983,984],{},"facts",[457,986,987,988,990,991,994,995,998,999,1002,1003,1005],{},"Kind-specific detail, when there is any. A ",[280,989,891],{}," stop carries ",[280,992,993],{},"resolved"," and ",[280,996,997],{},"unresolved",": the files the handler cleared and the ones still conflicted (",[280,1000,1001],{},"git diff --diff-filter=U"," in the worktree). A closed MR's ",[280,1004,984],{}," carries its ref and url.",[276,1007,1008,1012],{},[422,1009,1011],{"href":1010},"\u002Fget-started\u002Ftroubleshooting#why-did-my-item-stop","Troubleshooting"," maps each\nreason to a fix.",[428,1014,1016],{"id":1015},"chain-and-nodes","Chain and nodes",[433,1018,1019,1029],{},[436,1020,1021],{},[439,1022,1023,1025,1027],{},[442,1024,444],{},[442,1026,447],{},[442,1028,450],{},[452,1030,1031,1043,1058,1072,1086,1105,1122,1139,1159,1179,1197,1216,1235,1254,1273,1295,1314,1328],{},[439,1032,1033,1038,1041],{},[457,1034,1035],{},[280,1036,1037],{},"chain_loaded",[457,1039,1040],{},"The chain was built for the item.",[457,1042,658],{},[439,1044,1045,1050,1053],{},[457,1046,1047],{},[280,1048,1049],{},"worktree_prepared",[457,1051,1052],{},"The worktree was created and set up.",[457,1054,1055],{},[280,1056,1057],{},"report",[439,1059,1060,1065,1068],{},[457,1061,1062],{},[280,1063,1064],{},"node_started",[457,1066,1067],{},"A node began.",[457,1069,1070],{},[280,1071,298],{},[439,1073,1074,1079,1082],{},[457,1075,1076],{},[280,1077,1078],{},"node_completed",[457,1080,1081],{},"A node finished.",[457,1083,1084],{},[280,1085,298],{},[439,1087,1088,1093,1096],{},[457,1089,1090],{},[280,1091,1092],{},"node_skipped",[457,1094,1095],{},"A node or its gate was skipped.",[457,1097,1098,470,1100,470,1102],{},[280,1099,298],{},[280,1101,320],{},[280,1103,1104],{},"note",[439,1106,1107,1112,1115],{},[457,1108,1109],{},[280,1110,1111],{},"scope_skipped",[457,1113,1114],{},"A step or task inside a node was skipped.",[457,1116,1117,470,1120],{},[280,1118,1119],{},"path",[280,1121,1104],{},[439,1123,1124,1129,1132],{},[457,1125,1126],{},[280,1127,1128],{},"node_recovery_started",[457,1130,1131],{},"Kraft reran a node's failed tasks.",[457,1133,1134,470,1136],{},[280,1135,298],{},[280,1137,1138],{},"failed_tasks",[439,1140,1141,1146,1149],{},[457,1142,1143],{},[280,1144,1145],{},"run_forked",[457,1147,1148],{},"A retry started a new run from part of the old one.",[457,1150,1151,470,1153,470,1156],{},[280,1152,1119],{},[280,1154,1155],{},"scope",[280,1157,1158],{},"reopened",[439,1160,1161,1166,1169],{},[457,1162,1163],{},[280,1164,1165],{},"base_change_restart",[457,1167,1168],{},"The base branch moved, so part of the chain reran.",[457,1170,1171,470,1173,470,1176],{},[280,1172,298],{},[280,1174,1175],{},"restart_from",[280,1177,1178],{},"nodes",[439,1180,1181,1186,1189],{},[457,1182,1183],{},[280,1184,1185],{},"worktree_rebase_verified",[457,1187,1188],{},"A rebase reported by a worker matched the worktree.",[457,1190,1191,470,1194],{},[280,1192,1193],{},"reported_head",[280,1195,1196],{},"worktree_head",[439,1198,1199,1204,1207],{},[457,1200,1201],{},[280,1202,1203],{},"read_only_violated",[457,1205,1206],{},"A read-only node or step changed the worktree.",[457,1208,1209,470,1211,470,1213],{},[280,1210,298],{},[280,1212,1155],{},[280,1214,1215],{},"files",[439,1217,1218,1223,1226],{},[457,1219,1220],{},[280,1221,1222],{},"fix_cycle_started",[457,1224,1225],{},"A fix loop started another attempt.",[457,1227,1228,470,1230,470,1233],{},[280,1229,298],{},[280,1231,1232],{},"cycle",[280,1234,1138],{},[439,1236,1237,1242,1245],{},[457,1238,1239],{},[280,1240,1241],{},"fix_cycle_refunded",[457,1243,1244],{},"A fix attempt did not count, because the repair never ran.",[457,1246,1247,470,1249,470,1251],{},[280,1248,298],{},[280,1250,1232],{},[280,1252,1253],{},"outcome",[439,1255,1256,1261,1264],{},[457,1257,1258],{},[280,1259,1260],{},"findings_measured",[457,1262,1263],{},"A review or check produced findings.",[457,1265,1266,470,1268,470,1270],{},[280,1267,298],{},[280,1269,1232],{},[280,1271,1272],{},"findings",[439,1274,1275,1280,1283],{},[457,1276,1277],{},[280,1278,1279],{},"judge_verdict",[457,1281,1282],{},"A judge ruled on findings.",[457,1284,1285,470,1287,470,1289,470,1292],{},[280,1286,298],{},[280,1288,1232],{},[280,1290,1291],{},"verdict",[280,1293,1294],{},"reasoning",[439,1296,1297,1302,1305],{},[457,1298,1299],{},[280,1300,1301],{},"sweep_failed",[457,1303,1304],{},"Kraft could not commit work an agent task left uncommitted: the commit failed, or the worktree was not on the item's branch, held a git operation Kraft did not start, or held a repository Kraft did not create. The work stays in the worktree.",[457,1306,1307,470,1309,470,1311],{},[280,1308,298],{},[280,1310,782],{},[280,1312,1313],{},"error",[439,1315,1316,1321,1324],{},[457,1317,1318],{},[280,1319,1320],{},"bead_not_filed",[457,1322,1323],{},"Intake could not file a bead.",[457,1325,1326],{},[280,1327,589],{},[439,1329,1330,1335,1338],{},[457,1331,1332],{},[280,1333,1334],{},"beads_left_open",[457,1336,1337],{},"The item completed but its beads stayed open.",[457,1339,1340,470,1343],{},[280,1341,1342],{},"beads",[280,1344,589],{},[428,1346,1348],{"id":1347},"gates-and-review","Gates and review",[433,1350,1351,1361],{},[436,1352,1353],{},[439,1354,1355,1357,1359],{},[442,1356,444],{},[442,1358,447],{},[442,1360,450],{},[452,1362,1363,1379,1395,1415,1431,1447,1463,1481,1498,1515,1528,1544,1563,1581,1600,1614,1630,1646],{},[439,1364,1365,1370,1373],{},[457,1366,1367],{},[280,1368,1369],{},"gate_requested",[457,1371,1372],{},"A gate is waiting for a decision.",[457,1374,1375,470,1377],{},[280,1376,320],{},[280,1378,298],{},[439,1380,1381,1386,1389],{},[457,1382,1383],{},[280,1384,1385],{},"gate_approved",[457,1387,1388],{},"A gate was approved.",[457,1390,1391,470,1393],{},[280,1392,320],{},[280,1394,717],{},[439,1396,1397,1402,1405],{},[457,1398,1399],{},[280,1400,1401],{},"gate_rejected",[457,1403,1404],{},"A gate was rejected.",[457,1406,1407,470,1409,470,1411,470,1413],{},[280,1408,320],{},[280,1410,1104],{},[280,1412,316],{},[280,1414,717],{},[439,1416,1417,1422,1425],{},[457,1418,1419],{},[280,1420,1421],{},"gate_reopened",[457,1423,1424],{},"An approved gate is open again.",[457,1426,1427,470,1429],{},[280,1428,320],{},[280,1430,589],{},[439,1432,1433,1438,1441],{},[457,1434,1435],{},[280,1436,1437],{},"gate_auto_review_started",[457,1439,1440],{},"A gate's review agent started.",[457,1442,1443,470,1445],{},[280,1444,320],{},[280,1446,910],{},[439,1448,1449,1454,1457],{},[457,1450,1451],{},[280,1452,1453],{},"gate_auto_review_skipped",[457,1455,1456],{},"A gate's review agent did not run.",[457,1458,1459,470,1461],{},[280,1460,320],{},[280,1462,589],{},[439,1464,1465,1470,1473],{},[457,1466,1467],{},[280,1468,1469],{},"gate_auto_review_discarded",[457,1471,1472],{},"A review agent's verdict was not used.",[457,1474,1475,470,1477,470,1479],{},[280,1476,320],{},[280,1478,1291],{},[280,1480,589],{},[439,1482,1483,1488,1491],{},[457,1484,1485],{},[280,1486,1487],{},"chain_revision_shown",[457,1489,1490],{},"A person was shown a chain revision.",[457,1492,1493,470,1495],{},[280,1494,320],{},[280,1496,1497],{},"digest",[439,1499,1500,1505,1508],{},[457,1501,1502],{},[280,1503,1504],{},"chain_revision_unchanged",[457,1506,1507],{},"A chain revision proposed no change, so its gate passed.",[457,1509,1510,470,1512],{},[280,1511,320],{},[280,1513,1514],{},"rationale",[439,1516,1517,1522,1525],{},[457,1518,1519],{},[280,1520,1521],{},"chain_revised",[457,1523,1524],{},"An approved chain revision replaced the chain.",[457,1526,1527],{},"varies",[439,1529,1530,1535,1538],{},[457,1531,1532],{},[280,1533,1534],{},"artifact_refused",[457,1536,1537],{},"Kraft found a gate's document but would not serve it.",[457,1539,1540,470,1542],{},[280,1541,1119],{},[280,1543,589],{},[439,1545,1546,1551,1554],{},[457,1547,1548],{},[280,1549,1550],{},"review_submitted",[457,1552,1553],{},"A review was sent.",[457,1555,1556,470,1559,470,1561],{},[280,1557,1558],{},"review_id",[280,1560,320],{},[280,1562,1253],{},[439,1564,1565,1570,1573],{},[457,1566,1567],{},[280,1568,1569],{},"thread_updated",[457,1571,1572],{},"A review thread was resolved or reopened.",[457,1574,1575,470,1578],{},[280,1576,1577],{},"thread_id",[280,1579,1580],{},"state",[439,1582,1583,1588,1591],{},[457,1584,1585],{},[280,1586,1587],{},"rewind_requested",[457,1589,1590],{},"A review asked for work to be redone.",[457,1592,1593,470,1595,470,1598],{},[280,1594,1558],{},[280,1596,1597],{},"target",[280,1599,1104],{},[439,1601,1602,1607,1610],{},[457,1603,1604],{},[280,1605,1606],{},"rewind_cancelled",[457,1608,1609],{},"That request was withdrawn.",[457,1611,1612],{},[280,1613,1558],{},[439,1615,1616,1621,1624],{},[457,1617,1618],{},[280,1619,1620],{},"reply_agent_wrote",[457,1622,1623],{},"An agent answered review threads.",[457,1625,1626,470,1628],{},[280,1627,320],{},[280,1629,1215],{},[439,1631,1632,1637,1640],{},[457,1633,1634],{},[280,1635,1636],{},"reply_agent_skipped",[457,1638,1639],{},"No agent answered review threads.",[457,1641,1642,470,1644],{},[280,1643,320],{},[280,1645,589],{},[439,1647,1648,1653,1656],{},[457,1649,1650],{},[280,1651,1652],{},"reply_agent_failed",[457,1654,1655],{},"The reply agent failed.",[457,1657,1658,470,1660],{},[280,1659,320],{},[280,1661,1313],{},[276,1663,1664,1666,1667,1670,1671,1673,1674,1677,1678,1681,1682,1684],{},[280,1665,717],{}," is ",[280,1668,1669],{},"human"," (the board or the ",[280,1672,345],{}," command), ",[280,1675,1676],{},"assistant"," (an agent\nthrough the MCP server), ",[280,1679,1680],{},"agent"," (a Kraft worker, such as a gate's review\nagent) or ",[280,1683,345],{}," (Kraft itself).",[428,1686,1688],{"id":1687},"agent-sessions","Agent sessions",[433,1690,1691,1701],{},[436,1692,1693],{},[439,1694,1695,1697,1699],{},[442,1696,444],{},[442,1698,447],{},[442,1700,450],{},[452,1702,1703,1725,1746,1773,1787,1803,1819,1835,1849],{},[439,1704,1705,1710,1713],{},[457,1706,1707],{},[280,1708,1709],{},"worker_session_created",[457,1711,1712],{},"A session was recorded, before launch.",[457,1714,1715,470,1717,470,1719,470,1722],{},[280,1716,910],{},[280,1718,298],{},[280,1720,1721],{},"hook_point",[280,1723,1724],{},"attempt",[439,1726,1727,1732,1735],{},[457,1728,1729],{},[280,1730,1731],{},"worker_session_started",[457,1733,1734],{},"Its process started.",[457,1736,1737,470,1739,470,1741,470,1743],{},[280,1738,910],{},[280,1740,298],{},[280,1742,1721],{},[280,1744,1745],{},"pid",[439,1747,1748,1753,1756],{},[457,1749,1750],{},[280,1751,1752],{},"worker_session_exited",[457,1754,1755],{},"It ended.",[457,1757,1758,470,1760,470,1763,470,1766,470,1769,1772],{},[280,1759,910],{},[280,1761,1762],{},"status",[280,1764,1765],{},"wall_ms",[280,1767,1768],{},"model",[280,1770,1771],{},"cost_usd",", token counts",[439,1774,1775,1780,1783],{},[457,1776,1777],{},[280,1778,1779],{},"worker_session_paused",[457,1781,1782],{},"It was stopped by a pause, skip or manual end.",[457,1784,1785],{},[280,1786,910],{},[439,1788,1789,1794,1797],{},[457,1790,1791],{},[280,1792,1793],{},"agent_session_resumed",[457,1795,1796],{},"A session resumed the agent's earlier conversation.",[457,1798,1799,470,1801],{},[280,1800,782],{},[280,1802,910],{},[439,1804,1805,1810,1813],{},[457,1806,1807],{},[280,1808,1809],{},"session_reattached",[457,1811,1812],{},"After a restart, Kraft found a session still running.",[457,1814,1815,470,1817],{},[280,1816,910],{},[280,1818,1745],{},[439,1820,1821,1826,1829],{},[457,1822,1823],{},[280,1824,1825],{},"session_unknown",[457,1827,1828],{},"After a restart, Kraft could not confirm a session.",[457,1830,1831,470,1833],{},[280,1832,910],{},[280,1834,589],{},[439,1836,1837,1842,1845],{},[457,1838,1839],{},[280,1840,1841],{},"background_jobs_abandoned",[457,1843,1844],{},"A session left background jobs behind.",[457,1846,1847],{},[280,1848,589],{},[439,1850,1851,1856,1864],{},[457,1852,1853],{},[280,1854,1855],{},"permission_decision",[457,1857,1858,1859,1863],{},"The ",[422,1860,1862],{"href":1861},"\u002Freference\u002Fpermissions#reading-decisions","permission gate"," answered a tool call.",[457,1865,1866,470,1868,470,1870,470,1873,470,1876,470,1878],{},[280,1867,910],{},[280,1869,298],{},[280,1871,1872],{},"tool",[280,1874,1875],{},"decision",[280,1877,589],{},[280,1879,1880],{},"grant",[428,1882,1884],{"id":1883},"caps-budgets-and-limits","Caps, budgets and limits",[433,1886,1887,1897],{},[436,1888,1889],{},[439,1890,1891,1893,1895],{},[442,1892,444],{},[442,1894,447],{},[442,1896,450],{},[452,1898,1899,1923,1938,1953,1967,1993,2010,2030,2054],{},[439,1900,1901,1906,1909],{},[457,1902,1903],{},[280,1904,1905],{},"time_cap_reached",[457,1907,1908],{},"A time cap ran out.",[457,1910,1911,470,1913,470,1916,470,1919,470,1921],{},[280,1912,1155],{},[280,1914,1915],{},"field",[280,1917,1918],{},"minutes",[280,1920,589],{},[280,1922,298],{},[439,1924,1925,1930,1933],{},[457,1926,1927],{},[280,1928,1929],{},"scope_budget_reached",[457,1931,1932],{},"A scope's token or dollar cap refused a launch.",[457,1934,1935,1936],{},"the breach fields, ",[280,1937,782],{},[439,1939,1940,1945,1948],{},[457,1941,1942],{},[280,1943,1944],{},"budget_changed",[457,1946,1947],{},"The item's spend cap was set.",[457,1949,1950],{},[280,1951,1952],{},"budget_usd",[439,1954,1955,1960,1963],{},[457,1956,1957],{},[280,1958,1959],{},"budget_raised",[457,1961,1962],{},"The cap was raised to continue a stopped item.",[457,1964,1965],{},[280,1966,1952],{},[439,1968,1969,1974,1981],{},[457,1970,1971],{},[280,1972,1973],{},"spend_unpriced",[457,1975,1976,1977,1980],{},"The first session on the item whose harness reported no cost and whose model ",[280,1978,1979],{},"prices.json"," cannot price: the item and daily dollar caps count it as $0.",[457,1982,1983,470,1985,470,1988,470,1990],{},[280,1984,910],{},[280,1986,1987],{},"harness",[280,1989,1768],{},[280,1991,1992],{},"message",[439,1994,1995,2000,2003],{},[457,1996,1997],{},[280,1998,1999],{},"cap_counters_reset",[457,2001,2002],{},"Loop counters were reset.",[457,2004,2005,470,2007],{},[280,2006,717],{},[280,2008,2009],{},"counters",[439,2011,2012,2017,2020],{},[457,2013,2014],{},[280,2015,2016],{},"rate_limit_hit",[457,2018,2019],{},"An agent CLI refused a launch for a rate limit.",[457,2021,2022,470,2024,470,2027],{},[280,2023,298],{},[280,2025,2026],{},"rate_limit_type",[280,2028,2029],{},"resets_at_iso",[439,2031,2032,2037,2040],{},[457,2033,2034],{},[280,2035,2036],{},"launch_fallback",[457,2038,2039],{},"A launch moved to the next harness or model.",[457,2041,2042,470,2044,470,2046,470,2049,470,2052],{},[280,2043,298],{},[280,2045,782],{},[280,2047,2048],{},"from",[280,2050,2051],{},"to",[280,2053,589],{},[439,2055,2056,2061,2064],{},[457,2057,2058],{},[280,2059,2060],{},"launch_fallback_exhausted",[457,2062,2063],{},"Every fallback was limited.",[457,2065,2066,470,2068,470,2070],{},[280,2067,298],{},[280,2069,782],{},[280,2071,2029],{},[428,2073,2075],{"id":2074},"escalation","Escalation",[433,2077,2078,2088],{},[436,2079,2080],{},[439,2081,2082,2084,2086],{},[442,2083,444],{},[442,2085,447],{},[442,2087,450],{},[452,2089,2090,2114,2134,2152,2166,2183,2204],{},[439,2091,2092,2097,2100],{},[457,2093,2094],{},[280,2095,2096],{},"escalation_message",[457,2098,2099],{},"A message went into the escalation thread.",[457,2101,2102,470,2104,470,2106,470,2108,470,2111],{},[280,2103,910],{},[280,2105,1992],{},[280,2107,724],{},[280,2109,2110],{},"thread",[280,2112,2113],{},"turn",[439,2115,2116,2121,2124],{},[457,2117,2118],{},[280,2119,2120],{},"stuck_escalation_started",[457,2122,2123],{},"Kraft started an escalation turn on a stuck item.",[457,2125,2126,470,2128,470,2130,470,2132],{},[280,2127,298],{},[280,2129,782],{},[280,2131,589],{},[280,2133,1724],{},[439,2135,2136,2141,2144],{},[457,2137,2138],{},[280,2139,2140],{},"stuck_escalation_finished",[457,2142,2143],{},"That turn ended.",[457,2145,2146,470,2148,470,2150],{},[280,2147,298],{},[280,2149,782],{},[280,2151,1762],{},[439,2153,2154,2159,2162],{},[457,2155,2156],{},[280,2157,2158],{},"work_item_auto_escalate_skipped",[457,2160,2161],{},"Kraft did not escalate a stop.",[457,2163,2164],{},[280,2165,589],{},[439,2167,2168,2173,2176],{},[457,2169,2170],{},[280,2171,2172],{},"work_item_auto_escalate_capped",[457,2174,2175],{},"Automatic escalations hit their limit.",[457,2177,2178,470,2180],{},[280,2179,882],{},[280,2181,2182],{},"count",[439,2184,2185,2190,2193],{},[457,2186,2187],{},[280,2188,2189],{},"work_item_self_retry_requested",[457,2191,2192],{},"An escalation turn asked to retry the item.",[457,2194,2195,470,2197,470,2199,470,2202],{},[280,2196,298],{},[280,2198,1119],{},[280,2200,2201],{},"restart",[280,2203,517],{},[439,2205,2206,2211,2214],{},[457,2207,2208],{},[280,2209,2210],{},"work_item_self_retry_dropped",[457,2212,2213],{},"That retry did not happen.",[457,2215,2216,470,2218],{},[280,2217,298],{},[280,2219,1762],{},[428,2221,2223],{"id":2222},"forge-ci-and-waits","Forge, CI and waits",[433,2225,2226,2236],{},[436,2227,2228],{},[439,2229,2230,2232,2234],{},[442,2231,444],{},[442,2233,447],{},[442,2235,450],{},[452,2237,2238,2256,2274,2293,2308,2332,2357,2375,2396,2412,2428,2450,2468],{},[439,2239,2240,2245,2248],{},[457,2241,2242],{},[280,2243,2244],{},"mr_opened",[457,2246,2247],{},"The merge request was opened.",[457,2249,2250,470,2253],{},[280,2251,2252],{},"number",[280,2254,2255],{},"url",[439,2257,2258,2262,2265],{},[457,2259,2260],{},[280,2261,894],{},[457,2263,2264],{},"The merge request was closed on the forge.",[457,2266,2267,470,2270,470,2272],{},[280,2268,2269],{},"ref",[280,2271,2255],{},[280,2273,717],{},[439,2275,2276,2281,2287],{},[457,2277,2278],{},[280,2279,2280],{},"mr_reopened",[457,2282,2283,2286],{},[280,2284,2285],{},"POST \u002Fwork-items\u002F{id}\u002Freopen-mr"," reopened a closed merge request.",[457,2288,2289,470,2291],{},[280,2290,2269],{},[280,2292,2255],{},[439,2294,2295,2300,2303],{},[457,2296,2297],{},[280,2298,2299],{},"mr_labels_set",[457,2301,2302],{},"A worker labeled the merge request.",[457,2304,2305],{},[280,2306,2307],{},"labels",[439,2309,2310,2315,2318],{},[457,2311,2312],{},[280,2313,2314],{},"external_wait_started",[457,2316,2317],{},"A wait on CI or a review began.",[457,2319,2320,470,2322,470,2324,470,2326,470,2329],{},[280,2321,782],{},[280,2323,298],{},[280,2325,592],{},[280,2327,2328],{},"timeout_s",[280,2330,2331],{},"deadline",[439,2333,2334,2339,2342],{},[457,2335,2336],{},[280,2337,2338],{},"external_wait_observed",[457,2340,2341],{},"Kraft checked the wait.",[457,2343,2344,470,2346,470,2349,470,2351,470,2354],{},[280,2345,782],{},[280,2347,2348],{},"observation",[280,2350,1580],{},[280,2352,2353],{},"result",[280,2355,2356],{},"next_observation_at",[439,2358,2359,2364,2367],{},[457,2360,2361],{},[280,2362,2363],{},"external_wait_rebounded",[457,2365,2366],{},"A policy change moved the wait's limits.",[457,2368,2369,470,2371,470,2373],{},[280,2370,782],{},[280,2372,2328],{},[280,2374,2331],{},[439,2376,2377,2382,2385],{},[457,2378,2379],{},[280,2380,2381],{},"external_wait_ended",[457,2383,2384],{},"The wait settled, timed out or errored.",[457,2386,2387,470,2389,470,2391,470,2393],{},[280,2388,782],{},[280,2390,1253],{},[280,2392,2353],{},[280,2394,2395],{},"observations",[439,2397,2398,2403,2406],{},[457,2399,2400],{},[280,2401,2402],{},"ci_infra_exhausted",[457,2404,2405],{},"CI failed for its own reasons, and retries did not help.",[457,2407,2408,470,2410],{},[280,2409,298],{},[280,2411,589],{},[439,2413,2414,2419,2422],{},[457,2415,2416],{},[280,2417,2418],{},"ci_run_abandoned",[457,2420,2421],{},"A cancelled CI run has no successor.",[457,2423,2424,470,2426],{},[280,2425,298],{},[280,2427,589],{},[439,2429,2430,2435,2442],{},[457,2431,2432],{},[280,2433,2434],{},"ci_not_configured",[457,2436,2437,2438,2441],{},"The repo sets ",[280,2439,2440],{},"ci_checks: false",", so a CI wait, before or after the merge, passed without checking.",[457,2443,2444,470,2446,470,2448],{},[280,2445,298],{},[280,2447,782],{},[280,2449,473],{},[439,2451,2452,2457,2460],{},[457,2453,2454],{},[280,2455,2456],{},"automated_review_not_configured",[457,2458,2459],{},"The repo names no automated reviewer, so the wait settles without one.",[457,2461,2462,470,2464,470,2466],{},[280,2463,298],{},[280,2465,782],{},[280,2467,473],{},[439,2469,2470,2475,2478],{},[457,2471,2472],{},[280,2473,2474],{},"automated_review_errored",[457,2476,2477],{},"The automated reviewer failed.",[457,2479,2480,470,2482],{},[280,2481,298],{},[280,2483,589],{},[276,2485,2486,2488,2489,2491,2492,2495,2496,2499,2500,2503,2504,2508],{},[280,2487,894],{},"'s ",[280,2490,717],{}," names what closed it: ",[280,2493,2494],{},"\"cancel\""," for ",[280,2497,2498],{},"POST \u002Fwork-items\u002F{id}\u002Fcancel"," with ",[280,2501,2502],{},"close_mr: true"," (see\n",[422,2505,2507],{"href":2506},"\u002Freference\u002Fhttp-api#cancelling","HTTP API → Cancelling",").",[428,2510,2512],{"id":2511},"sandbox","Sandbox",[433,2514,2515,2525],{},[436,2516,2517],{},[439,2518,2519,2521,2523],{},[442,2520,444],{},[442,2522,447],{},[442,2524,450],{},[452,2526,2527,2552,2575,2594],{},[439,2528,2529,2534,2537],{},[457,2530,2531],{},[280,2532,2533],{},"sandbox_egress_refused",[457,2535,2536],{},"The sandbox proxy refused a host.",[457,2538,2539,470,2541,470,2544,470,2547,470,2550],{},[280,2540,910],{},[280,2542,2543],{},"host",[280,2545,2546],{},"port",[280,2548,2549],{},"phase",[280,2551,589],{},[439,2553,2554,2559,2566],{},[457,2555,2556],{},[280,2557,2558],{},"sandbox_oom_killed",[457,2560,2561,2562,2565],{},"The container was killed under its memory limit. ",[280,2563,2564],{},"confirmed"," is false when the runtime never flagged the kill and Kraft counted exit 137 under the limit instead.",[457,2567,2568,470,2570,470,2573],{},[280,2569,910],{},[280,2571,2572],{},"memory",[280,2574,2564],{},[439,2576,2577,2582,2585],{},[457,2578,2579],{},[280,2580,2581],{},"sandbox_branch_not_synced",[457,2583,2584],{},"The sandbox's branch did not reach the worktree.",[457,2586,2587,470,2589,470,2592],{},[280,2588,910],{},[280,2590,2591],{},"branch",[280,2593,589],{},[439,2595,2596,2601,2624],{},[457,2597,2598],{},[280,2599,2600],{},"sandbox_kit_resolved",[457,2602,2603,2604,2608,2609,2612,2613,2616,2617,2620,2621,2508],{},"A task was dispatched under a ",[422,2605,2607],{"href":2606},"\u002Freference\u002Fconfiguration\u002Frepos#kits","Kit",", once per item and Kit. ",[280,2610,2611],{},"skipped"," lists the optional capabilities Kraft does not enforce, and ",[280,2614,2615],{},"ignored"," those it accepts without applying (",[280,2618,2619],{},"agent-sessions@1",", a credential's ",[280,2622,2623],{},"oauth",[457,2625,2626,470,2629,470,2632,470,2634],{},[280,2627,2628],{},"kit",[280,2630,2631],{},"manifest",[280,2633,2611],{},[280,2635,2615],{},[276,2637,2638,2639,2641,2642,2644],{},"A workspace item records one ",[280,2640,2581],{}," for each repository whose branch did not move, and its ",[280,2643,589],{}," names that repository.",[428,2646,2648],{"id":2647},"settings-changed","Settings changed",[433,2650,2651,2661],{},[436,2652,2653],{},[439,2654,2655,2657,2659],{},[442,2656,444],{},[442,2658,447],{},[442,2660,450],{},[452,2662,2663,2679,2695,2710,2724,2739],{},[439,2664,2665,2670,2673],{},[457,2666,2667],{},[280,2668,2669],{},"chain_template_changed",[457,2671,2672],{},"The item moved to another chain before it started.",[457,2674,2675,470,2677],{},[280,2676,2048],{},[280,2678,2051],{},[439,2680,2681,2686,2689],{},[457,2682,2683],{},[280,2684,2685],{},"attachments_changed",[457,2687,2688],{},"Its spec or plan changed before it started.",[457,2690,2691,470,2693],{},[280,2692,2048],{},[280,2694,2051],{},[439,2696,2697,2702,2705],{},[457,2698,2699],{},[280,2700,2701],{},"agent_overrides_changed",[457,2703,2704],{},"Its model or effort override changed.",[457,2706,2707],{},[280,2708,2709],{},"overrides",[439,2711,2712,2717,2720],{},[457,2713,2714],{},[280,2715,2716],{},"node_overrides_changed",[457,2718,2719],{},"A node's override changed.",[457,2721,2722],{},[280,2723,2709],{},[439,2725,2726,2731,2734],{},[457,2727,2728],{},[280,2729,2730],{},"policy_override_changed",[457,2732,2733],{},"Its policy override changed.",[457,2735,2736],{},[280,2737,2738],{},"policy",[439,2740,2741,2746,2749],{},[457,2742,2743],{},[280,2744,2745],{},"notification_failed",[457,2747,2748],{},"The notification webhook failed twice.",[457,2750,2751,470,2754,470,2756,470,2758],{},[280,2752,2753],{},"event_type",[280,2755,1762],{},[280,2757,2543],{},[280,2759,1313],{},[428,2761,2763],{"id":2762},"notifications","Notifications",[276,2765,2766,2769,2770,2773],{},[280,2767,2768],{},"notify.yaml"," sends an HTTP ",[280,2771,2772],{},"POST"," to a webhook when an event you name\nhappens. Set it on the Settings screen, or edit the file:",[329,2775,2779],{"className":2776,"code":2777,"language":2778,"meta":334,"style":334},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","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","yaml",[280,2780,2781,2795,2807,2820],{"__ignoreMap":334},[338,2782,2783,2787,2791],{"class":340,"line":341},[338,2784,2786],{"class":2785},"swJcz","enabled",[338,2788,2790],{"class":2789},"sMK4o",":",[338,2792,2794],{"class":2793},"sfNiH"," true\n",[338,2796,2797,2799,2801,2804],{"class":340,"line":362},[338,2798,2255],{"class":2785},[338,2800,2790],{"class":2789},[338,2802,2803],{"class":348}," https:\u002F\u002Fhooks.example.com\u002Fabc123",[338,2805,2806],{"class":358},"   # a secret; Kraft never shows it back\n",[338,2808,2809,2812,2814,2817],{"class":340,"line":379},[338,2810,2811],{"class":2785},"base_url",[338,2813,2790],{"class":2789},[338,2815,2816],{"class":348}," https:\u002F\u002Fkraft.example.com",[338,2818,2819],{"class":358},"     # where links in the message point\n",[338,2821,2822,2825,2827,2830,2832,2835,2838],{"class":340,"line":403},[338,2823,2824],{"class":2785},"events",[338,2826,2790],{"class":2789},[338,2828,2829],{"class":2789}," [",[338,2831,1369],{"class":348},[338,2833,2834],{"class":2789},",",[338,2836,2837],{"class":348}," work_item_needs_human",[338,2839,2840],{"class":2789},"]\n",[433,2842,2843,2854],{},[436,2844,2845],{},[439,2846,2847,2849,2852],{},[442,2848,840],{},[442,2850,2851],{},"Default",[442,2853,843],{},[452,2855,2856,2873,2884,2896],{},[439,2857,2858,2862,2867],{},[457,2859,2860],{},[280,2861,2786],{},[457,2863,2864],{},[280,2865,2866],{},"false",[457,2868,2869,2870,2872],{},"Nothing is sent while this is off, or while ",[280,2871,2255],{}," is empty.",[439,2874,2875,2879,2881],{},[457,2876,2877],{},[280,2878,2255],{},[457,2880,658],{},[457,2882,2883],{},"The webhook.",[439,2885,2886,2890,2893],{},[457,2887,2888],{},[280,2889,2811],{},[457,2891,2892],{},"the address the server listens on",[457,2894,2895],{},"The start of the link in each message.",[439,2897,2898,2902,2907],{},[457,2899,2900],{},[280,2901,2824],{},[457,2903,2904],{},[280,2905,2906],{},"[gate_requested, work_item_needs_human]",[457,2908,2909],{},"Which event types send a message. Any type on this page works; Kraft does not check the names, so a typo sends nothing.",[276,2911,2912],{},"The body is JSON:",[329,2914,2918],{"className":2915,"code":2916,"language":2917,"meta":334,"style":334},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\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","json",[280,2919,2920,2925,2949,2968,2986,3006,3025],{"__ignoreMap":334},[338,2921,2922],{"class":340,"line":341},[338,2923,2924],{"class":2789},"{\n",[338,2926,2927,2930,2933,2936,2938,2941,2944,2946],{"class":340,"line":362},[338,2928,2929],{"class":2789},"  \"",[338,2931,286],{"class":2932},"spNyl",[338,2934,2935],{"class":2789},"\"",[338,2937,2790],{"class":2789},[338,2939,2940],{"class":2789}," \"",[338,2942,2943],{"class":348},"\u003Cwork-item-id>",[338,2945,2935],{"class":2789},[338,2947,2948],{"class":2789},",\n",[338,2950,2951,2953,2955,2957,2959,2961,2964,2966],{"class":340,"line":379},[338,2952,2929],{"class":2789},[338,2954,469],{"class":2932},[338,2956,2935],{"class":2789},[338,2958,2790],{"class":2789},[338,2960,2940],{"class":2789},[338,2962,2963],{"class":348},"Fix the flaky login test",[338,2965,2935],{"class":2789},[338,2967,2948],{"class":2789},[338,2969,2970,2972,2974,2976,2978,2980,2982,2984],{"class":340,"line":403},[338,2971,2929],{"class":2789},[338,2973,290],{"class":2932},[338,2975,2935],{"class":2789},[338,2977,2790],{"class":2789},[338,2979,2940],{"class":2789},[338,2981,1369],{"class":348},[338,2983,2935],{"class":2789},[338,2985,2948],{"class":2789},[338,2987,2989,2991,2993,2995,2997,2999,3002,3004],{"class":340,"line":2988},5,[338,2990,2929],{"class":2789},[338,2992,320],{"class":2932},[338,2994,2935],{"class":2789},[338,2996,2790],{"class":2789},[338,2998,2940],{"class":2789},[338,3000,3001],{"class":348},"spec_approval",[338,3003,2935],{"class":2789},[338,3005,2948],{"class":2789},[338,3007,3009,3011,3013,3015,3017,3019,3022],{"class":340,"line":3008},6,[338,3010,2929],{"class":2789},[338,3012,2255],{"class":2932},[338,3014,2935],{"class":2789},[338,3016,2790],{"class":2789},[338,3018,2940],{"class":2789},[338,3020,3021],{"class":348},"https:\u002F\u002Fkraft.example.com\u002Fwork-items\u002F\u003Cwork-item-id>",[338,3023,3024],{"class":2789},"\"\n",[338,3026,3028],{"class":340,"line":3027},7,[338,3029,3030],{"class":2789},"}\n",[276,3032,3033,1666,3035,3037],{},[280,3034,320],{},[280,3036,309],{}," for an event that is not about a gate.",[3039,3040,3041,3045,3051,3054],"ul",{},[3042,3043,3044],"li",{},"Kraft sends at most one message per work item every 10 seconds. A second\nmatching event in that window sends nothing.",[3042,3046,3047,3048,3050],{},"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",[280,3049,2745],{}," event on the item.",[3042,3052,3053],{},"Events that happen while the server is down send nothing when it comes back.",[3042,3055,3056,3057,3061,3062,3065,3066,3068,994,3070,582],{},"The Settings screen's ",[3058,3059,3060],"strong",{},"Send a test"," posts ",[280,3063,3064],{},"\"type\": \"test\""," with a ",[280,3067,309],{},[280,3069,286],{},[280,3071,320],{},[3073,3074,3075],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":334,"searchDepth":362,"depth":362,"links":3077},[3078,3081,3082,3083,3084,3085,3086,3087,3088,3089],{"id":430,"depth":362,"text":431,"children":3079},[3080],{"id":574,"depth":379,"text":574},{"id":1015,"depth":362,"text":1016},{"id":1347,"depth":362,"text":1348},{"id":1687,"depth":362,"text":1688},{"id":1883,"depth":362,"text":1884},{"id":2074,"depth":362,"text":2075},{"id":2222,"depth":362,"text":2223},{"id":2511,"depth":362,"text":2512},{"id":2647,"depth":362,"text":2648},{"id":2762,"depth":362,"text":2763},"Every event type on a work item's timeline, its key payload fields, and the notification webhook that sends them.","md",null,{},true,{"title":240,"description":3090},"FNt5LEAvmIkUn0lqO_5qseVPeMqgHgfPI6g9H-oVYOc",[3098,3100],{"title":236,"path":237,"stem":238,"description":3099,"children":-1},"Every tool the kraft MCP server serves, with its parameters and the kraft command that does the same.",{"title":10,"path":245,"stem":249,"description":3101,"children":-1},"Architecture, contributing, and security.",1790824508004]