Skip to content

chore(sync): merge upstream dev through 101776024c - #487

Merged
shuv1337 merged 125 commits into
integration-v2from
weekly-upstream-sync
Nov 12, 2026
Merged

shuv1337 merged 125 commits into
integration-v2from
weekly-upstream-sync

Conversation

@shuv1337

@shuv1337 shuv1337 commented Nov 12, 2026 •

Copy link
Copy Markdown
Owner

Summary

Normal two-parent weekly upstream merge, following #484. No merge into the default branch, release, publication, deployment or live-service restart. This PR targets only shuv1337/shuvcode:integration-v2.

  • Fork base: 70439b48f5b2fe5941bd93aaf22216ff2bd78f3b; preserves the four unreleased commits from fix(tests): isolate server and application test environments #485 and fix(cli): install and verify Bun upgrade platform packages #486, including their merges.
  • Upstream range: 3b04ec6f5950b25713f869adf80b878e16a8d50a..101776024cc69bafb3f9dc90027ab4d1eab40a2a, 121 commits from upstream/dev.
  • Merge commit: 66f97a0bd2a16312d3ef4d54060d3dc433c9b6f1; final head 8154c6572b256a8b470b806bc6c1c041bfa389ac. Follow-ups only fix hygiene configuration/dormant upstream scripts and update the audit; the built product source is unchanged. Versions remain 2.2.7 upstream / 2.2.7-shuv.1 CLI; no release preparation.
  • Refreshed origin/upstream and checked all 158 unmerged local/origin refs, unique-history/diff summaries and current fork PR status. Every tip matches chore(sync): sync upstream through v2.2.7 #484's audit; every disposition is recorded and preserved. No unrelated branch was landed or deleted. The local default was stale and checked out elsewhere; the topic uses the refreshed remote default rather than modifying that worktree.

Durable audit, complete branch dispositions and verification.

Upstream highlights

Always-background subagents with reports at each idle boundary; daemon-backed shell execution across handoffs; clean failed-stream retries; freeform tool input; Google/LM Studio decision models; experimental MCP Events; OpenTUI 0.8.4/live plugin themes; app Recent/sidebar/timeline experiments; Code Mode VM as the only engine. Upstream also relocates stats/API/V1 docs and removes SST.

Conflicts and resolutions

35 paths conflicted:

Paths Resolution
.github/workflows/{bot-nix-hashes,check-process-daemon,check-test,deploy-files,deploy-site,deploy-update,deploy,release-process-daemon,release}.yml Keep all nine fork deletions. No upstream publishing/deployment workflow enabled.
.github/release/{plan-release,verify-artifacts}.sh Upstream actor/digest rules plus fork shellcheck annotations; scripts remain disconnected from fork publishing.
AGENTS.md Preserve fork identity, A/B and Visual guidance alongside upstream updates; document renamed infrastructure.
CHANGELOG.md Preserve fork history and upstream notes; add an unreleased sync summary.
packages/cli/package.json Retain shuvcode, its sole bin and suffixed version.
bun.lock Regenerate upstream dependency graph against merged manifests, restoring fork packages/patches/identity; frozen install passes.
packages/data/{app,core,server}/package.json Adopt upstream relocated manifests, retain infrastructure CI/publish exclusions.
packages/{function,web}/package.json Accept deletions with upstream moves to services/legacy and services/site; no orphan manifests.
packages/cli/src/services/updater.ts, commands/handlers/upgrade.ts, test/updater-install.test.ts Preserve npm-only fork targets, platform detection, actionable diagnostics and #486 Bun installation/verification. Port owning npm prefix (including nested native packages) and Volta/mise guidance; do not restore upstream curl/Homebrew/WinGet targets.
packages/core/src/plugin/internal.ts Retain both Jev and new MCP Event tool registrations.
packages/core/src/session/execution.ts, run-coordinator.ts Combine upstream settlement reports/draining/interruption state with fork ToolActivity leases, inactivity reason, prepare ownership and await-settlement support.
packages/core/src/session/execution/restart.ts Reattach known daemon shells before ambiguous-call inspection. Preserve prepared child/inbox identities, cancellation and ambiguous-effect guards. Prepared owners defer child launch until suspended-root restart budgets are charged.
packages/core/src/session/subagent-job.ts, tool/plugin/subagent.ts Adopt always-background launch and settlement-owned reports while preserving durable operation/notification identities. Old prepared foreground calls recover in background; remove obsolete foreground observers.
packages/core/src/session/runner/to-llm-message.ts Adopt upstream ran-call/failed-stream selection and tail metadata rules; preserve rich failure media and exclusion of unconfirmed calls.
packages/core/src/tool.ts Keep fork leases/rich failure handling around the upstream repair hook; forward cooperative cancellation.
packages/core/test/{mcp-oauth,session-execution,session-runner}.test.ts Retain fork coverage, adapt OAuth token API/service fixtures and truncation expectations.
packages/tui/src/config/index.tsx Preserve headless schema.ts split; no JSX-runtime regression in CLI configuration.

Integration fixes also remove an automatically duplicated import, carry inactivity through runner/report types, provide fork services in upstream fixtures, use the real execution coordinator in the SIGKILL recovery fixture, preserve admit-only synthetic delivery, and update execution-evidence/shell-metadata assertions. Corrected an upstream Date test's timezone-offset sign against native Date in America/Los_Angeles.

Fork features at risk / review focus

  1. Crash recovery + always-background subagents: old prepared records, same-child/same-inbox reconciliation, cancellation, ambiguous side effects, exactly one durable result, restart budgets and deferred parent wakes. All 17 SIGKILL boundary cases pass.
  2. Daemon shell handoff + inactivity shutdown: known shells are reattached before ambiguity checks; tool activity leases and rich interrupted output remain intact.
  3. CLI upgrades: native platform executables must identify their launcher and owning npm prefix; Bun must install the matching platform dependency and verify the executable before reporting success. Focused regressions pass.
  4. Fork identity and providers: package/bin/version, XDG/ports, guarded npm publication, bundled Claude/Antigravity/Codex/UI plugins and all three Claude Agent SDK hiding layers remain intact.
  5. Headless CLI config and managed policy: preserve fix(config): surface configuration errors in TUI and CLI #481/fix(cli): keep headless configuration independent of JSX #483 diagnostics/schema split and chore(sync): sync upstream through v2.2.7 #484's bounded policy waits, plus fix(tests): isolate server and application test environments #485 isolation.
  6. Infrastructure scope: moved data packages and dormant upstream release scripts must not enable upstream infrastructure deployment in the fork.

Feature flags

No new fork flag for the sync/compatibility fixes. Preserve upstream shell_timeout_background, mcp_events, console_watches and app experiments. Upstream removes codemode_vm because the VM is now the only engine. Always-background subagents and daemon shell execution follow upstream defaults and are explicitly called out above.

Verification

Bun 1.4.4. Tests/smokes use clean HOME/XDG/temp roots, no inherited credentials, private loopback networks and hidden real configuration/data stores/ancestor node_modules. Build downloads use the same clean environment with network enabled. Only disposable test services are started/stopped.

Gate Result
Frozen install Pass, no lockfile drift
bun run check Pass: 40/40 package tasks; lint 0 errors
Official per-package compiler CI loop Pass; final CLI official check also passes
Full local Turbo units, --force, concurrency 3 35/35 tasks pass, 0 cache hits, 6m28s; includes data-infrastructure tests excluded from fork CI
Core 7,616 pass / 16 skip / 0 fail
CLI 476 pass / 7 skip / 0 fail
TUI 1,748 pass / 2 skip / 0 fail
Server 139 pass / 1 skip / 0 fail
SIGKILL subagent recovery 17/17 pass
Focused CLI config/update tests 50 pass / 4 skip; final native-prefix updater run: 30 pass / 4 skip / 0 fail
Effect simplification rules / scan 10/10 pass; scan passes
Client generation / generated drift Pass; no manual generated edits
Final release-channel Bun Linux x64 build Pass, embedded web UI
Final release-channel Node Linux x64 native build Pass, embedded web UI
Final compiled service smokes Both pass: election/auth/web UI/plugins/lifecycle
Compiled versions Both 2.2.7-shuv.1
Whitespace Pass outside byte-identical upstream MCP patch context indentation
Pre-push hook Pass, 40/40 tasks

The final npm-native-prefix adaptation was tested separately after the full unit run and before the final builds. Earlier unit runs exposed the corrected integration fixtures/timezone assertion; their failure paths also triggered a Turbo launcher SIGSEGV (papercut pc_4bef4e2422a7). The final all-green run completed normally. No browser E2E/component run, live-provider auth, cross-platform execution or all-target compilation is claimed.

CI

All five checks passed on 8154c6572b256a8b470b806bc6c1c041bfa389ac, confirmed with gh pr checks 487 --repo shuv1337/shuvcode --watch:

  • typecheck: pass (2m7s), including headless CLI configuration smoke tests.
  • hygiene: pass (25s).
  • plugin-browser: pass (24s).
  • Socket Security Project Report and Pull Request Alerts: both pass.

CI fixes: allowlist only the exact public Cloudflare Access JWT audience from upstream services/update (not a credential; reproduced with pinned Gitleaks 8.21.2), explicitly fail five dormant deploy scripts on unsuccessful cd, and preserve keychain paths as array arguments in the dormant signing script. All tracked shell scripts pass Shellcheck's warning gate; Bash syntax checks pass. No deployment/signing script was executed. Standalone actionlint still reports existing publish-workflow constant-comparison warnings and the existing embedded-JavaScript single-quote note; those unchanged workflow diagnostics are outside this sync.

PR remains open and unmerged for orchestrator review.

Reviewing this large merge

This PR exceeds GitHub's 300-file diff endpoint limit. Fetch its head and inspect the complete local diff against 70439b48f5b2fe5941bd93aaf22216ff2bd78f3b; use git show --remerge-diff 66f97a0bd2 for conflict resolutions. Do not rely on gh pr diff or a remote-only review that omits hunks.

adamdotdevin and others added 30 commits November 10, 2026 09:34
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Daniel <daniel@anoma.ly>
…tive (anomalyco#62883)

Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
…r clients (anomalyco#62882)

Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
vglafirov and others added 25 commits November 11, 2026 21:08
Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com>
…co#63440)

Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
@shuv1337
shuv1337 merged commit 920cf0a into integration-v2 Nov 12, 2026
7 checks passed
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.