Skip to content

Vibejack: sync upstream v1.3.13 -> v1.4.6#27

Merged
standardnguyen merged 474 commits intomainfrom
dev
Apr 17, 2026
Merged

Vibejack: sync upstream v1.3.13 -> v1.4.6#27
standardnguyen merged 474 commits intomainfrom
dev

Conversation

@standards-bot-lola
Copy link
Copy Markdown
Collaborator

Fresh-branch rebase absorbing 469 upstream commits across 11 tags (v1.3.14 through v1.4.6).

New telemetry caught and stripped

  • packages/opencode/src/tool/mcp-exa.ts (new file) - Exa Labs MCP client phoning home to mcp.exa.ai. Stubbed: call() returns undefined. Callers in websearch.ts and codesearch.ts still compile but receive no results.
  • packages/opencode/src/server/ui/index.ts (new file) - fallback proxy through app.opencode.ai for missing web UI assets. Replaced with 404.
  • packages/opencode/src/session/retry.ts - GO_UPSELL_MESSAGE linked to https://opencode.ai/go. URL removed.
  • packages/opencode/src/provider/models.ts - upstream reverted our models.dev strip as part of the Effect refactor. Re-stripped: url() empty, fetchApi() returns empty catalog.
  • Script restructure: upstream moved models-snapshot generation from build.ts to a new generate.ts. Strip logic reapplied there.

Major refactors absorbed

  • ShareNext converted to Effect.Service. Our stub now implements the Interface (init, url, request, create, remove) as no-ops. share-next.test.ts rewritten against the new API.
  • Bootstrap uses Effect.gen and runs init in parallel via Effect.all. ShareNext.Service removed from the init list.
  • Server routes renamed en masse from server/routes/* to server/instance/*. Old server/instance.ts (where we had stripped the app.opencode.ai proxy) was renamed to server/instance/index.ts; our stale copy removed; proxy strip now lives in server/ui/index.ts.

Results

Metric Value
Verification 30/30 PASS
Tests 1884 pass, 13 skip (1 flaky cancel-shell test, passes on retry)
Permission tests 38 pass (Docker non-root)
Build rolandcode-linux-x64 124 MB, smoke test PASS
Patch count 1 consolidated commit (down from 9 pre-sync)

Deep telemetry scan

6a-6f all clean. x-opencode-* headers only fire when providerID starts with opencode (zen gateway, stripped). No new analytics packages, no suspicious base64/eval, no build-pipeline injection.

Pre-sync state preserved at dev-backup-v1.3.13 on origin.

🤖 Generated with Claude Code

kitlangton and others added 30 commits April 9, 2026 13:52
…ry hack (#21749)

Co-authored-by: OpeOginni <brightoginni123@gmail.com>
Beta releases no longer trigger unnecessary Winget submissions, and release
finalization now completes even when some build artifacts are missing.
Skip Windows and Linux code signing, along with artifact downloads for
the beta branch to ensure beta builds don't go through production
release processes.
Ensures users on the prod channel have their data persisted to the same
database as latest and beta channels, preventing data fragmentation
across different release channels.
Brendonovich and others added 23 commits April 15, 2026 10:56
Cherry-picked from ea463e604cdd2a3e83e1c286e39b789455f0d413
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Fresh-branch rebase consolidating 9 patches onto v1.4.6 (469 upstream
commits across 11 tags). Strategy mirrors the 2026-04-02 v1.3.13 sync:
new dev branch from v1.4.6, ours-only files checked out from
dev-backup-v1.3.13, overlapping files 3-way merged (25 clean) or
reset to upstream and re-stripped (17 manual).

New telemetry caught in v1.4.x:
- packages/opencode/src/tool/mcp-exa.ts - new Exa Labs MCP client.
  Stubbed: call() returns undefined.
- packages/opencode/src/server/ui/index.ts - new fallback proxy to
  app.opencode.ai for missing web UI assets. Returns 404 instead.
- packages/opencode/src/session/retry.ts - GO_UPSELL_MESSAGE linked
  to https://opencode.ai/go. URL removed.
- packages/opencode/src/provider/models.ts - models.dev remote fetch
  fully gutted (reverted to our prior strip).

Script restructure: upstream moved models-snapshot generation from
build.ts to a new generate.ts. Strip logic (require MODELS_DEV_API_JSON,
drop opencode/opencode-go providers) reapplied there.

ShareNext rewrite: upstream converted to Effect.Service. New stub layer
implements Interface as no-ops. share-next.test.ts rewritten against
the new API.

Lost in upstream refactor (already gone since v1.3.13 sync):
- OSC leak fix (prependInputHandler removed from opentui)
- Permission integration tests (PermissionNext effectified)

30/30 verify-clean.sh PASS.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Standard Nguyen and others added 4 commits April 16, 2026 23:38
Upstream renamed packages/opencode/src/server/instance.ts to
packages/opencode/src/server/instance/index.ts and moved all
server/routes/*.ts under server/instance/*.ts in v1.4.x. The old
instance.ts was classified as "ours-only modified" during the fresh-
branch rebase and checked back out from dev-backup-v1.3.13, producing
a file with stale `./routes/*` imports that no longer exist.

Local tests caught it after removal (1 import error down from 189 test
failures) but the deletion never made it into c73030f. Dockerfile CI
surfaced it as a build failure.

The app.opencode.ai proxy strip that lived in the old file now lives
in server/ui/index.ts (part of the same sync).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Dev is a fresh-branch rebase from upstream v1.4.6 with consolidated
patches; main contains the v1.3.13-era tree with 170+ patch/fix/merge
commits from prior syncs. There is no sane 3-way merge across 859
changed files.

This is a "merge -s ours": the resulting tree equals dev's, but the
commit has main as a second parent so PR #27 becomes mergeable without
discarding main's history pointer. Pre-sync main tree is preserved at
main-backup-v1.3.13 on origin for reference.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Upstream v1.4.x introduced an OpenTelemetry/OTLP observability layer
(packages/opencode/src/effect/observability.ts) that reads
OTEL_EXPORTER_OTLP_ENDPOINT from the environment. It is off unless the
user sets that env var, but the @opentelemetry/* packages are installed
regardless.

The Vibejack strip policy is zero default phone-home AND zero telemetry
SDKs in the dependency tree (check-deps.sh enforces the latter). Rather
than allowlist @opentelemetry/* as "technically safe while unconfigured,"
strip the integration entirely so the dep-check stays strict:

- delete packages/opencode/src/effect/observability.ts
- replace `Observability.layer` with `EffectLogger.layer` in the three
  callers (run-service.ts, app-runtime.ts, bootstrap-runtime.ts)
- remove OTEL_EXPORTER_OTLP_ENDPOINT/HEADERS flags from flag/flag.ts
- remove @effect/opentelemetry from root package.json catalog
- remove @effect/opentelemetry, @opentelemetry/exporter-trace-otlp-http,
  @opentelemetry/sdk-trace-base, @opentelemetry/sdk-trace-node from
  packages/opencode/package.json
- regenerate bun.lock

If upstream later inlines OpenTelemetry code without the package, the
verify-clean.sh URL scan catches any hardcoded OTLP endpoints. If
upstream re-adds the packages, check-deps.sh fails the build.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Missed two call sites in the initial strip commit:
- packages/opencode/src/session/llm.ts
- packages/opencode/src/agent/agent.ts

Both imported `@effect/opentelemetry/Tracer` and conditionally resolved
an OtelTracer service when cfg.experimental.openTelemetry was set.
Replaced both with `const tracer = undefined`. The experimental config
flag is now a no-op; leaving the schema entry so existing configs parse
without error.

Build + Binary Forensics, Unit Tests, and Docker Build CI checks all
failed on the prior commit with "Could not resolve: @effect/opentelemetry/
Tracer". Local build and tests pass with this fix.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@standardnguyen standardnguyen merged commit 2e0c72a into main Apr 17, 2026
5 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.