Skip to content

upstream merge needs attention: v0.83.0 (CONFLICTS) #551

Description

@code-yeongyu

Automated upstream merge for v0.83.0 did not complete cleanly (result: CONFLICTS).

Agent report

Upstream Merge Report

Result: MERGE_RESULT: CONFLICTS

Refs

  • Fork branch: automation/upstream-v0.83.0-30579535009
  • Fork HEAD before merge: 77a7680963f4729c7889aedce0f13c508b333c8d
  • Live upstream/main: 74caa2649f10ed71b4378ce69f5d9fbfd2466ca5
  • Requested upstream release tag: v0.83.0
  • v0.83.0^{}: 845d6ff1f6643aba440341cce877ce1c43ebbc39
  • Merge base: 5bc1c2c0a6f07e00e8c240304182f213ab8d311f

Action Taken

  • Fetched live upstream/main and tags.
  • Verified this was not a no-op: both upstream/main is ancestor of HEAD and HEAD is ancestor of upstream/main checks failed, and HEAD..upstream/main was non-empty.
  • Started git merge --no-ff upstream/main.
  • Aborted the merge after inspecting the conflict shape because the unresolved runtime conflicts are semantic and unsafe to resolve by choosing one side.

Preserved Fork Work

The abort preserved the existing fork branch unchanged, including the latest fork commits such as:

Unresolved Conflicts

The merge reported conflicts in:

  • Changelogs: packages/agent/CHANGELOG.md, packages/ai/CHANGELOG.md, packages/coding-agent/CHANGELOG.md, packages/server/CHANGELOG.md, packages/storage/sqlite-node/CHANGELOG.md, packages/tui/CHANGELOG.md
  • Package/release metadata and generated locks: package.json, package-lock.json, workspace package.json files, example/install-lock package locks, packages/coding-agent/npm-shrinkwrap.json, scripts/local-release.mjs, scripts/publish.mjs, tsconfig.json
  • AI adapter/runtime types: packages/ai/src/api/anthropic-messages.ts, packages/ai/src/api/openai-completions.ts, packages/ai/src/api/openai-responses.ts, packages/ai/src/types.ts
  • Coding-agent CLI/core/runtime: packages/coding-agent/src/cli/args.ts, config-selector.ts, startup-ui.ts, src/core/agent-session-runtime.ts, src/core/agent-session.ts, src/core/extensions/runner.ts, src/core/extensions/types.ts, src/core/package-manager.ts, src/core/resource-loader.ts, src/index.ts, src/main.ts, src/modes/interactive/components/assistant-message.ts, src/modes/interactive/interactive-mode.ts, src/modes/rpc/rpc-mode.ts
  • Coding-agent tests/config: packages/coding-agent/test/extensions-runner.test.ts, packages/coding-agent/test/trigger-compact-extension.test.ts, packages/coding-agent/vitest.config.ts
  • Evals: packages/evals/src/pi-harness.ts
  • TUI renderer/markdown/image/tests: packages/tui/src/components/markdown.ts, packages/tui/src/index.ts, packages/tui/src/terminal-image.ts, packages/tui/src/tui.ts, packages/tui/test/key-tester.ts, packages/tui/test/markdown.test.ts, packages/tui/test/terminal-image.test.ts, packages/tui/test/tui-render.test.ts
  • Fork/upstream local-agent asset collision: .pi/extensions/prompt-url-widget.ts

Conflict Analysis

Some conflicts were mechanical and likely resolvable with known policy:

  • package-lock.json should take upstream first, then be regenerated with npm install --package-lock-only --ignore-scripts.
  • Fork package manifests should preserve fork identity, CalVer workspace versions, @code-yeongyu/senpi package naming, .senpi config paths, and fork-pinned dependency/toolchain updates where intentional.
  • .pi/extensions/prompt-url-widget.ts collides with the fork's repository-local .senpi assets and should not be reintroduced without an explicit decision.

The blocking ambiguity is runtime architecture:

  • Upstream v0.83.0 / upstream/main split the TUI implementation into TuiBase, TuiMainScreen, and TuiAltScreen.
  • The fork has extensive intentional changes in the previous single TUI implementation: tmux focus handling, kitty/tmux image handling, render-fps control, render diagnostics, scrollback replay behavior, viewport/multiplexer policies, and restart/cursor hardening.
  • Correctly preserving the fork behavior while adopting upstream's new TUI architecture requires porting those fork invariants into TuiBase and/or TuiMainScreen, plus reconciling the new TuiAltScreen API and updated imports in coding-agent. This is not a safe text conflict resolution.
  • Several coding-agent conflicts depend on that TUI API decision (startup-ui.ts, config-selector.ts, interactive-mode.ts, and related tests), so resolving them first would risk baking in the wrong architecture.
  • AI adapter conflicts also overlap fork-specific static header auth, Kimi XTML recovery, OpenAI stream lifecycle fixes, and upstream compatibility auto-detection. These should be reconciled with focused adapter tests rather than side selection.

QA

No changelog audit, pin update, build, check, test, or senpi real-CLI QA was run after the conflict because the merge was aborted per the procedure.

Resolve manually, then re-run Upstream Agent Merge with force=true.

Metadata

Metadata

Assignees

No one assigned

    Labels

    sync-conflictAutomated upstream sync needs maintainer attention

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions