Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/kill-stopped-daemon.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"cargo-hauler": patch
---

`hauler kill` with no daemon running now exits 0 and reports `nothing to kill (the daemon is stopped)` with the ticket's ledger record, like `result` and `await`, instead of failing with `[render-failed]`. The kill result now carries a `daemon` field.
2 changes: 1 addition & 1 deletion artifact/agent-bundle.compile-evidence.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion artifact/agent-bundle.manifest.json

Large diffs are not rendered by default.

20 changes: 17 additions & 3 deletions artifact/bin/cargo-hauler-flight.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -20843,9 +20843,10 @@ const awaitResultSchema = zod__rspack_import_1/* .object */.Ikc({
timedOut: zod__rspack_import_1/* .boolean */.zMY()
}).strict();
const killResultSchema = zod__rspack_import_1/* .object */.Ikc({
daemon: daemonStatusSchema,
killed: zod__rspack_import_1/* .boolean */.zMY(),
operation: zod__rspack_import_1/* .literal */.euz('kill'),
request: requestRecordSchema.nullable(),
request: displayRequestRecordSchema.nullable(),
summary: zod__rspack_import_1/* .string */.YjP(),
ticket: zod__rspack_import_1/* .string */.YjP()
}).strict();
Expand Down Expand Up @@ -23556,9 +23557,22 @@ const acceptedKillSummary = (ticket, request)=>{
}
};
const killTicketResult = async (input, options)=>{
const killed = await (0,_ticket_errors_js__rspack_import_3/* .runTicketEffect */.n)((0,_client_tickets_js__rspack_import_0/* .killTicket */.N6)(input.ticket, options.config), options.signal);
const killed = await (0,_ticket_errors_js__rspack_import_3/* .runTicketEffect */.n)(fromLedgerWhenStopped((0,_client_tickets_js__rspack_import_0/* .killTicket */.N6)(input.ticket, options.config), input.ticket, options.config, (request)=>({
request
})), options.signal);
if (typeof killed !== 'boolean') {
return {
daemon: 'stopped',
killed: false,
operation: 'kill',
request: killed.request,
summary: `${input.ticket}: nothing to kill (the daemon is stopped)`,
ticket: input.ticket
};
}
const request = await (0,_ticket_errors_js__rspack_import_3/* .runTicketEffect */.n)((0,_client_tickets_js__rspack_import_0/* .fetchTicket */.vA)(input.ticket, options.config), options.signal);
return {
daemon: 'running',
killed,
operation: 'kill',
request: requestForConsumer(request),
Expand Down Expand Up @@ -25611,7 +25625,7 @@ const KillDocument = ({ names, nowMs, result })=>/*#__PURE__*/ (0,react_jsx_runt
record: result.request
}),
/*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_14/* .Agent.Context */.g.Context, {
children: result.killed ? `Riders attached to ${result.ticket} return to their lane or fail with it. Confirm with ${names.result} ${result.ticket}, which shows status killed. Resubmit only if you still need the work.` : `Nothing changed. Use ${names.status} to find the ticket that holds the lane.`
children: result.killed ? `Riders attached to ${result.ticket} return to their lane or fail with it. Confirm with ${names.result} ${result.ticket}, which shows status killed. Resubmit only if you still need the work.` : result.daemon === 'stopped' ? 'Nothing changed. The daemon is stopped, so no ticket holds a lane.' : `Nothing changed. Use ${names.status} to find the ticket that holds the lane.`
})
]
});
Expand Down
20 changes: 17 additions & 3 deletions artifact/bin/cargo-hauler.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -22685,9 +22685,10 @@ const awaitResultSchema = zod__rspack_import_1/* .object */.Ikc({
timedOut: zod__rspack_import_1/* .boolean */.zMY()
}).strict();
const killResultSchema = zod__rspack_import_1/* .object */.Ikc({
daemon: daemonStatusSchema,
killed: zod__rspack_import_1/* .boolean */.zMY(),
operation: zod__rspack_import_1/* .literal */.euz('kill'),
request: requestRecordSchema.nullable(),
request: displayRequestRecordSchema.nullable(),
summary: zod__rspack_import_1/* .string */.YjP(),
ticket: zod__rspack_import_1/* .string */.YjP()
}).strict();
Expand Down Expand Up @@ -32721,9 +32722,22 @@ const acceptedKillSummary = (ticket, request)=>{
}
};
const killTicketResult = async (input, options)=>{
const killed = await (0,_ticket_errors_js__rspack_import_3/* .runTicketEffect */.n)((0,_client_tickets_js__rspack_import_0/* .killTicket */.N6)(input.ticket, options.config), options.signal);
const killed = await (0,_ticket_errors_js__rspack_import_3/* .runTicketEffect */.n)(fromLedgerWhenStopped((0,_client_tickets_js__rspack_import_0/* .killTicket */.N6)(input.ticket, options.config), input.ticket, options.config, (request)=>({
request
})), options.signal);
if (typeof killed !== 'boolean') {
return {
daemon: 'stopped',
killed: false,
operation: 'kill',
request: killed.request,
summary: `${input.ticket}: nothing to kill (the daemon is stopped)`,
ticket: input.ticket
};
}
const request = await (0,_ticket_errors_js__rspack_import_3/* .runTicketEffect */.n)((0,_client_tickets_js__rspack_import_0/* .fetchTicket */.vA)(input.ticket, options.config), options.signal);
return {
daemon: 'running',
killed,
operation: 'kill',
request: requestForConsumer(request),
Expand Down Expand Up @@ -34787,7 +34801,7 @@ const KillDocument = ({ names, nowMs, result })=>/*#__PURE__*/ (0,react_jsx_runt
record: result.request
}),
/*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_14/* .Agent.Context */.g.Context, {
children: result.killed ? `Riders attached to ${result.ticket} return to their lane or fail with it. Confirm with ${names.result} ${result.ticket}, which shows status killed. Resubmit only if you still need the work.` : `Nothing changed. Use ${names.status} to find the ticket that holds the lane.`
children: result.killed ? `Riders attached to ${result.ticket} return to their lane or fail with it. Confirm with ${names.result} ${result.ticket}, which shows status killed. Resubmit only if you still need the work.` : result.daemon === 'stopped' ? 'Nothing changed. The daemon is stopped, so no ticket holds a lane.' : `Nothing changed. Use ${names.status} to find the ticket that holds the lane.`
})
]
});
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-session-start.claude.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -79622,7 +79622,7 @@ __webpack_require__.a(__webpack_module__, async function (__rspack_load_async_de



const artifactEpoch = "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c";
const artifactEpoch = "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2";
const flightArtifactEpoch = "cargo-hauler@0.9.13";
const canonicalEvent = "session/start";
const capabilityRevision = "2.1.260";
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-session-start.codex.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -79622,7 +79622,7 @@ __webpack_require__.a(__webpack_module__, async function (__rspack_load_async_de



const artifactEpoch = "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c";
const artifactEpoch = "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2";
const flightArtifactEpoch = "cargo-hauler@0.9.13";
const canonicalEvent = "session/start";
const capabilityRevision = "0.147.0";
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-session-start.cursor.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -79622,7 +79622,7 @@ __webpack_require__.a(__webpack_module__, async function (__rspack_load_async_de



const artifactEpoch = "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c";
const artifactEpoch = "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2";
const flightArtifactEpoch = "cargo-hauler@0.9.13";
const canonicalEvent = "session/start";
const capabilityRevision = "2026-08-28";
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-stop.claude.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -79622,7 +79622,7 @@ __webpack_require__.a(__webpack_module__, async function (__rspack_load_async_de



const artifactEpoch = "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c";
const artifactEpoch = "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2";
const flightArtifactEpoch = "cargo-hauler@0.9.13";
const canonicalEvent = "stop";
const capabilityRevision = "2.1.260";
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-stop.codex.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -79622,7 +79622,7 @@ __webpack_require__.a(__webpack_module__, async function (__rspack_load_async_de



const artifactEpoch = "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c";
const artifactEpoch = "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2";
const flightArtifactEpoch = "cargo-hauler@0.9.13";
const canonicalEvent = "stop";
const capabilityRevision = "0.147.0";
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-stop.cursor.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -79622,7 +79622,7 @@ __webpack_require__.a(__webpack_module__, async function (__rspack_load_async_de



const artifactEpoch = "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c";
const artifactEpoch = "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2";
const flightArtifactEpoch = "cargo-hauler@0.9.13";
const canonicalEvent = "stop";
const capabilityRevision = "2026-08-28";
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-tool-after.claude.execute.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -79621,7 +79621,7 @@ __webpack_require__.a(__webpack_module__, async function (__rspack_load_async_de



const artifactEpoch = "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c";
const artifactEpoch = "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2";
const flightArtifactEpoch = "cargo-hauler@0.9.13";
const canonicalEvent = "tool/after";
const capabilityRevision = "2.1.260";
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-tool-after.claude.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -28148,7 +28148,7 @@ const prepareRouteInvocation = async (nativeInput, signal, observer, receipt)=>{
return withEventState(signal, async (bindings)=>{
const gate = await (0,_agent_bundle_runtime_request__rspack_import_6/* .runAgentRequest */.iC)({
invocation: {
artifactEpoch: "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c",
artifactEpoch: "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2",
hostContractRevision: capabilityRevision,
kind: "event",
operationId: `event:${canonicalEvent}`,
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-tool-after.codex.execute.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -79621,7 +79621,7 @@ __webpack_require__.a(__webpack_module__, async function (__rspack_load_async_de



const artifactEpoch = "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c";
const artifactEpoch = "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2";
const flightArtifactEpoch = "cargo-hauler@0.9.13";
const canonicalEvent = "tool/after";
const capabilityRevision = "0.147.0";
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-tool-after.codex.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -28148,7 +28148,7 @@ const prepareRouteInvocation = async (nativeInput, signal, observer, receipt)=>{
return withEventState(signal, async (bindings)=>{
const gate = await (0,_agent_bundle_runtime_request__rspack_import_6/* .runAgentRequest */.iC)({
invocation: {
artifactEpoch: "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c",
artifactEpoch: "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2",
hostContractRevision: capabilityRevision,
kind: "event",
operationId: `event:${canonicalEvent}`,
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-tool-after.cursor.execute.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -79621,7 +79621,7 @@ __webpack_require__.a(__webpack_module__, async function (__rspack_load_async_de



const artifactEpoch = "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c";
const artifactEpoch = "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2";
const flightArtifactEpoch = "cargo-hauler@0.9.13";
const canonicalEvent = "tool/after";
const capabilityRevision = "2026-08-28";
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-tool-after.cursor.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -28148,7 +28148,7 @@ const prepareRouteInvocation = async (nativeInput, signal, observer, receipt)=>{
return withEventState(signal, async (bindings)=>{
const gate = await (0,_agent_bundle_runtime_request__rspack_import_6/* .runAgentRequest */.iC)({
invocation: {
artifactEpoch: "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c",
artifactEpoch: "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2",
hostContractRevision: capabilityRevision,
kind: "event",
operationId: `event:${canonicalEvent}`,
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-tool-before.claude.execute.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -79621,7 +79621,7 @@ __webpack_require__.a(__webpack_module__, async function (__rspack_load_async_de



const artifactEpoch = "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c";
const artifactEpoch = "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2";
const flightArtifactEpoch = "cargo-hauler@0.9.13";
const canonicalEvent = "tool/before";
const capabilityRevision = "2.1.260";
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-tool-before.claude.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -25375,7 +25375,7 @@ const prepareRouteInvocation = async (nativeInput, signal, observer, receipt)=>{
return withEventState(signal, async (bindings)=>{
const gate = await (0,_agent_bundle_runtime_request__rspack_import_6/* .runAgentRequest */.iC)({
invocation: {
artifactEpoch: "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c",
artifactEpoch: "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2",
hostContractRevision: capabilityRevision,
kind: "event",
operationId: `event:${canonicalEvent}`,
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-tool-before.codex.execute.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -79621,7 +79621,7 @@ __webpack_require__.a(__webpack_module__, async function (__rspack_load_async_de



const artifactEpoch = "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c";
const artifactEpoch = "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2";
const flightArtifactEpoch = "cargo-hauler@0.9.13";
const canonicalEvent = "tool/before";
const capabilityRevision = "0.147.0";
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-tool-before.codex.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -25375,7 +25375,7 @@ const prepareRouteInvocation = async (nativeInput, signal, observer, receipt)=>{
return withEventState(signal, async (bindings)=>{
const gate = await (0,_agent_bundle_runtime_request__rspack_import_6/* .runAgentRequest */.iC)({
invocation: {
artifactEpoch: "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c",
artifactEpoch: "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2",
hostContractRevision: capabilityRevision,
kind: "event",
operationId: `event:${canonicalEvent}`,
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-tool-before.cursor.execute.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -79621,7 +79621,7 @@ __webpack_require__.a(__webpack_module__, async function (__rspack_load_async_de



const artifactEpoch = "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c";
const artifactEpoch = "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2";
const flightArtifactEpoch = "cargo-hauler@0.9.13";
const canonicalEvent = "tool/before";
const capabilityRevision = "2026-08-28";
Expand Down
2 changes: 1 addition & 1 deletion artifact/hooks/event-route-tool-before.cursor.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -25375,7 +25375,7 @@ const prepareRouteInvocation = async (nativeInput, signal, observer, receipt)=>{
return withEventState(signal, async (bindings)=>{
const gate = await (0,_agent_bundle_runtime_request__rspack_import_6/* .runAgentRequest */.iC)({
invocation: {
artifactEpoch: "25ac9cff30db935e4c560a178082b85c33c392cdaa549ff10e3de3f22a26f27c",
artifactEpoch: "1a3e9070cbcd27b943ddf8e3cdb68c26752749ef41239bb5690ad667eca908c2",
hostContractRevision: capabilityRevision,
kind: "event",
operationId: `event:${canonicalEvent}`,
Expand Down
2 changes: 1 addition & 1 deletion artifact/mcp-apps/dashboard.html

Large diffs are not rendered by default.

20 changes: 17 additions & 3 deletions artifact/mcp/mcp-hauler-2b8242f9-flight.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -23073,9 +23073,10 @@ const awaitResultSchema = zod__rspack_import_1/* .object */.Ikc({
timedOut: zod__rspack_import_1/* .boolean */.zMY()
}).strict();
const killResultSchema = zod__rspack_import_1/* .object */.Ikc({
daemon: daemonStatusSchema,
killed: zod__rspack_import_1/* .boolean */.zMY(),
operation: zod__rspack_import_1/* .literal */.euz('kill'),
request: requestRecordSchema.nullable(),
request: displayRequestRecordSchema.nullable(),
summary: zod__rspack_import_1/* .string */.YjP(),
ticket: zod__rspack_import_1/* .string */.YjP()
}).strict();
Expand Down Expand Up @@ -27655,9 +27656,22 @@ const acceptedKillSummary = (ticket, request)=>{
}
};
const killTicketResult = async (input, options)=>{
const killed = await (0,_ticket_errors_js__rspack_import_3/* .runTicketEffect */.n)((0,_client_tickets_js__rspack_import_0/* .killTicket */.N6)(input.ticket, options.config), options.signal);
const killed = await (0,_ticket_errors_js__rspack_import_3/* .runTicketEffect */.n)(fromLedgerWhenStopped((0,_client_tickets_js__rspack_import_0/* .killTicket */.N6)(input.ticket, options.config), input.ticket, options.config, (request)=>({
request
})), options.signal);
if (typeof killed !== 'boolean') {
return {
daemon: 'stopped',
killed: false,
operation: 'kill',
request: killed.request,
summary: `${input.ticket}: nothing to kill (the daemon is stopped)`,
ticket: input.ticket
};
}
const request = await (0,_ticket_errors_js__rspack_import_3/* .runTicketEffect */.n)((0,_client_tickets_js__rspack_import_0/* .fetchTicket */.vA)(input.ticket, options.config), options.signal);
return {
daemon: 'running',
killed,
operation: 'kill',
request: requestForConsumer(request),
Expand Down Expand Up @@ -29712,7 +29726,7 @@ const KillDocument = ({ names, nowMs, result })=>/*#__PURE__*/ (0,react_jsx_runt
record: result.request
}),
/*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_14/* .Agent.Context */.g.Context, {
children: result.killed ? `Riders attached to ${result.ticket} return to their lane or fail with it. Confirm with ${names.result} ${result.ticket}, which shows status killed. Resubmit only if you still need the work.` : `Nothing changed. Use ${names.status} to find the ticket that holds the lane.`
children: result.killed ? `Riders attached to ${result.ticket} return to their lane or fail with it. Confirm with ${names.result} ${result.ticket}, which shows status killed. Resubmit only if you still need the work.` : result.daemon === 'stopped' ? 'Nothing changed. The daemon is stopped, so no ticket holds a lane.' : `Nothing changed. Use ${names.status} to find the ticket that holds the lane.`
})
]
});
Expand Down
Loading
Loading