Skip to content

🍕 fix(manifest): trim description to 121 chars + add build-time guard#6

Merged
jjpaulino merged 1 commit into
masterfrom
fix/manifest-description-length
May 13, 2026
Merged

🍕 fix(manifest): trim description to 121 chars + add build-time guard#6
jjpaulino merged 1 commit into
masterfrom
fix/manifest-description-length

Conversation

@jjpaulino
Copy link
Copy Markdown
Member

Summary

Resolves the Chrome Web Store upload rejection:

The description field in manifest is too long: 142. It exceeds maximum size limit of 132 characters.

The store caps manifest.description at 132 chars. Ours was 142.

Changes

1. Trim the description (142 → 121 chars)

Description Length
Before A modern Chrome extension for exploring Clay CMS pages — visualize component boundaries, inspect data, and navigate the page/layout hierarchy. 142 ❌
After Modern devtools for Clay CMS pages: visualize component boundaries, inspect data, and navigate the page/layout hierarchy. 121 ✅

11 chars under the limit; meaning preserved.

2. Build-time guard in src/manifest.ts

const MAX_DESCRIPTION_CHARS = 132;
if (pkg.description.length > MAX_DESCRIPTION_CHARS) {
  throw new Error(
    `package.json "description" is ${pkg.description.length} chars; Chrome Web Store limit is ${MAX_DESCRIPTION_CHARS}.`
  );
}

Vite imports src/manifest.ts during build, so this throws at npm run build time (and therefore in CI) the moment anyone bumps the description past 132 chars. We never get into an upload-rejection loop again.

3. No version bump

The previous v2.0.2 upload was rejected by the store and never recorded, so 2.0.2 is still an available slot. No need to burn a patch number on this.

Verification

$ unzip -p clay-slip-v2.0.2.zip manifest.json | jq -r '.description | length'
121
  • npm run validate (84 tests, lint, format, typecheck) — passes
  • npm run build — builds, manifest description is 121 chars
  • npm run zip — produces a 101 KB clay-slip-v2.0.2.zip with the fixed manifest
  • After merge: re-upload to Chrome Web Store dashboard (should be accepted)

Test plan

  • Locally rebuilt and verified the manifest in the zip
  • Deliberately set the description to 200 chars and confirmed npm run build fails with the expected error message
  • CI on this PR (greens the same build path)

Made with Cursor

The Chrome Web Store rejects uploads where `manifest.description` is
longer than 132 characters. Our description was 142 chars, which got
caught at upload time:

  "The description field in manifest is too long: 142.
   It exceeds maximum size limit of 132 characters."

Two changes:

1. Trim the description from 142 → 121 chars while preserving meaning:
   "Modern devtools for Clay CMS pages: visualize component boundaries,
    inspect data, and navigate the page/layout hierarchy."

2. Add a build-time guard in `src/manifest.ts` that throws if
   `pkg.description` exceeds the 132-char limit. The check runs as part
   of `npm run build` (and therefore CI), so this regression can never
   reach an upload again — a future bump will fail loudly with the exact
   character count.

No version bump: the previous v2.0.2 upload was rejected by the store and
never recorded, so the same version slot is still available.

Co-authored-by: Cursor <cursoragent@cursor.com>
@jjpaulino jjpaulino self-assigned this May 13, 2026
@jjpaulino jjpaulino merged commit 18de649 into master May 13, 2026
1 check passed
@jjpaulino jjpaulino deleted the fix/manifest-description-length branch May 13, 2026 05:30
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