Sessions that change files now work in their own git worktree and merge back to
`develop`, instead of developing directly in the main checkout. Documents the
tool's actual behaviour rather than the assumed one: `EnterWorktree` prefixes the
branch as `worktree-<name>`, branches from the last commit (so uncommitted edits
do not carry over), and `ExitWorktree({action: "remove"})` deletes the branch
with the directory — hence the merge must happen before the cleanup.
Base ref is pinned to `head` in `.claude/settings.json` because `develop` runs
well ahead of `origin/main`, and the default `fresh` would branch from the stale
release trunk.
Also ignores `.claude/worktrees/`, which lives on disk per session and is never
committed.
34 lines
960 B
Plaintext
34 lines
960 B
Plaintext
# dependencies
|
|
node_modules/
|
|
|
|
# build output
|
|
dist/
|
|
# EXCEPTION: `agent/src/dist/` holds SOURCE (the packaging config for the distributable binary),
|
|
# not build output. The blanket `dist/` above swallowed it, so it was never committed — a fresh
|
|
# clone was missing it and could neither typecheck `agent/src/index.ts` nor import it from the
|
|
# committed `agent/test/buildBinary.test.ts`. The directory must be re-included FIRST: git does not
|
|
# descend into an excluded directory, so un-ignoring only the file inside it would not work.
|
|
!agent/src/dist/
|
|
!agent/src/dist/**
|
|
public/build/
|
|
desktop/build/
|
|
desktop/dist-app/
|
|
|
|
# local Claude Code settings (not shared)
|
|
.claude/settings.local.json
|
|
|
|
# per-session git worktrees (EnterWorktree) — live on disk, never committed
|
|
.claude/worktrees/
|
|
|
|
# logs / OS cruft
|
|
*.log
|
|
npm-debug.log*
|
|
.DS_Store
|
|
|
|
# test coverage
|
|
coverage/
|
|
.gstack/
|
|
|
|
# deploy secrets (RELAY-PHASE1) — .env.example is committed, .env is not
|
|
deploy/.env
|