docs(cli): document unbuildable_index drift op and complete the never-applied set - #20563
Merged
objectstack-fleet[bot] merged 2 commits intoSep 29, 2026
Merged
Conversation
…-applied set Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VDtqoecgES7ScQYGbFVDRv
…_column_type_change Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VDtqoecgES7ScQYGbFVDRv
objectstack-fleet
Bot
deleted the
claude/issue-20538-cli-unbuildable-index
branch
September 29, 2026 03:32
This was referenced Sep 29, 2026
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.
Fixes #20538
Clause-②: no
content/docs/deployment/cli.mdxnow documents the report-onlyunbuildable_indexdrift op (added by #20519) and names the complete never-applied set.Before / after
needs_confirmrow (category table)os migrate apply— exceptmanual_widen_varchar_to_text, which nothing appliesos migrate apply— exceptmanual_column_type_change(onlyos migrate multi-value-columns --applyruns it), andmanual_widen_varchar_to_textandunbuildable_index, which nothing appliesNew Index-drift row (after
drop_index)unbuildable_index— a declared index whose key column can never exist (name is not a field of the object, or a virtualformulafield). Report-only, categoryneeds_confirm; severityerrorfor a UNIQUE index,warningfor a plain one.os migrate applynever performs it and reports itskipped. A column merely not added yet is pendingadd_columnswork and is not reported.os migrate multi-value-columnsprosemanual_widen_varchar_to_text(...) is also never applied, but has noos migratesubcommand of its own. This section covers the op that does."manual_widen_varchar_to_textandunbuildable_indexas also never applied, with no subcommand of their own; the section coversmanual_column_type_change.Command table row for
os migrate multi-value-columns(same never-applied set)applynever reconciles"Code anchors measured on origin/main 6154165
packages/drivers/driver-sql/src/schema-drift.ts:294unbuildable_indexmember ofDriftOp(fieldstable,column?,indexName,unique,missingColumns);:373listed inINDEX_DRIFT_OPS;:378inIndexDriftOp.schema-drift.ts:1970-1975doc: classifiedneeds_confirm,os migrate applyreports it skipped; UNIQUE iserror, plain iswarning.schema-drift.ts:1976-2020diffUnbuildableIndexes:severity: idx.unique ? 'error' : 'warning'(:2001),category: 'needs_confirm'(:2002); qualifies only when a key column is absent AND never materializes (misspelt name or virtualformula,:1958-1963); a not-yet-added column is excluded (:1965-1968).packages/drivers/driver-sql/src/sql-driver.ts:13884applyIndexDriftOp:if (op.type === 'unbuildable_index') return false;, so the entry is reportedskippedon every dialect (call site:13865, dispatch:14022).manual_column_type_changenever applied:schema-drift.ts:166-180(no reconciler arm, "skipped, never applied ... the intended behaviour"), emitted at:1137-1138as severityerror, categoryneeds_confirm;sql-driver.ts:14131(no reconciler arm on any dialect, by decision).manual_widen_varchar_to_text:schema-drift.ts:212, emitted:1341-1342aserror/needs_confirm.The code agrees with the card on every point, with one correction found in review:
manual_column_type_changeis never applied byos migrate applybut IS applied byos migrate multi-value-columns --apply(packages/cli/src/commands/migrate/multi-value-columns.ts:105-107selects only that op;:315-318,:338-339the--applypath), so the row separates it from the two ops nothing applies. Follow-up commit b982ca1. Nothing was copied from the card without a read.Acceptance notes
os migrate apply's skip-summary wording are untouched (other lane).dispatch-gates.mjs --commandsrun in the foreground; all 0 exceptcheck:skill-examples, which exits 3 (PREREQUISITE NOT MET: needs a@objectstack/client-reactbuild; not a finding, NOT MEASURED). Neithercheck:docsnorcheck:docs-transcript-driftnorcheck:nul-bytesflags the change.content/docs/**is not shipped in a packagefiles[]).维护者速读(草稿)
Not applicable: no managed path (
.claude/**) is touched.🤖 Generated with Claude Code
https://claude.ai/code/session_01VDtqoecgES7ScQYGbFVDRv