[PR #1] [MERGED] Add Factory Droid CLI support #12

Closed
opened 2026-03-04 01:39:15 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/yigitkonur/cli-continues/pull/1
Author: @yigitkonur
Created: 2/19/2026
Status: Merged
Merged: 2/19/2026
Merged by: @yigitkonur

Base: mainHead: feat/droid-integration


📝 Commits (3)

  • 288c76f feat: add Factory Droid CLI support
  • 059b910 test: add Droid fixtures and expand to 30 conversion paths
  • f457a5d chore: bump to v2.7.0, update docs for Droid support

📊 Changes

16 files changed (+950 additions, -26 deletions)

View changed files

CHANGELOG.md (+23 -0)
CLAUDE.md (+135 -0)
📝 README.md (+8 -5)
📝 package.json (+5 -2)
📝 src/__tests__/conversions.test.ts (+8 -2)
📝 src/__tests__/e2e-conversions.test.ts (+5 -1)
📝 src/__tests__/extract-handoffs.ts (+4 -1)
📝 src/__tests__/fixtures/index.ts (+131 -0)
📝 src/__tests__/unit-conversions.test.ts (+86 -6)
📝 src/cli.ts (+14 -5)
src/parsers/droid.ts (+508 -0)
📝 src/parsers/index.ts (+1 -0)
📝 src/types/index.ts (+1 -1)
📝 src/utils/index.ts (+6 -2)
📝 src/utils/markdown.ts (+1 -0)
📝 src/utils/resume.ts (+14 -1)

📄 Description

Hey — this adds full support for Factory AI's Droid CLI as the 6th tool in continues.

What changed

Droid stores sessions as JSONL files at ~/.factory/sessions/<workspace-slug>/ with a companion .settings.json for model and token metadata. The format turned out to be very close to Claude Code's — Anthropic-style tool_use/tool_result content blocks — so the parser was straightforward to write.

New parser (src/parsers/droid.ts)

Handles all the event types I found in real Droid sessions:

  • session_start — session ID, title, cwd, owner
  • message — user/assistant turns with text, tool_use, tool_result, and thinking content blocks
  • todo_state — extracts pending tasks from Droid's built-in todo tracking
  • compaction_state — silently skipped (context window management)

Tool calls mapped to SummaryCollector categories:

  • Createwrite_file, Readread_file, Edit/ApplyPatchedit_file
  • Execute/Bashshell, LS → directory listing
  • MCP tools (e.g. context7___query-docs) → per-tool categories
  • TodoWrite → skipped (internal bookkeeping)

Token usage and model info come from the companion .settings.json rather than the JSONL stream.

Everything else

All 7 integration points updated: SessionSource type, parser barrel, session index, resume commands (droid -s <id>), markdown labels, CLI colors + quick-resume subcommand.

Testing

  • 84 unit tests passing (up from 61)
  • 30 conversion paths tested (was 20) — every source↔target combination
  • 3 new Droid-specific parser tests
  • Injection safety tests for all Droid handoff paths
  • Manually verified against 5 real Droid sessions on my machine — session discovery, context extraction, and handoff markdown all work correctly

Version bump

2.6.7 → 2.7.0 (new platform = minor version). Added postinstall message so people know about Droid support when they upgrade.

Test plan

  • pnpm build — clean compile
  • pnpm test — 84/84 pass
  • continues list --source droid — discovers real sessions
  • continues scan — shows droid in source breakdown
  • Context extraction produces valid handoff markdown with files modified, tool activity, model info, and token usage
  • MCP tool calls (context7) parsed correctly
  • Thinking blocks extracted as reasoning highlights

Open with Devin

Summary by CodeRabbit

Release Notes v2.7.0

  • New Features

    • Added Factory Droid support with session discovery, auto-resume, and cross-tool handoff capabilities
    • Extract reasoning highlights, token/model usage, and pending tasks from sessions
    • Enhanced file and shell operation handling with MCP tool calls
  • Documentation

    • Added comprehensive integration guide for developers
    • Updated README with Droid in supported tools and cross-tool handoff examples
  • Tests

    • Expanded test coverage to 30 conversion paths across 6 supported sources
  • Chores

    • Version bumped to 2.7.0

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/yigitkonur/cli-continues/pull/1 **Author:** [@yigitkonur](https://github.com/yigitkonur) **Created:** 2/19/2026 **Status:** ✅ Merged **Merged:** 2/19/2026 **Merged by:** [@yigitkonur](https://github.com/yigitkonur) **Base:** `main` ← **Head:** `feat/droid-integration` --- ### 📝 Commits (3) - [`288c76f`](https://github.com/yigitkonur/cli-continues/commit/288c76f36f3ce7b9fc5ffd3ee4ed8f1adcda65ce) feat: add Factory Droid CLI support - [`059b910`](https://github.com/yigitkonur/cli-continues/commit/059b9105d4065b52eba5a626f85a9421cc32d803) test: add Droid fixtures and expand to 30 conversion paths - [`f457a5d`](https://github.com/yigitkonur/cli-continues/commit/f457a5d0adf89b316c57d5bb5abb38e08c6c191f) chore: bump to v2.7.0, update docs for Droid support ### 📊 Changes **16 files changed** (+950 additions, -26 deletions) <details> <summary>View changed files</summary> ➕ `CHANGELOG.md` (+23 -0) ➕ `CLAUDE.md` (+135 -0) 📝 `README.md` (+8 -5) 📝 `package.json` (+5 -2) 📝 `src/__tests__/conversions.test.ts` (+8 -2) 📝 `src/__tests__/e2e-conversions.test.ts` (+5 -1) 📝 `src/__tests__/extract-handoffs.ts` (+4 -1) 📝 `src/__tests__/fixtures/index.ts` (+131 -0) 📝 `src/__tests__/unit-conversions.test.ts` (+86 -6) 📝 `src/cli.ts` (+14 -5) ➕ `src/parsers/droid.ts` (+508 -0) 📝 `src/parsers/index.ts` (+1 -0) 📝 `src/types/index.ts` (+1 -1) 📝 `src/utils/index.ts` (+6 -2) 📝 `src/utils/markdown.ts` (+1 -0) 📝 `src/utils/resume.ts` (+14 -1) </details> ### 📄 Description Hey — this adds full support for Factory AI's [Droid CLI](https://www.factory.ai/) as the 6th tool in `continues`. ## What changed Droid stores sessions as JSONL files at `~/.factory/sessions/<workspace-slug>/` with a companion `.settings.json` for model and token metadata. The format turned out to be very close to Claude Code's — Anthropic-style `tool_use`/`tool_result` content blocks — so the parser was straightforward to write. ### New parser (`src/parsers/droid.ts`) Handles all the event types I found in real Droid sessions: - **`session_start`** — session ID, title, cwd, owner - **`message`** — user/assistant turns with `text`, `tool_use`, `tool_result`, and `thinking` content blocks - **`todo_state`** — extracts pending tasks from Droid's built-in todo tracking - **`compaction_state`** — silently skipped (context window management) Tool calls mapped to `SummaryCollector` categories: - `Create` → `write_file`, `Read` → `read_file`, `Edit`/`ApplyPatch` → `edit_file` - `Execute`/`Bash` → `shell`, `LS` → directory listing - MCP tools (e.g. `context7___query-docs`) → per-tool categories - `TodoWrite` → skipped (internal bookkeeping) Token usage and model info come from the companion `.settings.json` rather than the JSONL stream. ### Everything else All 7 integration points updated: `SessionSource` type, parser barrel, session index, resume commands (`droid -s <id>`), markdown labels, CLI colors + quick-resume subcommand. ## Testing - 84 unit tests passing (up from 61) - 30 conversion paths tested (was 20) — every source↔target combination - 3 new Droid-specific parser tests - Injection safety tests for all Droid handoff paths - Manually verified against 5 real Droid sessions on my machine — session discovery, context extraction, and handoff markdown all work correctly ## Version bump 2.6.7 → **2.7.0** (new platform = minor version). Added postinstall message so people know about Droid support when they upgrade. ## Test plan - [x] `pnpm build` — clean compile - [x] `pnpm test` — 84/84 pass - [x] `continues list --source droid` — discovers real sessions - [x] `continues scan` — shows droid in source breakdown - [x] Context extraction produces valid handoff markdown with files modified, tool activity, model info, and token usage - [x] MCP tool calls (context7) parsed correctly - [x] Thinking blocks extracted as reasoning highlights <!-- devin-review-badge-begin --> --- <a href="https://app.devin.ai/review/yigitkonur/cli-continues/pull/1" target="_blank"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1"> <img src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1" alt="Open with Devin"> </picture> </a> <!-- devin-review-badge-end --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes v2.7.0 * **New Features** * Added Factory Droid support with session discovery, auto-resume, and cross-tool handoff capabilities * Extract reasoning highlights, token/model usage, and pending tasks from sessions * Enhanced file and shell operation handling with MCP tool calls * **Documentation** * Added comprehensive integration guide for developers * Updated README with Droid in supported tools and cross-tool handoff examples * **Tests** * Expanded test coverage to 30 conversion paths across 6 supported sources * **Chores** * Version bumped to 2.7.0 <!-- end of auto-generated comment: release notes by coderabbit.ai --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-04 01:39:15 +03:00
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/cli-continues#12
No description provided.