Skip to content

fix(transfer): preserve Knowledge Pages during bank transfer (#3308) - #3317

Closed
Sanderhoff-alt wants to merge 2 commits into
vectorize-io:mainfrom
Sanderhoff-alt:fix/transfer-knowledge-pages
Closed

fix(transfer): preserve Knowledge Pages during bank transfer (#3308)#3317
Sanderhoff-alt wants to merge 2 commits into
vectorize-io:mainfrom
Sanderhoff-alt:fix/transfer-knowledge-pages

Conversation

@Sanderhoff-alt

@Sanderhoff-alt Sanderhoff-alt commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Carry knowledge_pages in whole-bank archives and restore nodes parent-first.
  • Rebuild restored mental-model embeddings and target-side lexical state.
  • Preserve generated PostgreSQL columns while explicitly rebuilding regular native and VectorChord projections.

Approach

Whole-bank archives intentionally omit embedding and search_vector. Mental models are restored as rows, so import rebuilds this derived state on the target after row restoration. Embeddings are generated before taking the write connection.

Knowledge Page nodes are restored after their backing mental models. A small topological pass orders folder parents before descendant folders and pages.

Scope

This PR is intentionally limited to the transfer boundary. It does not change normal mental-model create/update/clear/rename lifecycle behavior, startup reconciliation, or database abstractions.

PR #3315 takes a broader approach and depends on #3313 for lifecycle-wide search-state maintenance. That work may be valuable independently. For this transfer-specific bug, this PR aims to keep review and rollout simpler by reusing the existing PostgreSQL search-vector expression helper, checking whether the target column is generated, and avoiding a dependency on the broader lifecycle change.

Knowledge Page query adaptation for non-native PostgreSQL text backends remains outside this PR.

Verification

  • Nested folder/page export-delete-import round trip preserves IDs, hierarchy, page-to-model references, managed state, and sort order.
  • Parent-first ordering has a focused regression test.
  • Mental-model search-state tests cover generated columns and VectorChord SQL.
  • Ruff, ty, and repository lint pass.

Closes #3308.

Re-embed restored mental models with the target provider.
Rebuild PostgreSQL lexical projections when required.
Export knowledge-page rows and restore parent nodes before children.
@Sanderhoff-alt Sanderhoff-alt changed the title fix(transfer): preserve Knowledge Pages during bank transfer fix(transfer): preserve Knowledge Pages during bank transfer (#3308) Aug 10, 2026
@Sanderhoff-alt

Copy link
Copy Markdown
Contributor Author

Closing this PR because #3330 has been merged and provides an equivalent fix, covering Knowledge Pages transfer and target-side mental-model search-state regeneration.

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.

whole-bank transfer skips Knowledge Pages and does not regenerate mental-model search state

1 participant