Skip to content

build(contracts): regenerate for the wal_checkpoint_pinned finding - #4177

Merged
ScriptedAlchemy merged 1 commit into
masterfrom
fix/regen-wal-pinned-contracts
Oct 17, 2026
Merged

ScriptedAlchemy merged 1 commit into
masterfrom
fix/regen-wal-pinned-contracts

Conversation

@ScriptedAlchemy

@ScriptedAlchemy ScriptedAlchemy commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

#4164 added DoctorStorageFindingKindV1::WalCheckpointPinned without regenerating the generated contract outputs, so contracts:check fails on master and every PR that touches the dashboard inherits it. This commits the regenerated dashboard contracts, SDK operations, and ChatGPT extension bundle. Generated files only.

Test plan

  • pnpm --dir dashboard run contracts:check
  • node plugin/chatgpt-extension/scripts/build.mjs --check
  • dashboard typecheck and vitest (2094 passed)

Devin Review

#4164 added DoctorStorageFindingKindV1::WalCheckpointPinned without regenerating the dashboard contracts, the TypeScript SDK operations, or the ChatGPT extension bundle, so contracts:check fails on master.
@changeset-bot

changeset-bot Bot commented Oct 17, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: a757789

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@ScriptedAlchemy
ScriptedAlchemy merged commit 29dced0 into master Oct 17, 2026
2 of 6 checks passed

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Devin Review

};

export type DoctorStorageFindingKindV1 = "over_budget_store" | "orphan_store" | "incident_debris_present" | "retention_backlog" | "table_growth" | "pending_schema_migration";
export type DoctorStorageFindingKindV1 = "over_budget_store" | "orphan_store" | "incident_debris_present" | "retention_backlog" | "table_growth" | "pending_schema_migration" | "wal_checkpoint_pinned";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 WAL checkpoint producer disappears from coverage

When Doctor reports wal_checkpoint_pinned, its producer never appears in storage coverage. STORAGE_KINDS still lists six kinds, so producer counts exclude the WAL checkpoint diagnosis.

Learn more

The dashboard's storage findings payload contains both report entries and a per-kind producer status list. with_storage_kind_statuses builds that list from STORAGE_KINDS, which has only the previous six kinds. The new kind reaches the entries, but never gets a source coverage status. StorageSourceStatuses cannot show its producer, and findingsSummary derives its producer count and denominator from that list.

Example: Doctor reports one degraded wal_checkpoint_pinned entry. Its card appears, but the storage producer list still has six rows and no WAL checkpoint row.

Recommended fix: Add WalCheckpointPinned to STORAGE_KINDS and extend the route tests to assert that this new kind appears with the correct source state and observed entry count.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

observability read models. The set is closed and grows only through a future
versioned enum, never by widening an existing subclass. */
export const DoctorStorageFindingKindV1Schema: z.ZodUnion<[z.ZodLiteral<"over_budget_store">, z.ZodLiteral<"orphan_store">, z.ZodLiteral<"incident_debris_present">, z.ZodLiteral<"retention_backlog">, z.ZodLiteral<"table_growth">, z.ZodLiteral<"pending_schema_migration">]> = z.union([z.literal("over_budget_store"), z.literal("orphan_store"), z.literal("incident_debris_present"), z.literal("retention_backlog"), z.literal("table_growth"), z.literal("pending_schema_migration")]);
export const DoctorStorageFindingKindV1Schema: z.ZodUnion<[z.ZodLiteral<"over_budget_store">, z.ZodLiteral<"orphan_store">, z.ZodLiteral<"incident_debris_present">, z.ZodLiteral<"retention_backlog">, z.ZodLiteral<"table_growth">, z.ZodLiteral<"pending_schema_migration">, z.ZodLiteral<"wal_checkpoint_pinned">]> = z.union([z.literal("over_budget_store"), z.literal("orphan_store"), z.literal("incident_debris_present"), z.literal("retention_backlog"), z.literal("table_growth"), z.literal("pending_schema_migration"), z.literal("wal_checkpoint_pinned")]);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 WAL checkpoint findings display as unsupported

When wal_checkpoint_pinned reaches the dashboard, storageFindingLabel returns “Unsupported storage finding.” The label map omits this valid kind, hiding its diagnosis across storage and evidence views.

Learn more

The Doctor report uses a typed storage kind for each storage finding. The new variant now passes the dashboard decoder, but storageFindingLabel has no label for it and returns its unsupported fallback. StorageFindingCard and the exact evidence views reuse that label, so a real diagnosis appears unsupported to readers.

Example: A report entry with storage_kind: 'wal_checkpoint_pinned' renders a degraded finding titled “Unsupported storage finding,” rather than “WAL checkpoint pinned.”

Recommended fix: Add a wal_checkpoint_pinned label to FINDING_LABELS and cover the new value in the storage presentation tests.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant