Skip to content

Let canonical views page while the projection is rebuilt - #499

Merged
callumalpass merged 2 commits into
mainfrom
fix/hosted-canonical-view-generation
Sep 28, 2026
Merged

callumalpass merged 2 commits into
mainfrom
fix/hosted-canonical-view-generation

Conversation

@callumalpass

Copy link
Copy Markdown
Contributor

A definition change retires the active semantic generation until the recovery worker rebuilds it. Direct queries and Obsidian Base views page without a pinned generation in that window, and validate_generation_binding already accepts an unpinned canonical view, but hosted_provider_query_cursors_check3 still required a generation for canonical_view cursors. The first paged execute_view after any definition change (create_type, apply_type_pack, …) therefore failed with provider_internal_error.

Migration 0044 drops the constraint: with canonical views admitted, every request kind permits an unpinned generation, so widening it would leave a check that restricts nothing.

New Postgres lifecycle test canonical_views_execute_while_the_projection_is_rebuilt pages a canonical view straight after create_type; it fails without the migration. The migration-inventory test moves to 44.

Found while running views after installing the mdbase.view pack (#498); independent of that change.

Verification: pnpm ci:local passes (after repairing a broken Electron install in the fresh worktree), plus both Postgres tests.

🤖 Generated with Claude Code

@callumalpass
callumalpass added this pull request to the merge queue Sep 28, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Sep 28, 2026
A definition change retires the active semantic generation until the
recovery worker rebuilds it. Direct queries and Base views page without a
pinned generation in that window, and validate_generation_binding already
accepts an unpinned canonical view, but hosted_provider_query_cursors_check3
still required one for canonical_view cursors. The first paged execute_view
after any definition change failed with provider_internal_error.

Every request kind now permits an unpinned generation, so the constraint is
dropped rather than widened. The new lifecycle test pages a canonical view
straight after create_type; it fails without the migration.
The consolidated beta69 upgrade test and the final-rollback preflight
fixture pin the current migration endpoint; the canonical-view rebuild test
installs the mdbase.view contract now that views are identified through it.
@callumalpass
callumalpass force-pushed the fix/hosted-canonical-view-generation branch from a7a6fe0 to 5ff16e7 Compare September 28, 2026 18:42
@callumalpass
callumalpass added this pull request to the merge queue Sep 28, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to invalid changes in the merge commit Sep 28, 2026
@callumalpass
callumalpass added this pull request to the merge queue Sep 28, 2026
Merged via the queue into main with commit 76f1af2 Sep 28, 2026
25 checks passed
@callumalpass
callumalpass deleted the fix/hosted-canonical-view-generation branch September 28, 2026 19:10
@callumalpass callumalpass mentioned this pull request Sep 28, 2026
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