[PR #9] [MERGED] feat!: land v3 refactor on main + registry-driven cross-tool flag forwarding #20

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

📋 Pull Request Information

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

Base: mainHead: develop


📝 Commits (8)

  • f383a76 ci: add beta publish workflow for develop branch
  • 3a484e3 ci: auto-increment beta version on each develop push
  • 7004738 fix: align ASCII banner letters to consistent 4-char widths
  • 1fdc86e feat: gradient banner with indigo-to-cyan color sweep
  • 67b0fc0 feat!: v3.0.0 major refactor — typed schemas, library exports, CLI split
  • 30b9e18 fix(ci): respect major version bumps in beta publish workflow
  • 55eeb74 feat: add registry-driven cross-tool flag forwarding
  • 3721b00 Merge branch 'main' into develop (resolve package.json conflict)

📊 Changes

56 files changed (+5808 additions, -3028 deletions)

View changed files

.github/workflows/beta-publish.yml (+68 -0)
📝 .github/workflows/ci.yml (+70 -1)
📝 .gitignore (+2 -0)
📝 README.md (+11 -1)
biome.json (+38 -0)
📝 package.json (+21 -6)
📝 pnpm-lock.yaml (+103 -0)
src/__tests__/conversions.test.ts (+0 -226)
📝 src/__tests__/cwd-matching.test.ts (+1 -1)
📝 src/__tests__/e2e-conversions.test.ts (+37 -16)
📝 src/__tests__/extract-handoffs.ts (+22 -12)
📝 src/__tests__/fixtures/index.ts (+113 -34)
src/__tests__/forward-flags.test.ts (+76 -0)
📝 src/__tests__/injection-test.ts (+7 -22)
src/__tests__/parsers.test.ts (+0 -215)
📝 src/__tests__/real-e2e-full.ts (+85 -73)
src/__tests__/schemas.test.ts (+691 -0)
src/__tests__/shared-utils.test.ts (+458 -0)
📝 src/__tests__/stress-test.ts (+122 -113)
📝 src/__tests__/unit-conversions.test.ts (+228 -101)

...and 36 more files

📄 Description

Summary

This PR brings main up to the current develop line, including the full v3 refactor and the latest cross-tool launch-flag forwarding work.

Compared to origin/main (v2.7.5), this branch includes 56 changed files with 5808 additions and 3028 deletions.

Why this PR

main is still on pre-v3 structure, while recent work moved the project to a modular, typed, registry-driven architecture. This PR consolidates that entire migration and also lands the updated version of the "tool flags" feature aligned to the new infrastructure.

What changed

1) v3 architecture refactor (core)

  • Split monolithic CLI flow into dedicated command modules:
    • src/commands/list.ts
    • src/commands/pick.ts
    • src/commands/resume-cmd.ts
    • src/commands/quick-resume.ts
    • src/commands/scan.ts
    • src/commands/rebuild.ts
  • Introduced explicit display modules (src/display/*) and shared command helpers (src/commands/_shared.ts).
  • Added public library exports in src/index.ts so continues can be consumed as a package API.
  • Standardized parser design around a central adapter registry in src/parsers/registry.ts.

2) Type safety and validation

  • Added/expanded typed schemas (src/types/schemas.ts, src/types/content-blocks.ts, src/types/tool-names.ts).
  • Improved parser and utility boundaries with stricter types and reusable helpers.
  • Added structured error types and logger infrastructure (src/errors.ts, src/logger.ts).

3) Test suite modernization

  • Reworked tests for v3 modules and parser contracts.
  • Added schema and shared utility coverage (src/__tests__/schemas.test.ts, src/__tests__/shared-utils.test.ts).
  • Added/updated conversion and fixture-based tests to match new architecture.

4) CI/versioning pipeline

  • Added beta publish workflow for develop and auto-increment logic.
  • Updated CI handling to respect major version changes.

5) UX and CLI polish

  • Updated banner rendering/alignment.
  • Improved picker behavior and command organization.

6) New: cross-tool launch-flag forwarding (post-refactor aligned)

This supersedes the idea from #5 and implements it in the v3 registry model.

  • Added forwarding engine: src/utils/forward-flags.ts.
  • Added adapter-level mapping hooks: mapHandoffFlags in src/parsers/registry.ts.
  • Cross-tool handoff now supports:
    • mapping known interactive-mode settings per destination tool,
    • forwarding unmapped/unknown flags directly to destination CLI.
  • Enforced Codex precedence:
    • yolo > full-auto > sandbox/ask-for-approval.
  • Added warning UX with 5s TTY countdown for precedence overrides.
  • Applied forwarding only to cross-tool handoff flows.
  • Updated Cursor launch semantics to use agent binary for target execution.
  • Added dedicated tests: src/__tests__/forward-flags.test.ts.

Compatibility / migration notes

  • This is effectively the v3 line (package.json now 3.0.0-beta.0).
  • Node.js requirement is >=22.
  • CLI behavior remains backward-compatible for standard flows, but architecture and internals are substantially reorganized.

Validation

Run on this branch:

  • pnpm -s build
  • pnpm -s test (238 tests passing)

Commit range included

From origin/main..develop:

  • f383a76 ci: add beta publish workflow for develop branch
  • 3a484e3 ci: auto-increment beta version on each develop push
  • 7004738 fix: align ASCII banner letters to consistent 4-char widths
  • 1fdc86e feat: gradient banner with indigo-to-cyan color sweep
  • 67b0fc0 feat!: v3.0.0 major refactor — typed schemas, library exports, CLI split
  • 30b9e18 fix(ci): respect major version bumps in beta publish workflow
  • 55eeb74 feat: add registry-driven cross-tool flag forwarding

Open with Devin

🔄 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/9 **Author:** [@yigitkonur](https://github.com/yigitkonur) **Created:** 2/21/2026 **Status:** ✅ Merged **Merged:** 2/21/2026 **Merged by:** [@yigitkonur](https://github.com/yigitkonur) **Base:** `main` ← **Head:** `develop` --- ### 📝 Commits (8) - [`f383a76`](https://github.com/yigitkonur/cli-continues/commit/f383a76a91508f23ad19af7ad0de213e78624ece) ci: add beta publish workflow for develop branch - [`3a484e3`](https://github.com/yigitkonur/cli-continues/commit/3a484e3b004f16e5dc912dc9c3535357fe2eee37) ci: auto-increment beta version on each develop push - [`7004738`](https://github.com/yigitkonur/cli-continues/commit/7004738cb87866f25a8d5c52c01068d23b0262b6) fix: align ASCII banner letters to consistent 4-char widths - [`1fdc86e`](https://github.com/yigitkonur/cli-continues/commit/1fdc86e26d02b5644ad7d1b02b6123c985d20eee) feat: gradient banner with indigo-to-cyan color sweep - [`67b0fc0`](https://github.com/yigitkonur/cli-continues/commit/67b0fc01d76860e9ff9897e828a7f42cca2c5066) feat!: v3.0.0 major refactor — typed schemas, library exports, CLI split - [`30b9e18`](https://github.com/yigitkonur/cli-continues/commit/30b9e183146c4e206d41f213de79ef82a9be0a38) fix(ci): respect major version bumps in beta publish workflow - [`55eeb74`](https://github.com/yigitkonur/cli-continues/commit/55eeb7432fbd63727431b9d6b769e3a96d1cfb50) feat: add registry-driven cross-tool flag forwarding - [`3721b00`](https://github.com/yigitkonur/cli-continues/commit/3721b00919e5437e3cd85d35f68bc0df9a93eb20) Merge branch 'main' into develop (resolve package.json conflict) ### 📊 Changes **56 files changed** (+5808 additions, -3028 deletions) <details> <summary>View changed files</summary> ➕ `.github/workflows/beta-publish.yml` (+68 -0) 📝 `.github/workflows/ci.yml` (+70 -1) 📝 `.gitignore` (+2 -0) 📝 `README.md` (+11 -1) ➕ `biome.json` (+38 -0) 📝 `package.json` (+21 -6) 📝 `pnpm-lock.yaml` (+103 -0) ➖ `src/__tests__/conversions.test.ts` (+0 -226) 📝 `src/__tests__/cwd-matching.test.ts` (+1 -1) 📝 `src/__tests__/e2e-conversions.test.ts` (+37 -16) 📝 `src/__tests__/extract-handoffs.ts` (+22 -12) 📝 `src/__tests__/fixtures/index.ts` (+113 -34) ➕ `src/__tests__/forward-flags.test.ts` (+76 -0) 📝 `src/__tests__/injection-test.ts` (+7 -22) ➖ `src/__tests__/parsers.test.ts` (+0 -215) 📝 `src/__tests__/real-e2e-full.ts` (+85 -73) ➕ `src/__tests__/schemas.test.ts` (+691 -0) ➕ `src/__tests__/shared-utils.test.ts` (+458 -0) 📝 `src/__tests__/stress-test.ts` (+122 -113) 📝 `src/__tests__/unit-conversions.test.ts` (+228 -101) _...and 36 more files_ </details> ### 📄 Description ## Summary This PR brings `main` up to the current `develop` line, including the full v3 refactor and the latest cross-tool launch-flag forwarding work. Compared to `origin/main` (`v2.7.5`), this branch includes **56 changed files** with **5808 additions** and **3028 deletions**. ## Why this PR `main` is still on pre-v3 structure, while recent work moved the project to a modular, typed, registry-driven architecture. This PR consolidates that entire migration and also lands the updated version of the "tool flags" feature aligned to the new infrastructure. ## What changed ### 1) v3 architecture refactor (core) - Split monolithic CLI flow into dedicated command modules: - `src/commands/list.ts` - `src/commands/pick.ts` - `src/commands/resume-cmd.ts` - `src/commands/quick-resume.ts` - `src/commands/scan.ts` - `src/commands/rebuild.ts` - Introduced explicit display modules (`src/display/*`) and shared command helpers (`src/commands/_shared.ts`). - Added public library exports in `src/index.ts` so `continues` can be consumed as a package API. - Standardized parser design around a central adapter registry in `src/parsers/registry.ts`. ### 2) Type safety and validation - Added/expanded typed schemas (`src/types/schemas.ts`, `src/types/content-blocks.ts`, `src/types/tool-names.ts`). - Improved parser and utility boundaries with stricter types and reusable helpers. - Added structured error types and logger infrastructure (`src/errors.ts`, `src/logger.ts`). ### 3) Test suite modernization - Reworked tests for v3 modules and parser contracts. - Added schema and shared utility coverage (`src/__tests__/schemas.test.ts`, `src/__tests__/shared-utils.test.ts`). - Added/updated conversion and fixture-based tests to match new architecture. ### 4) CI/versioning pipeline - Added beta publish workflow for `develop` and auto-increment logic. - Updated CI handling to respect major version changes. ### 5) UX and CLI polish - Updated banner rendering/alignment. - Improved picker behavior and command organization. ### 6) New: cross-tool launch-flag forwarding (post-refactor aligned) This supersedes the idea from #5 and implements it in the v3 registry model. - Added forwarding engine: `src/utils/forward-flags.ts`. - Added adapter-level mapping hooks: `mapHandoffFlags` in `src/parsers/registry.ts`. - Cross-tool handoff now supports: - mapping known interactive-mode settings per destination tool, - forwarding unmapped/unknown flags directly to destination CLI. - Enforced Codex precedence: - `yolo > full-auto > sandbox/ask-for-approval`. - Added warning UX with 5s TTY countdown for precedence overrides. - Applied forwarding only to cross-tool handoff flows. - Updated Cursor launch semantics to use `agent` binary for target execution. - Added dedicated tests: `src/__tests__/forward-flags.test.ts`. ## Compatibility / migration notes - This is effectively the v3 line (`package.json` now `3.0.0-beta.0`). - Node.js requirement is `>=22`. - CLI behavior remains backward-compatible for standard flows, but architecture and internals are substantially reorganized. ## Validation Run on this branch: - `pnpm -s build` ✅ - `pnpm -s test` ✅ (238 tests passing) ## Commit range included From `origin/main..develop`: - `f383a76` ci: add beta publish workflow for develop branch - `3a484e3` ci: auto-increment beta version on each develop push - `7004738` fix: align ASCII banner letters to consistent 4-char widths - `1fdc86e` feat: gradient banner with indigo-to-cyan color sweep - `67b0fc0` feat!: v3.0.0 major refactor — typed schemas, library exports, CLI split - `30b9e18` fix(ci): respect major version bumps in beta publish workflow - `55eeb74` feat: add registry-driven cross-tool flag forwarding <!-- devin-review-badge-begin --> --- <a href="https://app.devin.ai/review/yigitkonur/cli-continues/pull/9" 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 --> --- <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:17 +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#20
No description provided.