Skip to content

Sync with upstream opencode v1.18.10 + auto-release on merge to main - #3

Open
smakosh wants to merge 2 commits into
mainfrom
sync-upstream-v1.18.10
Open

Sync with upstream opencode v1.18.10 + auto-release on merge to main#3
smakosh wants to merge 2 commits into
mainfrom
sync-upstream-v1.18.10

Conversation

@smakosh

@smakosh smakosh commented Jul 30, 2026

Copy link
Copy Markdown
Member

Upstream sync (v1.17.12 → v1.18.10)

Brings in 582 upstream commits from sst/opencode since the fork point, including:

  • codemode tool and its test suite
  • Modal provider plugin (packages/devpass-code/src/plugin/modal/)
  • Desktop window-registry refactor, first-launch onboarding, fullscreen wiring
  • App prompt-input rework and new session-ui exports
  • Tree-sitter worker embedding in the CLI build (no more path juggling)
  • Dependency bumps: opentui 0.4.x, ai-sdk providers, @tanstack/virtual-core 3.17.3 (replaces the hand-patched 3.17.0), turbo 2.10
  • New Muse Spark model prompt (rebranded to DevPass Code per fork convention)

Fork-specific behavior preserved and re-verified:

  • DevPass Code branding: binary/bin name, config paths (devpass-code.json, .devpass-code/, ~/.config/devpass-code), prompts, TUI tips
  • LLM Gateway model catalog kept in place of upstream's models.dev fetch/cache subsystem (packages/core/src/models-dev.ts)
  • LLM Gateway-only internal auth plugins (upstream's new Copilot/Modal/GitLab/Poe/Cloudflare/Azure/DO/Snowflake/xAI plugin registrations intentionally not enabled)
  • theopenco release pipeline in publish.yml (npm devpass-code, Homebrew tap, Docker ghcr, AUR, curl installer)

Merge mechanics: grafted the fork's initial commit onto upstream v1.17.12 so git had a real merge base with rename detection (packages/opencodepackages/devpass-code), merged v1.18.10, resolved 74 conflicts, squashed to keep the fork's clean history. Upstream base for the next sync: v1.18.10 (recorded in the commit message).

Auto-release on merge to main

Second commit wires publish.yml to run on pushes to main with an implicit patch bump, so every merged PR releases to:

  • npm (devpass-code + platform packages)
  • Homebrew (theopenco/tap/devpass-code)
  • Docker (ghcr.io/theopenco/devpass-code)
  • AUR (devpass-code-bin, when AUR_KEY is set)
  • GitHub releases (which the curl installer consumes)

Loop protection (the release pushes a version-sync commit back to main):

  1. that commit now carries [skip ci]
  2. the version job skips when the head commit is a version sync
  3. the publish job no longer runs when version was skipped

Versioning: the checked-in version now acts as a floor, so the first release after this merge is v1.18.11 (continuing from upstream parity) rather than v1.17.14.

Verification

  • bun turbo typecheck: all 30 packages pass
  • bun test (config/plugin/provider suites): 1 net-new failure vs main — a new upstream test asserting models.dev variant data the LLM Gateway catalog doesn't carry, same class as the 55 catalog-dependent failures that already fail on main
  • CLI smoke test: boots, --help shows devpass-code branding
  • Version logic dry-run: next release computes to 1.18.11
  • No conflict markers, no stray packages/opencode/ paths, bun install clean

https://claude.ai/code/session_01B93v5L421B4FGsYebLN3eV

smakosh added 2 commits July 30, 2026 20:54
Merge sst/opencode changes from the fork point (v1.17.12) through the
v1.18.10 release into devpass-code: 582 upstream commits covering the
codemode tool, modal plugin, window-registry refactor, prompt-input
rework, tree-sitter worker embedding, dependency bumps (opentui 0.4.x,
ai-sdk updates, @tanstack/virtual-core 3.17.3), and assorted fixes.

Fork-specific behavior is preserved:
- DevPass Code branding (binary, config paths, prompts, TUI tips)
- LLM Gateway model catalog in place of models.dev fetching
- LLM Gateway-only internal auth plugins
- theopenco release pipeline (npm devpass-code, Homebrew tap, Docker,
  AUR, curl installer)

Upstream base for the next sync: v1.18.10.

Claude-Session: https://claude.ai/code/session_01B93v5L421B4FGsYebLN3eV
Pushes to main now trigger publish.yml with an implicit patch bump,
releasing to npm, the Homebrew tap, Docker (ghcr), AUR, and GitHub
releases (which the curl installer reads).

Loop protection: the version-sync commit the release pushes back to
main now carries [skip ci], the version job additionally skips when
the head commit is a version sync, and the publish job no longer runs
when the version job was skipped.

The release version now uses the checked-in version as a floor, so
after an upstream sync the next release continues from the synced
version (1.18.10 -> 1.18.11) instead of npm's last published 1.17.13.

Claude-Session: https://claude.ai/code/session_01B93v5L421B4FGsYebLN3eV
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.

1 participant