269 Commits

Author SHA1 Message Date
Dominik Ferber c6d1f6d704 extract reusable engine 2026-04-06 19:07:12 +03:00
github-actions[bot] 1ac83900c8 Version Packages (#357)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
flags@4.0.6
2026-04-03 14:32:42 +03:00
Dominik Ferber c08f3e5614 [flags/next] perf improvements (#356)
* [flags] avoid re-imports

Avoid re-importing next/headers since it adds unnecessary microtask queue overhead

* [flags] avoid iife microtask queue overhead

* [flags] skip awaits where possible

* add undefined to headersModulePromise type
2026-04-03 11:24:31 +00:00
Rich Haines 4d2f7cc56e Send siteId as label on feedback GitHub issues (#353) 2026-04-02 10:59:01 +03:00
Rich Haines eafa640057 Add AI agent detection and automatic markdown rewrites (#351)
* Add AI agent detection and automatic markdown rewrites

When AI agents (Claude, ChatGPT, Cursor, etc.) request docs pages,
the proxy now detects them and transparently rewrites to the markdown
route — matching the geistdocs template default.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix: Missing `detectionMethod` property in `TrackMdRequestParams` type causes TypeScript compilation error and build failure.

This commit fixes the issue reported at apps/docs/lib/geistdocs/md-tracking.ts:24

**Bug explanation:**

The `trackMdRequest` function in `apps/docs/lib/geistdocs/md-tracking.ts` destructures `detectionMethod` from its parameter (line 24) and includes it in the JSON body sent to the tracking endpoint (line 38). However, the `TrackMdRequestParams` type definition (lines 6-12) does not include `detectionMethod` as a property.

In `apps/docs/proxy.ts` (line 82-87), `trackMdRequest` is called with `detectionMethod: agentResult.method` when an AI agent is detected, where `agentResult.method` is of type `DetectionMethod | null` from `@/lib/ai-agent-detection`.

This causes an exact TypeScript compilation error confirmed in the build logs:
```
./lib/geistdocs/md-tracking.ts:24:3
Type error: Property 'detectionMethod' does not exist on type 'TrackMdRequestParams'.
```

This error causes the entire `docs` build to fail (`next build` exits with code 1).

**Fix explanation:**

Added `detectionMethod?: DetectionMethod | null` as an optional property to the `TrackMdRequestParams` type, and added the corresponding `import type { DetectionMethod } from "@/lib/ai-agent-detection"` import at the top of the file. The property is optional (`?`) because most call sites (for `.md` URL tracking, `llms.txt` tracking, and header-negotiated tracking) don't pass a `detectionMethod` — only the agent-rewrite tracking path does. The `| null` union matches the `DetectionResult.method` type from `ai-agent-detection.ts`.

Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
Co-authored-by: molebox <hello@richardhaines.dev>

* format

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
Co-authored-by: Dominik Ferber <dominik.ferber@gmail.com>
2026-03-29 02:19:37 +00:00
Vincent Derks b66ce3e34a Fixed getProviderData import in skill (#352) 2026-03-27 14:26:25 -07:00
Dominik Ferber 9142790975 only build publishable packages during release process (#348)
* clean up

* fix release process
@vercel/flags-core@1.3.1 @flags-sdk/vercel@1.2.1 @vercel/prepare-flags-definitions@0.2.1
2026-03-21 21:17:04 +02:00
Swarnava Sengupta 279d96ddaa fix(ci): add FLAGS env to release workflow (#347)
The playground app requires the FLAGS environment variable during build. This was already configured in release-snapshot.yaml but missing from the main release workflow, causing build failures.
2026-03-21 20:54:46 +02:00
github-actions[bot] 14ef3fa940 Version Packages (#346)
* Version Packages

* blank commit

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Swarnava Sengupta <swarnava.sengupta@vercel.com>
2026-03-21 23:38:24 +05:30
Swarnava Sengupta b755ffecdf fix: SDK key detection to avoid false positives with third-party identifiers (#345)
The SDK key validation now uses a regex (/^vf_(?:server|client)_/) to require
the format vf_server_* or vf_client_* instead of accepting any string starting
with vf_. This prevents false positives with third-party service identifiers
that happen to start with vf_ (e.g., Stripe identity flow IDs like
vf_1PyHgVLpWuMxVFx...).

Adds isValidSdkKey() helper function and updates parseSdkKeyFromFlagsConnectionString()
to use the stricter validation. Updates all tests to use valid SDK key formats.
2026-03-21 17:39:00 +00:00
github-actions[bot] 471e0048b6 Version Packages (#342)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-20 21:19:04 +02:00
Dominik Ferber ffcc1cd4fc fix changelog (#344) 2026-03-20 19:56:27 +02:00
Dominik Ferber 6bdbe3f89a ignore playground in changesets (#343) 2026-03-20 13:27:11 +00:00
Dominik Ferber 44460570d4 [vercel/flags-core] allow json flags (#335)
* rm unused import

* [vercel-flags] allow json flags

* add flags-playground

* wip

* clean up type

* reword changeset

* rm examples/flags-playground
2026-03-20 14:03:53 +02:00
Dominik Ferber 84e38d47aa adds an playground app we can use during development (#341)
* add flags-playground

* clarify

* move

* update lockfile
2026-03-20 11:45:27 +01:00
github-actions[bot] a3b536b504 Version Packages (#340)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@vercel/flags-core@1.2.1 @flags-sdk/vercel@1.1.1
2026-03-19 16:21:12 +02:00
Dominik Ferber b81963dc14 fix (#339) 2026-03-19 16:18:59 +02:00
Vincent Derks c63be2d147 Added check to check skills size (#338)
* Added check to check skills size

* Change glob -> readdirSync

* Shorten description length

* Added check for name, compatibility and body

* Added back some parts that were removed to avoid regressions

* More cleanup

* Feedback: Used grey-matter for frontmatter parsing

* Added pnpm setup and install deps in Skills Quality job

* Refine triggers
2026-03-19 09:36:31 +00:00
github-actions[bot] b199f2083c Version Packages (#333)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@flags-sdk/vercel@1.1.0 @vercel/flags-core@1.2.0
2026-03-18 15:50:13 +02:00
Dominik Ferber 64619d7c66 @vercel/flags-core: allow specifying entities type when creating clients (#334)
* changeset

* adapt
2026-03-13 11:09:21 +02:00
Dominik Ferber 4a5f56a8c7 skip sending config reads (#330)
* skip sending config read for dev and custom envs

* add changeset

* clean up

* wip
2026-03-13 08:16:47 +01:00
github-actions[bot] 0af37593bd Version Packages (#331)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
flags@4.0.5 @vercel/flags-core@1.1.1 @flags-sdk/vercel@1.0.3
2026-03-12 21:53:04 +02:00
Dominik Ferber c9934fda03 [@vercel/flags-core] drop dependency on flags pkg (#332) 2026-03-12 21:24:11 +02:00
nadav dd1396e461 Guard missing Vercel Flags runtime helpers (#326)
* Guard request-context flag reporting

* Preserve request-context hook binding

* Guard core request-context reporting

* Guard missing bundled flag definitions

---------

Co-authored-by: Dominik Ferber <dominik.ferber@gmail.com>
2026-03-12 16:38:18 +02:00
Vincent Derks e4d76a9621 Instruct agent to adjust to package-manager (#329) 2026-03-11 17:50:17 +01:00
Vincent Derks bc2ed6387d Add nextjs vercel toolbar instructions (aligned with sveltekit) (#328) 2026-03-11 17:36:41 +01:00
Vincent Derks f302da3b28 Refer to vercel-cli skill for flag manipulation (#327)
* Refer to vercel-cli skill for flag manipulation

* Added set command to examples

* Apply suggestion from @chriswdmr

Co-authored-by: Chris <7249920+chriswdmr@users.noreply.github.com>

---------

Co-authored-by: Chris <7249920+chriswdmr@users.noreply.github.com>
2026-03-11 15:50:07 +00:00
Vincent Derks ca61af1c2a Make skill contain more instructions as opposed to being just a general guide (#324) 2026-03-10 17:41:26 +01:00
Anthony Shew 8b5af40701 chore: Upgrade turbo version (#323) 2026-03-10 15:51:39 +02:00
Vincent Derks 49a19fbcda Add CLI reference to quickstart guide (#322) 2026-03-10 14:04:19 +01:00
Dominik Ferber 9ed47ff40f add VERCEL_ENV to turbo config (#321) 2026-03-10 13:19:20 +02:00
Dominik Ferber 12386f5edf Add BLOB_READ_WRITE_TOKEN to turbo.json globalPassThroughEnv (#319)
Make the Vercel Blob read/write token available to all Turborepo tasks.

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-10 11:32:41 +02:00
github-actions[bot] e44eedf0cf Version Packages (#315)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
flags@4.0.4
2026-03-09 19:08:17 +02:00
Dominik Ferber b6bf070d0d add missing envs to turbo (#317) 2026-03-09 19:04:06 +02:00
Dominik Ferber df427e0e7a use catalog for react & react-dom (#318)
* use catalog for react & react-dom

this guarantees the same version for all packages and thus avoids type errors

* update lockfile
2026-03-09 19:01:30 +02:00
Dominik Ferber 3c37b5c363 exclude docs app from changesets (#316) 2026-03-09 18:35:09 +02:00
Dominik Ferber e5f3e34428 [docs] depend on workspace version of flags (#314)
* fix dep

* add packageManager

* move devDeps to top-level
2026-03-09 18:26:11 +02:00
Dominik Ferber 77727aaade use __no_flags__ to handle precompute with empty flags (#300)
* use __no_flags__ to handle precompute with empty flags

* handle __no_flags__ in serialize

* add __no_flags__ handling to sveltekit

* avoid returning undefined when defaultValue is set

This could only happen on precomputed flags in case of bad usage.

* add error messages

* test console logs

* update changeset
2026-03-09 15:10:47 +00:00
Vincent Derks 40fed637e3 Make cli more prominent in skill (#310)
* Make CLI more prominent in skill

* Advertise cli skill more

* Removed cli examples duplication
2026-03-09 12:36:08 +00:00
Dominik Ferber 2db1530275 Upgrade dependencies (#313)
* upgrade

* update biome

* upgrade more
2026-03-09 12:24:42 +00:00
github-actions[bot] 783b9efdda Version Packages (#312)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@vercel/prepare-flags-definitions@0.2.0
2026-03-09 12:29:55 +01:00
Luis Meyer 10c10b6aa4 Return meaningful result from prepareFlagsDefinitions (#311)
* Return meaningful result from prepareFlagsDefinitions

- Add PrepareFlagsDefinitionsResult discriminated union type that indicates whether definitions were created
- Change prepareFlagsDefinitions return type from Promise<void> to Promise<PrepareFlagsDefinitionsResult>
- Return { created: false, reason: 'no-sdk-keys' } when no SDK keys are found
- Return { created: true, sdkKeysCount: N } when definitions are successfully created
- Add tests for both return paths to verify the function communicates its result properly

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* Add changeset for prepareFlagsDefinitions result type

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-09 12:25:55 +01:00
Dominik Ferber 05a5ebfda1 Add userAgentSuffix to prepare-flags-definitions (#306)
* Replace version param with userAgentSuffix in prepare-flags-definitions

Changed the API to use a cleaner approach:
- Removed `version?: string` option in favor of `userAgentSuffix?: string`
- Now imports package version directly from package.json
- Constructs user-agent as: `@vercel/prepare-flags-definitions/{pkgVersion} {suffix}`
- Allows consumers (e.g., vercel-cli, vercel-api) to add context to the header

Added tests verifying both default and suffixed user-agent headers.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* add changeset

---------

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-09 11:18:51 +00:00
Vincent Derks d4d5470b6d Added skill reference to quickstart docs (#309) 2026-03-07 20:34:21 +01:00
Vincent Derks e8084534dc Rename middleware -> proxy (#307) 2026-03-06 16:15:51 +01:00
Vincent Derks eb61cd9b66 Updated precompute instructions in skill (#305) 2026-03-06 14:17:12 +01:00
Dominik Ferber e8539cd52a make version dynamic in tests (#304) 2026-03-06 12:02:03 +00:00
github-actions[bot] c1fbe2f19d Version Packages (#284)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@flags-sdk/vercel@1.0.2 @vercel/prepare-flags-definitions@0.1.0 @vercel/flags-core@1.1.0
2026-03-06 13:57:18 +02:00
Dominik Ferber 3f3ec2bbe2 Revert "fix main export (#302)" (#303)
This reverts commit 62afa7f64e.
2026-03-06 10:13:44 +00:00
Dominik Ferber 62afa7f64e fix main export (#302) 2026-03-06 09:42:16 +00:00