Automated upstream merge for v0.83.0 did not complete cleanly (result: CONFLICTS).
Agent report
Upstream merge report
- Result: conflicts, merge aborted
- Attempted at: 2026-07-31T06:28:38Z
- Upstream repo: badlogic/pi-mono
- Requested upstream release tag: v0.83.0
- Upstream release tag SHA: 845d6ff
- Live upstream/main SHA: 74caa26
- Starting branch HEAD: c0c9e6c
- Merge base: 5bc1c2c
- Merge command attempted:
git merge --no-ff upstream/main
Summary
The branch was not a verified no-op. HEAD..upstream/main contained upstream release and post-release commits, so a history-preserving merge was attempted.
The merge produced broad conflicts across package manifests, changelogs, AI adapters, coding-agent runtime surfaces, eval harness files, release scripts, and TUI rendering. Several low-risk conflicts were classifiable by policy, but the TUI renderer conflict was a structural semantic conflict that could not be resolved confidently in automation without risking fork regressions. The merge was aborted as instructed.
Unresolved conflict set observed
package-lock.json
package.json
packages/agent/CHANGELOG.md
packages/agent/package.json
packages/ai/CHANGELOG.md
packages/ai/package.json
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
packages/coding-agent/CHANGELOG.md
packages/coding-agent/README.md
packages/coding-agent/docs/session-format.md
packages/coding-agent/examples/extensions/*/package.json
packages/coding-agent/examples/extensions/*/package-lock.json
packages/coding-agent/install-lock/package.json
packages/coding-agent/install-lock/package-lock.json
packages/coding-agent/package.json
packages/coding-agent/src/cli/args.ts
packages/coding-agent/src/cli/config-selector.ts
packages/coding-agent/src/cli/startup-ui.ts
packages/coding-agent/src/core/agent-session-runtime.ts
packages/coding-agent/src/core/agent-session.ts
packages/coding-agent/src/core/extensions/runner.ts
packages/coding-agent/src/core/extensions/types.ts
packages/coding-agent/src/core/package-manager.ts
packages/coding-agent/src/core/resource-loader.ts
packages/coding-agent/src/index.ts
packages/coding-agent/src/main.ts
packages/coding-agent/src/modes/interactive/components/assistant-message.ts
packages/coding-agent/src/modes/interactive/interactive-mode.ts
packages/coding-agent/src/modes/rpc/rpc-mode.ts
packages/coding-agent/test/extensions-runner.test.ts
packages/coding-agent/test/trigger-compact-extension.test.ts
packages/coding-agent/vitest.config.ts
packages/evals/package.json
packages/evals/src/pi-harness.ts
packages/server/CHANGELOG.md
packages/server/package.json
packages/storage/sqlite-node/CHANGELOG.md
packages/storage/sqlite-node/package.json
packages/tui/CHANGELOG.md
packages/tui/package.json
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
scripts/local-release.mjs
scripts/publish.mjs
tsconfig.json
Conflict analysis
The blocking ambiguity is packages/tui/src/tui.ts. Upstream split the renderer into TuiBase, TuiMainScreen, and TuiAltScreen, while the fork has intentional deep modifications in the same renderer: tmux/focus handling, fps throttling, over-wide diagnostics, viewport remap and scrollback repaint paths, cursor visibility coalescing, crash-dump behavior, and synchronized-output/autowrap invariants. Choosing either side mechanically would either drop upstream's alternate-screen architecture or discard the fork's renderer correctness/performance fixes.
Related TUI files (terminal-image.ts, components/markdown.ts, and tests) also overlap with intentional fork behavior documented in packages/tui/src/changes.md, including tmux Kitty passthrough and native Unicode LaTeX rendering.
Coding-agent conflicts were partly resolvable by combining additive upstream features with fork behavior, but they depend on the TUI export/class shape (TUI as an instantiable class versus upstream's base/screen split). Finishing those without first resolving the TUI architecture would risk producing a tree that type-checks by accident while violating runtime UI contracts.
Changelog and QA
No changelog audit was performed because the merge was aborted before a clean merged tree existed.
No pin update, build, check, test, or senpi real-CLI QA was run because the procedure requires stopping on unresolved semantic conflicts.
Resolve manually, then re-run Upstream Agent Merge with force=true.
Automated upstream merge for
v0.83.0did not complete cleanly (result:CONFLICTS).Agent report
Upstream merge report
git merge --no-ff upstream/mainSummary
The branch was not a verified no-op.
HEAD..upstream/maincontained upstream release and post-release commits, so a history-preserving merge was attempted.The merge produced broad conflicts across package manifests, changelogs, AI adapters, coding-agent runtime surfaces, eval harness files, release scripts, and TUI rendering. Several low-risk conflicts were classifiable by policy, but the TUI renderer conflict was a structural semantic conflict that could not be resolved confidently in automation without risking fork regressions. The merge was aborted as instructed.
Unresolved conflict set observed
package-lock.jsonpackage.jsonpackages/agent/CHANGELOG.mdpackages/agent/package.jsonpackages/ai/CHANGELOG.mdpackages/ai/package.jsonpackages/ai/src/api/anthropic-messages.tspackages/ai/src/api/openai-completions.tspackages/ai/src/api/openai-responses.tspackages/ai/src/types.tspackages/coding-agent/CHANGELOG.mdpackages/coding-agent/README.mdpackages/coding-agent/docs/session-format.mdpackages/coding-agent/examples/extensions/*/package.jsonpackages/coding-agent/examples/extensions/*/package-lock.jsonpackages/coding-agent/install-lock/package.jsonpackages/coding-agent/install-lock/package-lock.jsonpackages/coding-agent/package.jsonpackages/coding-agent/src/cli/args.tspackages/coding-agent/src/cli/config-selector.tspackages/coding-agent/src/cli/startup-ui.tspackages/coding-agent/src/core/agent-session-runtime.tspackages/coding-agent/src/core/agent-session.tspackages/coding-agent/src/core/extensions/runner.tspackages/coding-agent/src/core/extensions/types.tspackages/coding-agent/src/core/package-manager.tspackages/coding-agent/src/core/resource-loader.tspackages/coding-agent/src/index.tspackages/coding-agent/src/main.tspackages/coding-agent/src/modes/interactive/components/assistant-message.tspackages/coding-agent/src/modes/interactive/interactive-mode.tspackages/coding-agent/src/modes/rpc/rpc-mode.tspackages/coding-agent/test/extensions-runner.test.tspackages/coding-agent/test/trigger-compact-extension.test.tspackages/coding-agent/vitest.config.tspackages/evals/package.jsonpackages/evals/src/pi-harness.tspackages/server/CHANGELOG.mdpackages/server/package.jsonpackages/storage/sqlite-node/CHANGELOG.mdpackages/storage/sqlite-node/package.jsonpackages/tui/CHANGELOG.mdpackages/tui/package.jsonpackages/tui/src/components/markdown.tspackages/tui/src/index.tspackages/tui/src/terminal-image.tspackages/tui/src/tui.tspackages/tui/test/key-tester.tspackages/tui/test/markdown.test.tspackages/tui/test/terminal-image.test.tspackages/tui/test/tui-render.test.tsscripts/local-release.mjsscripts/publish.mjstsconfig.jsonConflict analysis
The blocking ambiguity is
packages/tui/src/tui.ts. Upstream split the renderer intoTuiBase,TuiMainScreen, andTuiAltScreen, while the fork has intentional deep modifications in the same renderer: tmux/focus handling, fps throttling, over-wide diagnostics, viewport remap and scrollback repaint paths, cursor visibility coalescing, crash-dump behavior, and synchronized-output/autowrap invariants. Choosing either side mechanically would either drop upstream's alternate-screen architecture or discard the fork's renderer correctness/performance fixes.Related TUI files (
terminal-image.ts,components/markdown.ts, and tests) also overlap with intentional fork behavior documented inpackages/tui/src/changes.md, including tmux Kitty passthrough and native Unicode LaTeX rendering.Coding-agent conflicts were partly resolvable by combining additive upstream features with fork behavior, but they depend on the TUI export/class shape (
TUIas an instantiable class versus upstream's base/screen split). Finishing those without first resolving the TUI architecture would risk producing a tree that type-checks by accident while violating runtime UI contracts.Changelog and QA
No changelog audit was performed because the merge was aborted before a clean merged tree existed.
No pin update, build, check, test, or senpi real-CLI QA was run because the procedure requires stopping on unresolved semantic conflicts.
Resolve manually, then re-run
Upstream Agent Mergewithforce=true.