Select the channel import class from the database's shape - #15220
Open
rtibbles wants to merge 1 commit into
Open
Select the channel import class from the database's shape#15220rtibbles wants to merge 1 commit into
rtibbles wants to merge 1 commit into
Conversation
min_schema_version is a floor, not a description: Studio keeps its published databases readable by the oldest schema it still supports, and has declared 1 throughout. Picking the import class from it while reading the columns of the shape the file actually has left one importer mapping at version 1 and reading at version 6, so the QA channel's v162 publish — which carries file_size_bigint alongside the legacy file_size the floor promises — mapped file_size_bigint off a column that was never selected. Infer the newest schema version a file fits and use it for both. The floor now only gates whether we can read the file at all, which it has never done: the KeyError that guarded it cannot come from dict.get. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CZbu6D5tudALEEwJidhtM1
Contributor
Build Artifacts
Smoke test screenshot |
rtibbles
marked this pull request as ready for review
August 20, 2026 19:57
marcellamaki
self-requested a review
August 20, 2026 20:32
Member
|
@rtibblesbot For manual QA I only see something actionable at item 1 of the above Reviewer guidance... Could you clarify if there's anything else needed for manual QA? |
Member
|
I re-tested the workflow under 1. reviewer guidance, and the underlying issue seems fixed: old version (140-ish) of the QA channel is successfully updated to the newest one, the current on Studio, and all the resources are available in the local Kolibri Library. Waiting to hear if there are any other workflows that need testing before I approve! |
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.
Summary
Our test coverage failed to test on actual Studio shaped databases - where there are extra columns for backwards compatibility, so failed to ensure proper schema detection. Upgrading a channel aborted once Studio began publishing the renamed file size column alongside the legacy one. The import class came from the database's declared minimum schema version — a floor Studio has always published as 1 — while the columns read came from the newer shape the file actually has, so the legacy rename mapped off a column that was never selected. Infer the newest schema version a database fits, and use it for both.
References
Regression from #15174. First seen: QA channel
95a52b38at version 162.Reviewer guidance
AI usage
Used Claude Code to diagnose the failure from the traceback and implement the fix and its tests; the ratchet-down inference rule was my call, once we had established that min_schema_version never described the shape. Verified with the content test suite, prek, and a manual import of the real channel database that failed.