• Initial public release v0.0.1.alpha2
    Some checks failed
    Test / test (3.2) (push) Failing after 9m43s
    Test / test (3.3) (push) Failing after 10m0s
    Test / test (3.4) (push) Failing after 10m0s

    ajaynomics released this 2026-05-25 13:49:09 +00:00

    opencode-rails — production-grade Rails integration for OpenCode.

    Rails companion to opencode-ruby. ActiveRecord-aware session lifecycle
    (idempotent ensure!/recreate!/abort! with row-level locks), a Turn
    orchestrator driving the Reply state machine and recovering from
    session-not-found, an artifact pipeline backed by ActiveStorage,
    sandbox seeding, and tool-display value objects for Turbo Stream
    broadcasts. Drop into any Rails 7.1+ app that wants production-grade
    OpenCode streaming without rolling boilerplate.

    What this version ships:

    • Opencode::Session (AR-coupled lifecycle, row-level locks)
    • Opencode::Turn (Reply state machine, session-not-found recovery)
    • Opencode::Exchange (one turn = one request/response unit)
    • Opencode::Impostor (deterministic mock for tests)
    • Opencode::Sandbox / SandboxFile (per-session FS scratch space)
    • Opencode::Transform (host-rendered artifact pipeline)
    • Opencode::Artifact / MessageArtifacts (ActiveStorage-backed)
    • Opencode::UploadedFilesPrompt (system-prompt builder)
    • Opencode::ToolDisplay (Turbo Stream value objects)
    • Opencode::ErrorReporter (pluggable adapter — Honeybadger/Sentry/etc.)
    • examples/rails_integration.rb — canonical wiring blueprint

    53 smoke tests. CI on Ruby 3.2/3.3/3.4.

    Ruby >= 3.2. Runtime deps: opencode-ruby = 0.0.1.alpha2,
    activerecord/activestorage/activesupport >= 7.1, < 9.0.

    See CHANGELOG.md for the alpha1 -> alpha2 delta.

    Downloads