@cello-protocol/daemon 0.0.187 → 0.0.189
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-id-migration.d.ts.map +1 -1
- package/dist/agent-id-migration.js +5 -0
- package/dist/agent-id-migration.js.map +1 -1
- package/dist/contact-pubkey-case.d.ts +65 -0
- package/dist/contact-pubkey-case.d.ts.map +1 -0
- package/dist/contact-pubkey-case.js +135 -0
- package/dist/contact-pubkey-case.js.map +1 -0
- package/dist/content-encryption-status.d.ts +14 -0
- package/dist/content-encryption-status.d.ts.map +1 -1
- package/dist/content-encryption-status.js +36 -0
- package/dist/content-encryption-status.js.map +1 -1
- package/dist/content-park-client.d.ts +31 -0
- package/dist/content-park-client.d.ts.map +1 -1
- package/dist/content-park-client.js +89 -4
- package/dist/content-park-client.js.map +1 -1
- package/dist/content-park.d.ts +1 -0
- package/dist/content-park.d.ts.map +1 -1
- package/dist/content-park.js +262 -20
- package/dist/content-park.js.map +1 -1
- package/dist/daemon.js +19 -1
- package/dist/daemon.js.map +1 -1
- package/dist/inbound-sessions.d.ts.map +1 -1
- package/dist/inbound-sessions.js +19 -5
- package/dist/inbound-sessions.js.map +1 -1
- package/dist/notification-handlers.d.ts.map +1 -1
- package/dist/notification-handlers.js +113 -2
- package/dist/notification-handlers.js.map +1 -1
- package/dist/orphan-triage.d.ts +130 -0
- package/dist/orphan-triage.d.ts.map +1 -0
- package/dist/orphan-triage.js +207 -0
- package/dist/orphan-triage.js.map +1 -0
- package/dist/quarantine-framing.d.ts +92 -0
- package/dist/quarantine-framing.d.ts.map +1 -0
- package/dist/quarantine-framing.js +111 -0
- package/dist/quarantine-framing.js.map +1 -0
- package/dist/refusal-reasons.d.ts +53 -0
- package/dist/refusal-reasons.d.ts.map +1 -1
- package/dist/refusal-reasons.js +109 -0
- package/dist/refusal-reasons.js.map +1 -1
- package/dist/seal-frontier-verify.d.ts.map +1 -1
- package/dist/seal-frontier-verify.js +24 -16
- package/dist/seal-frontier-verify.js.map +1 -1
- package/dist/sealed-leaf-set.d.ts +4 -4
- package/dist/sealed-leaf-set.d.ts.map +1 -1
- package/dist/sealed-leaf-set.js +11 -18
- package/dist/sealed-leaf-set.js.map +1 -1
- package/dist/session-content-handlers.d.ts.map +1 -1
- package/dist/session-content-handlers.js +92 -18
- package/dist/session-content-handlers.js.map +1 -1
- package/dist/session-node-manager.d.ts +284 -39
- package/dist/session-node-manager.d.ts.map +1 -1
- package/dist/session-node-manager.js +2620 -245
- package/dist/session-node-manager.js.map +1 -1
- package/dist/session-read-handlers.d.ts.map +1 -1
- package/dist/session-read-handlers.js +133 -4
- package/dist/session-read-handlers.js.map +1 -1
- package/dist/session-relay-client.d.ts +0 -7
- package/dist/session-relay-client.d.ts.map +1 -1
- package/dist/session-relay-client.js +52 -37
- package/dist/session-relay-client.js.map +1 -1
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +1 -0
- package/dist/vocabulary.js.map +1 -1
- package/package.json +5 -5
package/dist/content-park.js
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
// `contentHashFor`, so this file no longer computes a content hash without asking which algorithm
|
|
21
21
|
// the sender used (`DOD-M15-SEALWIRE-1` part B2a).
|
|
22
22
|
import { randomUUID } from "node:crypto";
|
|
23
|
-
import { ContentParkClient, ContentParkRefusedError } from "./content-park-client.js";
|
|
23
|
+
import { ContentParkClient, ContentParkRefusedError, ContentParkUnreachableError } from "./content-park-client.js";
|
|
24
24
|
import { extractErrorMessage } from "./error-message.js";
|
|
25
25
|
import { decodeParkEnvelope, sealParkEnvelope } from "./park-envelope.js";
|
|
26
26
|
import { contentHashFor, resolveContentHashAlg, isKnownContentHashAlg, CONTENT_HASH_ALGS } from "./wire-content-hash.js";
|
|
@@ -32,11 +32,100 @@ export function createContentPark(deps) {
|
|
|
32
32
|
// proven (J-CONTENT increment 1) before the send/receive-path integration. The relay
|
|
33
33
|
// multiaddr (with /p2p/<peerId>) comes from the session assignment's relay endpoint;
|
|
34
34
|
// dials run from the standing receiver (open-gater) node.
|
|
35
|
+
/**
|
|
36
|
+
* ⚠️ THE `/p2p/` SEGMENT IS SHAPE-CHECKED — review HIGH-1.
|
|
37
|
+
*
|
|
38
|
+
* This used to accept whatever followed `/p2p/`, so a truncated or mistyped multiaddr became a
|
|
39
|
+
* "peer id" that only `newStream` rejected, four layers down, as `invalid_peer_id` — and the
|
|
40
|
+
* deposit then reported it as a relay that could not be REACHED. A payload fault wearing a
|
|
41
|
+
* network fault's name is the substitution this milestone is named for.
|
|
42
|
+
*
|
|
43
|
+
* This proves the segment is a plausible base58btc peer id, NOT that the peer exists — the
|
|
44
|
+
* multibase/multihash decode still happens in the transport, and `invalid_peer_id` is still
|
|
45
|
+
* mapped honestly below for anything this misses. It is defence in depth on the cheapest fault,
|
|
46
|
+
* not a replacement for the mapping.
|
|
47
|
+
*/
|
|
48
|
+
const PEER_ID_SHAPE = /^(1[1-9A-HJ-NP-Za-km-z]{47,52}|Qm[1-9A-HJ-NP-Za-km-z]{44}|12D3Koo[1-9A-HJ-NP-Za-km-z]{45,50})$/;
|
|
35
49
|
const parseRelayPeer = (multiaddr) => {
|
|
36
50
|
if (!multiaddr)
|
|
37
51
|
return null;
|
|
38
|
-
|
|
39
|
-
|
|
52
|
+
// Up to the next `/`, so a CIRCUIT address (`…/p2p/<relay>/p2p-circuit/p2p/<target>`) yields the
|
|
53
|
+
// relay rather than `<relay>/p2p-circuit` — which the old form produced and only `newStream`
|
|
54
|
+
// ever rejected, four layers down, as an invalid peer id.
|
|
55
|
+
const peerId = multiaddr.split("/p2p/")[1]?.split("/")[0];
|
|
56
|
+
return peerId && PEER_ID_SHAPE.test(peerId) ? { peerId, addr: multiaddr } : null;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* DOD-M15-PARKCONN-1 review HIGH-1 — **ONE STREAM FAILURE IS SIX FAULTS, AND ONLY TWO ARE ABOUT
|
|
60
|
+
* REACHING THE RELAY.**
|
|
61
|
+
*
|
|
62
|
+
* `#open` wraps every `newStream` rejection, because the dial evidence it collects is worth having
|
|
63
|
+
* on all of them. Labelling them all `relay_unreachable` is a different question, and getting it
|
|
64
|
+
* wrong reproduces the exact defect this unit exists to remove: `invalid_peer_id` is a MALFORMED
|
|
65
|
+
* ARGUMENT, `node_stopped` is THIS daemon's own transport, and `protocol_not_supported` means the
|
|
66
|
+
* connection worked and the relay does not speak content-park. Telling any of those three
|
|
67
|
+
* "the relay could not be reached — retry once it is up" sends the operator to the network for a
|
|
68
|
+
* fault that is not there, and the guidance is the half an operator actually reads.
|
|
69
|
+
*
|
|
70
|
+
* Reasons come from `core/transport/src/node.ts` (`newStream` + `mapStreamError`). An unknown one
|
|
71
|
+
* gets a neutral label rather than a reachability claim, because the default is where this class
|
|
72
|
+
* of defect hides.
|
|
73
|
+
*/
|
|
74
|
+
const parkTransportFault = (reason, relayPeerId) => {
|
|
75
|
+
switch (reason) {
|
|
76
|
+
case "no_connection":
|
|
77
|
+
case "connection_lost":
|
|
78
|
+
return {
|
|
79
|
+
reason: `relay_unreachable:${reason}`,
|
|
80
|
+
guidance: `Relay ${relayPeerId} could not be reached from this daemon (${reason}), so nothing was deposited and no content was lost. ` +
|
|
81
|
+
`Retry once the relay is up. A conversation cannot be moved to a different relay from here — the park relay comes from the ` +
|
|
82
|
+
`session assignment — so if this relay stays down, broker a new session with cello_initiate_session.`,
|
|
83
|
+
};
|
|
84
|
+
case "invalid_peer_id":
|
|
85
|
+
return {
|
|
86
|
+
reason: "relay_address_invalid",
|
|
87
|
+
guidance: `The /p2p/ segment of the relayMultiaddr is not a usable peer id, so no relay was ever contacted. The relay is not at fault ` +
|
|
88
|
+
`and retrying will not help. Pass the relay endpoint from the session assignment verbatim — a truncated paste is the usual cause.`,
|
|
89
|
+
};
|
|
90
|
+
case "node_stopped":
|
|
91
|
+
return {
|
|
92
|
+
reason: "daemon_transport_stopped",
|
|
93
|
+
guidance: `This daemon's own transport is stopped, so the relay was never asked. Nothing was deposited. This is local: restart the ` +
|
|
94
|
+
`daemon, or start the agent with cello_start_agent if it was stopped deliberately.`,
|
|
95
|
+
};
|
|
96
|
+
case "protocol_not_supported":
|
|
97
|
+
return {
|
|
98
|
+
reason: "relay_protocol_unsupported",
|
|
99
|
+
guidance: `Relay ${relayPeerId} is CONNECTED and does not speak the content-park protocol — a version skew, not an outage. Retrying ` +
|
|
100
|
+
`will not change it. Use a relay running a build that carries content-park, or update this one.`,
|
|
101
|
+
};
|
|
102
|
+
case "limited_connection_refused":
|
|
103
|
+
return {
|
|
104
|
+
reason: "relay_limited_connection",
|
|
105
|
+
guidance: `Relay ${relayPeerId} allowed only a limited (relayed) connection and refused a content-park stream on it. CELLO's own paths ` +
|
|
106
|
+
`always permit limited connections, so this points at a defect on this side rather than at the relay; report it with the daemon log.`,
|
|
107
|
+
};
|
|
108
|
+
default:
|
|
109
|
+
return {
|
|
110
|
+
reason: `park_stream_failed:${reason}`,
|
|
111
|
+
guidance: `The content-park stream to relay ${relayPeerId} could not be opened (${reason}), and nothing was deposited. This daemon has no ` +
|
|
112
|
+
`specific remedy for that reason — the dial detail below is the evidence to report.`,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
/** The IPC refusal for a content-park stream that could not be opened, with the dial evidence. */
|
|
117
|
+
const parkTransportRefusal = (err) => {
|
|
118
|
+
const fault = parkTransportFault(err.reason, err.relayPeerId);
|
|
119
|
+
const dials = err.dialFailures.length > 0
|
|
120
|
+
? ` Dials tried: ${err.dialFailures.map((f) => `${f.addr} → ${f.error}`).join("; ")}.`
|
|
121
|
+
: ` No dial was refused, so the connection existed a moment ago or was never attempted.`;
|
|
122
|
+
return {
|
|
123
|
+
ok: false,
|
|
124
|
+
reason: fault.reason,
|
|
125
|
+
guidance: fault.guidance + dials,
|
|
126
|
+
// DoD 1: recoverable from the RESPONSE as well as the log — this caller has no daemon log.
|
|
127
|
+
dialFailures: err.dialFailures,
|
|
128
|
+
};
|
|
40
129
|
};
|
|
41
130
|
// MSG-001-3b (increment 3): RECOVER parked content. Pulls the recipient's parked entries,
|
|
42
131
|
// decrypts each IN-DAEMON (openContentSeal — the relay never sees plaintext), and routes the
|
|
@@ -77,6 +166,16 @@ export function createContentPark(deps) {
|
|
|
77
166
|
logger.warn("content.recover.refused", { agentName: recipientAgent.name, relayPeerId, reason: err.reason });
|
|
78
167
|
return { ok: false, reason: `relay_refused_pull:${err.reason}` };
|
|
79
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Review MEDIUM-2 — the transport wrap reaches here too, and rethrowing it made
|
|
171
|
+
* `content_park_recover` answer `internal_error` / "An unexpected error occurred" for a relay
|
|
172
|
+
* that is simply down. `content_park_recover` is one of the three failures this order was
|
|
173
|
+
* written from, so this is the live path, not a hypothetical.
|
|
174
|
+
*/
|
|
175
|
+
if (err instanceof ContentParkUnreachableError) {
|
|
176
|
+
const refusal = parkTransportRefusal(err);
|
|
177
|
+
return { ok: false, reason: refusal.reason, guidance: refusal.guidance };
|
|
178
|
+
}
|
|
80
179
|
throw err;
|
|
81
180
|
}
|
|
82
181
|
let recovered = 0;
|
|
@@ -299,13 +398,32 @@ export function createContentPark(deps) {
|
|
|
299
398
|
screenDeferred = true;
|
|
300
399
|
}
|
|
301
400
|
else if (terminalBlock) {
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
401
|
+
/**
|
|
402
|
+
* TERMINAL: the detector rejected the CONTENT itself, so identical bytes would be
|
|
403
|
+
* rejected identically forever — leaving it on the relay would restore the re-pull
|
|
404
|
+
* loop this drain exists to end. It is still dropped from the relay and still never
|
|
405
|
+
* annexed (the annex is a READABLE record of the conversation, and this was never part
|
|
406
|
+
* of it).
|
|
407
|
+
*
|
|
408
|
+
* ⚠️ **BUT IT IS NO LONGER DISCARDED — review F6.** This comment used to end *"and do
|
|
409
|
+
* NOT store it"*, and that was the last route in the tree that threw a refused message
|
|
410
|
+
* away. `DOD-M15-REFUSEDEVIDENCE-1` retains every other one, and shipped guidance now
|
|
411
|
+
* tells operators that refused messages are kept — so this branch falsified a promise
|
|
412
|
+
* on the case with the most evidence value in the product: hostile bytes aimed at a
|
|
413
|
+
* conversation that has already been sealed.
|
|
414
|
+
*
|
|
415
|
+
* Quarantined, not annexed. The two are different answers to different questions: the
|
|
416
|
+
* annex is what arrived late and is readable, quarantine is what was refused and is
|
|
417
|
+
* withheld. Bounded by the same tier cap and deduped by content, so the loop stays
|
|
418
|
+
* closed.
|
|
419
|
+
*/
|
|
420
|
+
const kept = sessionNodeManager.quarantineRefusedInbound(recipientAgent.name, e.sessionIdHex, verdict.reason ?? "inbound_screen_blocked", env.content, e.contentHashHex, env.senderPubkey ? Buffer.from(env.senderPubkey).toString("hex") : null, correlationId);
|
|
306
421
|
logger.warn("content.recover.annex.screened_out", {
|
|
307
422
|
sessionId: e.sessionIdHex, contentHash: e.contentHashHex, agentName: recipientAgent.name,
|
|
308
|
-
|
|
423
|
+
retained: kept !== null,
|
|
424
|
+
impact: kept !== null
|
|
425
|
+
? "content was terminally blocked by the inbound screen — NOT annexed, and RETAINED as quarantined evidence"
|
|
426
|
+
: "content was terminally blocked by the inbound screen and could NOT be retained — see session.content.quarantine.skipped or .failed",
|
|
309
427
|
correlationId,
|
|
310
428
|
});
|
|
311
429
|
screenedOut = true;
|
|
@@ -518,7 +636,7 @@ export function createContentPark(deps) {
|
|
|
518
636
|
* `ciphertext` (the raw path) is kept for the one caller that wants byte fidelity through the
|
|
519
637
|
* relay rather than envelope semantics.
|
|
520
638
|
*/
|
|
521
|
-
|
|
639
|
+
const runDeposit = async (params, _connectionId) => {
|
|
522
640
|
/**
|
|
523
641
|
* `Buffer.from(x, "hex")` TRUNCATES at the first invalid pair instead of throwing — the trap
|
|
524
642
|
* `park-envelope.ts` already documents. Unvalidated, a typo'd `content` is signed and sealed at
|
|
@@ -571,8 +689,54 @@ export function createContentPark(deps) {
|
|
|
571
689
|
contentHashAlg = rawAlg;
|
|
572
690
|
}
|
|
573
691
|
const node = sessionNodeManager.getStandingReceiverNode();
|
|
574
|
-
if (!node)
|
|
575
|
-
|
|
692
|
+
if (!node) {
|
|
693
|
+
/**
|
|
694
|
+
* DOD-M15-PARKCONN-1 — **NAME THE CAUSE, NOT THE EXIT POINT** (Invariant 3).
|
|
695
|
+
*
|
|
696
|
+
* `standing_receiver_unavailable` is the label that already misnamed this incident 102
|
|
697
|
+
* times, which is why `standingReceiverAbsenceReason()` exists — and `recoverParkedFromRelay`
|
|
698
|
+
* has used it since M12-P12 while this handler kept returning the bare label. The four causes
|
|
699
|
+
* demand opposite responses: `standing_receiver_creating` clears in seconds and a retry
|
|
700
|
+
* works; `agent_offline` never clears until the agent is started; `daemon_shutting_down`
|
|
701
|
+
* means stop.
|
|
702
|
+
*
|
|
703
|
+
* The wire reason is unchanged — a caller matching on it keeps working — and the cause rides
|
|
704
|
+
* alongside, which is the same shape the send path settled on.
|
|
705
|
+
*/
|
|
706
|
+
/**
|
|
707
|
+
* ⚠️ THE GUESS USES THE SIGNABLE LIST, review MEDIUM-4 — the same filter the signing branch
|
|
708
|
+
* below applies, and for the same reason it documents: a `load_failed` agent holds no key
|
|
709
|
+
* provider, so counting it makes a daemon with ONE healthy agent say it cannot tell which.
|
|
710
|
+
*
|
|
711
|
+
* And a name that matches no agent is not an offline agent, review LOW-6:
|
|
712
|
+
* `standingReceiverAbsenceReason("typo")` returns `agent_offline` because the name is simply
|
|
713
|
+
* absent from the wanting-a-receiver set, so the operator was told to start an agent that
|
|
714
|
+
* does not exist — a real verb pointed at nothing.
|
|
715
|
+
*/
|
|
716
|
+
const signableAgents = agents.filter((a) => a.state !== "load_failed");
|
|
717
|
+
const namedAgent = senderAgentName
|
|
718
|
+
? (signableAgents.some((a) => a.name === senderAgentName) ? senderAgentName : undefined)
|
|
719
|
+
: (signableAgents.length === 1 ? signableAgents[0].name : undefined);
|
|
720
|
+
const cause = namedAgent
|
|
721
|
+
? sessionNodeManager.standingReceiverAbsenceReason(namedAgent)
|
|
722
|
+
: senderAgentName
|
|
723
|
+
? "sender_agent_not_found"
|
|
724
|
+
// Review LOW-5: zero is not "more than one". An agentless daemon was being told it had
|
|
725
|
+
// several and could not say which.
|
|
726
|
+
: signableAgents.length === 0
|
|
727
|
+
? "no_loadable_agent"
|
|
728
|
+
: "unknown_agent";
|
|
729
|
+
const guidanceByCause = {
|
|
730
|
+
standing_receiver_creating: "The standing receiver is still being built; retry this deposit in a few seconds.",
|
|
731
|
+
agent_offline: `Agent '${namedAgent}' is not online, so this daemon has no node to deposit from. Start it with cello_start_agent.`,
|
|
732
|
+
no_standing_receiver: "No agent on this daemon has a standing receiver; start an agent with cello_start_agent first.",
|
|
733
|
+
daemon_shutting_down: "The daemon is shutting down — nothing was deposited, and retrying will not help until it is back up.",
|
|
734
|
+
unknown_agent: `This daemon has no standing receiver and ${agents.filter((a) => a.state !== "load_failed").length} signable agents, so it cannot say which one is missing it; pass senderAgentName, or start an agent with cello_start_agent.`,
|
|
735
|
+
sender_agent_not_found: `This daemon has no loadable agent named '${senderAgentName}', so there is nothing to check a standing receiver for. Check the name — cello_agents lists what this daemon holds.`,
|
|
736
|
+
no_loadable_agent: "This daemon has no loadable agent at all, so it can never have a standing receiver. Create and register one, then start it with cello_start_agent.",
|
|
737
|
+
};
|
|
738
|
+
return { ok: false, reason: "standing_receiver_unavailable", cause, guidance: guidanceByCause[cause] ?? "The daemon's standing receiver is not ready yet; retry after startup." };
|
|
739
|
+
}
|
|
576
740
|
let payload;
|
|
577
741
|
if (hasContent) {
|
|
578
742
|
const content = hexOrNull(params?.content);
|
|
@@ -638,13 +802,71 @@ export function createContentPark(deps) {
|
|
|
638
802
|
}
|
|
639
803
|
payload = Buffer.from(ciphertext, "hex");
|
|
640
804
|
}
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
805
|
+
/**
|
|
806
|
+
* DOD-M15-PARKCONN-1 — **THE ODD HANDLER OUT NOW REFUSES LIKE ITS SIBLINGS, AND SAYS SO ONCE.**
|
|
807
|
+
*
|
|
808
|
+
* Every other exit above returns `{ ok: false, reason, guidance }`; this one ended in a bare
|
|
809
|
+
* `return await client.deposit(...)` with no catch and no log. An unreachable relay — the
|
|
810
|
+
* ordinary condition park exists for — therefore left the daemon as a THROW, which IPC shapes
|
|
811
|
+
* into `internal_error` + "An unexpected error occurred. Check daemon logs for details." The
|
|
812
|
+
* daemon logs held nothing either: this handler logged NOTHING AT ALL, which is why
|
|
813
|
+
* `019-PARKERROR` went looking for a deposit line and found none.
|
|
814
|
+
*
|
|
815
|
+
* Only `ContentParkUnreachableError` is converted. Anything else still throws, because a
|
|
816
|
+
* blanket catch here would turn a genuine defect into a tidy refusal — the failure this
|
|
817
|
+
* milestone is named for.
|
|
818
|
+
*/
|
|
819
|
+
const client = newParkClient({ relayPeerId: relay.peerId, relayAddrs: [relay.addr], logger });
|
|
820
|
+
try {
|
|
821
|
+
return await client.deposit(node, {
|
|
822
|
+
recipientPubkey: Buffer.from(recipientPubkey, "hex"),
|
|
823
|
+
contentHash: Buffer.from(contentHash, "hex"),
|
|
824
|
+
sessionId: Buffer.from(sessionId, "hex"),
|
|
825
|
+
ciphertext: payload,
|
|
826
|
+
});
|
|
827
|
+
}
|
|
828
|
+
catch (err) {
|
|
829
|
+
// Only the transport wrap is converted. A blanket catch here would turn a genuine defect
|
|
830
|
+
// into a tidy refusal — the failure this milestone is named for.
|
|
831
|
+
if (!(err instanceof ContentParkUnreachableError))
|
|
832
|
+
throw err;
|
|
833
|
+
return parkTransportRefusal(err);
|
|
834
|
+
}
|
|
835
|
+
};
|
|
836
|
+
/**
|
|
837
|
+
* ⚠️ **THE RESULT LOG WRAPS THE WHOLE HANDLER, review MEDIUM-3.**
|
|
838
|
+
*
|
|
839
|
+
* It used to sit beside the two exits that reach the relay, so eleven refusals — every bad
|
|
840
|
+
* argument, `agent_not_found`, `session_not_found`, `session_recipient_mismatch` — still
|
|
841
|
+
* returned in total silence. That is the same hole `019-PARKERROR` fell into in this very
|
|
842
|
+
* handler, for a different reason: an operator greps for a deposit line and finds nothing.
|
|
843
|
+
*
|
|
844
|
+
* Wrapping rather than sprinkling is deliberate. A call per exit drifts the moment someone adds
|
|
845
|
+
* a fourteenth; a wrapper cannot miss one.
|
|
846
|
+
*/
|
|
847
|
+
handlers.set("content_park_deposit", async (params, connectionId) => {
|
|
848
|
+
const res = (await runDeposit(params, connectionId));
|
|
849
|
+
const line = {
|
|
850
|
+
// Read off the CALLER's params: a refusal can fire before either is parsed, and a log line
|
|
851
|
+
// that omits which deposit it is about cannot be correlated with anything.
|
|
852
|
+
relayMultiaddr: typeof params?.["relayMultiaddr"] === "string" ? params["relayMultiaddr"] : undefined,
|
|
853
|
+
sessionId: typeof params?.["sessionId"] === "string" ? params["sessionId"] : undefined,
|
|
854
|
+
contentHash: typeof params?.["contentHash"] === "string" ? params["contentHash"] : undefined,
|
|
855
|
+
ok: res.ok === true,
|
|
856
|
+
...(res.reason !== undefined ? { reason: res.reason } : {}),
|
|
857
|
+
...(res.cause !== undefined ? { cause: res.cause } : {}),
|
|
858
|
+
// Review LOW-8: the relay's own "when" already rides on the response; dropping it from the
|
|
859
|
+
// log leaves an aggregated log unable to say when a throttled deposit clears.
|
|
860
|
+
...(res.retryAfterMs !== undefined ? { retryAfterMs: res.retryAfterMs } : {}),
|
|
861
|
+
};
|
|
862
|
+
// NOT `content.park.deposit.result` — the ContentParkClient already emits that name one layer
|
|
863
|
+
// down, and two events from different layers under one name make an aggregated log unreadable
|
|
864
|
+
// (the same review finding as `content.park.pull.refused_by_relay`).
|
|
865
|
+
if (line.ok)
|
|
866
|
+
logger.info("content.park.deposit.ipc.result", line);
|
|
867
|
+
else
|
|
868
|
+
logger.warn("content.park.deposit.ipc.result", line);
|
|
869
|
+
return res;
|
|
648
870
|
});
|
|
649
871
|
handlers.set("content_park_pull", async (params, _connectionId) => {
|
|
650
872
|
const relay = parseRelayPeer(params?.relayMultiaddr);
|
|
@@ -662,12 +884,22 @@ export function createContentPark(deps) {
|
|
|
662
884
|
const node = sessionNodeManager.getStandingReceiverNode();
|
|
663
885
|
if (!node)
|
|
664
886
|
return { ok: false, reason: "standing_receiver_unavailable", guidance: "The daemon's standing receiver is not ready yet; retry after startup." };
|
|
665
|
-
|
|
887
|
+
// Review LOW-9: the seam, like every other client in this file. This handler was still
|
|
888
|
+
// constructing directly, which is why its `#open` failure path had no unit coverage.
|
|
889
|
+
const client = newParkClient({ relayPeerId: relay.peerId, relayAddrs: [relay.addr], logger });
|
|
666
890
|
let entries;
|
|
667
891
|
try {
|
|
668
892
|
entries = await client.pull(node, Buffer.from(recipientPubkey, "hex"), kp);
|
|
669
893
|
}
|
|
670
894
|
catch (err) {
|
|
895
|
+
/**
|
|
896
|
+
* Review MEDIUM-2 — `#open` is shared, so this handler now receives the same transport wrap
|
|
897
|
+
* the deposit handler does. Rethrowing it turned an unreachable relay into
|
|
898
|
+
* `internal_error` + "An unexpected error occurred" — the exact response this unit exists to
|
|
899
|
+
* abolish, one handler over, on a path the order's own evidence names.
|
|
900
|
+
*/
|
|
901
|
+
if (err instanceof ContentParkUnreachableError)
|
|
902
|
+
return parkTransportRefusal(err);
|
|
671
903
|
// DOD-M15-RELAYAUTH-1 review HIGH-3: a refusal must not be reported as an empty list.
|
|
672
904
|
if (err instanceof ContentParkRefusedError) {
|
|
673
905
|
return {
|
|
@@ -711,7 +943,17 @@ export function createContentPark(deps) {
|
|
|
711
943
|
// where it helps the operator without breaking a consumer that branches on the reason.
|
|
712
944
|
const noReceiver = new Set(["standing_receiver_creating", "agent_offline", "no_standing_receiver", "daemon_shutting_down"]);
|
|
713
945
|
const wireReason = noReceiver.has(res.reason) ? "standing_receiver_unavailable" : res.reason;
|
|
714
|
-
|
|
946
|
+
/**
|
|
947
|
+
* Review MEDIUM-2 — a guidance the drain already computed WINS, and the bare "Recover
|
|
948
|
+
* failed." is the last resort rather than the answer for everything the table misses. That
|
|
949
|
+
* default is not an affordance: it names no next step, which is what Invariant 4 forbids on
|
|
950
|
+
* exactly this kind of response.
|
|
951
|
+
*/
|
|
952
|
+
return {
|
|
953
|
+
ok: false,
|
|
954
|
+
reason: wireReason,
|
|
955
|
+
guidance: res.guidance ?? guidanceByReason[res.reason] ?? `Recover failed (${res.reason}) and this daemon has no specific remedy for that reason. The daemon log holds the detail — report it with the reason above.`,
|
|
956
|
+
};
|
|
715
957
|
}
|
|
716
958
|
/**
|
|
717
959
|
* `refusals` REACHES THE CALLER — review B2a pass-2 F3, "no consumer, no ship".
|
package/dist/content-park.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-park.js","sourceRoot":"","sources":["../src/content-park.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"content-park.js","sourceRoot":"","sources":["../src/content-park.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon.js
CHANGED
|
@@ -4803,8 +4803,26 @@ async function startDaemonHoldingLock(config, singletonLock) {
|
|
|
4803
4803
|
*/
|
|
4804
4804
|
const store = {};
|
|
4805
4805
|
const result = await fallbackNoticeStore.run(store, () => handler(params, connectionId));
|
|
4806
|
+
/**
|
|
4807
|
+
* ⚠️ **THE NOTICE GOES FIRST, AND THAT ORDERING IS A SECURITY PROPERTY — review F2.**
|
|
4808
|
+
*
|
|
4809
|
+
* It used to be spread LAST, which reads as harmless because these keys are additive. It is
|
|
4810
|
+
* not: `cello_get_quarantined` returns a REFUSED MESSAGE as its final key, and the framing
|
|
4811
|
+
* that makes hostile content safe to read has NO CLOSING DELIMITER — the reader's one
|
|
4812
|
+
* structural guarantee is that nothing follows the payload. Three keys of genuine
|
|
4813
|
+
* CELLO-authored prose landing after it is exactly the shape a forged ending imitates, and
|
|
4814
|
+
* once a reader has seen real framing follow the payload, a forged one is credible.
|
|
4815
|
+
*
|
|
4816
|
+
* Not a corner case: `withIpc` in the CLI never sends `ipc.connect`, so a single-agent
|
|
4817
|
+
* daemon takes the sole-online fallback on EVERY plain `cello quarantined` invocation.
|
|
4818
|
+
*
|
|
4819
|
+
* Spreading first is safe in general and needs no per-handler knowledge: these keys cannot
|
|
4820
|
+
* collide with a handler's own (a collision would mean a handler already answered the
|
|
4821
|
+
* question the notice exists to answer), and every response then keeps its own key order at
|
|
4822
|
+
* the tail — which is where a payload-terminal key has to stay.
|
|
4823
|
+
*/
|
|
4806
4824
|
const annotated = store.notice && result !== null && typeof result === "object" && !Array.isArray(result)
|
|
4807
|
-
? { ...
|
|
4825
|
+
? { ...store.notice, ...result }
|
|
4808
4826
|
: result;
|
|
4809
4827
|
// Default to "cli": a connection that never sent ipc.connect has no recorded surface, and
|
|
4810
4828
|
// the CLI verb is the safe answer — it is at least a real command an operator can run,
|