Skip to content

fix(web): the Deploy card explains a rejected package (CL-8579) - #931

Merged
TheGreatAxios merged 2 commits into
mainfrom
cl-8579-deploy-card-rejection
Sep 18, 2026
Merged

TheGreatAxios merged 2 commits into
mainfrom
cl-8579-deploy-card-rejection

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Contributor

Summary

  • A Deploy package attempt with a wrong or missing field used to vanish silently — the person just saw two code blocks and no button, with no explanation.
  • deployablePackage now distinguishes a valid package, a named rejection, and "not a package attempt at all," so the person always sees why a Deploy card didn't appear.

Changes

  • deployablePackage / deployablePackageFromBody / resolveMessagePackage return a PackageOutcome: a parsed package, { reason } naming the missing or invalid field in plain words, or null when neither contract file is present.
  • name now comes from definition.json, falling back to package.json's name when definition.json omits it; package.json is parsed with arktype too, and unknown fields anywhere are ignored rather than fatal.
  • message-attachments.tsx renders a small rejection card in the Deploy card's visual family, naming the reason, with no Deploy button.

Testing

  • bun test apps/web/src/chat/deployable-package.test.ts
  • bun run check (typecheck, lint, fmt, unit tests) from the repo root

@linear-code

linear-code Bot commented Sep 18, 2026

Copy link
Copy Markdown

CL-8579

@TheGreatAxios
TheGreatAxios merged commit 07ab057 into main Sep 18, 2026
4 checks passed
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