K25 (D-33): the node-engine's first-views answers entries and wants, and the seat gains entry-again

Builds: design 47 G §698 (§683, §422)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
2026-11-11 21:36:34 +01:00
parent b76e52d30a
commit 78e61c9437
6 changed files with 308 additions and 3 deletions
+53
View File
@@ -20,6 +20,7 @@ export declare const verbs: {
readonly seatListAgain: "seat-list-again";
readonly firstViews: "first-views";
readonly firstViewAgain: "first-view-again";
readonly entryAgain: "entry-again";
readonly processBuilds: "process-builds";
};
@@ -1021,10 +1022,32 @@ export type SeatListAgainAnswer = SeatList;
export interface FirstViewsInput {
}
export interface FirstViewsAnswerEntriesItem {
/** the build's fingerprint */
"fingerprint": string;
/** since when it stands in that state, RFC 3339 */
"since": string;
/** asked of the indexer, answered, or not found by it */
"state": "asked" | "answered" | "not-found";
}
export interface FirstViewsAnswerWantsItem {
/** the fingerprint wanted */
"fingerprint": string;
/** since when the want is kept, RFC 3339 */
"kept-since": string;
/** the module the want is of */
"module": string;
}
/** is what first-views answers. */
export interface FirstViewsAnswer {
/** one row per entry the node-engine keeps of a module's build by its fingerprint: when it asked the indexer's entry and where that stands (design 47 G 698) */
"entries": FirstViewsAnswerEntriesItem[];
/** one status per owner and state followed, as mesh-sdk's views runtime keeps it */
"first-views": Record<string, unknown>[];
/** the wants the node-engine keeps (design 47 G 683, 698) */
"wants": FirstViewsAnswerWantsItem[];
}
/** is what first-view-again takes. */
@@ -1061,6 +1084,36 @@ export interface FirstViewAgainAnswer {
"read": string;
}
/** is what entry-again takes. */
export interface EntryAgainInput {
/** the build's fingerprint, as first-views' entries name it */
"fingerprint": string;
/** why it is asked again, in plain words */
"why": string;
}
/** the hand ask written */
export interface EntryAgainAnswerAsked {
/** when it was asked, RFC 3339 */
"at": string;
/** the caller the runtime proved */
"by": string;
/** the build's fingerprint */
"fingerprint": string;
/** the layout's version */
"v": number;
/** why it was asked again */
"why": string;
}
/** is what entry-again answers. */
export interface EntryAgainAnswer {
/** the hand ask written */
"asked": EntryAgainAnswerAsked;
/** the verb that reads the status, first-views */
"read": string;
}
/** is what process-builds takes. */
export interface ProcessBuildsInput {
/** only this module's processes */
+1
View File
@@ -20,6 +20,7 @@ export const verbs = {
seatListAgain: "seat-list-again",
firstViews: "first-views",
firstViewAgain: "first-view-again",
entryAgain: "entry-again",
processBuilds: "process-builds",
};