Repository navigation
Conversation
… contract
Every generation test so far read one contract. Instagram is also the contract
the generator was written against, so passing proves little about whether this
is a generator or one app's script.
`filter-lab` is the sharpest second contract the repository has. It models no
domain — it exists to stress the query layer — so it carries shapes Instagram
never exercises: a composite key (`edge` keys on `(src, dst)`, so neither key
column is a single id), a self-reference (`parent: widget?`), a closed set, a
float, a timestamp, and a nullable column. A declaration written for none of
it validates clean, and the generated query selects the composite key as
`src { id } / dst { id }` and the self-reference as `parent { id }`.
The proof runs against filter-lab's own authority, booted in-process: the
query is accepted, the seed counts match, the composite key and the
self-reference resolve, the nullable column reads back as `null` rather than a
missing field, and the closed set, float, and timestamp read back as declared.
Scope, stated plainly: this is a second *contract*, not a second app.
filter-lab declares no fns — the test asserts that — so the mutation, dispatch,
and refusal paths are not exercised here. Those stay covered by the synthetic
`app.blog@2` harness; the two are complementary.
The in-process server setup is now `against_live_authority`, shared with the
Instagram harness, so the stop-and-join that keeps a server failure from hiding
behind a passing harness lives in one place. The contract is read from the
program the compiler just built rather than a committed copy, so it cannot
drift from `schema.spock`.
Verified: fmt, clippy -D warnings, `cargo test --locked --workspace`, and the
doc snippets all exit 0; `provider_gen` reports 16 passed, 0 ignored.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
|
Closing without merging as part of the October 2026 Spock renewal tracked in epic #38. The work is preserved on |
Summary
Stacked on #35 → #34 → #33 → #29.
Every generation test so far read one contract — and Instagram is the contract the generator was written against, so passing it proves little about whether this is a generator or one app's script.
I checked what a real second app would need. Neither repository has one: Instagram is the only project with both a Spock contract and an Uhura client.
filter-labhas a contract but no client,return-deskhas a client (app.returndesk@1) but no contract, anduberis a PRD. So a true second app is not available without inventing one.filter-labis the sharpest second contract that does exist. It models no domain — it was written to stress the query layer — and so carries shapes Instagram never exercises:edgekeys on(src, dst))parent: widget?)a_second_contract_generates_a_query_its_own_authority_accepts:examples/filter-lab/schema.spockthrough the compiler — the contract comes from the program just built, not a committed copy, so it cannot drift from the schema;src { id } / dst { id }and the self-reference asparent { id };nullrather than a missing field, and the closed set, float, and timestamp read back as declared.Scope, stated plainly
This is a second contract, not a second app. filter-lab declares no fns — the test asserts that — so mutation, dispatch, and refusal paths are not exercised here. Those stay covered by the synthetic
app.blog@2harness from #33. The two are complementary:app.blog@2proves the runtime carries no app knowledge; filter-lab proves the generator handles a contract it was never designed for.Refactor
The in-process server setup from #35 becomes
against_live_authority, shared by both live harnesses, so the stop-and-join that keeps a server failure from hiding behind a passing harness lives in one place.Type
test
Checklist
schema.spockTest plan
On the pinned toolchain (1.92.0) and node 24.18.0, after
pnpm -C uhura/web build:provider:cargo test --locked -p spock-cli --test provider_gen— 16 passed, 0 failed, 0 ignoredcargo fmt --all --check— exit 0cargo clippy --locked --workspace --all-targets -- -D warnings— exit 0cargo test --locked --workspace— exit 0node scripts/check-doc-snippets.mjs— exit 0A first gate run failed clippy with
unused variable: base_dir— dead after theagainst_live_authorityextraction, and invisible tocargo test, which treats it as a warning. Fixed and re-verified; the results above are from the clean run.