feat: match fleet to blueprint targets exactly
Add an optional exact blueprint mode with keep/create/remove previews, atomic queueing, cancellation of unstarted excess creations, and persistent dependencies for safe port reuse. Track removals alongside creations and preserve fill mode as the default. Validation: type check, production build, and 103 deployment tests passed. The full suite has one telemetry assertion failure also reproduced on the previous commit. Fixes #42
This commit is contained in:
@@ -32,11 +32,16 @@ export interface BlueprintSummary {
|
||||
totalServers: number;
|
||||
}
|
||||
|
||||
export type CollectionMode = 'fill' | 'exact';
|
||||
|
||||
export interface CollectionPreview {
|
||||
id: string;
|
||||
expiresAt: string;
|
||||
blueprintName: string;
|
||||
launchConcurrency: number;
|
||||
mode: CollectionMode;
|
||||
retainedServers: string[];
|
||||
removals: { name: string; reason: string }[];
|
||||
entries: { count: number; existing: number; missing: number; existingServers: string[];
|
||||
coverage: { name: string; health: string; href: string }[]; recipe: LaunchRecipeSummary }[];
|
||||
servers: { entryIndex: number; name: string | null; port: number | null; hasSavedKey: boolean }[];
|
||||
@@ -55,12 +60,14 @@ export interface CollectionSummary {
|
||||
queued: number;
|
||||
provisioning: number;
|
||||
verifying: number;
|
||||
mode: CollectionMode;
|
||||
}
|
||||
|
||||
export interface CollectionDetail {
|
||||
collection: CollectionSummary;
|
||||
retainedServers: string[];
|
||||
queue: { concurrency: number; active: { id: string; server: string; state: string; stage: string }[]; queued: number };
|
||||
servers: { id: string; server: string; port: number; map_slug: string; state: string; stage: string;
|
||||
servers: { id: string; server: string; action: 'create' | 'destroy'; port: number | null; map_slug: string | null; state: string; stage: string;
|
||||
started_at: string; finished_at: string | null; error: string | null; server_exists: number; queuePosition: number | null }[];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user