Skip to content

feat(plan): land complete plan mode (original PR: PI-Desktop-Legacy#116, by @Tioit-Wang) - #2

Merged
vastsa merged 19 commits into
mainfrom
feat/complete-plan-mode-upstream-sync
Aug 5, 2026
Merged

vastsa merged 19 commits into
mainfrom
feat/complete-plan-mode-upstream-sync

Conversation

@vastsa

@vastsa vastsa commented Aug 5, 2026 •

Copy link
Copy Markdown
Owner

Attribution

Original pull request: vastsa/PI-Desktop-Legacy#116, authored by @Tioit-Wang.
Plan mode was implemented by @Tioit-Wang and v_wyxgwang <v_wyxgwang@tencent.com>;
all 19 commits keep their original author and committer metadata unchanged. This
PR only carries them to the intended repository — it is not new authorship.

Tioit-Wang/PI-Desktop is a fork of vastsa/PI-Desktop-Legacy, not of this
repository, so GitHub refused a cross-network pull request ("No commits between").
The branch was therefore pushed here directly, which is why this PR is opened by
@vastsa rather than by @Tioit-Wang. That is a mechanical limitation of the fork
network, not a transfer of credit.

Co-authored-by trailers for the record:

Co-authored-by: Tioit-Wang <me@tioit.cc>
Co-authored-by: v_wyxgwang <v_wyxgwang@tencent.com>

Shape

  • main (7974cda) is an ancestor of the branch, and the branch is 0 commits
    behind, so the merge result is exactly the branch tree — no new resolution.
  • 19 incoming commits: Plan mode across Desktop/Electron, agent-runtime/shared,
    and Rust host-core, plus the integration-lane merge commits.
  • Legacy's main was behind this repository's, so nothing Legacy-only rides along.

Conflict resolution

The integration lanes left two source contracts describing the pre-plan UI, which
failed the desktop suite on the merged branch. Fixed in 030dc32 (the only commit
here not by the original authors):

  • Composer switches its send/stop button on runActive, which folds an in-flight
    plan execution into the session's own isRunning. The test now tracks that and
    asserts the derivation, so the control still follows the visible session.
  • Dropped the dead .ct-mode / .ct-mode-btn rules the merge reintroduced. The
    mode selector lives in the composer's left toolbar; nothing renders those
    classes, and both topbar contracts require their absence.

Validation

Full CI-equivalent run on this exact tree, all green:

  • pnpm build:js, pnpm --filter @pi-desktop/desktop typecheck, pnpm lint
  • Unit tests: desktop 444, agent-runtime 130, shared 114, plugin-sdk 92,
    plugin-devkit 34, i18n 7 — 0 failures
  • cargo test -p host-core --locked: 164 passed

E2E was not run.

🤖 Generated with Claude Code

v_wyxgwang and others added 19 commits July 30, 2026 17:16
feat(plan): complete checkpoint approval and shell execution
# Conflicts:
#	apps/desktop/electron/main/agent-sidecar.ts
#	apps/desktop/electron/main/host-process.ts
#	apps/desktop/electron/main/index.ts
#	apps/desktop/src/components/ChatTranscript.tsx
#	apps/desktop/src/lib/api.ts
#	apps/desktop/src/stores/app-store.ts
#	packages/agent-runtime/src/host-client.ts
#	packages/agent-runtime/src/parent-host-proxy.test.ts
#	packages/agent-runtime/src/parent-host-proxy.ts
#	packages/agent-runtime/src/runtime.test.ts
#	packages/agent-runtime/src/runtime.ts
#	packages/agent-runtime/src/sidecar.ts
#	packages/shared/src/errors.ts
# Conflicts:
#	apps/desktop/electron/main/agent-sidecar.ts
#	apps/desktop/electron/main/host-process.ts
#	apps/desktop/electron/main/index.ts
#	apps/desktop/src/components/ChatTranscript.tsx
#	apps/desktop/src/lib/api.ts
#	apps/desktop/src/stores/app-store.ts
#	crates/host-core/src/rpc/mod.rs
#	crates/host-core/src/sessions.rs
#	crates/host-core/src/state.rs
#	crates/host-core/src/tools/mod.rs
#	crates/host-core/src/tools/shell.rs
#	packages/agent-runtime/src/host-client.ts
#	packages/agent-runtime/src/parent-host-proxy.test.ts
#	packages/agent-runtime/src/parent-host-proxy.ts
#	packages/agent-runtime/src/runtime.test.ts
#	packages/agent-runtime/src/runtime.ts
#	packages/agent-runtime/src/sidecar.ts
#	packages/shared/src/errors.ts
# Conflicts:
#	apps/desktop/electron/main/agent-sidecar.ts
#	apps/desktop/electron/main/host-process.ts
#	apps/desktop/electron/main/index.ts
#	apps/desktop/src/components/ChatTranscript.tsx
#	apps/desktop/src/lib/api.ts
#	apps/desktop/src/stores/app-store.ts
#	crates/host-core/src/rpc/mod.rs
#	crates/host-core/src/sessions.rs
#	crates/host-core/src/state.rs
#	crates/host-core/src/tools/mod.rs
#	crates/host-core/src/tools/shell.rs
#	docs/adr/README.md
#	docs/spec/03-runtime/01-ipc-protocol.md
#	docs/spec/03-runtime/02-agent-runtime.md
#	docs/spec/03-runtime/03-tools-and-permissions.md
#	docs/spec/03-runtime/06-host-rpc-protocol.md
#	docs/spec/03-runtime/07-process-model.md
#	docs/spec/03-runtime/08-error-codes.md
#	docs/spec/03-runtime/09-logging-and-observability.md
#	docs/spec/06-delivery/04-e2e-test-plan.md
#	docs/spec/07-plugins/04-plugin-security.md
#	docs/spec/08-meta/decisions-log.md
#	packages/agent-runtime/src/host-client.ts
#	packages/agent-runtime/src/parent-host-proxy.test.ts
#	packages/agent-runtime/src/parent-host-proxy.ts
#	packages/agent-runtime/src/runtime.test.ts
#	packages/agent-runtime/src/runtime.ts
#	packages/agent-runtime/src/sidecar.ts
#	packages/shared/src/errors.ts
The integration lanes left two source contracts pointing at the pre-plan
shape of the UI, so the desktop suite failed on the merged branch.

- Composer switches its send/stop button on `runActive`, which folds an
  in-flight plan execution into the session's own `isRunning`. Track that
  in the test and assert the derivation, so the control still follows the
  visible session rather than an unrelated global flag.
- Drop the dead `.ct-mode` / `.ct-mode-btn` rules the merge reintroduced.
  The mode selector lives in the composer's left toolbar; nothing renders
  those classes, and both topbar contracts require their absence.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vastsa
vastsa merged commit 5aa715c into main Aug 5, 2026
2 checks passed
@vastsa vastsa changed the title feat(plan): land complete plan mode feat(plan): land complete plan mode (original PR: PI-Desktop-Legacy#116, by @Tioit-Wang) Aug 5, 2026
vastsa added a commit that referenced this pull request Aug 5, 2026
feat(plan): land complete plan mode

Originally proposed as vastsa/PI-Desktop-Legacy#116 by @Tioit-Wang. Plan mode was
implemented by @Tioit-Wang and v_wyxgwang; all 19 merged commits keep their
original author and committer metadata unchanged. This merge only carries that
work to its intended repository and is not new authorship.

Tioit-Wang/PI-Desktop forks PI-Desktop-Legacy rather than this repository, so
GitHub refused a cross-network pull request and the branch was pushed here
directly. That is why PR #2 is opened under @vastsa — a fork-network limitation,
not a transfer of credit.

The single commit here not by the original authors is 030dc32, which reconciles
two source contracts the integration lanes left describing the pre-plan UI.

Co-authored-by: Tioit-Wang <me@tioit.cc>
Co-authored-by: v_wyxgwang <v_wyxgwang@tencent.com>
@vastsa
vastsa deleted the feat/complete-plan-mode-upstream-sync branch August 15, 2026 11:26
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.

2 participants