mirror of
https://github.com/nexu-io/open-design.git
synced 2026-06-01 03:14:35 +07:00
* Support Cloudflare Pages custom domains without hiding pages.dev fallback Keep the default Pages preview as the first public link while optional owned-zone binding provisions DNS and Pages custom-domain state in parallel. Constraint: Cloudflare deploys must use the existing direct-upload API path with no Wrangler dependency. Constraint: pages.dev must stay visible even while custom-domain verification is pending. Rejected: Vercel custom-domain support | outside requested Cloudflare-only scope. Rejected: overwriting arbitrary CNAME records | risks taking over user-managed DNS. Confidence: high Scope-risk: moderate Directive: Do not expose providerMetadata through public deploy contracts; keep custom-domain DNS ownership checks conservative. Tested: pnpm --dir apps/daemon exec vitest run -c vitest.config.ts tests/deploy.test.ts tests/deploy-routes.test.ts Tested: pnpm --filter @open-design/contracts build && pnpm --filter @open-design/contracts typecheck && pnpm --filter @open-design/contracts test Tested: pnpm --filter @open-design/web typecheck && pnpm --filter @open-design/web test -- providers/registry.test.ts components/FileViewer.test.tsx i18n/locales.test.ts Tested: pnpm i18n:check && pnpm guard && pnpm typecheck Tested: pnpm --filter @open-design/daemon build && pnpm --filter @open-design/web build && git diff --check Not-tested: real Cloudflare account/token/domain smoke test * Preserve Cloudflare fallback correctness under large accounts and races Constraint: Cloudflare Pages keeps pages.dev as the primary usable fallback while custom domains remain optional typed metadata. Rejected: Treating custom-domain DNS or binding failure as a top-level deployment failure | pages.dev can still be ready and usable. Confidence: high Scope-risk: moderate Directive: Keep custom-domain finality tied to Cloudflare Pages API active status plus URL reachability; do not expose providerMetadata. Tested: pnpm --dir apps/daemon exec vitest run -c vitest.config.ts tests/deploy.test.ts tests/deploy-routes.test.ts; pnpm --filter @open-design/web test -- components/FileViewer.test.tsx i18n/locales.test.ts providers/registry.test.ts; pnpm --filter @open-design/daemon typecheck; pnpm --filter @open-design/web typecheck; pnpm i18n:check; git diff --check; pnpm guard; pnpm typecheck; pnpm --filter @open-design/daemon build; pnpm --filter @open-design/web build Not-tested: Real Cloudflare token/account/zone smoke test. * Keep impeccable design notes local Constraint: .impeccable.md is local assistant/design context and should not be part of the PR diff. Rejected: Keeping the file tracked while adding it to .gitignore | tracked files are not ignored by Git. Confidence: high Scope-risk: narrow Directive: Keep .impeccable.md untracked and ignored; do not rely on it for required project documentation. Tested: git check-ignore -v .impeccable.md; git diff --check Not-tested: Full workspace tests not rerun for ignore-only metadata change.
56 lines
999 B
Text
56 lines
999 B
Text
node_modules/
|
|
dist/
|
|
out/
|
|
.next/
|
|
.next-*/
|
|
.tmp/
|
|
.DS_Store
|
|
*.log
|
|
*.exe
|
|
.vite
|
|
.astro/
|
|
.vscode
|
|
|
|
# Local runtime data — auto-created by the daemon on first start.
|
|
# Holds app.sqlite (project metadata), projects/<id>/ (per-project artifacts,
|
|
# the agent's CWD), and artifacts/ (one-off renders). Never commit.
|
|
.od
|
|
.od-e2e
|
|
test-results
|
|
playwright-report
|
|
e2e/.od-data
|
|
e2e/playwright-report
|
|
e2e/reports/html
|
|
e2e/reports/playwright-html-report
|
|
e2e/reports/test-results
|
|
e2e/reports/results.json
|
|
e2e/reports/junit.xml
|
|
e2e/reports/latest.md
|
|
e2e/ui/.od-data
|
|
e2e/ui/reports
|
|
e2e/ui/test-results
|
|
apps/web/playwright/
|
|
|
|
# Legacy folder name from before the rename; keep ignored so existing
|
|
# clones don't accidentally stage stale runtime data.
|
|
.ocd
|
|
|
|
tsconfig.tsbuildinfo
|
|
|
|
.claude-sessions/*
|
|
|
|
.cursor/
|
|
.agents/
|
|
.opencode/
|
|
.claude/
|
|
.codex/
|
|
.deepseek/
|
|
|
|
# Commander task scratchpad; keep local task notes out of git by default.
|
|
.task/
|
|
task.md
|
|
specs/change/active
|
|
.ralph/
|
|
|
|
# Local design assistant context
|
|
.impeccable.md
|