Repository navigation
docs(release): v3 examples refresh, upgrade guide, version 3.0.0 - #82
Conversation
Derive tsdown targets from package engine floors so emitted syntax matches the runtimes promised by package metadata.
Five new examples cover the v3 surface (flag types, parser control, Standard Schema, help config, output extras); existing examples move to current idiom (function-form examples, out.status, declarative numeric constraints). README's flag/output/completions sections updated. New docs/guide/upgrading-v3.md documents every 2.5.0 to 3.0.0 breaking and behavioral change. Version set to 3.0.0 stable.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
dreamcli | 60f516d | Commit Preview URL Branch Preview URL |
Jul 21 2026, 07:44 AM |
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 8 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Repository YAML (base), Organization UI (inherited) Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (9)
📝 WalkthroughWalkthroughDreamCLI is released as version 3.0.0 with updated package metadata and engine-derived build targets. The release adds a 2.x upgrade guide, refreshed README guidance, expanded examples, and updated example inventory checks. Examples demonstrate typed flags, parser controls, schema validation, output handling, configurable help, and constrained transport ports. Documentation navigation and mobile Twoslash styling are also updated. Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
Suggested labels: Poem
Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 error, 1 warning)
✅ Passed checks (9 passed)
Comment |
commit: |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
The bottom-sheet CSS moved the popup inner to a fixed sheet but left the floating-vue wrapper painting a zero-width box at the anchor, visible as a vertical sliver, and a dismissed popper kept its backdrop over the page. The wrapper now has no rendered box on touch devices and the hidden state hides both sheet and backdrop.
The bottom sheet collapsed to a 2px-wide sliver painted down the page. floating-vue puts a positioning transform on the popper, making it the containing block for fixed descendants, so the sheet's left/right resolved against a zero-width box instead of the viewport. The popper now drops its transform and the sheet takes an explicit viewport width. Measured in a browser: 2x590 before, full viewport width after. The backdrop stayed over the page after dismissal. It was only removed when the popper left the DOM, but floating-vue keeps poppers mounted and toggles classes, so cleanup never ran. The observer now watches class changes and clears the backdrop when no popper is shown. Closing a popup poisoned it permanently via an inline display:none that floating-vue never clears. Dismissal now drives floating-vue's own auto-hide so element and state agree. The sheet CSS keyed off @media (hover: none) while the backdrop keyed off the JS touch predicate; devices where those disagree got a backdrop with no sheet. Both now key off a twoslash-touch class set by the same predicate.
…on skill The testkit's root-flag layer knew --json but never learned --quiet, added in rc.17, so copying a real invocation into a test failed with exit 2. Both spellings are now stripped before parsing and set quiet verbosity; a post-separator --quiet still reaches the command. Found while verifying the rewritten cli-creation skill: its grounding sources pointed at examples/standalone/ and apps/docs/, neither of which survived the workspace refactor, and the cookbook predated the whole v3 flag/output surface. Every cookbook snippet now type-checks against the published types, and both scaffolder modes were generated and executed.
The stable-release presentability pass. Ships rc.20's code untouched; everything here is docs, examples, and the version number.
Examples
New (all typechecked in the root project, all smoke-run):
flag-types.ts— url, path withcreate: true, date, duration, bytes, count, keyValue, string/number constraints, arrayseparator/uniqueparser-control.ts—.negatable(),.duplicates('error'), kebab↔camel paritystandard-schema.ts— Standard Schema v1 interop with a dependency-free inline schema showing the contracthelp-config.ts— help theme,flagOrder: 'declaration',.default(cmd, { route: true }), JSON helpoutput-extras.ts—out.color,osc8gated onisHyperlinkSupported,setExitCodeModernized:
basic.ts(function-form.example()),json-mode.ts+middleware.ts(out.status(),--quiet),transport-launcher.ts(declarative{ int: true, min: 1, max: 65535 }replaces a hand-rolled check).Audit basis: no example used removed APIs (all typecheck against dist), but zero v3 features were demonstrated anywhere.
Docs
docs/guide/upgrading-v3.md: every 2.5.0 → 3.0.0 breaking change with before/after (default-command surface,finitedefault,createBunAdapterremoval,buildConfigSearchPathssignature, npm dist resolution, array element typing, runtime version check removal) plus behavioral changes (spelling parity, expanded discovery, help output) and the new-in-v3 tour. Sidebar entry added;migration.mdcross-links it.flag.customURL sample superseded byflag.url()), output sample gainsstatus/setExitCode/--quiet, completions sample covers the eager-flag form and fixes acompletiontypo, comparison table reflects expanded config discovery.examples/AGENTS.md: inventory corrected (addstransport-launcher+ the five new files), stale.cache/references removed.Version
3.0.0 stable. Docs-only diff on top of rc.20, so no further rc soak; the docs example-inventory test was updated for the new files (it correctly failed on them first).
Verification
run -s cigreen (2924 tests incl. updated inventory test, docs build regenerating the five new example pages)run -s smoke, schema emit, version sync green