This repository is a Bun workspace managed with Turborepo and TypeScript path aliases that point directly at workspace source.
- Bun
1.3.10 - Zig for OpenTUI source builds
Prebuilt release binaries do not require Zig at runtime. Zig is only needed when developing or building the workspace from source.
Install dependencies:
bun installCommon workspace commands:
bun run build
bun run lint
bun run check
bun run typecheck
bun run testGitHub Actions CI uses Turborepo remote cache via the repository secrets TURBO_TOKEN and TURBO_TEAM.
Local development does not require Turbo login or a remote cache token. If you later want local runs to participate in the shared remote cache, configure the same Turborepo credentials in your shell environment.
bun run build builds packages that emit real artifacts. In this workspace that currently means the docs app.
bun run typecheck validates workspace source without emitting a dist directory.
For package-scoped runs, use Turbo from the repository root:
bun run turbo run build --filter=docs
bun run turbo run typecheck --filter=@syncdown/core
bun run turbo run test --filter=@syncdown/connector-notion
bun run turbo run test --filter=@syncdown/connector-gmailapps/cli: CLI entrypoint and command routingapps/docs: product documentation site content and apppackages/tui: interactive setup and sync dashboardpackages/core: orchestration, config loading, and shared typespackages/connector-notion: Notion sync adapterpackages/connector-gmail: Gmail sync adapterpackages/renderer-md: normalized document-to-Markdown renderingpackages/sink-fs: filesystem write adapterpackages/state-sqlite: SQLite-backed sync statepackages/secrets: encrypted local secret storage
User-visible CLI changes should include a changeset:
bun run changesetSelect @syncdown/cli, choose the bump type, and summarize the user-facing change.
CLI releases are now published through a Changesets-managed release PR flow on main.
Typical flow:
# feature PR
bun run changeset
git push origin <branch>
# after merge to main
# Changesets opens/updates a release PR
# merging that PR creates a CLI GitHub Release tagged cli-vX.Y.ZThe release workflow bumps apps/cli/package.json, creates a cli-vX.Y.Z tag, builds platform binaries, smoke-tests them, and uploads the release assets.
For local release verification:
bun run release:cli:binary:local
bun run release:cli:binary:smokeRelease binaries are written to artifacts/release.