Skip to content

feat: Cargo workspace with gateway placeholder (#82) - #99

Merged
jsam merged 3 commits into
mainfrom
feat/workspace-split
Aug 20, 2026
Merged

jsam merged 3 commits into
mainfrom
feat/workspace-split

Conversation

@jsam

@jsam jsam commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

What

Implements #82 in its minimal mechanical form: the repo becomes a Cargo workspace while the engine stays the root package - crate name, src/ layout, all three binaries plus il, CI, and the Docker build are untouched. gateway/ is an empty member crate reserved for the gateway (#83/#84).

Why a gateway crate at all (discussed 2026-08-19)

The gateway is the stack's model gateway: an OpenAI-compatible endpoint that forwards completions to the model provider and verifies every conversation against the loaded ontology (findings with quoted spans and proof trees). It is the base_url-swap product from the RFC and the deck, and it is what makes verification language-agnostic. From the infra side, production deployments run two required components: the IL engine and the IL gateway. A separate crate keeps HTTP/LLM dependencies out of the engine and forces the gateway onto the public WebSocket API like any other client.

Naming decided: crate stays inputlayer-gateway ('model gateway' is the role, not the name).

Merge order

Stacked on #98 (base branch feat/il-registry-cli) to avoid a Cargo.toml conflict - merge #98 first; this PR then retargets to main automatically when the base branch is deleted.

Verified

cargo build (both members), cargo fmt --check, make doc-check clean; cargo metadata lists inputlayer + inputlayer-gateway.

Closes #82

@jsam

jsam commented Aug 19, 2026

Copy link
Copy Markdown
Contributor Author

Closing as premature. The workspace split exists only to host the gateway crate (#83/#84, the OpenAI-compatible verify endpoint from the RFC), and that work is not scheduled yet. The split is mechanical and takes minutes, so it should land as the first commit of the actual gateway work instead of reserving an empty crate now. Issue #82 stays open, tied to the gateway milestone.

@jsam jsam closed this Aug 19, 2026
@jsam
jsam deleted the feat/workspace-split branch August 19, 2026 16:15
@jsam
jsam restored the feat/workspace-split branch August 19, 2026 16:23
@jsam

jsam commented Aug 19, 2026

Copy link
Copy Markdown
Contributor Author

Reopened: closing this was premature while the gateway's value is still under discussion. See the PR conversation for the tradeoff summary.

jsam added 2 commits August 20, 2026 11:39
The engine stays the root package - crate name, src/ path, binaries, CI,
and Docker all unchanged. gateway/ is an empty workspace member reserved
for the Verified Completions gateway (#83/#84), so its future HTTP and
LLM dependencies never enter the engine crate and it is forced onto the
public WebSocket API like any other client.

Mechanical only; no engine code changes.
…yable story

Naming decided: the crate stays inputlayer-gateway; conceptually it is
the stack's model gateway (OpenAI-compatible endpoint that proxies
completions and verifies conversations). Production deployments run two
components: the IL engine and the IL gateway.
@jsam
jsam force-pushed the feat/workspace-split branch from 0d856ec to 992f901 Compare August 20, 2026 09:39
The workspace conversion broke the image build: cargo cannot load the
workspace without gateway/Cargo.toml and a stub source present in the
build context. The dep-cache stage now copies the gateway manifest with
a stub lib, and the real build copies gateway/ sources. Makes this PR
self-contained instead of depending on the stacked gateway PR's
Dockerfile.
@jsam
jsam merged commit 8bd1635 into main Aug 20, 2026
11 checks passed
@jsam
jsam deleted the feat/workspace-split branch August 20, 2026 11:55
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.

Verified Completions: split the repo into a Cargo workspace (engine + gateway)

1 participant