Repository navigation
fix(frontend): look up the console's schemas without type arguments - #163
Merged
Merged
Conversation
interface-database 0.4.0 drops Schema.get's type arguments and types a looked-up definition as unknown. The query runtime typed its map with Schema.get<unknown, SchemaDefLike>, so the layer failed its type check once the frontend build installed 0.4.0. The map now holds Schema<unknown, unknown>, which both 0.3 and 0.4 satisfy.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
interface-database 0.4.0 was published on 2026-11-13. It drops
Schema.get's type arguments and types a looked-up schema's definition asunknown(ANT-2383). ThefrontendCI job builds this layer in a fresh Inertia app, which now installs 0.4.0, so it fails onmainand on every open branch. The failure is infrontend-vue/app/build/composables/useQueryRuntime.ts, which calledSchema.get<unknown, SchemaDefLike>. This PR makes the layer compile on 0.3 and 0.4 alike, so the open PRs can go green before the module's full 0.4.0 move lands.What changed
frontend-vue/app/build/composables/useQueryRuntime.ts. The console's schema map is typedSchema<unknown, unknown>and is filled withSchema.get(summary.id), without type arguments. Nothing reads a binding'sdefinition: the map is only handed to the user's query code. Anew Schema(id, definition)built for a schema the registry lacks fits the same type. Type arguments are erased, so the emitted JavaScript is the same.Attention
antelopejs-api-diffexits 1 on base and head alike: the released tooling-configs still tries to compareplayground, which has no emitted declaration (ANT-2239, fixed on tooling-configs main and pinned in refactor: drop the last four suppressions under the type-guard parser exemption #162). The packages it does compare report no change.ubuntucheck is the aggregate gate and fails wheneverfrontenddoes.Proof
pnpm test:frontendis thefrontendCI job: it builds and type-checks the layer in a generated Inertia app, which installs interface-database 0.4.0.Before (
origin/main):After (this branch):
pnpm test:layeron the layer's own lockfile, which still resolves interface-database 0.3.1:pnpm run checkson the committed head:API: comparison incomplete due to execution errors.
API: skipped .agents/skills/verify-dms-database, no exports, main or types.
API: skipped frontend-vue, private.
Execution error: playground (playground): /home/debian/.tmp/antelope-proof-vU7Y8y/worktrees/base/playground: published target dist/index.d.ts has no emitted declaration.
Execution error: playground (playground): /home/debian/.tmp/antelope-proof-vU7Y8y/worktrees/head/playground: published target dist/index.d.ts has no emitted declaration.
Runtime API: 2 packages, 3 entries unchanged against origin/main (committed HEAD).
Auto-imports: 1 packages, 0 entries unchanged against origin/main (committed HEAD).
No behavioural probe ran.
Suppressions in authored code files (origin/main and committed HEAD). A lint directive counts once per rule it names;
*is a directive naming none.anti-slop/no-unknown-parameters@ts-expect-error@ts-ignoreSAFETY:comments