Skip to content

feat(config)!: discover cella files under the cella/ folder - #16

Merged
flipvh merged 1 commit into
mainfrom
refactor/config-in-cella-folder
Jul 30, 2026
Merged

feat(config)!: discover cella files under the cella/ folder#16
flipvh merged 1 commit into
mainfrom
refactor/config-in-cella-folder

Conversation

@flipvh

@flipvh flipvh commented Jul 30, 2026

Copy link
Copy Markdown
Member

What

Move the cella-owned control files out of the fork repo root into the existing cella/ folder, so all cella machinery lives in one place:

  • cella.config.tscella/cella.config.ts
  • cella.manifest.jsoncella/cella.manifest.json

How

  • New single-source CONFIG_FILE = 'cella/cella.config.ts' constant in managed-files.ts, consumed by the config loader (config.ts) and the fork existence check (fork-utils.ts).
  • MANIFEST_FILE → 'cella/cella.manifest.json'. All readers/writers already route through this constant.
  • writeSyncManifest now creates cella/ before writing, so a fresh fork's first sync doesn't fail on a missing folder.
  • Hint/doc strings and the test fixtures updated (fixtures create cella/ and write the manifest/config into it).

Companion change

Pairs with cellajs/cella (refactor/cella-config-relocation), which git mvs the files, updates cella/migrations/run.ts, and ships an app migration to relocate existing forks' files. This CLI release must publish first, then cella bumps its @cellajs/cli dependency to the published version.

Verification

  • pnpm ts clean
  • vitest run145/145 pass

Breaking change

Forks must move cella.config.ts and cella.manifest.json into their cella/ folder; the CLI no longer looks at the repo root. The cella-side migration drives that move for apps.

🤖 Generated with Claude Code

Move the three cella-owned control files out of the fork repo root into
the existing cella/ folder, so all cella machinery lives in one place:

  cella.config.ts     -> cella/cella.config.ts
  cella.manifest.json -> cella/cella.manifest.json

The config loader, MANIFEST_FILE, and the managed-file/ignore match now
resolve each file at its cella/ path via a single CONFIG_FILE constant.
writeSyncManifest creates cella/ first, so a fresh fork's initial sync
does not fail on a missing folder.

BREAKING CHANGE: forks must move cella.config.ts and cella.manifest.json
into their cella/ folder; the CLI no longer looks at the repo root.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@flipvh
flipvh merged commit 872e177 into main Jul 30, 2026
7 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