You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* docs(migrations): add schema versioning + pdb/rdb v0→v1 migration design spec
Design spec for ITL-535 covering the Orcapod schema versioning framework
and the concrete v0→v1 migration for pipeline DB and result DB tables.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs(migrations): update schema versioning spec with detection, NodeConfig, table_exists
- Add SchemaVersionError hard-stop on old schema detection (replaces warning)
- Add NodeConfig.ignore_schema for opt-in tolerance of specific old versions
- Redesign detection flow: check v1 path first, only inspect v0 if v1 absent
- Add per-v1-path process-level cache (_checked_pdb_paths / _checked_rdb_paths)
- Add ArrowDatabaseProtocol.table_exists() as required new method
- Add golden fixture testing strategy with sample tables for each schema version
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs(migrations): add implementation plan for schema versioning + pdb/rdb v0→v1 migration (ITL-535)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(schema): add ContentHash.from_prefixed_digest, SchemaVersionError, NodeConfig.ignore_schema
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(databases): add table_exists() to ArrowDatabaseProtocol and all backends
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(constants): add PIPELINE_DB_SCHEMA_VERSION and RESULT_DB_SCHEMA_VERSION
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(schema): FunctionJobNode + ResultCache path versioning, binary ContentHash, schema detection
- FunctionJobNode: pipeline DB now uses versioned path (pdb_v1 suffix)
- FunctionJobNode: meta_table hash columns changed to large_binary
- FunctionJobNode: _ensure_pdb_schema() detects legacy v0 tables
- ResultCache: result DB now uses versioned path (rdb_v1 suffix)
- ResultCache: INPUT_DATA_HASH_COL changed to large_binary
- ResultCache: _ensure_rdb_schema() detects legacy v0 tables
- CachedFunctionPod: set_ignore_schema() propagates to ResultCache
- Remove ITL-508 guard (superseded by schema versioning)
- Update tests for new binary hash format and versioned paths
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(schema): _ResultDatabaseReader.record_path now returns versioned path (rdb_v1 suffix)
* feat(migrations): add MigrationResult dataclass and migrate_result_v0_to_v1() and migrate_pipeline_v0_to_v1() and migrate_node()
* feat(cli): add orcapod migrate pipeline-db and result-db sub-commands
* fix(test): derive CLI test cwd from __file__ instead of hardcoded absolute path
The hardcoded Kurodo agent path caused all 6 CLI smoke tests to fail on
GitHub Actions runners with FileNotFoundError. Use Path(__file__).parent.parent.parent
to resolve the repo root portably.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(migrate): address PR review comments
- cli/migrate.py: fix result_path derivation for pipeline-db command;
rdb is scoped to pod.uri (without schema:/instance: suffix), not the
full node identity path. Add _result_path_from_node_path() helper.
- result_cache.py: add _ensure_rdb_schema() guard to store() and
get_all_records() so schema detection fires on any DB access, not
only on lookup().
- migrations/pipeline_db.py: clarify docstrings — only __input_data_hash
is backfilled from rdb; __output_data_hash stays null when absent (rdb
doesn't store it, not counted as unresolvable). Add inline note on
the upfront rdb-index memory tradeoff.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(migrate): address PR review round 2 — schema guard, rdb perf, public API
- result_cache: remove premature _checked_rdb_paths.add before
SchemaVersionError raise (path was cached even when error fired)
- result_cache: add public base_record_path property so migration
utilities no longer need _record_path private access
- result_cache: add _hash_val_to_binary helper to tolerate both str
and bytes/memoryview ContentHash values in store()
- function_node: expand pdb SchemaVersionError message with actual
node path and migration command hint
- pipeline_db/result_db: add track_skipped=True parameter to skip
the v1 pre-scan on fresh large-table migrations
- pipeline_db: replace full upfront rdb index load with per-batch
get_records_by_ids lookup to avoid memory spike on large tables
- pipeline_db: migrate_node() uses cache.base_record_path instead
of private cache._record_path
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: agent-kurodo[bot] <268466204+agent-kurodo[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Edgar Y. Walker <eywalker@users.noreply.github.com>
0 commit comments