Skip to content

feat(core,cli): M8 — worktree + launchd plist + headless --json-schema/--include-partial-messages#27

Merged
oratis merged 1 commit into
mainfrom
feat/m8-worktree-launchd-headless
May 28, 2026
Merged

feat(core,cli): M8 — worktree + launchd plist + headless --json-schema/--include-partial-messages#27
oratis merged 1 commit into
mainfrom
feat/m8-worktree-launchd-headless

Conversation

@oratis

@oratis oratis commented May 28, 2026

Copy link
Copy Markdown
Owner

Worktree create/remove with baseRef + sparse-checkout + symlinkDirectories. launchd LaunchAgent plist generator + installer. Headless --include-partial-messages now drops delta events when off; --json-schema enforces type:object + required[]. 10 new tests. 440 passing.

…partial-msgs

  · packages/core/src/worktree/index.ts (NEW)
    - createWorktree({ source, branch?, parentDir?, config? }) — `git worktree
      add -b <branch> <path> <baseRef>`; honors sparsePaths (sparse-checkout)
      and symlinkDirectories (e.g. node_modules pointer to source).
    - removeWorktree(handle) — idempotent; `git worktree remove --force` +
      `git branch -D`.
    - 5 tests covering baseRef, symlinkDirectories, non-repo error,
      idempotent remove.

  · packages/core/src/launchd/index.ts (NEW)
    - buildPlist(opts) — pure XML generator (~/Library/LaunchAgents/
      dev.deepcode.scheduler.plist).
    - installPlist / uninstallPlist — file IO + idempotent.
    - Escapes XML special chars in paths.
    - 5 tests.

  · apps/cli/src/headless.ts + cli.ts
    - --include-partial-messages now drops/keeps text_delta + thinking_delta
      in stream-json mode.
    - --json-schema loads + validates: type:object + required fields. JSON
      output reports schemaError + sets exitCode=1 on mismatch. Lightweight
      (no draft-2020 full validator dep — opt-in via separate validator).

Tests: core 383 → 393 (+10); cli 47 unchanged. Total 430 → 440.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@oratis oratis merged commit 9ed930a into main May 28, 2026
1 of 2 checks passed
@oratis oratis deleted the feat/m8-worktree-launchd-headless branch May 28, 2026 05:57
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