Skip to content

fix(api-public): remove orphan import_export actors module#4764

Open
NathanFlurry wants to merge 1 commit intomainfrom
04-24-fix_api_public_import_export_orphans
Open

fix(api-public): remove orphan import_export actors module#4764
NathanFlurry wants to merge 1 commit intomainfrom
04-24-fix_api_public_import_export_orphans

Conversation

@NathanFlurry
Copy link
Copy Markdown
Member

Summary

  • main is currently broken on Rust CI and all engine Docker builds. Commit 34422ea93 ("chore: fix remaining issues with rivetkit-core") added engine/packages/api-public/src/actors/import_export.rs (874 lines, lifted from the unmerged 04-12-feat_import_export_actors branch) and wired it into mod.rs + router.rs, but the supporting pieces it depends on were never ported:
    • rivet-envoy-protocol and serde_bare deps in engine/packages/api-public/Cargo.toml
    • import_export / import_create modules in rivet-api-types::actors
    • actor_sqlite_v2 module in pegboard
    • pub visibility on list_inner
  • Result: rivet-api-public fails with 15 compile errors (E0432 / E0433 / E0603), cargo build --bin rivet-engine exits 101, and every Docker -arm64 / -amd64 Build & Push job on branches off main fails. Example: https://github.com/rivet-dev/rivet/actions/runs/24889658855/job/72879003373.
  • This PR removes the orphan file and its two wiring hunks. No other code references these symbols; the import/export feature can be re-added in a single self-contained PR that also brings the types, protocol, pegboard, and Cargo.toml pieces.

Test plan

  • cargo check -p rivet-api-public passes
  • cargo check --bin rivet-engine passes
  • Wait for Rust CI + engine Docker builds to go green on this PR

The actors/import_export.rs file was added in 34422ea but its
dependencies (rivet-envoy-protocol, serde_bare, rivet-api-types
import_export module, pegboard::actor_sqlite_v2, pub visibility of
list_inner) were never ported from the unmerged import/export-actors
branch. Result: rivet-api-public fails to compile on main, breaking
all engine Docker builds and Rust CI.

Drop the file and its mod.rs/router.rs wiring until the supporting
pieces land.
@railway-app
Copy link
Copy Markdown

railway-app Bot commented Apr 24, 2026

🚅 Deployed to the rivet-pr-4764 environment in rivet-frontend

Service Status Web Updated (UTC)
frontend-cloud 😴 Sleeping (View Logs) Web Apr 24, 2026 at 1:23 pm
website 😴 Sleeping (View Logs) Web Apr 24, 2026 at 1:21 pm
frontend-inspector ❌ Build Failed (View Logs) Web Apr 24, 2026 at 1:18 pm
mcp-hub ✅ Success (View Logs) Web Apr 24, 2026 at 1:14 pm
ladle ✅ Success (View Logs) Web Apr 24, 2026 at 1:14 pm
kitchen-sink ❌ Build Failed (View Logs) Web Apr 24, 2026 at 1:12 pm

@claude
Copy link
Copy Markdown

claude Bot commented Apr 24, 2026

Code Review

Overview

This is a targeted hotfix that removes an orphaned 874-line file (import_export.rs) and its two wiring hunks, unblocking a broken main. The root cause is clear: commit 34422ea93 cherry-picked import_export.rs from an unmerged branch without bringing along the required Cargo deps, API type modules, pegboard module, and visibility changes.

Assessment: Approve with one note

The change is correct, minimal, and the right call. Attempting to patch in the missing pieces in-place would be riskier than clean removal and re-introduction in a self-contained PR.


Observations

The Cargo.toml is already clean. rivet-api-public/Cargo.toml does not contain rivet-envoy-protocol or serde_bare, confirming those deps were never added — the orphan file referenced them but they were never wired up, exactly as described.

Lingering references in engine tests. The PR description states "no other code references these symbols," but two test files in engine/packages/engine/tests/ still reference the missing modules:

  • actor_import_export_e2e.rs:13 — imports rivet_api_types::actors::import_export
  • actor_import_export_e2e.rs:331,356 — calls pegboard::actor_sqlite_v2::import_actor / export_actor
  • actor_v2_2_1_migration.rs:52 — calls pegboard::actor_sqlite_v2::sqlite_subspace()

Those test files live in dev-dependencies of rivet-engine and will still fail to compile under cargo test -p rivet-engine. They do not block cargo build --bin rivet-engine or the Docker image builds (the immediate goal here), but they should be addressed in a follow-up to keep the full test suite green.

Removed test coverage is acceptable here. The four unit tests inside the deleted file (selector_requires_exactly_one_variant, selector_accepts_actor_ids, kv_entry_round_trip, sqlite_entry_round_trip) are pure logic tests for the removed feature. Losing them temporarily is fine since the feature will be re-added in a complete PR.

The deleted code quality was solid. The batch pagination loop, rollback-on-failure path, deduplication logic, and serde_bare binary archive format were all reasonable. Worth preserving when the feature is re-introduced properly.


Suggestions for the follow-up import/export PR

  • Bring actor_import_export_e2e.rs and actor_v2_2_1_migration.rs back in sync with (or gate behind) the feature addition.
  • The selector_accepts_actor_ids test asserts ids.len() == 2 for two identical input IDs, but the dedup logic in parse_selector would reduce that to 1. Worth verifying the assertion matches the intended behavior before re-landing.

Copy link
Copy Markdown
Member Author

NathanFlurry commented Apr 24, 2026

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions
Copy link
Copy Markdown
Contributor

Preview packages published to npm

Install with:

npm install rivetkit@pr-4764

All packages published as 0.0.0-pr.4764.4370035 with tag pr-4764.

Engine binary is shipped via @rivetkit/engine-cli on linux-x64-musl, linux-arm64-musl, darwin-x64, and darwin-arm64. Windows users should use the release installer or set RIVET_ENGINE_BINARY.

Docker images:

docker pull rivetdev/engine:slim-4370035
docker pull rivetdev/engine:full-4370035
Individual packages
npm install rivetkit@pr-4764
npm install @rivetkit/react@pr-4764
npm install @rivetkit/rivetkit-napi@pr-4764
npm install @rivetkit/workflow-engine@pr-4764

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