Skip to content

OpenCode v2 adapter with lifecycle commands and docs - #3

Merged
SutuSebastian merged 17 commits into
mainfrom
feat/opencode-lossless
Oct 24, 2026
Merged

SutuSebastian merged 17 commits into
mainfrom
feat/opencode-lossless

Conversation

@SutuSebastian

@SutuSebastian SutuSebastian commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Ships the OpenCode v2 adapter plus supporting work, V2 scope only. Deferred: DeepSeek adapter, gallery asset, cockpit TUI, auto continuation after caps.

  • New opencode-lossless package: per-session SQLite mirror, 10 lossless-* commands, 4 recall tools, assembly DAG projection plus host compaction checkpoint.
  • Six harness-agnostic seams upstreamed to lossless-core src/util with opencode as thin wrappers; Pi untouched, no behavior change.
  • Docs for both harnesses plus homepage, host switcher, audited comparisons.
  • Release workflow with npm trusted publishing; all actions pinned to verified SHAs.
  • Live verified: opencode smoke and manual compact pass, 200k-token dogfood compacted for real (15 summaries, clean swap).

Checks: vp check, typecheck, 760 tests, docs build and audit clean, bun audit clean. opencode-lossless 0.1.0 already on npm; merge unblocks the joint 0.1.1 versioning.

…epage

Add the OpenCode v2 plugin on the shared engine: a per-session mirror, the DAG projection, a blocking compaction checkpoint, a child-session reader, and nine lifecycle commands. Add the host seams that let the engine run in a second harness.

Rebuild the docs around both harnesses: per-harness guides and reference pages from shared Blume includes, audited comparison pages under each harness, and OpenCode options, commands, tools, and files checked against the adapter source. Refresh the toolchain and dependencies, and add changesets for the engine seams, the plugin, the owner-only store files, and the dependency refresh.

Bring the updated homepage from Pencil: a Pi, OpenCode v2, and DeepSeek host switch that drives both install commands, the engine and shell package cards, and the refreshed footer.

Gates: vp check, bun run test, typecheck, pack, docs build, validate, audit, opencode:check, opencode:smoke.
@changeset-bot

changeset-bot Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: cf57b8b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 3 packages
Name Type
lossless-core Patch
pi-lossless Patch
opencode-lossless Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitai Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 223 files, which is 123 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 8d53f449-2418-48a2-adfa-594536972463
Commits

Reviewing files that changed from the base of the PR and between 7928b3a and cf57b8b.

Files ignored due to path filters: 7
  • apps/docs/public/logos/deepseek.svg is excluded by !**/*.svg
  • apps/docs/public/logos/opencode-dark.svg is excluded by !**/*.svg
  • apps/docs/public/logos/opencode-light.svg is excluded by !**/*.svg
  • apps/docs/public/logos/pi-color.svg is excluded by !**/*.svg
  • apps/docs/public/logos/pi-dark.svg is excluded by !**/*.svg
  • apps/docs/public/logos/pi-light.svg is excluded by !**/*.svg
  • bun.lock is excluded by !**/*.lock
Files selected for processing: 223
  • .agents/README.md
  • .agents/skills/docs-governance/SKILL.md
  • .agents/skills/docs-sync/SKILL.md
  • .agents/skills/docs-voice/SKILL.md
  • .agents/skills/typescript-best-practices/PATTERNS.md
  • .changeset/README.md
  • .changeset/core-host-seams.md
  • .changeset/dependency-refresh.md
  • .changeset/heal-source-window.md
  • .changeset/observability-and-heal.md
  • .changeset/opencode-lossless.md
  • .changeset/owner-only-store-files.md
  • .github/actions/setup/action.yml
  • .github/workflows/ci.yml
  • .github/workflows/deploy-docs.yml
  • .github/workflows/release.yml
  • AGENTS.md
  • README.md
  • apps/docs/.gitignore
  • apps/docs/blume.config.ts
  • apps/docs/components.ts
  • apps/docs/components/blume/EmptyFooter.astro
  • apps/docs/components/blume/Footer.astro
  • apps/docs/components/blume/Header.astro
  • apps/docs/components/blume/Pagination.astro
  • apps/docs/components/blume/Sidebar.astro
  • apps/docs/components/curated-popular.ts
  • apps/docs/components/mdx/HarnessCards.astro
  • apps/docs/components/seo/FaqSection.astro
  • apps/docs/components/seo/lcm-faqs.ts
  • apps/docs/components/seo/opencode-faqs.ts
  • apps/docs/components/seo/pi-faqs.ts
  • apps/docs/components/visuals/DagFigure.astro
  • apps/docs/components/visuals/RecallFlow.astro
  • apps/docs/content/_snippets/guides/configuration/intro.mdx
  • apps/docs/content/_snippets/guides/configuration/opencode.mdx
  • apps/docs/content/_snippets/guides/configuration/pi.mdx
  • apps/docs/content/_snippets/guides/cross-session-recall/intro.mdx
  • apps/docs/content/_snippets/guides/cross-session-recall/opencode.mdx
  • apps/docs/content/_snippets/guides/cross-session-recall/pi.mdx
  • apps/docs/content/_snippets/guides/getting-started/after.mdx
  • apps/docs/content/_snippets/guides/getting-started/intro.mdx
  • apps/docs/content/_snippets/guides/getting-started/opencode.mdx
  • apps/docs/content/_snippets/guides/getting-started/pi.mdx
  • apps/docs/content/_snippets/guides/troubleshooting/intro.mdx
  • apps/docs/content/_snippets/guides/troubleshooting/opencode.mdx
  • apps/docs/content/_snippets/guides/troubleshooting/pi.mdx
  • apps/docs/content/_snippets/reference/command/after.mdx
  • apps/docs/content/_snippets/reference/command/intro.mdx
  • apps/docs/content/_snippets/reference/command/opencode.mdx
  • apps/docs/content/_snippets/reference/command/pi.mdx
  • apps/docs/content/_snippets/reference/config/after.mdx
  • apps/docs/content/_snippets/reference/config/intro.mdx
  • apps/docs/content/_snippets/reference/config/opencode.mdx
  • apps/docs/content/_snippets/reference/config/pi.mdx
  • apps/docs/content/_snippets/reference/files/after.mdx
  • apps/docs/content/_snippets/reference/files/intro.mdx
  • apps/docs/content/_snippets/reference/files/opencode.mdx
  • apps/docs/content/_snippets/reference/files/pi.mdx
  • apps/docs/content/_snippets/reference/tools/after.mdx
  • apps/docs/content/_snippets/reference/tools/intro.mdx
  • apps/docs/content/_snippets/reference/tools/opencode.mdx
  • apps/docs/content/_snippets/reference/tools/pi.mdx
  • apps/docs/content/concepts/compaction-zones.mdx
  • apps/docs/content/concepts/engine-and-harness.mdx
  • apps/docs/content/concepts/how-it-works.mdx
  • apps/docs/content/concepts/index.mdx
  • apps/docs/content/concepts/limits.mdx
  • apps/docs/content/concepts/recall-and-provenance.mdx
  • apps/docs/content/concepts/security.mdx
  • apps/docs/content/concepts/token-estimation.mdx
  • apps/docs/content/guides/configuration.mdx
  • apps/docs/content/guides/cross-session-recall.mdx
  • apps/docs/content/guides/faq.mdx
  • apps/docs/content/guides/getting-started.mdx
  • apps/docs/content/guides/index.mdx
  • apps/docs/content/guides/meta.ts
  • apps/docs/content/guides/opencode/configuration.mdx
  • apps/docs/content/guides/opencode/cross-session-recall.mdx
  • apps/docs/content/guides/opencode/faq.mdx
  • apps/docs/content/guides/opencode/getting-started.mdx
  • apps/docs/content/guides/opencode/meta.ts
  • apps/docs/content/guides/opencode/troubleshooting.mdx
  • apps/docs/content/guides/pi/configuration.mdx
  • apps/docs/content/guides/pi/cross-session-recall.mdx
  • apps/docs/content/guides/pi/faq.mdx
  • apps/docs/content/guides/pi/getting-started.mdx
  • apps/docs/content/guides/pi/meta.ts
  • apps/docs/content/guides/pi/troubleshooting.mdx
  • apps/docs/content/reference/comparison.mdx
  • apps/docs/content/reference/config.mdx
  • apps/docs/content/reference/files.mdx
  • apps/docs/content/reference/index.mdx
  • apps/docs/content/reference/meta.ts
  • apps/docs/content/reference/opencode/command.mdx
  • apps/docs/content/reference/opencode/comparison.mdx
  • apps/docs/content/reference/opencode/config.mdx
  • apps/docs/content/reference/opencode/files.mdx
  • apps/docs/content/reference/opencode/meta.ts
  • apps/docs/content/reference/opencode/tools.mdx
  • apps/docs/content/reference/pi/command.mdx
  • apps/docs/content/reference/pi/comparison.mdx
  • apps/docs/content/reference/pi/config.mdx
  • apps/docs/content/reference/pi/files.mdx
  • apps/docs/content/reference/pi/meta.ts
  • apps/docs/content/reference/pi/tools.mdx
  • apps/docs/content/reference/roadmap.mdx
  • apps/docs/content/reference/tools.mdx
  • apps/docs/content/roadmap.mdx
  • apps/docs/harness-icons.ts
  • apps/docs/harness-nav.ts
  • apps/docs/package.json
  • apps/docs/pages/404.astro
  • apps/docs/pages/_home/CopyCommand.astro
  • apps/docs/pages/_home/FinalCta.astro
  • apps/docs/pages/_home/Hero.astro
  • apps/docs/pages/_home/Packages.astro
  • apps/docs/pages/_home/Zones.astro
  • apps/docs/scripts/build-comparison.ts
  • apps/docs/theme.css
  • docs/roadmap.md
  • package.json
  • packages/core/README.md
  • packages/core/package.json
  • packages/core/src/commit-policy.ts
  • packages/core/src/compaction-engine.ts
  • packages/core/src/context-policy.ts
  • packages/core/src/export.ts
  • packages/core/src/format.ts
  • packages/core/src/heal.ts
  • packages/core/src/host.ts
  • packages/core/src/import.ts
  • packages/core/src/index.ts
  • packages/core/src/llm.ts
  • packages/core/src/metrics.ts
  • packages/core/src/recall-view.ts
  • packages/core/src/report.ts
  • packages/core/src/retrieval.ts
  • packages/core/src/store.ts
  • packages/core/src/summarize.ts
  • packages/core/src/util/metrics-sink.ts
  • packages/core/src/util/recall-tools.ts
  • packages/core/src/util/redact.ts
  • packages/core/src/util/sidecar-store.ts
  • packages/core/src/util/summarizer-config.ts
  • packages/core/src/util/token-window.ts
  • packages/core/test/context-policy.test.ts
  • packages/core/test/core.test.ts
  • packages/core/test/heal.test.ts
  • packages/core/test/import.test.ts
  • packages/core/test/metrics-instrumentation.test.ts
  • packages/core/test/package-boundary.test.ts
  • packages/core/test/quality.test.ts
  • packages/core/test/report.test.ts
  • packages/core/test/scope-docs.test.ts
  • packages/core/test/store-dag.test.ts
  • packages/core/test/util-summarizer-config.test.ts
  • packages/core/test/util-token-window.test.ts
  • packages/opencode/CHANGELOG.md
  • packages/opencode/LICENSE
  • packages/opencode/README.md
  • packages/opencode/package.json
  • packages/opencode/src/checkpoint.ts
  • packages/opencode/src/command.ts
  • packages/opencode/src/compaction.ts
  • packages/opencode/src/context.ts
  • packages/opencode/src/cross-session.ts
  • packages/opencode/src/host.ts
  • packages/opencode/src/index.ts
  • packages/opencode/src/ingest.ts
  • packages/opencode/src/lifecycle.ts
  • packages/opencode/src/map.ts
  • packages/opencode/src/metrics.ts
  • packages/opencode/src/model-host.ts
  • packages/opencode/src/pass.ts
  • packages/opencode/src/plugin.ts
  • packages/opencode/src/reader.ts
  • packages/opencode/src/sidecars.ts
  • packages/opencode/src/summarizer.ts
  • packages/opencode/src/tools.ts
  • packages/opencode/src/window.ts
  • packages/opencode/test/async-pass.test.ts
  • packages/opencode/test/compaction-hook.test.ts
  • packages/opencode/test/context-checkpoint.test.ts
  • packages/opencode/test/context-projection.test.ts
  • packages/opencode/test/context-reader.test.ts
  • packages/opencode/test/cross-session.test.ts
  • packages/opencode/test/host-compat.test.ts
  • packages/opencode/test/ingest.test.ts
  • packages/opencode/test/lifecycle.test.ts
  • packages/opencode/test/map.test.ts
  • packages/opencode/test/metrics.test.ts
  • packages/opencode/test/model-host.test.ts
  • packages/opencode/test/pass.test.ts
  • packages/opencode/test/plugin.test.ts
  • packages/opencode/test/publish-surface.test.ts
  • packages/opencode/test/reader.test.ts
  • packages/opencode/test/report.test.ts
  • packages/opencode/test/sidecars.test.ts
  • packages/opencode/test/support/opencode-fake.ts
  • packages/opencode/test/tools.test.ts
  • packages/opencode/tsconfig.build.json
  • packages/opencode/tsconfig.json
  • packages/opencode/vite.config.ts
  • packages/pi/README.md
  • packages/pi/package.json
  • packages/pi/src/index.ts
  • packages/pi/src/tools/recall.ts
  • packages/pi/src/ui/command.ts
  • packages/pi/src/ui/config-io.ts
  • packages/pi/test/command.test.ts
  • packages/pi/test/config-io.test.ts
  • packages/pi/test/egress-redact.test.ts
  • packages/pi/test/hook-adapter.test.ts
  • packages/pi/test/publish-surface.test.ts
  • packages/pi/test/recall-tools.test.ts
  • packages/pi/test/sessions.test.ts
  • packages/pi/tsconfig.build.json
  • packages/pi/vite.config.ts
  • scripts/opencode-compact.ts
  • scripts/opencode-config.ts
  • scripts/opencode-live.ts
  • scripts/opencode-smoke.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@SutuSebastian SutuSebastian changed the title OpenCode v2: add the plugin, lifecycle commands, and docs OpenCode v2 adapter with lifecycle commands and docs Oct 24, 2026
@SutuSebastian SutuSebastian self-assigned this Oct 24, 2026
@SutuSebastian SutuSebastian added enhancement New feature or request documentation Improvements or additions to documentation docs Deploy docs site on merge to main labels Oct 24, 2026
@SutuSebastian
SutuSebastian merged commit 6748df1 into main Oct 24, 2026
9 checks passed
@SutuSebastian
SutuSebastian deleted the feat/opencode-lossless branch October 24, 2026 16:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Deploy docs site on merge to main documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant