Skip to content

chore!: retire the manifest, schema and codegen layer from the consumer trees - #1854

Merged
tato123 merged 1 commit into
mainfrom
chore/retire-the-manifest-and-schema-layer
Aug 12, 2026
Merged

chore!: retire the manifest, schema and codegen layer from the consumer trees#1854
tato123 merged 1 commit into
mainfrom
chore/retire-the-manifest-and-schema-layer

Conversation

@tato123

@tato123 tato123 commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

109 files deleted, 21 Cargo.toml cleaned — 4,803 lines. Every artifact belongs to a concept the engine already removed. Nothing reads any of it, and none of it could build.

what count why it is dead
streamlib.yaml manifests 28 The manifest is a deleted concept (§Product's zero-ceremony bar: "no manifest authoring"), and schemas/streamlib.schema.json — the file every one of them opens by referencing — was deleted by #1715.
packages/*/schemas/*.yaml 50 "There is no schema layer: no JTD, no schema registry, no embedded schemas, no codegen" — schema-free-ports, #1813 / #1815.
streamlib-codegen.lock 13 The lockfile of the deleted codegen. Nothing in the tree references one.
build.rs calling streamlib_jtd_codegen 18 The crate was deleted with the schema layer. Each of these packages fails at build-script compilation, before reaching its own source.
[build-dependencies] streamlib-jtd-codegen 21 Same.

The consumer trees stay broken — they are written against the deleted identity grammar and that is the wanted signal — but they now fail for one honest reason instead of four, which is what makes the eventual port readable.

packages/core and packages/escalate held nothing but a manifest and schemas, so both are now empty and gone from the index.

What deliberately stays

The 18 _generated_rust_crate_root_/lib.rs files are codegen output of the same dead layer, and I left them. Each is named by its own [lib] path = "_generated_rust_crate_root_/lib.rs", and none of those packages carries a src/ — so deleting one leaves a crate with no root at all. Giving each a real crate root is the port, not this cleanup.

Verification

Every claim checked before deleting, not after:

  • Nothing reads a streamlib.yaml. The only three code references are negative assertions that a scaffolded app has none — hello_streamlib_example_e2e.rs:216 (forbidden_files = ["build.rs", "streamlib.yaml"]), app_sugar_test.rs:210, and a comment in processor_schema_parser.rs.
  • schemas/streamlib.schema.json is already gone — confirmed absent from the index.
  • Nothing references a streamlib-codegen.lock — grep across *.rs, *.toml, *.md.
  • The build scripts split cleanly. 18 call the deleted codegen crate and are removed; 5 do live work and are untouched: packages/test-fixtures (GLSL → SPIR-V), examples/raytracing-showcase, runtime/streamlib-engine, sdk/vulkan-jpeg, vendor/tatolab-vulkanalia-vma.
  • No workspace member loses anything it needs. All 21 Cargo.toml edits are in non-member trees. packages/test-fixtures is the only member touched — it loses streamlib.yaml and 10 schema YAMLs, and keeps build.rs + shaders/, which is all its include_bytes!(concat!(env!("OUT_DIR"), …)) sites need.
  • vendor/ untouched, per the licensing rule.

Test plan

gate result
cargo check --workspace --all-targets pass
cargo test -p streamlib-test-fixtures --no-run pass — shaders still compile
cargo run -p xtask -- check-boundaries pass, no violations
bash .claude/scripts/tests/ship-change-removed-gate.test.sh 37/37

Notes for owner

1. Titled chore! deliberately. It deletes files from packages/ and examples/, which are consumer trees — no engine behaviour changes and nothing in the wheel moves. The ! marks that a consumer checkout loses files, not that any contract shifted.

2. This does not port anything. It removes dead scaffolding so the port isn't reading around it. The remaining reason those trees don't compile is the identity grammar #1851 deleted, which is the signal you asked to keep.

3. packages/screen-capture is now a Cargo.toml, a generated crate root, and three _apple_impl_pending_ files — no live processors at all. Deletion candidate, left out because that is a disposition call rather than dead-artifact removal.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@tato123, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 14 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: dbddceaf-9d84-4a8f-8868-3845bd52e773

📥 Commits

Reviewing files that changed from the base of the PR and between d0dcea3 and 69f3619.

⛔ Files ignored due to path filters (13)
  • packages/audio/streamlib-codegen.lock is excluded by !**/*.lock
  • packages/camera/streamlib-codegen.lock is excluded by !**/*.lock
  • packages/clap/streamlib-codegen.lock is excluded by !**/*.lock
  • packages/debug-utilities/streamlib-codegen.lock is excluded by !**/*.lock
  • packages/display/streamlib-codegen.lock is excluded by !**/*.lock
  • packages/h264/streamlib-codegen.lock is excluded by !**/*.lock
  • packages/h265/streamlib-codegen.lock is excluded by !**/*.lock
  • packages/jpeg/streamlib-codegen.lock is excluded by !**/*.lock
  • packages/moq/streamlib-codegen.lock is excluded by !**/*.lock
  • packages/mp4/streamlib-codegen.lock is excluded by !**/*.lock
  • packages/opus/streamlib-codegen.lock is excluded by !**/*.lock
  • packages/screen-capture/streamlib-codegen.lock is excluded by !**/*.lock
  • packages/webrtc/streamlib-codegen.lock is excluded by !**/*.lock
📒 Files selected for processing (117)
  • examples/camera-plugin-sdk-compute/Cargo.toml
  • examples/camera-plugin-sdk-compute/plugin/Cargo.toml
  • examples/camera-plugin-sdk-compute/plugin/build.rs
  • examples/camera-plugin-sdk-compute/plugin/streamlib.yaml
  • examples/camera-python-display/Cargo.toml
  • examples/camera-python-display/effects/Cargo.toml
  • examples/camera-python-display/effects/build.rs
  • examples/camera-python-display/effects/streamlib.yaml
  • examples/camera-python-display/python/streamlib.yaml
  • examples/camera-python-subprocess/python/streamlib.yaml
  • examples/camera-rust-plugin/Cargo.toml
  • examples/camera-rust-plugin/plugin/Cargo.toml
  • examples/camera-rust-plugin/plugin/build.rs
  • examples/camera-rust-plugin/plugin/streamlib.yaml
  • examples/cuda-fisheye-detection/python/streamlib.yaml
  • examples/moq-roundtrip/streamlib.yaml
  • examples/vulkan-video-psnr/streamlib.yaml
  • examples/vulkan-video-roundtrip-cdylib-camera/streamlib.yaml
  • examples/vulkan-video-roundtrip/streamlib.yaml
  • examples/webrtc-cloudflare-stream/Cargo.toml
  • examples/webrtc-cloudflare-stream/build.rs
  • examples/webrtc-cloudflare-stream/streamlib.yaml
  • packages/audio/Cargo.toml
  • packages/audio/build.rs
  • packages/audio/schemas/audio_capture_config.yaml
  • packages/audio/schemas/audio_channel_converter_config.yaml
  • packages/audio/schemas/audio_mixer_config.yaml
  • packages/audio/schemas/audio_output_config.yaml
  • packages/audio/schemas/audio_resampler_config.yaml
  • packages/audio/schemas/buffer_rechunker_config.yaml
  • packages/audio/schemas/chord_generator_config.yaml
  • packages/audio/streamlib.yaml
  • packages/camera/Cargo.toml
  • packages/camera/build.rs
  • packages/camera/schemas/camera_config.yaml
  • packages/camera/schemas/camera_to_cuda_copy_config.yaml
  • packages/camera/streamlib.yaml
  • packages/clap/Cargo.toml
  • packages/clap/build.rs
  • packages/clap/schemas/clap_effect_config.yaml
  • packages/clap/streamlib.yaml
  • packages/core/schemas/audio_frame.yaml
  • packages/core/schemas/color_info.yaml
  • packages/core/schemas/content_light.yaml
  • packages/core/schemas/encoded_audio_frame.yaml
  • packages/core/schemas/encoded_video_frame.yaml
  • packages/core/schemas/mastering_display.yaml
  • packages/core/schemas/video_frame.yaml
  • packages/core/streamlib.yaml
  • packages/debug-utilities/Cargo.toml
  • packages/debug-utilities/build.rs
  • packages/debug-utilities/schemas/bgra_file_source_config.yaml
  • packages/debug-utilities/schemas/jpeg_bytes_source_config.yaml
  • packages/debug-utilities/schemas/live_video_frame_forwarder_config.yaml
  • packages/debug-utilities/schemas/simple_passthrough_config.yaml
  • packages/debug-utilities/schemas/video_frame_counter_config.yaml
  • packages/debug-utilities/streamlib.yaml
  • packages/display/Cargo.toml
  • packages/display/build.rs
  • packages/display/schemas/display_config.yaml
  • packages/display/streamlib.yaml
  • packages/escalate/schemas/escalate_request.yaml
  • packages/escalate/schemas/escalate_response.yaml
  • packages/escalate/streamlib.yaml
  • packages/frame-tap/Cargo.toml
  • packages/frame-tap/build.rs
  • packages/frame-tap/schemas/frame_tap_config.yaml
  • packages/frame-tap/streamlib.yaml
  • packages/h264/Cargo.toml
  • packages/h264/build.rs
  • packages/h264/schemas/h264_decoder_config.yaml
  • packages/h264/schemas/h264_encoder_config.yaml
  • packages/h264/streamlib.yaml
  • packages/h265/Cargo.toml
  • packages/h265/build.rs
  • packages/h265/schemas/h265_decoder_config.yaml
  • packages/h265/schemas/h265_encoder_config.yaml
  • packages/h265/streamlib.yaml
  • packages/jpeg/Cargo.toml
  • packages/jpeg/build.rs
  • packages/jpeg/schemas/encoded_jpeg_frame.yaml
  • packages/jpeg/schemas/jpeg_decoder_config.yaml
  • packages/jpeg/streamlib.yaml
  • packages/moq/Cargo.toml
  • packages/moq/build.rs
  • packages/moq/schemas/moq_publish_track_config.yaml
  • packages/moq/schemas/moq_subscribe_track_config.yaml
  • packages/moq/streamlib.yaml
  • packages/mp4/Cargo.toml
  • packages/mp4/build.rs
  • packages/mp4/schemas/linux_mp4_writer_config.yaml
  • packages/mp4/streamlib.yaml
  • packages/opus/Cargo.toml
  • packages/opus/build.rs
  • packages/opus/schemas/opus_decoder_config.yaml
  • packages/opus/schemas/opus_encoder_config.yaml
  • packages/opus/streamlib.yaml
  • packages/screen-capture/Cargo.toml
  • packages/screen-capture/build.rs
  • packages/screen-capture/schemas/screen_capture_config.yaml
  • packages/screen-capture/streamlib.yaml
  • packages/test-fixtures/schemas/compute_kernel_test_processor_config.yaml
  • packages/test-fixtures/schemas/concurrent_escalate_test_processor_config.yaml
  • packages/test-fixtures/schemas/escalate_smoke_test_processor_config.yaml
  • packages/test-fixtures/schemas/gpu_acquire_test_processor_config.yaml
  • packages/test-fixtures/schemas/graphics_kernel_smoke_test_processor_config.yaml
  • packages/test-fixtures/schemas/lifecycle_probe_processor_config.yaml
  • packages/test-fixtures/schemas/panicking_continuous_lifecycle_processor_config.yaml
  • packages/test-fixtures/schemas/panicking_manual_lifecycle_processor_config.yaml
  • packages/test-fixtures/schemas/ray_tracing_kernel_smoke_test_processor_config.yaml
  • packages/test-fixtures/schemas/test_configured_processor_config.yaml
  • packages/test-fixtures/streamlib.yaml
  • packages/webrtc/Cargo.toml
  • packages/webrtc/build.rs
  • packages/webrtc/schemas/webrtc_whep_config.yaml
  • packages/webrtc/schemas/webrtc_whip_config.yaml
  • packages/webrtc/streamlib.yaml
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/retire-the-manifest-and-schema-layer

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

…er trees

Every artifact here belongs to a concept the engine already deleted. Nothing
reads any of it, and none of it could build.

- 28 `streamlib.yaml` manifests. The manifest is a deleted concept — §Product's
  zero-ceremony bar is "no manifest authoring" — and the JSON Schema each one
  opens by referencing, `schemas/streamlib.schema.json`, was deleted by #1715.
  The only code that names `streamlib.yaml` today asserts a scaffolded app has
  none (`hello_streamlib_example_e2e.rs:216`, `app_sugar_test.rs:210`).
- 50 `packages/*/schemas/*.yaml`. There is no schema layer: no JTD, no registry,
  no codegen, no generated type classes (schema-free-ports, #1813/#1815).
- 13 `streamlib-codegen.lock`. The lockfile of the deleted codegen; nothing in
  the tree references one.
- 18 `build.rs` that call `streamlib_jtd_codegen::build_rs::run_for_rust_crate()`,
  and the 21 `[build-dependencies]` entries naming that crate. The crate was
  deleted with the schema layer, so each of those packages fails at build-script
  compilation before reaching its own source.

The consumer trees stay broken — they are written against the deleted identity
grammar and that is the wanted signal — but they now fail for one honest reason
instead of four, which is what makes the eventual port readable.

`packages/core` and `packages/escalate` held nothing but a manifest and schemas,
so both are now empty and gone from the index.

The 18 `_generated_rust_crate_root_/lib.rs` stay. They are codegen output of the
same dead layer, but each is named by its own `[lib] path` and none of those
packages carries a `src/`, so removing one leaves a crate with no root at all.
Giving each a real crate root is the port, not this cleanup.

`packages/test-fixtures` keeps its `build.rs` and `shaders/`: that script
compiles GLSL to SPIR-V for the kernel fixtures and never read a schema. It is
the one workspace member here and still builds.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@tato123
tato123 force-pushed the chore/retire-the-manifest-and-schema-layer branch from 66b075b to 69f3619 Compare August 12, 2026 17:37
@tato123
tato123 merged commit d69e753 into main Aug 12, 2026
16 checks passed
@tato123
tato123 deleted the chore/retire-the-manifest-and-schema-layer branch August 12, 2026 17:46
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