ui(api): regen types + drop perExchangeLingerSeconds from SPA
Follows backend removal of the field (Task 3.1). Typechecker confirms zero remaining references. The ExchangeMatchForm linger-input is visually removed in Task 4.4. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
File diff suppressed because one or more lines are too long
3
ui/src/api/schema.d.ts
vendored
3
ui/src/api/schema.d.ts
vendored
@@ -2334,8 +2334,6 @@ export interface components {
|
||||
threshold?: number;
|
||||
/** Format: int32 */
|
||||
windowSeconds?: number;
|
||||
/** Format: int32 */
|
||||
perExchangeLingerSeconds?: number;
|
||||
/** @enum {string} */
|
||||
readonly kind?: "ROUTE_METRIC" | "EXCHANGE_MATCH" | "AGENT_STATE" | "AGENT_LIFECYCLE" | "DEPLOYMENT_STATE" | "LOG_PATTERN" | "JVM_METRIC";
|
||||
});
|
||||
@@ -2636,6 +2634,7 @@ export interface components {
|
||||
limit?: number;
|
||||
sortField?: string;
|
||||
sortDir?: string;
|
||||
afterExecutionId?: string;
|
||||
environment?: string;
|
||||
};
|
||||
ExecutionSummary: {
|
||||
|
||||
@@ -17,11 +17,10 @@ export function ConditionStep({ form, setForm }: { form: FormState; setForm: (f:
|
||||
const prev = form.condition as Record<string, unknown>;
|
||||
const base: Record<string, unknown> = { kind, scope: prev.scope };
|
||||
// EXCHANGE_MATCH must carry a fireMode — the backend ctor now rejects null.
|
||||
// Seed PER_EXCHANGE + 300s linger so a user can save without touching every
|
||||
// sub-field (matches what the form's Select displays by default).
|
||||
// Seed PER_EXCHANGE so a user can save without touching every sub-field
|
||||
// (matches what the form's Select displays by default).
|
||||
if (kind === 'EXCHANGE_MATCH') {
|
||||
base.fireMode = 'PER_EXCHANGE';
|
||||
base.perExchangeLingerSeconds = 300;
|
||||
base.filter = {};
|
||||
}
|
||||
if (kind === 'AGENT_LIFECYCLE') {
|
||||
|
||||
@@ -34,15 +34,6 @@ export function ExchangeMatchForm({ form, setForm }: { form: FormState; setForm:
|
||||
options={STATUSES}
|
||||
/>
|
||||
</FormField>
|
||||
{c.fireMode === 'PER_EXCHANGE' && (
|
||||
<FormField label="Linger seconds (default 300)">
|
||||
<Input
|
||||
type="number"
|
||||
value={(c.perExchangeLingerSeconds as number | undefined) ?? 300}
|
||||
onChange={(e) => patch({ perExchangeLingerSeconds: Number(e.target.value) })}
|
||||
/>
|
||||
</FormField>
|
||||
)}
|
||||
{c.fireMode === 'COUNT_IN_WINDOW' && (
|
||||
<>
|
||||
<FormField label="Threshold (matches)">
|
||||
|
||||
@@ -69,14 +69,13 @@ describe('validateStep', () => {
|
||||
expect(errs.some((e) => /Window/.test(e))).toBe(true);
|
||||
});
|
||||
|
||||
it('passes when EXCHANGE_MATCH PER_EXCHANGE has linger seconds', () => {
|
||||
it('passes when EXCHANGE_MATCH PER_EXCHANGE has a fire mode', () => {
|
||||
const f = initialForm();
|
||||
f.conditionKind = 'EXCHANGE_MATCH';
|
||||
f.condition = {
|
||||
kind: 'EXCHANGE_MATCH',
|
||||
scope: {},
|
||||
fireMode: 'PER_EXCHANGE',
|
||||
perExchangeLingerSeconds: 300,
|
||||
} as unknown as typeof f.condition;
|
||||
expect(validateStep('condition', f)).toEqual([]);
|
||||
});
|
||||
|
||||
@@ -151,10 +151,6 @@ export function validateStep(step: WizardStep, f: FormState): string[] {
|
||||
const c = f.condition as Record<string, unknown>;
|
||||
if (!c.fireMode) {
|
||||
errs.push('Fire mode is required.');
|
||||
} else if (c.fireMode === 'PER_EXCHANGE') {
|
||||
if (c.perExchangeLingerSeconds == null) {
|
||||
errs.push('Linger seconds is required for PER_EXCHANGE.');
|
||||
}
|
||||
} else if (c.fireMode === 'COUNT_IN_WINDOW') {
|
||||
if (c.threshold == null) errs.push('Threshold is required for COUNT_IN_WINDOW.');
|
||||
if (c.windowSeconds == null) errs.push('Window (seconds) is required for COUNT_IN_WINDOW.');
|
||||
|
||||
Reference in New Issue
Block a user