@ciderpress/cli
1.0.0-rc.3
Minor Changes
-
f71d7f4: Fix: the navbar fallback no longer overrides the auto-generated
/logo.svgwith the hardcoded<CiderpressLogo />wordmark. Whenlogois omitted, the nav now shows the SVG written to the public dir by the banner module (derived fromtitle). Sites that committed their ownpublic/logo.svgalready won this round; sites that didn't were silently getting the ciderpress wordmark.The themed wordmark is still available as an opt-in:
New: two top-level config fields for overriding auto-generated asset paths.
banner?: string— hero image used on the home page and workspace landing pages. Defaults to/banner.svg.favicon?: string— favicon path. Defaults to/icon.svg. Distinct fromicon(the Iconify id for the inline topbar mark).
Auto-generation and the
<!-- ciderpress-generated -->marker still carry the default case — these fields are only needed to point at a different filename or a CDN URL.
Patch Changes
- Updated dependencies [f71d7f4]
- @ciderpress/config@1.0.0-rc.3
- @ciderpress/ui@1.0.0-rc.3
1.0.0-rc.2
Patch Changes
-
e4d81aa: Test/exercise the CI release pipeline.
No code changes — this changeset only exists to force the changesets bot to open a release PR, validate that the GitHub Actions workflow can publish via npm trusted publishing (no
NPM_TOKEN, OIDC-only withid-token: write+NPM_CONFIG_PROVENANCE: true), and confirm provenance attestations land on the resulting1.0.0-rc.2releases. Following the local bootstrap publish of1.0.0-rc.1, this is the first CI-driven cut. -
Updated dependencies [e4d81aa]
- @ciderpress/config@1.0.0-rc.2
- @ciderpress/templates@1.0.0-rc.2
- @ciderpress/theme@1.0.0-rc.2
- @ciderpress/ui@1.0.0-rc.2
1.0.0-rc.1
Major Changes
-
0a651df: Rename to
ciderpress. The project moved to thethebytefarmorg and the kit now lives at the unscopedciderpresspackage name (replacing@zpress/kit).Consumer migration:
@zpress/cli→@ciderpress/cli@zpress/config→@ciderpress/config@zpress/ui→@ciderpress/ui@zpress/theme→@ciderpress/theme@zpress/templates→@ciderpress/templates@zpress/kit→ciderpress(unscoped)zpress.config.ts→ciderpress.config.ts- Window globals:
__ZPRESS_*__→__CIDERPRESS_*__ - CSS vars:
--zp-*→--cp-*
The
@zpress/*packages are not republished —@ciderpress/*starts fresh at this version. Tagline: press your docs.
Patch Changes
- Updated dependencies [0a651df]
- @ciderpress/config@1.0.0-rc.1
- @ciderpress/ui@1.0.0-rc.1
- @ciderpress/theme@1.0.0-rc.1
- @ciderpress/templates@1.0.0-rc.1
1.0.0-rc.0
Major Changes
-
ciderpress 1.0 — release candidate
This is a major release that locks the v1 public API. Headline changes:
Theme system
- Renamed the built-in
basetheme tohoneycrisp(apple red, the canonical brand theme) and addedgrannysmith(apple green) as a second apple-themed default. Both ship withdarkandlightvariants; the sun/moon toggle swaps between them. The legacy slug'default'aliases to'honeycrisp'viaTHEME_ALIASESfor backward compatibility. The full built-in roster is nowhoneycrisp,grannysmith,midnight, andarcade. - Replaced
theme.colorModewiththeme.variant(values:'dark' | 'light'). The'toggle'value is no longer supported — themes that declare both variants always show the toggle; themes that declare one hide it. defineTheme()input shape changed from{ name, tokens, modes, defaultMode }to{ name, variants: { dark?, light? }, defaultVariant? }. The factory validates the envelope before parsing token trees so error messages now point at the offending input field.ciderpressand@ciderpress/configno longer re-exportColorMode,ThemeMode,COLOR_MODES, orresolveDefaultColorMode. UseThemeVariant,THEME_VARIANTS, andresolveDefaultVariantfrom@ciderpress/theme. The deprecated aliases remain in@ciderpress/themeitself for one-version migration safety.
Config surface
Frontmatteris now strict — unknown keys are rejected at config load and produce a typed compile-time error. On-disk markdown frontmatter is unaffected (gray-matter never typed it asFrontmatter).- Renamed
WorkspaceCategory→WorkspaceGroup. Theconfig.workspacesfield name is unchanged. - Every field on
CiderpressConfigand its sub-types now has solid JSDoc that propagates to IDE hover docs. - Tightened the CLI
--color-modeschema fromstringtoenum('dark', 'light').
Dependency hygiene
- Removed
gray-matter(last released 2021, drags in the abandonedjs-yaml@3line with known prototype-pollution CVEs). Replaced with a ~25-lineparse/stringifyhelper built onyaml(eemeli/yaml). - Removed unused
js-yamland@types/js-yamldirect deps from@ciderpress/cli.
Fixes
safe-url.tsregex is now stored with�- escape sequences instead of raw control bytes. Git no longer marks the file as binary; editors render it correctly.- Deleted orphaned
packages/ui/src/head/js/color-mode-{dark,light}.js. - Hardened variant resolution across the head IIFE, theme provider, and theme switcher with cross-reference comments and a re-entrancy guard on the MutationObserver snap-back.
Migration
- Renamed the built-in
Patch Changes
- Updated dependencies
- @ciderpress/config@1.0.0-rc.0
- @ciderpress/ui@1.0.0-rc.0
- @ciderpress/theme@1.0.0-rc.0
- @ciderpress/templates@1.0.0-rc.0
0.9.1
Patch Changes
- 186ee92: Fix crash reporting for screen commands — errors in dev mode TUI now display in-app with crash log path and hotkeys to copy/quit
0.9.0
Minor Changes
- d26e7f6: Add crash reporter and error boundary — every CLI crash now writes a structured JSON log to a temp file and prints a one-liner fatal message pointing to it
0.8.5
Patch Changes
- f26cf74: fix: resolve SWC decorator panic by upgrading rsbuild to 2.0.0-rc.1
- Updated dependencies [ca4f487]
- Updated dependencies [f26cf74]
- @ciderpress/core@0.11.0
- @ciderpress/ui@0.9.1
0.8.4
Patch Changes
-
c9a2cc8: perf: reduce @ciderpress/ui bundle from 15MB to 767KB by externalizing ts-morph
fix: close Rspress dev server on quit (no more double ctrl+c / blank screen)
-
Updated dependencies [4c04f9d]
-
Updated dependencies [c9a2cc8]
- @ciderpress/ui@0.9.0
0.8.3
Patch Changes
-
ffed994: fix(packages/ui,packages/cli,packages/ciderpress): resolve duplicate React instances in consumer repos
Added
reactandreact-domresolve aliases to the Rspress builder config so rspack always uses the consumer's single React copy. Movedreactfrom direct dependencies to peer dependencies in@ciderpress/clito prevent pnpm from installing a private copy. Aligned React peer version range inciderpressto^19.2.5. -
Updated dependencies [ffed994]
- @ciderpress/ui@0.8.13
0.8.2
Patch Changes
-
81d5928: Fix OpenAPI sidebar scoping, meta ordering, and sync error surfacing
- Add root-level OpenAPI entries (e.g. petstore) to root
_meta.jsonandscopes.jsonso they get their own standalone sidebar scope - Add workspace-level OpenAPI entries to their parent directory's
_meta.jsonfor proper sidebar discovery - Fix
_meta.jsonordering: leaf files appear before collapsible directory sections - Remove duplicate Overview highlight for root-level OpenAPI sections
- Surface sync errors to CLI callers instead of silently swallowing them
- Add root-level OpenAPI entries (e.g. petstore) to root
-
81d5928: upgrade dependencies to latest
-
Updated dependencies [81d5928]
-
Updated dependencies [81d5928]
- @ciderpress/core@0.10.2
- @ciderpress/ui@0.8.12
0.8.1
Patch Changes
- 7a39840: upgrade dependencies to latest
- Updated dependencies [d25fea5]
- Updated dependencies [7a39840]
- @ciderpress/ui@0.8.11
- @ciderpress/core@0.10.1
0.8.0
Minor Changes
- c169109: Sync engine now only processes what changed instead of running a full sync on every pass.
- mtime-based page skip: pages whose source mtime and frontmatter hash match the previous manifest skip the entire read/transform/hash pipeline
- Parallel page copy: all pages are copied concurrently via
Promise.allinstead of sequential reduce - Parallel
copyAll: public asset directory copy runs in parallel - Asset generation skip: banner/logo/icon SVGs skip generation entirely when the asset config hash is unchanged;
shouldGeneratealso compares content to avoid redundant writes - Image copy skip: destination images are skipped when their mtime is at least as recent as the source
- OpenAPI spec caching: specs are only re-parsed when their file mtime changes; a shared cache persists across dev-mode sync passes and is cleared on config reload
- Structural change detection:
resolvedCountmismatch between syncs forces a full resync to handle added/removed pages correctly - Build system migration: switched CLI from rslib to kidd's native build system (tsdown-based), with static command imports, proper dependency externalization, and React/Ink TUI dev screen
Patch Changes
-
c169109: Fix dev TUI banner and quit hotkey
- Replace broken hand-crafted ASCII banner with
ink-big-text(cfonts) andink-gradientfor properly styled terminal output - Fix "q" hotkey not exiting by adding
process.exit(0)after Ink'sexit(), which only unmounts React but leaves the dev server and watcher keeping the process alive
- Replace broken hand-crafted ASCII banner with
-
c169109: Fix home page not updating on config changes during dev
The restart-relevance hash was missing
actions,features,apps,packages, andworkspaces— all of which feed into the generated home page hero, feature cards, and workspace cards. Changes to these fields now correctly trigger a dev server restart so the home page reflects the updated config. -
Updated dependencies [c169109]
-
Updated dependencies [c169109]
- @ciderpress/core@0.10.0
- @ciderpress/ui@0.8.10
0.7.0
Minor Changes
- 7a5954f: Sync engine now only processes what changed instead of running a full sync on every pass.
- mtime-based page skip: pages whose source mtime and frontmatter hash match the previous manifest skip the entire read/transform/hash pipeline
- Parallel page copy: all pages are copied concurrently via
Promise.allinstead of sequential reduce - Parallel
copyAll: public asset directory copy runs in parallel - Asset generation skip: banner/logo/icon SVGs skip generation entirely when the asset config hash is unchanged;
shouldGeneratealso compares content to avoid redundant writes - Image copy skip: destination images are skipped when their mtime is at least as recent as the source
- OpenAPI spec caching: specs are only re-parsed when their file mtime changes; a shared cache persists across dev-mode sync passes and is cleared on config reload
- Structural change detection:
resolvedCountmismatch between syncs forces a full resync to handle added/removed pages correctly - Build system migration: switched CLI from rslib to kidd's native build system (tsdown-based), with static command imports, proper dependency externalization, and React/Ink TUI dev screen
Patch Changes
- Updated dependencies [7a5954f]
- @ciderpress/core@0.9.0
- @ciderpress/ui@0.8.9
0.6.0
Minor Changes
-
3e5f014: feat(packages/cli): consolidate sync and generate commands into build
The
buildcommand now runs content sync and asset generation automatically. The standalonesyncandgeneratecommands have been removed.
Patch Changes
-
1e966e1: Fix workspace include resolution for
appsandpackagesitems:- Use deep glob pattern (
docs/**/*.md) as default include whenrecursive: true. Previously the default was alwaysdocs/*.mdregardless of the flag. - Add config check warning when an explicit include pattern already starts with the basePath derived from
path, which causes double-prefixing and silently matches zero files. Surfaces duringciderpress checkbefore the build step.
- Use deep glob pattern (
-
Updated dependencies [e3b8c86]
-
Updated dependencies [1e966e1]
-
Updated dependencies [0113fb1]
- @ciderpress/core@0.8.1
- @ciderpress/ui@0.8.8
0.5.4
Patch Changes
-
f88d0f7: Fix config changes not propagating during dev
Disable Rspress's persistent build cache on config-reload restarts. The cache's digest only tracks sidebar/nav structure, so changes to title, theme, colors, and other
source.definevalues were invisible to it, causing stale output to be served after a restart.
0.5.3
Patch Changes
- b912b2d: Update and add READMEs
- Updated dependencies [9b5099b]
- Updated dependencies [9b5099b]
- Updated dependencies [b912b2d]
- @ciderpress/core@0.8.0
- @ciderpress/ui@0.8.7
- @ciderpress/templates@0.1.2
0.5.2
Patch Changes
- Updated dependencies [9388cce]
- @ciderpress/core@0.7.5
- @ciderpress/ui@0.8.6
0.5.1
Patch Changes
- Updated dependencies [4179cee]
- @ciderpress/core@0.7.4
- @ciderpress/ui@0.8.5
0.5.0
Minor Changes
- 56862d1: Add
--refoption tociderpress difffor comparing between commits, enabling use as a VercelignoreCommand
Patch Changes
- Updated dependencies [56862d1]
- @ciderpress/ui@0.8.4
0.4.3
Patch Changes
- Updated dependencies [71af7e9]
- @ciderpress/core@0.7.3
- @ciderpress/ui@0.8.3
0.4.2
Patch Changes
- Updated dependencies [3f36be0]
- @ciderpress/core@0.7.2
- @ciderpress/ui@0.8.2
0.4.1
Patch Changes
- b090c88: diff command now watches top-level root directories so asset and image changes are detected
- Updated dependencies [03f1229]
- @ciderpress/ui@0.8.1
0.4.0
Minor Changes
- 1f6b8c1: Add
ciderpress diffcommand to show changed files in configured source directories
Patch Changes
- 03b0726: Wait for port release before restarting dev server to prevent EADDRINUSE errors
- 179ae48: Add sidebar button variants (style/shape), site footer with social links toggle, client-side navigation via Link, typed IconId, and ESM compatibility patches for rspress plugins
- Updated dependencies [d8cf9b2]
- Updated dependencies [8a125b8]
- Updated dependencies [179ae48]
- @ciderpress/ui@0.8.0
- @ciderpress/core@0.7.1
0.3.4
Patch Changes
-
7d074af: Fix dev server crash on config-triggered restart failure. Previously, if the Rspress dev server failed to start after a config change, the entire process would exit. Now the watcher stays alive and logs a message so the user can fix the config and save again to retry.
-
3e7a28a: Enforce consistent file structure conventions across all packages and upgrade dependencies to latest versions.
File Structure
Apply a standardized file layout pattern to every source file in the monorepo:
- Exports first: All exported functions, constants, and types appear at the top of each file immediately after imports.
- Private separator: Non-exported (private) helper functions are placed below a
// --- Private ---section separator comment. - Complete JSDoc: Every function now has full JSDoc documentation including
@paramand@returnstags. Non-exported helpers include the@privatetag. - Spacing cleanup: Removed inconsistent double blank lines between declarations across all packages.
Test Colocation
Moved all test files from
packages/*/test/directories to sit alongside their source files inpackages/*/src/:packages/cli/test/→packages/cli/src/lib/packages/config/test/→packages/config/src/packages/core/test/→packages/core/src/(includingsync/andsync/sidebar/subdirectories)packages/templates/test/→packages/templates/src/packages/theme/test/→packages/theme/src/packages/ui/test/→packages/ui/src/
Standards
Updated
.claude/rules/typescript.mdto codify the file structure conventions so all future code follows the same pattern.Dependency Upgrades
oxlint1.55.0 → 1.56.0oxfmt0.40.0 → 0.41.0@kidd-cli/core0.4.0 → 0.7.0c124.0.0-beta.3 → 4.0.0-beta.4laufen1.1.0 → 1.2.1@iconify-json/material-icon-theme1.2.55 → 1.2.56@iconify-json/simple-icons1.2.73 → 1.2.74
-
Updated dependencies [77796f1]
-
Updated dependencies [429846c]
-
Updated dependencies [3e7a28a]
- @ciderpress/core@0.7.0
- @ciderpress/ui@0.7.0
- @ciderpress/templates@0.1.1
0.3.3
Patch Changes
- Updated dependencies [77e872e]
- @ciderpress/ui@0.6.1
0.3.2
Patch Changes
- 1b3b8e3: Add vitest test infrastructure and 122 unit tests across all packages
- Updated dependencies [1b3b8e3]
- Updated dependencies [c57ab70]
- @ciderpress/core@0.6.2
- @ciderpress/ui@0.6.0
0.3.1
Patch Changes
- Updated dependencies [6df5ab7]
- @ciderpress/core@0.6.1
- @ciderpress/ui@0.5.1
0.3.0
Minor Changes
-
1361d59: # Comprehensive Config API Refactor
Major breaking changes to the ciderpress configuration API for better consistency and clarity.
Breaking Changes
Type System Refactor
BREAKING: The type hierarchy has been restructured with a new base type:
- New
Entrybase type: Introduced with common fields (title,icon,description) that all config types now extend - Old
Entrytype renamed toSection: The previousEntrytype (representing a section/page node) is now calledSectionfor clearer semantics. No backward compatibility alias - the nameEntryis now used for the new base type. WorkspaceItem→Workspace: Renamed for consistency (backward compatible alias maintained)WorkspaceGroup→WorkspaceCategory: More descriptive name (backward compatible alias maintained)
All config types now extend the new
Entrybase:Workspace Field Changes
path→prefix: Renamed for consistency withSection.prefixname→titleonWorkspaceCategory: All types now usetitleconsistentlyDiscovery Configuration
Workspace items now use a
discoveryfield to configure content auto-discovery, eliminating duplication with Section fields:Note: The
fromfield indiscoveryis relative to the workspace's base path (derived fromprefix). For example,prefix: "/apps/api"+discovery.from: "docs/*.md"resolves toapps/api/docs/*.md(repo-root relative).Title Derivation Default Changed
Default
titleFromchanged from'filename'to'auto'The
'auto'strategy uses a smart fallback chain:- Try frontmatter
titlefield - Fall back to first
# heading - Fall back to filename (kebab-to-title)
This is more intuitive and matches user expectations. If you relied on
'filename'behavior, explicitly settitleFrom: 'filename'.New TitleConfig Type
You can now use an object for the
titlefield to configure derivation and transformation:This is available on all types that extend
Entry.New Features
Discovery Configuration Type
The new
Discoverytype (withRecursiveDiscoveryConfigandFlatDiscoveryConfigvariants) provides proper typing for content discovery configuration:Enhanced Icon Documentation
Icon colors are now fully documented in types with the 8-color palette rotation:
- purple (default)
- blue
- green
- amber
- cyan
- red
- pink
- slate
Migration Guide
Automated Find/Replace
-
Update workspace field names:
-
Update workspace group names:
-
Update type imports (if using types directly):
Manual Updates
-
Migrate workspace discovery configuration (optional but recommended):
-
Verify title derivation behavior: If you have sections with
titleFrom: 'filename'and markdown files with frontmatter or headings, the default'auto'mode will now use those instead of the filename. To preserve old behavior, explicitly settitleFrom: 'filename'.
Backward Compatibility
- Old type names (
Entry,WorkspaceItem,WorkspaceGroup) are re-exported as aliases - Old field names on
Section(titleFrom,titleTransform) still work alongside the newTitleConfigapproach - No immediate action required, but migrating to new API is recommended
Documentation
See updated guides:
- Workspaces - New
prefixanddiscoveryfields - Auto-Discovery - New
'auto'titleFrom mode andTitleConfig - Configuration Reference - Full field reference
- New
Patch Changes
-
3cf8dc0: Improve dev command config reloading and file watching
- Auto-restart dev server on config changes: Dev server now automatically restarts when config changes are detected, using Rspress ServerInstance.close() API
- Cache-busting for config reloads: Use jiti with moduleCache disabled via c12's custom import option to ensure config changes are picked up immediately
- Fix watcher for non-existent paths: Normalize watch paths to nearest existing ancestor before adding to chokidar, ensuring sections can be detected even if their directories don't exist yet
- Dynamic watch path updates: Watcher now adds/removes paths when config sections change
- Fix type signature: OnConfigReload type now correctly includes newConfig parameter
-
Updated dependencies [2055c1a]
-
Updated dependencies [3cf8dc0]
-
Updated dependencies [1361d59]
-
Updated dependencies [941550c]
- @ciderpress/core@0.6.0
- @ciderpress/ui@0.5.0
0.2.2
Patch Changes
- Updated dependencies [2f01fa4]
- @ciderpress/ui@0.4.1
0.2.1
Patch Changes
- Updated dependencies [7255aa3]
- @ciderpress/core@0.5.0
- @ciderpress/ui@0.4.0
0.2.0
Minor Changes
-
83cc277: Add
ciderpress checkcommand for config validation and deadlink detectionIntroduces a standalone
checkcommand that validates the ciderpress config and detects broken internal links by running a silent Rspress build. Thebuildcommand now includes checks by default (--checkflag, opt out with--no-check). Config validation is moved fromdefineConfig(which was callingprocess.exit) intoloadConfig, returning structuredResulttuples so the CLI can present friendly error messages.
Patch Changes
- Updated dependencies [83cc277]
- Updated dependencies [d1e2b76]
- @ciderpress/core@0.4.0
- @ciderpress/ui@0.3.1
0.1.4
Patch Changes
- Updated dependencies [aea7b38]
- Updated dependencies [d1b4ad5]
- Updated dependencies [37c2ec6]
- @ciderpress/ui@0.3.0
- @ciderpress/core@0.3.0
0.1.3
Patch Changes
- Updated dependencies [f4d5388]
- @ciderpress/ui@0.2.2
0.1.2
Patch Changes
-
2e43a80: Add README files to all packages and update license copyright to Joggr, Inc.
-
2e43a80: Fix type exports and dependency declarations
- Generate bundled
.d.tsdeclaration files via Rslibdts.bundle(previously no declaration files were emitted) - Point
exports.typesto generateddist/*.d.tsinstead of raw source files - Move
react,react-dom, and@rspress/coretopeerDependenciesin@ciderpress/ui - Surface
react,react-dom, and@rspress/coreaspeerDependenciesinciderpress - Centralize shared dependency versions via pnpm catalog
- Bump
@kidd-cli/coreto^0.4.0in@ciderpress/cli
- Generate bundled
-
Updated dependencies [2e43a80]
-
Updated dependencies [2e43a80]
- @ciderpress/core@0.2.1
- @ciderpress/ui@0.2.1
0.1.1
Patch Changes
- Updated dependencies [77adac6]
- @ciderpress/core@0.2.0
- @ciderpress/ui@0.2.0
0.1.0
Minor Changes
-
04d2e2b: Initial release
CLI commands (dev, build, serve, sync, clean, setup, dump, generate) powered by yargs and @clack/prompts, with chokidar-based file watcher for live reload during development.